GitHub REST API Skill
Use this skill to run GitHub REST API operations through uxc + OpenAPI.
Reuse the uxc skill for shared execution, auth, and error-handling guidance.
Prerequisites
uxcis installed and available inPATH.ghis installed and already authenticated withgh auth login.- Network access to
https://api.github.com. - Access to the official GitHub REST OpenAPI schema URL:
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json
Authentication
Preferred Path: Import local gh auth into uxc
Import the current GitHub CLI token into a local uxc bearer credential and create a standard GitHub API binding:
uxc auth credential import github --from gh
This creates:
- credential:
github - binding:
github-api - bound host:
https://api.github.com
Verify the binding:
uxc auth binding match https://api.github.com/repos/holon-run/uxc
Optional Path: Manual bearer token
If gh is unavailable, configure a PAT manually:
uxc auth credential set github \
--auth-type bearer \
--secret-env GITHUB_TOKEN
uxc auth binding add \
--id github-api \
--host api.github.com \
--path-prefix / \
--scheme https \
--credential github \
--priority 100
Do not commit GitHub tokens or hardcode them in this skill or repository.
Core Workflow
-
Use fixed link command by default:
command -v github-openapi-cli- If missing, create it:
uxc link github-openapi-cli https://api.github.com --schema-url https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json github-openapi-cli -h
-
Inspect operation schema first:
github-openapi-cli get:/user -hgithub-openapi-cli get:/repos/{owner}/{repo} -hgithub-openapi-cli get:/repos/{owner}/{repo}/issues -h
-
Execute reads before writes:
github-openapi-cli get:/usergithub-openapi-cli get:/repos/{owner}/{repo} owner=holon-run repo=uxcgithub-openapi-cli get:/repos/{owner}/{repo}/issues owner=holon-run repo=uxc state=open per_page=10github-openapi-cli get:/repos/{owner}/{repo}/pulls owner=holon-run repo=uxc state=open per_page=10
-
Treat mutations as explicit-confirmation operations:
github-openapi-cli post:/repos/{owner}/{repo}/issues '{"owner":"holon-run","repo":"uxc","title":"Example issue"}'
Guardrails
- Keep automation on JSON output envelope; do not use
--text. - Parse stable fields first:
ok,kind,protocol,data,error. github-openapi-cli <operation> ...is equivalent touxc https://api.github.com --schema-url https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json <operation> ....- Prefer read operations before write operations.
- Treat issue creation, issue edits, comments, labels, repo administration, releases, and workflow-trigger endpoints as write/high-risk operations; require explicit user confirmation before execution.
References
- Usage patterns:
references/usage-patterns.md - GitHub REST OpenAPI schema:
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json - GitHub REST docs:
https://docs.github.com/rest