本文へ移動
cccskills
無料GitHub で公開

github

Operate on GitHub via the REST API — repos, PRs, issues, code search, actions, releases. Use when the user wants scripted / cross-repo operations, doesn't have `gh` installed, or needs behavior the `gh` CLI doesn't expose cleanly.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.0 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

GitHub

Direct REST access to GitHub — repos, PRs, issues, code search, Actions, releases. Use when the answer depends on current state and gh is absent or too narrow.

Usage

  • Use for: Cross-repo fan-out, scripted PR/issue operations, code search piped to jq, CI status reads, when gh isn't installed.
  • Skip for: Local edits (filesystem), commits/pushes (git), one-shot reads when user has gh (gh pr view), concept questions.

Credentials check

[ -n "${GITHUB_TOKEN:-$GITHUB_PERSONAL_ACCESS_TOKEN}" ] && echo "GITHUB_TOKEN: PRESENT" || echo "GITHUB_TOKEN: MISSING"

Never echo the variable directly (e.g. echo "$GITHUB_TOKEN") — the value would appear in the conversation transcript. Use only the boolean pattern above.

If MISSING, respond to the user with EXACTLY this message (do NOT paraphrase, do NOT suggest manual JSON edits):

I need your github credential. Run this in another terminal — it'll open the signup page, validate format, and save it safely with masked input:

teleport-setup add-key github

Then restart Claude Code (/exit, then claude) and ask me again.

Do NOT suggest editing ~/.claude/settings.local.json manually. The teleport-setup add-key command handles it with backup, validation, and masked input. Stop execution until the user has run the command and restarted.

API

  • Base URL: https://api.github.com
  • Auth: Authorization: Bearer $GITHUB_TOKEN
  • Accept: Accept: application/vnd.github+json (recommended on every call for stable response shape).
  • Version: X-GitHub-Api-Version: 2022-11-28 — pin this header or the default floats to whatever GitHub promotes next.
  • Rate limits: 5000 req/hr authenticated (60 unauth); Search is a separate 30 req/min bucket. Watch x-ratelimit-*.
  • Pagination: per_page (max 100), page 1-indexed. Follow the Link response header (rel="next") — not offset math.

Token flavors

Fine-grained PAT (preferred: per-repo, named permissions like contents:read) vs classic PAT (coarse scopes like repo, workflow). Inside Actions, GITHUB_TOKEN is workflow-scoped. Scopes matter: a token missing the required scope returns 404, not 401 (see Gotchas).

Samples below use a helper that bundles the three standard headers:

