Create a new branch (git ref) pointing at an existing commit SHA. (docs)
POST /repos/{owner}/{repo}/git/refs
🟢 low
— no
Create or update a single file's contents on a branch in one commit (updating an existing file requires its current blob SHA). (docs)
PUT /repos/{owner}/{repo}/contents/{path}
🟡 medium
✅ yes
Delete a file from the repository on a branch in one commit (requires its current blob SHA). (docs)
DELETE /repos/{owner}/{repo}/contents/{path}
🔴 high
✅ yes
Open a pull request from a head branch into a base branch. (docs)
POST /repos/{owner}/{repo}/pulls
🟡 medium
✅ yes
Connecting it
You provide: Fine-grained Personal Access Token (or GitHub App installation)
Where to get it: GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate; grant Contents: write and Pull requests: write (+ Contents: read). For multi-tenant, prefer a GitHub App installed per account.
App registration: Fine-grained PAT (single-tenant): Settings → Developer settings → Personal access tokens → Fine-grained → grant Contents: write + Pull requests: write. Multi-tenant: create a GitHub App with those repo permissions; each tenant installs it and selects repos; mint per-installation tokens.
Verification required: None for private/internal use. GitHub App verification + a published listing are required only for the GitHub Marketplace.
Testing: No sandbox — test against a throwaway repo (create_branch → commit_file → open_pull_request → delete_file).