Files
openclaw/skills/github/SKILL.md
Peter Steinberger 8f0503657c feat(github): surface team-session attribution (#129012)
* feat(github): surface team-session attribution

Worked on by:
- @steipete

* fix(github): preserve PR body after attribution

Worked on by:
- @steipete
2026-08-24 22:57:03 -07:00

3.0 KiB

name, description, metadata
name description metadata
github GitHub CLI for issues, PRs, CI/check logs, comments, reviews, releases, repos, and gh api queries.
openclaw
emoji requires install
🐙
bins
gh
id kind formula bins label
brew brew gh
gh
Install GitHub CLI (brew)

GitHub

Use gh for GitHub. Use git for local commits/branches/push/pull. Use code-reading tools for deep reviews.

Auth

gh auth status
gh auth login

Gateway HOME can differ from operator HOME. If gh auth exists elsewhere, set GH_CONFIG_DIR in the gateway service env and restart.

PRs

gh pr list --repo owner/repo --json number,title,state,author,url
gh pr view 55 --repo owner/repo --json title,body,author,files,commits,reviews,reviewDecision
gh pr checks 55 --repo owner/repo
gh pr diff 55 --repo owner/repo
gh pr create --repo owner/repo --title "feat: title" --body-file /tmp/pr.md
gh pr merge 55 --repo owner/repo --squash

When creating or refreshing a commit or PR, visibly include the exact ordered Worked on by list from the authoritative Git attribution context for the current turn; use ## Worked on by in PR bodies. Preserve its exact Co-authored-by trailers in commits, including after history rewrites. Never infer identities from names or chat, include bots or opted-out people, or reorder the supplied contributors.

When creating or refreshing a PR body, append this final footer only when the Runtime line supplies sessionUrl=<exact-url>. Replace <sessionUrl> with that URL verbatim; do not construct or modify it. Omit the footer when sessionUrl is absent. Preserve any publication marker before exactly one footer, and keep the footer final:

---
[View the OpenClaw team session](<sessionUrl>)

URLs work directly: gh pr view https://github.com/owner/repo/pull/55.

Issues

gh issue list --repo owner/repo --state open --json number,title,labels,url
gh issue view 42 --repo owner/repo --json title,body,comments,labels,state
gh issue create --repo owner/repo --title "Bug: ..." --body-file /tmp/issue.md
gh issue comment 42 --repo owner/repo --body-file /tmp/comment.md
gh issue close 42 --repo owner/repo --comment "Fixed in ..."

CI/runs

gh run list --repo owner/repo --limit 10
gh run view <run-id> --repo owner/repo --json status,conclusion,headSha,url
gh run view <run-id> --repo owner/repo --log-failed
gh run rerun <run-id> --repo owner/repo --failed

API

gh api repos/owner/repo/pulls/55 --jq '.title, .state, .user.login'
gh api repos/owner/repo/labels --jq '.[].name'
gh api --cache 1h repos/owner/repo --jq '{stars: .stargazers_count, forks: .forks_count}'

Use --json + --jq for structured output. Use --body-file for comments/bodies containing backticks, shell snippets, env names, or user text.