← 返回 Skill 列表
extension
分类: 开发与工程API Key 暂未确认

github-bot

以joelclawgithub[bot]应用的身份与GitHub API进行交互。在创建PR、推送提交、管理问题、检查CI状态、列出仓库或任何GitHub API操作时使用。触发条件包括“创建PR”、“推送到GitHub”、“打开问题”、“检查CI”、“列出仓库”、“合并PR”、“GitHub API”,或任何需要程序化访问GitHub的任务。所有操作都显示为joelclawgithub[bot],而不是@joelhooks。

person作者: jakexiaohubgithub

GitHub Bot

For ShitRat-authored work, use the installed shitrat tooling and shitratgit[bot] identity. The legacy app described below is for integrations that explicitly own it, not a default actor for Joel’s agent-authored commits, PRs, or comments. Discover actual app access; old repository counts are not authority.

Interact with GitHub API via the joelclawgithub[bot] GitHub App. Acts as a bot identity with access to all 280+ repos across @joelhooks personal and org accounts.

Authentication

Generate a 1-hour installation token:

TOKEN=$(SKILL_DIR/scripts/github-token.sh)

Use in API calls:

curl -H "Authorization: token $TOKEN" -H "Accept: application/vnd.github+json" \
  https://api.github.com/repos/OWNER/REPO/...

Token expires in 1 hour. Generate a new one if a request returns 401.

Secrets

Stored in agent-secrets (do not hardcode):

| Secret | Content | |---|---| | github_app_id | App ID (2867136) | | github_app_client_id | Client ID | | github_app_installation_id | Installation ID | | github_app_pem | RSA private key |

Bot Identity

  • Commits: joelclawgithub[bot] <2867136+joelclawgithub[bot]@users.noreply.github.com>
  • All API actions (comments, reviews, PRs) show as joelclawgithub[bot]
  • Has read/write access to: contents, issues, PRs, actions, deployments, environments, secrets, packages, workflows, checks, statuses, hooks, projects

Receipts

Use the verified GitHub URL, identifier, commit SHA, or API response as the write receipt. Emit canonical OTel when the calling workflow supports it, and capture durable decisions in Brain .svx. The former slog journal is retired; do not recreate it.

Relevant actions include create-pr, push-commit, create-issue, merge-pr, create-release, and update-workflow.

Pagination

GitHub API paginates at 100 items. For full listing:

PAGE=1
while true; do
  RESULT=$(curl -s -H "Authorization: token $TOKEN" \
    "https://api.github.com/endpoint?per_page=100&page=$PAGE")
  # process $RESULT
  [ "$(echo "$RESULT" | python3 -c 'import json,sys; print(len(json.load(sys.stdin)))')" -lt 100 ] && break
  PAGE=$((PAGE+1))
done