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

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:

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

  1. 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
  2. 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
  3. 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 per_page=10
    • github-openapi-cli get:/repos/{owner}/{repo}/pulls owner=holon-run repo=uxc state=open per_page=10
  4. Treat mutations as explicit-confirmation operations:

    • github-openapi-cli post:/repos/{owner}/{repo}/issues '{"owner":"holon-run","repo":"uxc","title":"Example issue"}'

Guardrails

References