<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>workflow</title><link>https://jacob-delgado.github.io/workflow/</link><description>Recent content on workflow</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://jacob-delgado.github.io/workflow/index.xml" rel="self" type="application/rss+xml"/><item><title>Install</title><link>https://jacob-delgado.github.io/workflow/docs/install/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/install/</guid><description>&lt;h1 id="install"&gt;Install&lt;a class="anchor" href="#install"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;h2 id="what-it-needs"&gt;What it needs&lt;a class="anchor" href="#what-it-needs"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;git&lt;/strong&gt;, always.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;a href="https://lefthook.dev"&gt;lefthook&lt;/a&gt;&lt;/strong&gt;, for running hooks on demand and for&#10;turning existing &lt;code&gt;.git/hooks&lt;/code&gt; into a &lt;code&gt;lefthook.yml&lt;/code&gt;. Without it those two&#10;actions are not offered; commits still run whatever hooks git has.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;gh&lt;/code&gt;&lt;/strong&gt;, optionally, as a place to find a GitHub token. See&#10;&lt;a href="https://jacob-delgado.github.io/workflow/docs/configuration/"&gt;Configuration&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="with-go"&gt;With Go&lt;a class="anchor" href="#with-go"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;The shortest path, if you have Go installed:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;go install github.com/jacob-delgado/workflow/cmd/workflow@latest&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The binary lands in &lt;code&gt;$(go env GOPATH)/bin&lt;/code&gt;, which needs to be on your &lt;code&gt;PATH&lt;/code&gt;:&lt;/p&gt;</description></item><item><title>workflow</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow/</guid><description>&lt;h2 id="workflow"&gt;workflow&lt;a class="anchor" href="#workflow"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Run your Jira, Git forge and messaging workflow from the terminal&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;workflow ties Jira, your Git forge and your team&amp;rsquo;s messaging service into one&#10;terminal workflow.&lt;/p&gt;&#10;&lt;p&gt;CONFIGURATION&lt;/p&gt;&#10;&lt;p&gt;workflow reads .workflow.json from the current directory, and falls&#10;back to your home directory. A file in the current directory REPLACES the one&#10;in your home directory — the two are never merged, so a repository-local&#10;configuration is always the whole story.&lt;/p&gt;</description></item><item><title>Using workflow</title><link>https://jacob-delgado.github.io/workflow/docs/usage/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/usage/</guid><description>&lt;h1 id="using-workflow"&gt;Using workflow&lt;a class="anchor" href="#using-workflow"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;Run &lt;code&gt;workflow&lt;/code&gt; inside a repository. It opens on the issues assigned to you and&#10;reads everything else — the branch, its changes, its pull request, its CI — from&#10;the repository and the services it talks to. Where you are in the work is worked&#10;out from the branch name each time, never stored. A small on-disk store does&#10;remember a few conveniences between sessions — the commit scope you last used,&#10;what you have announced, the last issue list — under your platform&amp;rsquo;s data&#10;directory and never a secret; set &lt;code&gt;store.disabled&lt;/code&gt; to &lt;code&gt;true&lt;/code&gt; to keep nothing on&#10;disk.&lt;/p&gt;</description></item><item><title>The web interface</title><link>https://jacob-delgado.github.io/workflow/docs/web/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/web/</guid><description>&lt;h1 id="the-web-interface"&gt;The web interface&lt;a class="anchor" href="#the-web-interface"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;&lt;code&gt;workflow --web&lt;/code&gt; serves the same loop in a browser: the same issues, branch,&#10;pull request and announcement the terminal interface shows, read from the same&#10;repository and services through the same code. It is another way in, not a&#10;second implementation, and the terminal stays the fuller of the two.&lt;/p&gt;&#10;&lt;h2 id="start-it"&gt;Start it&lt;a class="anchor" href="#start-it"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;workflow --web &lt;span class="c1"&gt;# serve http://127.0.0.1:7000&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;workflow --web --dry-run &lt;span class="c1"&gt;# the same, read-only&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run it inside a repository, then open &lt;code&gt;http://127.0.0.1:7000&lt;/code&gt;. It listens on&#10;the loopback interface alone, on port 7000, and refuses a write from a page&#10;served anywhere else, so a site open in another tab cannot drive it. &lt;code&gt;ctrl+c&lt;/code&gt;&#10;in the terminal stops it.&lt;/p&gt;</description></item><item><title>Configuration</title><link>https://jacob-delgado.github.io/workflow/docs/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/configuration/</guid><description>&lt;h1 id="configuration"&gt;Configuration&lt;a class="anchor" href="#configuration"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;workflow reads a single JSON file, &lt;code&gt;.workflow.json&lt;/code&gt;.&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;jira&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;base_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://jira.example.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;token&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;user&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;messaging&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;slack&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;token&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;webhook_url&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;channel&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;#dev-workflow&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;forge&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;kind&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;host&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;token&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;},&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ui&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mouse&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;ascii&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;color&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Run &lt;code&gt;workflow config init&lt;/code&gt; and it asks for the Jira address and token, checks&#10;them, does the same for Slack, warns if the file would not be ignored by git,&#10;and writes what passed — nothing is echoed as you type a token. Add &lt;code&gt;--global&lt;/code&gt;&#10;to write it to your home directory, or &lt;code&gt;--template&lt;/code&gt; to write a blank file to&#10;fill in by hand instead of being asked.&lt;/p&gt;</description></item><item><title>workflow announce</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_announce/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_announce/</guid><description>&lt;h2 id="workflow-announce"&gt;workflow announce&lt;a class="anchor" href="#workflow-announce"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Announce the branch&amp;rsquo;s pull request to your team&amp;rsquo;s chat&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Announce what the messaging pane would — the branch&amp;rsquo;s pull request, its&#10;issue, and where it stands (ready for review, merged, or CI red) — to the&#10;configured Slack, Teams, Discord or webhook. A preview is printed and&#10;confirmed before anything is announced.&lt;/p&gt;&#10;&lt;p&gt;What it announces is remembered, with what the interface announces: a pull&#10;request already announced at the moment it is at is said to be, and asked about&#10;again rather than repeated — with &amp;ndash;yes, it is left as it is.&lt;/p&gt;</description></item><item><title>workflow branch</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_branch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_branch/</guid><description>&lt;h2 id="workflow-branch"&gt;workflow branch&lt;a class="anchor" href="#workflow-branch"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Branch for an issue, named by the convention, and switch to it&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Name a branch for an issue the way the interface does — from the issue&amp;rsquo;s&#10;type and summary — then create it off the current branch&amp;rsquo;s base and switch to&#10;it, which moves the working tree onto the new branch. A preview is printed and&#10;confirmed before anything is created.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;workflow branch &amp;lt;issue&amp;gt; [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for branch&#10; --yes go ahead without the confirmation&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; --dry-run hold back every write to Jira, the forge, the messaging service, git and files, and say what it would have done&#10; --log string append a one-line outline of each request (method, path, status, duration) to FILE, for a bug report&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="../workflow/"&gt;workflow&lt;/a&gt;&#9; - Run your Jira, Git forge and messaging workflow from the terminal&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>workflow completion</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion/</guid><description>&lt;h2 id="workflow-completion"&gt;workflow completion&lt;a class="anchor" href="#workflow-completion"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Generate the autocompletion script for the specified shell&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Generate the autocompletion script for workflow for the specified shell.&#10;See each sub-command&amp;rsquo;s help for details on how to use the generated script.&lt;/p&gt;&#10;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for completion&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; --dry-run hold back every write to Jira, the forge, the messaging service, git and files, and say what it would have done&#10; --log string append a one-line outline of each request (method, path, status, duration) to FILE, for a bug report&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="../workflow/"&gt;workflow&lt;/a&gt;&#9; - Run your Jira, Git forge and messaging workflow from the terminal&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="../workflow_completion_bash/"&gt;workflow completion bash&lt;/a&gt;&#9; - Generate the autocompletion script for bash&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="../workflow_completion_fish/"&gt;workflow completion fish&lt;/a&gt;&#9; - Generate the autocompletion script for fish&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="../workflow_completion_powershell/"&gt;workflow completion powershell&lt;/a&gt;&#9; - Generate the autocompletion script for powershell&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="../workflow_completion_zsh/"&gt;workflow completion zsh&lt;/a&gt;&#9; - Generate the autocompletion script for zsh&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>workflow config</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_config/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_config/</guid><description>&lt;h2 id="workflow-config"&gt;workflow config&lt;a class="anchor" href="#workflow-config"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Create and inspect the configuration file&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;workflow config [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for config&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; --dry-run hold back every write to Jira, the forge, the messaging service, git and files, and say what it would have done&#10; --log string append a one-line outline of each request (method, path, status, duration) to FILE, for a bug report&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="../workflow/"&gt;workflow&lt;/a&gt;&#9; - Run your Jira, Git forge and messaging workflow from the terminal&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="../workflow_config_init/"&gt;workflow config init&lt;/a&gt;&#9; - Set up the configuration file, asking for and checking each credential&lt;/li&gt;&#10;&lt;li&gt;&lt;a href="../workflow_config_show/"&gt;workflow config show&lt;/a&gt;&#9; - Print the configuration in effect, with tokens masked&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>workflow doctor</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_doctor/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_doctor/</guid><description>&lt;h2 id="workflow-doctor"&gt;workflow doctor&lt;a class="anchor" href="#workflow-doctor"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Report the repository, tooling, and configuration in effect&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Report the git repository this session is in, which external&#10;programs are installed, which .workflow.json is in effect,&#10;and which required fields are still empty.&lt;/p&gt;&#10;&lt;p&gt;Makes no network calls by default, so it is safe to run anywhere and&#10;tells you only that a credential is present. Add &amp;ndash;online to ask each&#10;service whether the credential actually works. Add &amp;ndash;json for the same&#10;facts as data, with the same masking.&lt;/p&gt;</description></item><item><title>workflow pr</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_pr/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_pr/</guid><description>&lt;h2 id="workflow-pr"&gt;workflow pr&lt;a class="anchor" href="#workflow-pr"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Open a pull request for the current branch&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Compose a pull request for the checked-out branch from its commits, the&#10;issue and the repository&amp;rsquo;s template — the same as the interface — pushing the&#10;branch first when it is not yet on its remote. A preview is confirmed first.&lt;/p&gt;&#10;&lt;p&gt;Once it is open, it offers — as the interface does — to link it on the branch&amp;rsquo;s&#10;issue, then to move the issue to the review status (jira.review_status).&lt;/p&gt;</description></item><item><title>workflow reviews</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_reviews/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_reviews/</guid><description>&lt;h2 id="workflow-reviews"&gt;workflow reviews&lt;a class="anchor" href="#workflow-reviews"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;List the pull requests that are waiting on your review&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;List the open pull or merge requests on your forge that request your&#10;review, oldest first, with the author, how CI stands and how long each has&#10;been waiting. The forge is the one your repository&amp;rsquo;s remote points at.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;workflow reviews [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for reviews&#10; --json print the reviews as JSON&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; --dry-run hold back every write to Jira, the forge, the messaging service, git and files, and say what it would have done&#10; --log string append a one-line outline of each request (method, path, status, duration) to FILE, for a bug report&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="../workflow/"&gt;workflow&lt;/a&gt;&#9; - Run your Jira, Git forge and messaging workflow from the terminal&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>workflow standup</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_standup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_standup/</guid><description>&lt;h2 id="workflow-standup"&gt;workflow standup&lt;a class="anchor" href="#workflow-standup"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Draft what you did — commits, issues and pull requests — to share&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Gather the commits you made, the issues you touched and the open pull&#10;requests on your branches over the last day, open the draft in your editor,&#10;and offer to post it to your team&amp;rsquo;s chat. Nothing is posted until you confirm;&#10;&amp;ndash;yes posts without asking, and &amp;ndash;dry-run prints the draft and posts nothing.&#10;&amp;ndash;yes does not skip the editor: add &amp;ndash;no-edit to run it unattended.&lt;/p&gt;</description></item><item><title>workflow status</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_status/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_status/</guid><description>&lt;h2 id="workflow-status"&gt;workflow status&lt;a class="anchor" href="#workflow-status"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Print the current work&amp;rsquo;s issue, stage and CI on one line&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Print, on one line, the issue the branch is for, how far along the loop&#10;the work has got, and how CI stands — the same progress the interface&amp;rsquo;s&#10;top row shows, for a shell prompt or a status bar. &amp;ndash;json prints it as data.&lt;/p&gt;&#10;&lt;p&gt;Given one or more directories, it prints a labeled line for each, so&#10;&lt;code&gt;workflow status ~/src/*&lt;/code&gt; reports every repository at once. Each reads its&#10;own configuration. A directory that cannot be read still gets its line,&#10;saying why, and the command then fails, as it does outside a repository.&lt;/p&gt;</description></item><item><title>Scripting</title><link>https://jacob-delgado.github.io/workflow/docs/scripting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/scripting/</guid><description>&lt;h1 id="scripting"&gt;Scripting&lt;a class="anchor" href="#scripting"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The steps of the loop that a script or a shell prompt wants also run as&#10;commands, without the interface: &lt;code&gt;status&lt;/code&gt;, &lt;code&gt;reviews&lt;/code&gt;, &lt;code&gt;standup&lt;/code&gt;, &lt;code&gt;branch&lt;/code&gt;,&#10;&lt;code&gt;pr&lt;/code&gt; and &lt;code&gt;announce&lt;/code&gt;, beside &lt;code&gt;doctor&lt;/code&gt; and &lt;code&gt;config&lt;/code&gt;. This page is what a script&#10;can rely on from them — the exit status, which stream carries what, the JSON shapes, and the&#10;flags that make a write safe to run unattended. Every command and flag is&#10;listed in the &lt;a href="https://jacob-delgado.github.io/workflow/docs/reference/"&gt;command reference&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Web API errors</title><link>https://jacob-delgado.github.io/workflow/docs/errors/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/errors/</guid><description>&lt;h1 id="web-api-errors"&gt;Web API errors&lt;a class="anchor" href="#web-api-errors"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The &lt;code&gt;workflow --web&lt;/code&gt; API answers a failed request with an&#10;&lt;a href="https://www.rfc-editor.org/rfc/rfc9457"&gt;RFC 9457&lt;/a&gt; problem details object, sent&#10;as &lt;code&gt;application/problem+json&lt;/code&gt;. (The loopback, same-origin and dry-run &lt;strong&gt;guards&lt;/strong&gt;&#10;refuse a request as plain text &lt;em&gt;before&lt;/em&gt; it reaches the API, so those few&#10;responses are not problem details.)&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;https://jacob-delgado.github.io/workflow/docs/errors/#not-found&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;title&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;Not found&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;status&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;404&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;detail&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;issue PROJ-412 was not found&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;code&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;not_found&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;type&lt;/code&gt;&lt;/strong&gt; — a stable URI naming the problem; it points at the matching section&#10;below.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;title&lt;/code&gt;&lt;/strong&gt; — a short, fixed summary of the problem type.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;status&lt;/code&gt;&lt;/strong&gt; — the HTTP status code.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;detail&lt;/code&gt;&lt;/strong&gt; — what went wrong this time, safe to show. It is curated: it never&#10;carries a secret (tokens are redacted before an error is formed) or an internal&#10;host. A write that is refused may include the git or forge&amp;rsquo;s own reason so you&#10;can act on it; a read failure and an unreachable upstream stay generic.&lt;/li&gt;&#10;&lt;li&gt;&lt;strong&gt;&lt;code&gt;code&lt;/code&gt;&lt;/strong&gt; — a stable, machine-readable reason, for a client to switch on rather&#10;than parsing prose.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;The codes below are the whole set.&lt;/p&gt;</description></item><item><title>Development</title><link>https://jacob-delgado.github.io/workflow/docs/contributing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/contributing/</guid><description>&lt;h1 id="development"&gt;Development&lt;a class="anchor" href="#development"&gt;&lt;/a&gt;&lt;/h1&gt;&#10;&lt;p&gt;The full contributor guide lives in&#10;&lt;a href="https://github.com/jacob-delgado/workflow/blob/main/CONTRIBUTING.md"&gt;CONTRIBUTING.md&lt;/a&gt;,&#10;and the code standards in&#10;&lt;a href="https://github.com/jacob-delgado/workflow/blob/main/CLAUDE.md"&gt;CLAUDE.md&lt;/a&gt;. This&#10;page is the shape of the thing.&lt;/p&gt;&#10;&lt;h2 id="setup"&gt;Setup&lt;a class="anchor" href="#setup"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/jacob-delgado/workflow.git&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; workflow&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mise trust &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; mise install &lt;span class="c1"&gt;# the whole toolchain, at pinned versions&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;task setup &lt;span class="c1"&gt;# modules + git hooks&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="https://mise.jdx.dev"&gt;mise&lt;/a&gt; is the only thing you install by hand. Every other&#10;tool — Go and the task runner, every linter and formatter, the coverage and&#10;security scanners, the docs builder — is pinned in &lt;code&gt;mise.toml&lt;/code&gt; at an exact&#10;version. That file is the single source of truth, and the list: the build&#10;container reads it, and so does CI, so a developer&amp;rsquo;s machine, the container, and&#10;CI cannot drift apart. Naming each tool here would only drift from it.&lt;/p&gt;</description></item><item><title>workflow completion bash</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_bash/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_bash/</guid><description>&lt;h2 id="workflow-completion-bash"&gt;workflow completion bash&lt;a class="anchor" href="#workflow-completion-bash"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Generate the autocompletion script for bash&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Generate the autocompletion script for the bash shell.&lt;/p&gt;&#10;&lt;p&gt;This script depends on the &amp;lsquo;bash-completion&amp;rsquo; package.&#10;If it is not installed already, you can install it via your OS&amp;rsquo;s package manager.&lt;/p&gt;&#10;&lt;p&gt;To load completions in your current shell session:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;source &amp;lt;(workflow completion bash)&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;To load completions for every new session, execute once:&lt;/p&gt;&#10;&lt;h4 id="linux"&gt;Linux:&lt;a class="anchor" href="#linux"&gt;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;pre&gt;&lt;code&gt;workflow completion bash &amp;gt; /etc/bash_completion.d/workflow&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;h4 id="macos"&gt;macOS:&lt;a class="anchor" href="#macos"&gt;&lt;/a&gt;&lt;/h4&gt;&#10;&lt;pre&gt;&lt;code&gt;workflow completion bash &amp;gt; $(brew --prefix)/etc/bash_completion.d/workflow&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;You will need to start a new shell for this setup to take effect.&lt;/p&gt;</description></item><item><title>workflow completion fish</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_fish/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_fish/</guid><description>&lt;h2 id="workflow-completion-fish"&gt;workflow completion fish&lt;a class="anchor" href="#workflow-completion-fish"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Generate the autocompletion script for fish&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Generate the autocompletion script for the fish shell.&lt;/p&gt;&#10;&lt;p&gt;To load completions in your current shell session:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;workflow completion fish | source&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;To load completions for every new session, execute once:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;workflow completion fish &amp;gt; ~/.config/fish/completions/workflow.fish&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;You will need to start a new shell for this setup to take effect.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;workflow completion fish [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for fish&#10; --no-descriptions disable completion descriptions&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; --dry-run hold back every write to Jira, the forge, the messaging service, git and files, and say what it would have done&#10; --log string append a one-line outline of each request (method, path, status, duration) to FILE, for a bug report&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="../workflow_completion/"&gt;workflow completion&lt;/a&gt;&#9; - Generate the autocompletion script for the specified shell&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>workflow completion powershell</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_powershell/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_powershell/</guid><description>&lt;h2 id="workflow-completion-powershell"&gt;workflow completion powershell&lt;a class="anchor" href="#workflow-completion-powershell"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Generate the autocompletion script for powershell&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Generate the autocompletion script for powershell.&lt;/p&gt;&#10;&lt;p&gt;To load completions in your current shell session:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;workflow completion powershell | Out-String | Invoke-Expression&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;To load completions for every new session, add the output of the above command&#10;to your powershell profile.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;workflow completion powershell [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for powershell&#10; --no-descriptions disable completion descriptions&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; --dry-run hold back every write to Jira, the forge, the messaging service, git and files, and say what it would have done&#10; --log string append a one-line outline of each request (method, path, status, duration) to FILE, for a bug report&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="../workflow_completion/"&gt;workflow completion&lt;/a&gt;&#9; - Generate the autocompletion script for the specified shell&lt;/li&gt;&#10;&lt;/ul&gt;</description></item><item><title>workflow completion zsh</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_zsh/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_completion_zsh/</guid><description>&lt;h2 id="workflow-completion-zsh"&gt;workflow completion zsh&lt;a class="anchor" href="#workflow-completion-zsh"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Generate the autocompletion script for zsh&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Generate the autocompletion script for the zsh shell.&lt;/p&gt;&#10;&lt;p&gt;If shell completion is not already enabled in your environment you will need&#10;to enable it. You can execute the following once:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;echo &amp;quot;autoload -U compinit; compinit&amp;quot; &amp;gt;&amp;gt; ~/.zshrc&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;To load completions in your current shell session:&lt;/p&gt;&#10;&lt;pre&gt;&lt;code&gt;source &amp;lt;(workflow completion zsh)&#10;&lt;/code&gt;&lt;/pre&gt;&#10;&lt;p&gt;To load completions for every new session, execute once:&lt;/p&gt;</description></item><item><title>workflow config init</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_config_init/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_config_init/</guid><description>&lt;h2 id="workflow-config-init"&gt;workflow config init&lt;a class="anchor" href="#workflow-config-init"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Set up the configuration file, asking for and checking each credential&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Ask for the Jira and Slack credentials, check each one, and write a&#10;.workflow.json with what passed.&lt;/p&gt;&#10;&lt;p&gt;By default it lands at the repository root, so every subdirectory sees it;&#10;outside a repository it lands in the current directory. Use &amp;ndash;global to&#10;write it to your home directory instead, where every directory can see it.&#10;Use &amp;ndash;template to write a blank file to fill in by hand rather than being&#10;asked. With &amp;ndash;dry-run it runs the same checks, writes nothing and stores&#10;nothing in the keychain, and prints the file it would write, masked.&lt;/p&gt;</description></item><item><title>workflow config show</title><link>https://jacob-delgado.github.io/workflow/docs/reference/workflow_config_show/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://jacob-delgado.github.io/workflow/docs/reference/workflow_config_show/</guid><description>&lt;h2 id="workflow-config-show"&gt;workflow config show&lt;a class="anchor" href="#workflow-config-show"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;Print the configuration in effect, with tokens masked&lt;/p&gt;&#10;&lt;h3 id="synopsis"&gt;Synopsis&lt;a class="anchor" href="#synopsis"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;p&gt;Print the configuration in effect as JSON, with every credential masked.&#10;The JSON alone goes to stdout, so it pipes into jq; the file it came from is&#10;named on stderr. With no configuration file it says how to create one and&#10;fails, as doctor does.&lt;/p&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt;workflow config show [flags]&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options"&gt;Options&lt;a class="anchor" href="#options"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; -h, --help help for show&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="options-inherited-from-parent-commands"&gt;Options inherited from parent commands&lt;a class="anchor" href="#options-inherited-from-parent-commands"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code&gt; --dry-run hold back every write to Jira, the forge, the messaging service, git and files, and say what it would have done&#10; --log string append a one-line outline of each request (method, path, status, duration) to FILE, for a bug report&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="see-also"&gt;SEE ALSO&lt;a class="anchor" href="#see-also"&gt;&lt;/a&gt;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href="../workflow_config/"&gt;workflow config&lt;/a&gt;&#9; - Create and inspect the configuration file&lt;/li&gt;&#10;&lt;/ul&gt;</description></item></channel></rss>