Updated Oct 19, 2026

Integrations

Plan GitHub repository actions from workflow inputs

github-integration is a selected-action workflow adapter for Github.

Agent

overview

What github-integration does

Select a GitHub resource and operation, supply its repository fields, and retain a JSONL result. The explicit dry-run input generates a request plan without calling GitHub. Normal execution uses a token and can create or change repository data.

Source-declared actions: issue.create, issue.get, issue.list, issue.comment, issue.addLabels, pr.create, pr.get, pr.comment, file.get, workflow.dispatch.

A FILE of JSONL results, with an ok field per processed item. Dry-run rows include dry_run: true and planning fields, not a provider response or proof of execution. The registered contract also exposes a FOLDER output. Payload and text fields may contain supplied content; use synthetic data for shared examples.

Native executable tests cover all 10 declared actions using owned loopback HTTP fixtures, plus credential/error cases. No real provider calls were made. A private three-node platform dry-run planning workflow also passed with a downloaded plan and verifier. Public image and source/notices directions are available. The original tool entry is available in the public Library. Keep private platform planning separate from provider execution.

source hub.docker.com/r/nenadzaric/skills-integrations-github-integration

use cases

Where github-integration fits

Plan an issue request

Preview the method, URL and payload for an issue.create fixture without sending it.

Read repository data

Use the selected issue.get, issue.list, pr.get or file.get operation when a workflow needs provider data; the native tests use owned HTTP fixtures.

Process a repository action

Select comment, labels, pull request creation or workflow dispatch deliberately. These normal-mode operations may mutate GitHub data.

reference

github-integration inputs and flags

22 inputs
NameTypeFlagDescription
repoSTRING--repoRepository as owner/name (e.g. acme/app)
itemsFILE--itemsOptional. One JSON object per line (JSONL); each line is one API call. If omitted, uses upstream files in /hive/in or a single call from flags. Example: {"repo":"acme/app","title":"Finding: XSS","body":"…","labels":"security"}
tokenSTRING--tokenGitHub token ; wire to ${{secrets.GITHUB_TOKEN}} Supply via workflow secrets; never bake credentials into images, source, or shared inputs.
dry-runBOOLEAN--dry-runOptional: true returns a request/message plan without provider calls; omitted/false keeps normal configured execution. This is not a live provider test.
resourceSTRING--resourceGitHub resource: issue | pr | file | workflow (default: issue)
operationSTRING--operationOperation by resource ; issue: create|get|list|comment|addLabels; pr: create|get|comment; file: get; workflow: dispatch

Showing key inputs. github-integration exposes 22 inputs in total.

Full flag reference (22 inputs)
NameTypeFlagDescription
refSTRING--refBranch, tag, or SHA (file.get, workflow.dispatch)
baseSTRING--baseBase branch (pr.create)
bodySTRING--bodyBody markdown (issue.create, pr.create)
headSTRING--headHead branch (pr.create)
pathSTRING--pathFile path in the repo (file.get)
repoSTRING--repoRepository as owner/name (e.g. acme/app)
itemsFILE--itemsOptional. One JSON object per line (JSONL); each line is one API call. If omitted, uses upstream files in /hive/in or a single call from flags. Example: {"repo":"acme/app","title":"Finding: XSS","body":"…","labels":"security"}
limitSTRING--limitMax results for issue.list (default: 20)
stateSTRING--stateIssue list state: open | closed | all (default: open)
titleSTRING--titleTitle (issue.create, pr.create)
tokenSTRING--tokenGitHub token ; wire to ${{secrets.GITHUB_TOKEN}} Supply via workflow secrets; never bake credentials into images, source, or shared inputs.
labelsSTRING--labelsComma-separated labels (issue.create, issue.addLabels)
commentSTRING--commentComment body (issue.comment, pr.comment)
dry-runBOOLEAN--dry-runOptional: true returns a request/message plan without provider calls; omitted/false keeps normal configured execution. This is not a live provider test.
resourceSTRING--resourceGitHub resource: issue | pr | file | workflow (default: issue)
workflowSTRING--workflowWorkflow file name or ID (workflow.dispatch)
assigneesSTRING--assigneesComma-separated GitHub usernames (issue.create)
operationSTRING--operationOperation by resource ; issue: create|get|list|comment|addLabels; pr: create|get|comment; file: get; workflow: dispatch
pr-numberSTRING--pr-numberPull request number (pr.get / comment)
issue-numberSTRING--issue-numberIssue number (issue.get / comment / addLabels)
workflow-inputsSTRING--workflow-inputsOptional JSON object of workflow inputs (workflow.dispatch)
continue-on-errorBOOLEAN--continue-on-errorKeep going (and exit 0) when an individual call fails

example

Run github-integration

github-integration · command
github-integration --dry-run --resource issue --operation create --repo fixture/owned --title "D074 owned plan fixture" --output ./plan.jsonl
sample output
{"resource": "issue", "operation": "create", "repo": "fixture/owned", "ok": true, "dry_run": true, "method": "POST", "url": "https://api.github.com/repos/fixture/owned/issues", "payload": {"title": "D074 owned plan fixture"}, "params": null}

guidance

Choosing github-integration

Use this service-specific adapter when the selected provider action and typed fields match the workflow. Dry-run planning, native HTTP-mock acceptance and actual provider execution are separate capabilities. A generic HTTP client may suit API routes this adapter does not expose.

faq

github-integration questions

issue.create, issue.get, issue.list, issue.comment, issue.addLabels, pr.create, pr.get, pr.comment, file.get, workflow.dispatch. This describes the recovered adapter, not every API capability offered by the provider.

The actual image returns a JSONL request or message plan without a provider call. This covers argument and planning/output behavior. It does not validate production account permissions, send a message, upload media or confirm provider compatibility.

Use the credential inputs for the selected service and operation, bound through the existing workflow secret mechanism. Do not put credentials into shared input files, examples or source. Explicit dry-run true generates a plan without provider calls; omitted/false selects normal configured execution. Missing and invalid credential behavior was exercised against synthetic local fixtures, not a production account.

A FILE of JSONL results, with an ok field per processed item. Dry-run rows include dry_run: true and planning fields, not a provider response or proof of execution. The registered contract also exposes a FOLDER output. Payload and text fields may contain supplied content; use synthetic data for shared examples.

Native executable tests cover all 10 declared actions using owned loopback HTTP fixtures, plus credential/error cases. No real provider calls were made. A private three-node platform dry-run planning workflow also passed with a downloaded plan and verifier. Public image and source/notices directions are available. The original tool entry is available in the public Library. Keep private platform planning separate from provider execution.

Open the source link for immutable image and source-notices download commands, the bundle SHA-256, recovered adapter/build files and installed notices. Provider HTTP-mock tests and private platform dry-run planning are separate from live provider compatibility or delivery.

Run github-integration yourself

Complete retained JSONL plan from the current notices1 image using synthetic owned fixture data. This was dry-run planning, not a provider request or delivered message. Native HTTP-mock action coverage is recorded separately.

Facts on this page come from the live Trickest tool library.