SKILL.md
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 -h - github-openapi-cli get:/repos/{owner}/{repo} -h - github-openapi-cli get:/repos/{owner}/{repo}/issues -h
- Execute reads before writes:
- github-openapi-cli get:/user - github-openapi-cli get:/repos/{owner}/{repo} owner=holon-run repo=uxc - github-openapi-cli get:/repos/{owner}/{repo}/issues owner=holon-run repo=uxc state=open perpage=10 - github-openapi-cli get:/repos/{owner}/{repo}/pulls owner=holon-run repo=uxc state=open perpage=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 to
uxc 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