Add first-class Actions management (#63)
This commit is contained in:
104
TESTING.md
104
TESTING.md
@@ -44,7 +44,8 @@ Run `cargo run -p gotcha-tui -- --server NAME` in a normal terminal and in a
|
||||
Herdr pane. Use a non-production account with at least two server profiles and
|
||||
representative repositories.
|
||||
|
||||
- [ ] The five numbered panes open Home, Issues, Repos, PRs, and Milestones;
|
||||
- [ ] The six numbered panes open Home, Issues, Repos, PRs, Milestones, and
|
||||
Actions;
|
||||
the selected pane and row remain visibly distinct at narrow and wide
|
||||
terminal sizes.
|
||||
- [ ] `j`/`k`, arrows, `g`/`G`, Page Up/Down, Enter, and Backspace provide
|
||||
@@ -72,6 +73,14 @@ representative repositories.
|
||||
added and the current user's comments edited.
|
||||
- [ ] Milestones can be created, edited, closed/reopened, and deleted after
|
||||
confirmation; milestone details route to their issues and pulls.
|
||||
- [ ] Actions selects a repository, lists workflows and paginated runs, and
|
||||
preserves selection while active runs refresh. Dispatch a workflow with a
|
||||
branch or tag plus multiple `KEY=VALUE` inputs; open the resulting run,
|
||||
inspect every job, open its grouped setup/task/completion entries, and
|
||||
open each group's complete scrollable log text. Verify a long multi-job
|
||||
workflow such as RuDS release run 30 stays navigable without flattening
|
||||
all jobs and logs into one view.
|
||||
Queued, running, successful, failed, and cancelled states remain distinct.
|
||||
- [ ] Server profiles can be added, authenticated, selected, edited, renamed,
|
||||
and deleted. Blank token on edit preserves the existing token; removing
|
||||
the last server leaves the server manager available.
|
||||
@@ -89,6 +98,17 @@ representative repositories.
|
||||
`target/release/gotcha-tui`, and the installed executable starts from
|
||||
`PATH`.
|
||||
|
||||
## Actions CLI
|
||||
|
||||
- [ ] `gotcha action workflow list OWNER/REPOSITORY` lists the repository's
|
||||
workflows without using `api request`.
|
||||
- [ ] `gotcha action workflow dispatch OWNER/REPOSITORY WORKFLOW --ref REF`
|
||||
accepts repeated `--input KEY=VALUE` values, rejects malformed or
|
||||
duplicate inputs, and creates a run with the requested ref and inputs.
|
||||
- [ ] `gotcha action run list OWNER/REPOSITORY` supports page/limit plus event,
|
||||
branch, status, actor, and SHA filters. `run show` returns every job and
|
||||
step, and `run logs` returns every job's complete log.
|
||||
|
||||
Build and install the simulator app:
|
||||
|
||||
```sh
|
||||
@@ -209,7 +229,8 @@ source update are published, and installs or updates Gotcha through AltStore PAL
|
||||
The native refresh control appears, reloads data, and disappears.
|
||||
- [ ] On accounts/repositories with more than 30 results, Home activity,
|
||||
repositories, issues, pull requests, milestones, milestone contents,
|
||||
commit history, and pull-request files initially show one page plus a
|
||||
Action runs, commit history, and pull-request files initially show one
|
||||
page plus a
|
||||
**Pull up or tap to load more**
|
||||
footer. Pull upward past the bottom and verify the footer changes to a
|
||||
native loading indicator, the next page appends without duplicates, and
|
||||
@@ -240,18 +261,27 @@ source update are published, and installs or updates Gotcha through AltStore PAL
|
||||
without clipping either edge.
|
||||
- [ ] Activity rows have the correct icon, repository, summary, and date.
|
||||
- [ ] The compact icon row below the activity graph sits flat on the normal
|
||||
background with no border or pill and defaults to the clock. Select the
|
||||
issue and pull-request icons in turn; each shows only matching recent
|
||||
activity or the native empty state, then the clock restores all rows.
|
||||
The people and bell icons remain separate, accessible Server Activity
|
||||
and Notifications destinations.
|
||||
- [ ] Tap **Server Activity**. The pushed native list combines activity from
|
||||
every user visible to the selected server account in newest-first order,
|
||||
identifies each actor, supports pull-to-refresh and pagination without
|
||||
duplicates, and uses a native empty state when no activity is visible.
|
||||
background with no border or pill. **Your activity** is selected by
|
||||
default with a filled accent-colored icon. Switch to **All users** and
|
||||
**Notifications**; only the current timeline uses the accent color and
|
||||
selected accessibility trait, and returning to **Your activity** restores
|
||||
the user's unfiltered feed. Rapid switching never replaces the selected
|
||||
timeline with a cancelled result.
|
||||
- [ ] The timeline mini-icons come first, followed immediately by every
|
||||
non-timeline destination omitted from the tab bar. Each destination opens
|
||||
its native screen and remains reachable when the row must scroll
|
||||
horizontally at large Dynamic Type sizes. A pushed destination
|
||||
keeps the native Back button and returns to the selected Home timeline.
|
||||
- [ ] The **All users** timeline combines activity from every user visible to
|
||||
the selected server account in newest-first order, identifies each actor,
|
||||
supports pull-to-refresh and pagination without duplicates, and uses a
|
||||
native empty state when no activity is visible.
|
||||
Tap another user's repository, issue, pull request, and commit events;
|
||||
each opens the corresponding native detail screen and Back returns to
|
||||
Server Activity.
|
||||
each opens the corresponding native detail screen and Back returns to the
|
||||
selected Home timeline.
|
||||
- [ ] The **Notifications** timeline shows open notification rows with unread
|
||||
state, supports pull-to-refresh and pagination, marks a selected unread
|
||||
row read before routing, and keeps non-linkable rows non-tappable.
|
||||
- [ ] Pull-request activity includes older creation and close events beyond the
|
||||
first activity-feed page without requiring a manual pull-up; the empty
|
||||
state appears only after every available page has been checked.
|
||||
@@ -260,6 +290,32 @@ source update are published, and installs or updates Gotcha through AltStore PAL
|
||||
Back button and left-edge interactive swipe return directly to Home.
|
||||
- [ ] Non-linkable server activity does not navigate or appear tappable.
|
||||
|
||||
## Actions
|
||||
|
||||
- [ ] Open Actions, select a repository, and switch repeatedly between native
|
||||
Workflows and Runs segments. Pull to refresh both lists; load multiple run
|
||||
pages without duplicate or stale rows and verify active runs refresh
|
||||
automatically without disrupting navigation.
|
||||
- [ ] Open a workflow. The native grouped dispatch form starts with the
|
||||
repository's default branch, requires a non-empty reference, accepts
|
||||
multiline `KEY=VALUE` inputs, keeps standard iOS text selection/editing,
|
||||
reports invalid or duplicate inputs, and dismisses only after the server
|
||||
accepts the dispatch.
|
||||
- [ ] Open queued, running, successful, failed, and cancelled runs. Their
|
||||
symbols, labels, progress, and jobs match Gitea and update while active.
|
||||
Drill down through Run, Job, and grouped setup/task/completion lists;
|
||||
each higher level shows its outcome and a disclosure indicator. Success
|
||||
uses a green filled checkmark, failure a red filled X, and waiting,
|
||||
queued, running, skipped, and cancelled remain visually distinct.
|
||||
Finished jobs and tasks show elapsed time instead of a log-line count. Open a
|
||||
group to verify its complete monospaced log text is selectable, readable,
|
||||
and accessible at large Dynamic Type sizes. Use a long multi-job workflow
|
||||
such as RuDS release run 30 to verify the hierarchy remains manageable.
|
||||
- [ ] Exercise empty repositories, a network error, rapid mode changes, Back,
|
||||
interactive swipe, pull-to-refresh, background/foreground, and request
|
||||
cancellation. No stale result replaces newer content and no loading or
|
||||
refresh indicator remains stuck.
|
||||
|
||||
## Notifications
|
||||
|
||||
- [ ] Launch a fresh install. Gotcha does not request notification permission
|
||||
@@ -274,15 +330,15 @@ source update are published, and installs or updates Gotcha through AltStore PAL
|
||||
the app switch persists across relaunches, and iOS Settings remains the
|
||||
source of truth for alerts, sounds, Focus, and scheduled summaries.
|
||||
Turning the app switch off cancels pending alerts and background refresh.
|
||||
- [ ] Tap the Home bell. Open and Closed each show the matching server
|
||||
notification threads with a type icon, title, repository, date, Dynamic
|
||||
Type layout, and accessible Open/Closed value. Pull to refresh, switch
|
||||
status repeatedly, and load a list longer than one page without duplicate
|
||||
or stale rows.
|
||||
- [ ] Select the Home **Notifications** timeline. The inline Open/Closed control
|
||||
shows matching server notification threads with a type icon, title,
|
||||
repository, date, Dynamic Type layout, and accessible Open/Closed value.
|
||||
Pull to refresh, switch status repeatedly, and load a list longer than one
|
||||
page without duplicate or stale rows.
|
||||
- [ ] Tap open and closed issue, pull-request, commit, and repository
|
||||
notifications. Each opens the native destination on the Home navigation
|
||||
stack; opening an unread thread marks it read, Back returns to the
|
||||
notification list, and the next refresh moves it from Open to Closed.
|
||||
selected Home timeline, and the next refresh moves it from Open to Closed.
|
||||
- [ ] After the first poll establishes a cursor, create or receive another
|
||||
server notification. Launch the Debug simulator build with
|
||||
`xcrun simctl launch booted de.rfc1437.gotcha --validate-background-notifications`,
|
||||
@@ -534,6 +590,16 @@ source update are published, and installs or updates Gotcha through AltStore PAL
|
||||
## Settings, accessibility, and lifecycle
|
||||
|
||||
- [ ] Settings opens from the gear button on Home and is not a tab.
|
||||
- [ ] Home, Issues, Repositories, Pull Requests, Milestones, Actions, and Server
|
||||
Activity use the destination name as the primary navigation title and the
|
||||
selected server as the smaller subtitle; changing servers updates both.
|
||||
- [ ] Primary Navigation always keeps Home first and allows up to four ordered,
|
||||
unique choices from Issues, Repos, Pulls, Milestones, Actions, and Server
|
||||
Activity. Add, remove, and reorder destinations with native table
|
||||
controls; tab order updates immediately, omitted destinations remain on
|
||||
Home, and the configuration survives relaunch and server changes. An
|
||||
upgrade from the previous build starts with Issues, Repos, Pulls, and
|
||||
Milestones.
|
||||
- [ ] Appearance changes between Auto, Light, and Dark immediately; Auto follows
|
||||
the simulator system appearance.
|
||||
- [ ] Icon and appearance settings remain selected after relaunch.
|
||||
|
||||
Reference in New Issue
Block a user