Directories
¶
| Path | Synopsis |
|---|---|
|
Package apispec embeds the OpenAPI contract so the binary carries its own copy of api/openapi.yaml — the same document the Go types and the TypeScript client are generated from.
|
Package apispec embeds the OpenAPI contract so the binary carries its own copy of api/openapi.yaml — the same document the Go types and the TypeScript client are generated from. |
|
cmd
|
|
|
docsgen
command
Command docsgen writes the command reference for the documentation site from the Cobra command tree into the directory it is given:
|
Command docsgen writes the command reference for the documentation site from the Cobra command tree into the directory it is given: |
|
testshape
command
Command testshape checks that every test marks its Arrange, Act and Assert, and that each Assert reaches a failure.
|
Command testshape checks that every test marks its Arrange, Act and Assert, and that each Assert reaches a failure. |
|
workflow
command
Command workflow runs your Jira, Git forge and messaging workflow from the terminal.
|
Command workflow runs your Jira, Git forge and messaging workflow from the terminal. |
|
internal
|
|
|
activity
Package activity is what was done over a period, read back from the places the work left a trace — git, Taskwarrior, Jira and the forge — and grouped by year, month, day and hour.
|
Package activity is what was done over a period, read back from the places the work left a trace — git, Taskwarrior, Jira and the forge — and grouped by year, month, day and hour. |
|
api
Package api provides primitives to interact with the openapi HTTP API.
|
Package api provides primitives to interact with the openapi HTTP API. |
|
buildinfo
Package buildinfo reports which build of workflow is running, from the module version when it was installed from a release, or the commit it was built from otherwise.
|
Package buildinfo reports which build of workflow is running, from the module version when it was installed from a release, or the commit it was built from otherwise. |
|
cli
Package cli builds the workflow command tree.
|
Package cli builds the workflow command tree. |
|
cli/clitest
Package clitest runs the workflow command line for a test, as a user or a script would type it: each run in a world of its own — a working directory, a home and none of the developer's environment but what the test set — with a Jira, a gh or glab, and a Slack or webhook that answer as the test scripts them, the prompts a guided command reads, the repositories the commands run in, made with git itself, and the process readied for the tests by Main.
|
Package clitest runs the workflow command line for a test, as a user or a script would type it: each run in a world of its own — a working directory, a home and none of the developer's environment but what the test set — with a Jira, a gh or glab, and a Slack or webhook that answer as the test scripts them, the prompts a guided command reads, the repositories the commands run in, made with git itself, and the process readied for the tests by Main. |
|
cli/cmdkit
Package cmdkit is what every workflow command is built from, beneath the command tree internal/cli spells: the scriptable contract — the artifact on a checked stdout, what is said about it on stderr, --yes and --dry-run around a write, a mistake in the call as a usage error — and the connection to where a command runs, the environment it reads the process through, the flags every command shares and the prompt that asks the person at the terminal.
|
Package cmdkit is what every workflow command is built from, beneath the command tree internal/cli spells: the scriptable contract — the artifact on a checked stdout, what is said about it on stderr, --yes and --dry-run around a write, a mistake in the call as a usage error — and the connection to where a command runs, the environment it reads the process through, the flags every command shares and the prompt that asks the person at the terminal. |
|
cli/console
Package console is what a command says on stderr: its notes, warnings and errors, each an entry of one log; with --verbose, a debug line for each request; and, while a command waits on a terminal, the live line of the wait.
|
Package console is what a command says on stderr: its notes, warnings and errors, each an entry of one log; with --verbose, a debug line for each request; and, while a command waits on a terminal, the live line of the wait. |
|
cli/doctor
Package doctor is `workflow doctor`: it reports the build, the git repository a directory is in, the external programs workflow uses, where the store keeps its files and the configuration in effect, as prose or as JSON, and, asked to, puts each credential to its service.
|
Package doctor is `workflow doctor`: it reports the build, the git repository a directory is in, the external programs workflow uses, where the store keeps its files and the configuration in effect, as prose or as JSON, and, asked to, puts each credential to its service. |
|
cli/issues
Package issues is the commands over the issue tracker, Jira or the forge's issues: `issues` and `issue`, which read, and `transition`, `assign`, `worklog` and `comment`, which write an issue once its preview is confirmed.
|
Package issues is the commands over the issue tracker, Jira or the forge's issues: `issues` and `issue`, which read, and `transition`, `assign`, `worklog` and `comment`, which write an issue once its preview is confirmed. |
|
cli/pr
Package pr is the pull or merge request's flow on the command line: `workflow pr`, which opens one for the checked-out branch and makes the offers that follow, and `workflow announce`, which tells the team about it, at once or once its CI passes.
|
Package pr is the pull or merge request's flow on the command line: `workflow pr`, which opens one for the checked-out branch and makes the offers that follow, and `workflow announce`, which tells the team about it, at once or once its CI passes. |
|
cli/status
Package status is `workflow status`: where the work in a repository stands along the loop, read from its branch, its forge, its tracker and the store, printed on one line or as JSON, for the current repository or for each directory named.
|
Package status is `workflow status`: where the work in a repository stands along the loop, read from its branch, its forge, its tracker and the store, printed on one line or as JSON, for the current repository or for each directory named. |
|
codeowners
Package codeowners reads a CODEOWNERS file the way GitHub or GitLab reads it and answers who owns a set of paths.
|
Package codeowners reads a CODEOWNERS file the way GitHub or GitLab reads it and answers who owns a set of paths. |
|
config
Package config owns the workflow configuration file, which holds the credentials for the services workflow talks to.
|
Package config owns the workflow configuration file, which holds the credentials for the services workflow talks to. |
|
convention
Package convention holds the naming and text rules for the workflow's branches, commits and pull requests.
|
Package convention holds the naming and text rules for the workflow's branches, commits and pull requests. |
|
docsgen
Package docsgen writes the command reference for the documentation site from the Cobra command tree, so the published flags are the flags the binary actually has.
|
Package docsgen writes the command reference for the documentation site from the Cobra command tree, so the published flags are the flags the binary actually has. |
|
editor
Package editor hands text and files to the user's own editor.
|
Package editor hands text and files to the user's own editor. |
|
filelock
Package filelock takes an advisory lock on an open file, which the system lets go when the file is closed, whether by the process or by its end, so no lock outlives its holder.
|
Package filelock takes an advisory lock on an open file, which the system lets go when the file is closed, whether by the process or by its end, so no lock outlives its holder. |
|
fileowner
Package fileowner says who owns a file, where the operating system keeps that as a user and a group id.
|
Package fileowner says who owns a file, where the operating system keeps that as a user and a group id. |
|
forge
Package forge talks to the Git forge a repository lives on — GitHub or GitLab, hosted or on-premises.
|
Package forge talks to the Git forge a repository lives on — GitHub or GitLab, hosted or on-premises. |
|
gitrepo
Package gitrepo reads and changes the git repository a session is running in.
|
Package gitrepo reads and changes the git repository a session is running in. |
|
gittest
Package gittest keeps a package's tests on the repositories they make and off every other: it clears the variables a git hook exports, which would point every git a test starts at the hook's repository; it has git read a configuration of the tests' own, the developer's kept out and git's automatic maintenance off, in the git it runs and, through a TestMain, in every git a process starts; and it gives the tests that prove a hook's environment changes nothing, and that no git outlives its test, what they compare.
|
Package gittest keeps a package's tests on the repositories they make and off every other: it clears the variables a git hook exports, which would point every git a test starts at the hook's repository; it has git read a configuration of the tests' own, the developer's kept out and git's automatic maintenance off, in the git it runs and, through a TestMain, in every git a process starts; and it gives the tests that prove a hook's environment changes nothing, and that no git outlives its test, what they compare. |
|
hooks
Package hooks works with lefthook: reading what a run of it printed, reading its configuration, and writing a configuration for a repository whose hooks predate it.
|
Package hooks works with lefthook: reading what a run of it printed, reading its configuration, and writing a configuration for a repository whose hooks predate it. |
|
httpx
Package httpx is the HTTP transport the Jira, forge and messaging clients share: the one-method Doer seam they accept, and a client that refuses redirects so a credential never follows one.
|
Package httpx is the HTTP transport the Jira, forge and messaging clients share: the one-method Doer seam they accept, and a client that refuses redirects so a credential never follows one. |
|
jira
Package jira talks to a Jira Data Center instance over its REST v2 API.
|
Package jira talks to a Jira Data Center instance over its REST v2 API. |
|
keychain
Package keychain stores a secret in the operating system's keychain and reads it back, so a token need never sit in the configuration file.
|
Package keychain stores a secret in the operating system's keychain and reads it back, so a token need never sit in the configuration file. |
|
lifetime
Package lifetime carries, in a context, the end of what a piece of work is done for: the web server serving it, or the command running it.
|
Package lifetime carries, in a context, the end of what a piece of work is done for: the web server serving it, or the command running it. |
|
loop
Package loop composes the developer loop once, for every surface: the pull request a branch proposes and the push it needs first, the review status it moves the issue to, the announcement of where it stands and the memory of what was announced before, what "stage all" stages, the scope a commit remembers, and the guards a switch or a commit respects.
|
Package loop composes the developer loop once, for every surface: the pull request a branch proposes and the push it needs first, the review status it moves the issue to, the announcement of where it stands and the memory of what was announced before, what "stage all" stages, the scope a commit remembers, and the guards a switch or a commit respects. |
|
messaging
Package messaging posts team announcements — to Slack with a rotating user token or through an incoming webhook, and to Teams, Discord or a plain webhook through theirs — and asks whether a Slack user token works.
|
Package messaging posts team announcements — to Slack with a rotating user token or through an incoming webhook, and to Teams, Discord or a plain webhook through theirs — and asks whether a Slack user token works. |
|
messaging/directory
Package directory reads the Slack directory a session tags people from: a channel's members, the workspace's users and user groups, and which workspace the token is for, each read once however many ask at a time and held for a while, waiting out Slack's rate limits within its patience.
|
Package directory reads the Slack directory a session tags people from: a channel's members, the workspace's users and user groups, and which workspace the token is for, each read once however many ask at a time and held for a while, waiting out Slack's rate limits within its patience. |
|
places
Package places is where an issue can be, for narrowing the Issues list: one of its tracker's status names, or one of workflow's own marks.
|
Package places is where an issue can be, for narrowing the Issues list: one of its tracker's status names, or one of workflow's own marks. |
|
proc
Package proc runs external programs.
|
Package proc runs external programs. |
|
proc/pgroup
Package pgroup runs a streamed child in its own process group, so canceling its context kills the whole tree rather than the child alone.
|
Package pgroup runs a streamed child in its own process group, so canceling its context kills the whole tree rather than the child alone. |
|
progress
Package progress works out how far along the developer loop a piece of work is — pick an issue, branch, commit, open a review, announce it — from what the repository and the services report.
|
Package progress works out how far along the developer loop a piece of work is — pick an issue, branch, commit, open a review, announce it — from what the repository and the services report. |
|
ptytest
Package ptytest opens a pseudo-terminal for a test: the side the test types into, and the terminal the code under test reads from, which only a pseudo-terminal can stand in for.
|
Package ptytest opens a pseudo-terminal for a test: the side the test types into, and the terminal the code under test reads from, which only a pseudo-terminal can stand in for. |
|
report
Package report builds what every surface reports in the API's own shapes, internal/api's: the Summary of a period, the directories you work in, the review queue, and the words for a failure.
|
Package report builds what every surface reports in the API's own shapes, internal/api's: the Summary of a period, the directories you work in, the review queue, and the words for a failure. |
|
rlimit
Package rlimit lowers one of the process's resource limits around a single call in a test and puts it back afterward.
|
Package rlimit lowers one of the process's resource limits around a single call in a test and puts it back afterward. |
|
sanitize
Package sanitize keeps text that a server or another program chose from reaching the terminal as control sequences.
|
Package sanitize keeps text that a server or another program chose from reaching the terminal as control sequences. |
|
seams
Package seams declares what a surface asks of each system outside the process, one bundle per system.
|
Package seams declares what a surface asks of each system outside the process, one bundle per system. |
|
setup
Package setup is the first run every surface shares: where the configuration file goes, Jira's address and token checked against Jira before they are kept, the OS keychain offered for the token, a messaging webhook, and the file written.
|
Package setup is the first run every surface shares: where the configuration file goes, Jira's address and token checked against Jira before they are kept, the OS keychain offered for the token, a messaging webhook, and the file written. |
|
slackauth
Package slackauth keeps a Slack user token posting past the twelve hours a rotating token lasts: it refreshes the token through Slack's oauth.v2.access, keeps each new pair where the configuration says — the macOS keychain or the configuration file — and hands out a token with time left on it, refreshing under a lock so two processes do not spend the same single-use refresh token.
|
Package slackauth keeps a Slack user token posting past the twelve hours a rotating token lasts: it refreshes the token through Slack's oauth.v2.access, keeps each new pair where the configuration says — the macOS keychain or the configuration file — and hands out a token with time left on it, refreshing under a lock so two processes do not spend the same single-use refresh token. |
|
sqlitefile
Package sqlitefile opens a SQLite database file through the pure-Go driver itself, so CGO stays off and no lookup of a driver by name stands between a caller and its file.
|
Package sqlitefile opens a SQLite database file through the pure-Go driver itself, so CGO stays off and no lookup of a driver by name stands between a caller and its file. |
|
store
Package store keeps a little workflow state on disk between sessions, in two SQLite databases under the OS-native data directory.
|
Package store keeps a little workflow state on disk between sessions, in two SQLite databases under the OS-native data directory. |
|
taskwarrior
Package taskwarrior drives the task program: finds it, reads its tasks as the JSON its export writes, and changes them through its own commands.
|
Package taskwarrior drives the task program: finds it, reads its tasks as the JSON its export writes, and changes them through its own commands. |
|
testshape
Package testshape checks that every test marks its Arrange, Act and Assert, and that each Assert reaches a failure.
|
Package testshape checks that every test marks its Arrange, Act and Assert, and that each Assert reaches a failure. |
|
tui
Package tui renders workflow's terminal interface: a rail of panes down the left, a detail pane beside it, the loop's stages across the top and the keys along the bottom.
|
Package tui renders workflow's terminal interface: a rail of panes down the left, a detail pane beside it, the loop's stages across the top and the keys along the bottom. |
|
tui/frame
Package frame draws a titled, bordered box of an exact size.
|
Package frame draws a titled, bordered box of an exact size. |
|
tui/layout
Package layout decides where each region of the terminal interface goes for a given terminal size.
|
Package layout decides where each region of the terminal interface goes for a given terminal size. |
|
tui/quietinput
Package quietinput is a Huh field typing one line of text, as huh.Input does, over an input whose cursor never blinks: what every form of the terminal's takes typed text through.
|
Package quietinput is a Huh field typing one line of text, as huh.Input does, over an input whose cursor never blinks: what every form of the terminal's takes typed text through. |
|
web
Package web carries the built single-page app so `workflow --web` serves it from the one static binary.
|
Package web carries the built single-page app so `workflow --web` serves it from the one static binary. |
|
webserver
Package webserver serves the local web API behind `workflow --web`: the same information the terminal interface shows, and the configuration file, over the REST surface described by api/openapi.yaml.
|
Package webserver serves the local web API behind `workflow --web`: the same information the terminal interface shows, and the configuration file, over the REST surface described by api/openapi.yaml. |
|
webserver/edge
Package edge is the request boundary of `workflow --web`: what every request passes before the server's own handlers take it.
|
Package edge is the request boundary of `workflow --web`: what every request passes before the server's own handlers take it. |
|
webserver/problem
Package problem is the RFC 9457 problem details the --web API answers a failure with: the status, title and type each code fixes, the default answer a strict handler returns with one, and one written by the hand-written middleware that answers before a strict handler runs.
|
Package problem is the RFC 9457 problem details the --web API answers a failure with: the status, title and type each code fixes, the default answer a strict handler returns with one, and one written by the hand-written middleware that answers before a strict handler runs. |
|
webserver/runs
Package runs serves the git runs of `workflow --web` and lefthook's hooks: POST /api/runs, which starts a hook, a rebase, an amend or a fixup and streams it while it goes, DELETE /api/runs/current, which stops it, and the hooks lefthook configures and the offer to set it up.
|
Package runs serves the git runs of `workflow --web` and lefthook's hooks: POST /api/runs, which starts a hook, a rebase, an amend or a fixup and streams it while it goes, DELETE /api/runs/current, which stops it, and the hooks lefthook configures and the offer to set it up. |
|
webserver/tasks
Package tasks serves the Taskwarrior operations of the web API behind `workflow --web`: the task list, the event stream's summary of your tasks, and the writes on them, over the seam the terminal's Tasks pane asks.
|
Package tasks serves the Taskwarrior operations of the web API behind `workflow --web`: the task list, the event stream's summary of your tasks, and the writes on them, over the seam the terminal's Tasks pane asks. |
|
webserver/webtest
Package webtest is what the tests of internal/webserver and of the packages that leave it share: the harness that serves the API handler under a session and sends it requests, the canned seams and fixture constants, the event stream's reader, a seam call held on its context, the configuration's edits, the Taskwarrior fake and lefthook's fixtures.
|
Package webtest is what the tests of internal/webserver and of the packages that leave it share: the harness that serves the API handler under a session and sends it requests, the canned seams and fixture constants, the event stream's reader, a seam call held on its context, the configuration's edits, the Taskwarrior fake and lefthook's fixtures. |
|
wiring
Package wiring connects the seams every surface shares — the command line's, the terminal's and the web's — to the real clients that answer them.
|
Package wiring connects the seams every surface shares — the command line's, the terminal's and the web's — to the real clients that answer them. |
|
workdirs
Package workdirs reads the directories workflow can be pointed at: what is in one, whether it is there, and how a typed path or a directory is written.
|
Package workdirs reads the directories workflow can be pointed at: what is in one, whether it is there, and how a typed path or a directory is written. |
Click to show internal directories.
Click to hide internal directories.