skip to content
$worker

github

v0.3.11

GitHub CLI (gh) as an iii worker — typed github::pr/issue/repo/run/workflow/release/search functions, github::exec argv passthrough, and github::api for any GitHub REST endpoint.

iiiverified
58 installs0 in 7d0 today
install
$iii trigger compose::add worker=github@0.3.11
  • macOS: arm64
  • Linux: arm64 · armv7 · x64
  • Windows: arm64 · x64

exact versions are immutable; binary and bundle artifacts are digest-pinned.

functions

34

github::api

function

Call any GitHub REST endpoint via gh api and return the parsed JSON. `fields` become `-f key=value` form fields and flip the default method to POST; `body` is sent verbatim as JSON. Non-2xx responses are errors carrying gh's stderr.

request
  • bodyunknown

    Raw JSON request body, piped to gh via `--input -`. Mutually exclusive with fields (gh rejects the combination).

  • fieldsobject

    Form fields, each passed as `-f key=value` (string-typed on the wire).

  • jqstring

    jq expression gh applies to the response (`--jq`); keeps large responses small.

  • methodstring

    HTTP method. gh defaults to GET, or POST when fields/body are present.

  • paginateboolean

    Follow pagination to the end (`--paginate`); combine with jq.

  • pathstringrequired

    Endpoint path with concrete owner/repo values, e.g. "rate_limit" or "repos/cli/cli/issues"; `{owner}` placeholders are not expanded.

  • timeout_msinteger· uint64min 0

    Per-call timeout in ms, clamped to the configured max_timeout_ms.

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::exec

function

Run any gh command; `args` is the argv without the leading `gh`. A non-zero exit or a timeout is returned as data, not an error. The escape hatch for everything without a typed github::* function.

request
  • argsstring[]required

    gh argv, without the leading `gh` (e.g. ["pr", "status", "-R", "o/r"]).

  • stdinstring

    Bytes piped to gh's stdin (for flags like `--body-file -`).

  • timeout_msinteger· uint64min 0

    Per-call timeout in ms, clamped to the configured max_timeout_ms.

response
  • duration_msinteger· uint64requiredmin 0

    Wall-clock duration of the invocation, in ms.

  • exit_codeinteger· int32

    Process exit code; null when the process was killed (timeout).

  • stderrstringrequired

    Captured stderr (UTF-8 lossy), capped at `max_output_bytes`.

  • stderr_truncatedbooleanrequired

    True when stderr exceeded `max_output_bytes` and was truncated.

  • stdoutstringrequired

    Captured stdout (UTF-8 lossy), capped at `max_output_bytes`.

  • stdout_truncatedbooleanrequired

    True when stdout exceeded `max_output_bytes` and was truncated.

  • timed_outbooleanrequired

    True when the timeout expired and the process group was killed.

github::issue::close

function

Close an issue, optionally with a closing comment and a completed / not-planned reason.

request
  • commentstring

    Closing comment.

  • numberinteger· uint64requiredmin 0

    Issue number.

  • reasonany of

    Close reason.

    any of (2)
    variant 1
    valuestringenum: completed, not-planned
    variant 2
    valuenull
  • repostringrequired

    Target repository, "owner/name".

response
  • outputstringrequired

    gh's stdout, trimmed.

github::issue::comment

function

Comment on an issue. Returns the URL of the new comment.

request
  • bodystringrequired

    Comment body (markdown).

  • numberinteger· uint64requiredmin 0

    Issue number.

  • repostringrequired

    Target repository, "owner/name".

response
  • outputstringrequired

    gh's stdout, trimmed.

github::issue::create

function

Open a new issue in a repository, with optional labels and assignees.

request
  • assigneesstring[]

    Assignee logins.

  • bodystringrequired

    Issue body (markdown).

  • labelsstring[]

    Labels to apply.

  • repostringrequired

    Target repository, "owner/name".

  • titlestringrequired

    Issue title.

response
  • outputstringrequired

    gh's stdout, trimmed.

github::issue::edit

function

Edit an issue's title, body, labels, or assignees.

request
  • add_assigneesstring[]

    Assignee logins to add.

  • add_labelsstring[]

    Labels to add.

  • bodystring

    New body (markdown).

  • numberinteger· uint64requiredmin 0

    Issue number.

  • remove_labelsstring[]

    Labels to remove.

  • repostringrequired

    Target repository, "owner/name".

  • titlestring

    New title.

response
  • outputstringrequired

    gh's stdout, trimmed.

github::issue::list

function

List issues in a repository. Filter by state, author, labels, assignee, or a search query.