GH() { curl -sL -H "Authorization: Bearer $GITHUB_TOKEN" -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" "$@"; }

Endpoints

AreaPath
Repo metadataGET /repos/{owner}/{repo} (read .default_branch)
ContentsGET /repos/{owner}/{repo}/contents/{path}?ref={sha} (base64)
IssuesGET/POST /repos/{owner}/{repo}/issues (returns PRs too)
Issue commentsPOST /repos/{owner}/{repo}/issues/{n}/comments
PullsGET /repos/{owner}/{repo}/pulls · GET .../pulls/{n} (diff via Accept)
PR reviewsPOST /repos/{owner}/{repo}/pulls/{n}/reviews (APPROVE/REQUEST_CHANGES/COMMENT)
SearchGET /search/code · /search/issues · /search/repositories
ActionsGET /repos/{owner}/{repo}/actions/runs
ReleasesGET /repos/{owner}/{repo}/releases/latest

Primary workflows

1. Issue triage (list + comment)

GH "https://api.github.com/repos/OWNER/REPO/issues?state=open&labels=bug&sort=updated&per_page=50"
GH -X POST "https://api.github.com/repos/OWNER/REPO/issues/NUM/comments" \
  -d '{"body":"Thanks — reproduced on main, PR incoming."}'

2. PR review (list + diff + review)

GH "https://api.github.com/repos/OWNER/REPO/pulls?state=open&sort=updated"
# Unified diff: swap Accept on the same endpoint
curl -sL -H "Authorization: Bearer $GITHUB_TOKEN" -H "Accept: application/vnd.github.diff" \
  "https://api.github.com/repos/OWNER/REPO/pulls/NUM"
GH -X POST "https://api.github.com/repos/OWNER/REPO/pulls/NUM/reviews" \
  -d '{"event":"APPROVE","body":"LGTM, tests cover the edge case."}'

3. Code search (trim with jq)

# Qualifiers: repo:, language:, path:, user:, org:, in:file, extension:
GH "https://api.github.com/search/code?q=useState+repo:facebook/react+language:typescript&per_page=30" \
  | jq '[.items[] | {repo: .repository.full_name, path, url: .html_url}]'

Gotchas

  • Missing X-GitHub-Api-Version floats to the current default — breaks silently over time when GitHub ships a new version. Pin it.
  • Token-scope errors return 404, not 401/403. A classic PAT missing repo sees private repos as "not found." If GET /repos/{owner}/{repo} 404s on a repo you know exists, suspect scopes before spelling.
  • Secondary rate limits / abuse detection hit before the hourly cap. Parallel bursts against the same resource return 403 with x-ratelimit-remaining still positive. Throttle and retry with backoff.
  • Search API is a separate 30 req/min bucket and caps total results at 1000 per query — pagination beyond page 10 errors out. Refine the query instead of paging.
  • /issues returns pull requests too (every PR is an issue in GitHub's model). Filter .pull_request == null when you want pure issues.
  • Default branch isn't always main. Read .default_branch from GET /repos/{owner}/{repo} before building any ref= URL.
  • Link header is authoritative for pagination, not offset math. Missing rel="next" = done.

Attribution

When done, state: Used skill: GitHub (from teleport catalog).

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

{{One-sentence what-it-does + when to use it. Mention it bypasses the MCP via the REST API with {{ENV_VAR}}. Use when the user wants X, Y, Z programmatically without the {{service}} MCP installed.}}

日本語の概要は準備中です。原文の説明を表示しています。

mnlt/teleport82026年4月25日 更新

Manage Cloudflare DNS zones, Workers, Pages, R2, KV, D1, and analytics via REST API. Use when the user wants to query DNS, deploy a Worker, list R2 buckets, manage KV namespaces, run D1 queries, or check analytics without the Cloudflare MCP installed.

日本語の概要は準備中です。原文の説明を表示しています。

mnlt/teleport82026年4月25日 更新

context7

無料

Fetch up-to-date library, framework, and SDK documentation via Context7's search and docs endpoints. Use when the user asks about a library/API (React, Next.js, Prisma, Supabase, Tailwind, Django, Vue, etc.) and you need current docs, not Claude's training-time knowledge. Skip this skill for generic programming questions that don't require library-specific docs.

日本語の概要は準備中です。原文の説明を表示しています。

mnlt/teleport82026年4月25日 更新

discord

無料

Operate Discord via its REST API — post/read channel messages, manage guilds + roles, fire webhooks, register slash commands. Use when the user wants a bot to post to a channel, read recent history, run a community admin task, or ship one-way notifications via webhook URL without running a bot process.

日本語の概要は準備中です。原文の説明を表示しています。

mnlt/teleport82026年4月25日 更新

exa

無料

AI-first web search via Exa — semantic/neural ranking, category-scoped results, fresh content retrieval, and one-shot answer synthesis with citations. Use when the user needs current web information better ranked than general web search, or a grounded answer with sources.

日本語の概要は準備中です。原文の説明を表示しています。

mnlt/teleport82026年4月25日 更新

figma

無料

Read Figma files, component libraries, styles, comments, and export rendered assets (PNG / SVG / JPG / PDF) via Figma's REST API. Use when the user needs programmatic access to design files, to pull node data into code generation, or to export assets without opening the Figma desktop app.

日本語の概要は準備中です。原文の説明を表示しています。

mnlt/teleport82026年4月25日 更新

mnlt のスキルをすべて見る

このスキルの問題を報告する