rafa pages
- rafa
- rafa board
rafa board
List a project's boards with their owners and marks, and keep the repository's GitHub project in step with its issues.
rafa board reads the project's boards, each a pinned roadmap issue, and keeps the optional GitHub project in step with the issues.
Spends: nothing. Changes: list reads only; sync writes items and field values in the GitHub project. Needs: gh signed in; sync needs the token's project scope (gh auth refresh -s project); see Prerequisites.
Things to know before you use it:
- Every rafa command that changes an issue's state refreshes its project row;
syncrepairs drift made outside rafa, andsync --dry-runshows it first. - A network timeout is retried and named; a rate-limit refusal is not retried.
In the target layout this code lives in the private package rafa-board, bundled into @open-tomato/rafa (Repository layout). In 0.47.0 it is already a package, @open-tomato/rafa-board in packages/rafa-board, but only as a facade: it re-exports this code from the root package's src/, where the files still live until their move. You install and type the same either way. [verify: the release the move lands in]
Actions
| Action | Does |
|---|---|
list | list the open boards with their owner, epic count, and the current and home marks |
sync | bring the repository's GitHub project in step with its issues |
rafa board list
List the open boards with their owner, epic count, and the current and home marks.
rafa board list
Lists every open type:roadmap board, lowest number first, and the default board when it is an unlabelled issue titled "Roadmap" or the roadmap.issue the project names. Each line holds the board's number and title, the owner its Owner: line names (followed by (unresolved) when GitHub knows no such account or team, and by (unknown) when it could not be asked), the number of epics its checklist names, and current and home on the boards this checkout's position holds. With no position file both are the default board. Writes nothing. A board listing that cannot be read is refused with exit code 2. With --output=json the rows and the two places are the data of the terminal result event.
Examples:
rafa board list: Lists the open boards, marking the one this checkout is on and its home.rafa board list --output=json: Gives the same rows, each owner with what GitHub answered for it, as the terminal result.
Output formats: text, json.
rafa board sync
Bring the repository's GitHub project in step with its issues.
rafa board sync [--dry-run]
Refreshes every item of this repository on the GitHub project board.project.number names, writing only the Stage, Horizon, Rank, Blocked by and Progress values that differ from what rafa reads of the issues, then adds every open issue missing from the project and fills its fields. It repairs what changed outside rafa: a label edited in the web UI, an issue closed by hand, the Roadmap issue's order edited in its body. Prints one line per change and per issue added, then a closing count of the changes written and of the issues added and filled. An issue added whose fields could not be filled is counted apart and named in a warning, #<n> added but not filled: <reason>; the next run fills it. With --dry-run it prints the same lines and writes nothing. With --output=json the changes are the data of the terminal result event. An issue whose facts could not be read is named in a warning, #<n> not refreshed: <reason>, while the others are synced; the exit code stays 0 and the next run reads it again. Adding the issues, reading their facts and writing their fields each print a start line with the total, a progress line at most every board.project.progressSeconds, as reading facts: 146/283, 6m 40s, and an end line; with --output=json each is a progress event. Refused with exit code 1 when board.project.number is unset, and with exit code 2 when the token lacks the project scope, the number names no project, or the rate limit stopped the writes.
| Flag | Type and default | What it does |
|---|---|---|
--dry-run | boolean | Print each change the sync would make and each issue it would add, and write nothing. |
Examples:
rafa board sync --dry-run: Shows what drifted on the project since rafa last wrote it, writing nothing.rafa board sync: Writes those changes and adds the open issues the project lacks.rafa board sync --output=json: Gives the changes, the issues added, those of them filled and the counts as the terminal result.
Output formats: text, json.