request
  • assigneestring

    Filter by assignee login.

  • authorstring

    Filter by author login.

  • labelsstring[]

    Filter by labels (all must match).

  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • repostringrequired

    Target repository, "owner/name".

  • searchstring

    Search query narrowing the list further (GitHub search syntax).

  • stateany of

    Filter by state (gh default: open).

    any of (2)
    variant 1
    valuestringenum: open, closed, all
    variant 2
    valuenull
response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::issue::view

function

View one issue with its body and comments.

request
  • numberinteger· uint64requiredmin 0

    Issue number.

  • repostringrequired

    Target repository, "owner/name".

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::on-config-change

function

Internal: reload github configuration when it changes.

request
empty object
response
  • okboolean

github::pr::checks

function

Check whether CI passed on a pull request. Failing or pending checks are data, not errors.

request
  • numberinteger· uint64requiredmin 0

    Pull request number.

  • repostringrequired

    Target repository, "owner/name".

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::pr::comment

function

Comment on a pull request. Returns the URL of the new comment.

request
  • bodystringrequired

    Comment body (markdown).

  • numberinteger· uint64requiredmin 0

    Pull request number.

  • repostringrequired

    Target repository, "owner/name".

response
  • outputstringrequired

    gh's stdout, trimmed.

github::pr::create

function

Open a pull request from a head branch. head is required: the worker runs outside any checkout, so gh cannot infer a current branch.

request
  • basestring

    Base branch to merge into (gh default: the repo default branch).

  • bodystringrequired

    Pull request body (markdown).

  • draftboolean

    Open as draft.

  • headstringrequired

    Head branch the PR ships. Required: the worker runs outside any checkout, so gh cannot infer a current branch.

  • repostringrequired

    Target repository, "owner/name".

  • titlestringrequired

    Pull request title.

response
  • outputstringrequired

    gh's stdout, trimmed.

github::pr::diff

function

Read the code changes of a pull request as a unified diff. truncated is true when the diff exceeded the capture cap.

request
  • numberinteger· uint64requiredmin 0

    Pull request number.

  • repostringrequired

    Target repository, "owner/name".

response
  • diffstringrequired

    The unified diff as printed by `gh pr diff`.

  • truncatedbooleanrequired

    True when the diff exceeded the capture cap and was cut off.

github::pr::edit

function

Edit a pull request's title, body, base branch, or labels.

request
  • add_labelsstring[]

    Labels to add.

  • basestring

    New base branch.

  • bodystring

    New body (markdown).

  • numberinteger· uint64requiredmin 0

    Pull request number.

  • remove_labelsstring[]

    Labels to remove.

  • repostringrequired

    Target repository, "owner/name".

  • titlestring

    New title.

response
  • outputstringrequired

    gh's stdout, trimmed.

github::pr::list

function

List pull requests in a repository. Filter by state, author, labels, base branch, or a search query.

request
  • authorstring

    Filter by author login.

  • basestring

    Filter by base branch.

  • labelsstring[]

    Filter by labels (all must match).

  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • repostringrequired

    Target repository, "owner/name".

  • searchstring

    Search query narrowing the list further (GitHub search syntax).

  • stateany of

    Filter by state (gh default: open).

    any of (2)
    variant 1
    valuestringenum: open, closed, merged, all
    variant 2
    valuenull
response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::pr::merge

function

Merge a pull request with merge, squash, or rebase. auto enables auto-merge once requirements pass.

request
  • autoboolean

    Enable auto-merge: merge automatically once requirements pass.

  • delete_branchboolean

    Delete the head branch after merging.

  • methodall ofrequired

    Merge method.

    all of (1)
    variant 1
    valuestringenum: merge, squash, rebase
  • numberinteger· uint64requiredmin 0

    Pull request number.

  • repostringrequired

    Target repository, "owner/name".

response
  • outputstringrequired

    gh's stdout, trimmed.

github::pr::review

function

Review a pull request: approve, request changes, or comment. gh requires body for request-changes and comment reviews.

request
  • bodystring

    Review body (gh requires it for request-changes and comment).

  • eventall ofrequired

    Review event.

    all of (1)
    variant 1
    valuestringenum: approve, request-changes, comment
  • numberinteger· uint64requiredmin 0

    Pull request number.

  • repostringrequired

    Target repository, "owner/name".

response
  • outputstringrequired

    gh's stdout, trimmed.

github::pr::view

function

View one pull request with its body, mergeability, review decision, and diff stats.

request
  • numberinteger· uint64requiredmin 0

    Pull request number.

  • repostringrequired

    Target repository, "owner/name".

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::release::create

function

Create a GitHub release for a tag, optionally as a draft or prerelease. generate_notes autogenerates notes from merged PRs.

