Install
openclaw skills install github-chat-opsManage a single GitHub repository via chat for non-technical requesters—after they share the repo URL and a temporary personal token, pull status, summarize who did what and when, and create/follow up on issues directly through the GitHub API.
openclaw skills install github-chat-opsUse this skill whenever a non-technical person (often over WhatsApp) needs lightweight GitHub help without cloning or forking a repo. Typical asks:
owner/name.repo scope (private repos) or public_repo (public). Remind them to generate a short-lived token and send it in the chat; you’ll discard it afterward.Always restate the inputs back to them before acting. If anything is missing, pause and ask.
export GITHUB_TOKEN="<token-from-chat>"
unset GITHUB_TOKEN.Authorization: Bearer $GITHUB_TOKEN and Accept: application/vnd.github+json.GET /repos/{owner}/{repo} – confirms access and surfaces default branch.GET /repos/{owner}/{repo}/commits?since=<ISO8601>&until=<ISO8601>author=<username> or group results locally.GET /repos/{owner}/{repo}/issues?state=all&since=<ISO8601>.
pull_request key.Record the raw JSON responses (e.g., save to /tmp/commits.json) if you need to run jq filters before summarizing.
When you need file-level context (to quote code in an issue or explain why a commit matters), walk the tree via the REST API:
GET /repos/{owner}/{repo}/contents/<path>?ref=<branch> returns metadata plus download URLs.download_url or call GET /repos/{owner}/{repo}/contents/<path> with header Accept: application/vnd.github.raw.GET /repos/{owner}/{repo}/git/trees/<sha>?recursive=1 to grab the whole structure, then request the files you care about./tmp/github-chat-ops/<repo>/...) so subsequent lookups avoid extra API calls.
Always mention the file + path + relevant snippet when writing summaries or issues.Translate activity into plain language:
GET /repos/{owner}/{repo}/commits/{sha} to see files[] (filenames, additions/removals, patch).quiz_generator.py to support context prompts and added 3 YAML fixtures."POST /repos/{owner}/{repo}/issues with JSON payload:
{
"title": "...",
"body": "...",
"assignees": ["username"],
"labels": ["priority:high"]
}
For follow-ups, use PATCH /repos/{owner}/{repo}/issues/{number} to update state or assignees, and POST /repos/{owner}/{repo}/issues/{number}/comments for status notes.
.env.github-chat-ops with GITHUB_CHAT_OPS_TOKEN, repo, timezone).scripts/ (see scripts/github_chat_ops_daily.py) that load env vars, call the same APIs, and print a ready-to-send summary.cron, run the script from the workspace root, capture stdout verbatim for the message, and surface errors if the script exits non-zero.Use references/github-api-cheatsheet.md for ready-made curl templates covering the endpoints above plus pagination tips.