request
  • draftboolean

    Create as draft.

  • generate_notesboolean

    Autogenerate notes from merged PRs since the last release.

  • notesstring

    Release notes body (markdown).

  • prereleaseboolean

    Mark as prerelease.

  • repostringrequired

    Target repository, "owner/name".

  • tagstringrequired

    Tag to release (created at target if it does not exist).

  • targetstring

    Target branch or commit SHA for the tag (gh default: the default branch).

  • titlestring

    Release title.

response
  • outputstringrequired

    gh's stdout, trimmed.

github::release::list

function

List a repository's releases with their tags and draft/prerelease flags.

request
  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • repostringrequired

    Target repository, "owner/name".

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::release::view

function

View one release by tag, including its notes and attached assets.

request
  • repostringrequired

    Target repository, "owner/name".

  • tagstringrequired

    Release tag (e.g. "v1.2.0").

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::repo::list

function

List the repositories owned by a user or organization. owner defaults to the authenticated user.

request
  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • ownerstring

    User or organization login (default: the authenticated user).

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::repo::view

function

View a repository's metadata: description, default branch, visibility, stars, language, topics, and latest release.

request
  • repostringrequired

    Target repository, "owner/name".

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::run::cancel

function

Cancel a workflow run that is still in progress.

request
  • repostringrequired

    Target repository, "owner/name".

  • run_idinteger· uint64requiredmin 0

    Workflow run id.

response
  • outputstringrequired

    gh's stdout, trimmed.

github::run::list

function

List recent GitHub Actions runs (CI builds) in a repository. Filter by workflow, branch, or status.

request
  • branchstring

    Filter by branch.

  • limitinteger· uint32min 0

    Maximum number of results (gh default: 20).

  • repostringrequired

    Target repository, "owner/name".

  • statusstring

    Filter by status (e.g. completed, in_progress, queued, failure, success).

  • workflowstring

    Filter by workflow (file name, e.g. "ci.yml").

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::run::rerun

function

Rerun a workflow run. failed reruns only the failed jobs.

request
  • failedboolean

    Rerun only the failed jobs.

  • repostringrequired

    Target repository, "owner/name".

  • run_idinteger· uint64requiredmin 0

    Workflow run id.

response
  • outputstringrequired

    gh's stdout, trimmed.

github::run::view

function

View one workflow run with its jobs and their steps.

request
  • repostringrequired

    Target repository, "owner/name".

  • run_idinteger· uint64requiredmin 0

    Workflow run id (databaseId from github::run::list).

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::search::code

function

Search code across GitHub repositories for a string or symbol. Use qualifiers like "repo:o/r language:rust symbol".

request
  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • querystringrequired

    Search query (GitHub search syntax, qualifiers included).

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::search::issues

function

Search issues across GitHub repositories. Use qualifiers like "repo:o/r is:open label:bug".

request
  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • querystringrequired

    Search query (GitHub search syntax, qualifiers included).

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::search::prs

function

Search pull requests across GitHub repositories. Use qualifiers like "repo:o/r is:open review:required".

request
  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • querystringrequired

    Search query (GitHub search syntax, qualifiers included).

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::search::repos

function

Search GitHub for repositories matching a query. GitHub search syntax (e.g. "language:rust stars:>100 topic:cli").

request
  • limitinteger· uint32min 0

    Maximum number of results (gh default: 30).

  • querystringrequired

    Search query (GitHub search syntax, qualifiers included).

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::ui-content

function

Serve the github worker's injected console UI assets (content function for its console:script / console:style triggers).

request
  • pathstringrequired

    The asset path from the trigger config (e.g. `state/page.js`).

response
  • contentstringrequired

    The asset source, verbatim.

  • content_typestringrequired

    MIME type the console should serve the asset with.

github::workflow::list

function

List the workflow definitions (.github/workflows files) in a repository. all includes disabled workflows.

request
  • allboolean

    Include disabled workflows.

  • repostringrequired

    Target repository, "owner/name".

response
  • valueunknownrequired

    The JSON gh printed for the requested `--json` fields.

github::workflow::run

function

Trigger a workflow run (workflow_dispatch) on a branch or tag. inputs become -f key=value pairs.

request
  • inputsobject

    workflow_dispatch inputs, each passed as `-f key=value`.

  • refstring

    Branch or tag to run on (gh default: the repo default branch).

  • repostringrequired

    Target repository, "owner/name".

  • workflowstringrequired

    Workflow file name (e.g. "release.yml") or numeric id.

response
  • outputstringrequired

    gh's stdout, trimmed.

triggers

1

github::called

trigger

Fires after each github function runs; carries the call + a short result summary.

invocation
valueunknown
return
valueunknown