GitHub · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for GitHub v3 REST Git API
14 actions
14 updates
phrasing
extends
openapi/github-git-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for GitHub's API. It is a proposal applied on top of the contract, not a document GitHub publishes.
What the actions change
x-apievangelist-phrasing
Targets 14
$.info
$.paths['/repos/{owner}/{repo}/git/blobs'].post
$.paths['/repos/{owner}/{repo}/git/blobs/{file_sha}'].get
$.paths['/repos/{owner}/{repo}/git/commits'].post
$.paths['/repos/{owner}/{repo}/git/commits/{commit_sha}'].get
$.paths['/repos/{owner}/{repo}/git/matching-refs/{ref}'].get
$.paths['/repos/{owner}/{repo}/git/ref/{ref}'].get
$.paths['/repos/{owner}/{repo}/git/refs'].post
$.paths['/repos/{owner}/{repo}/git/refs/{ref}'].delete
$.paths['/repos/{owner}/{repo}/git/refs/{ref}'].patch
$.paths['/repos/{owner}/{repo}/git/tags'].post
$.paths['/repos/{owner}/{repo}/git/tags/{tag_sha}'].get
$.paths['/repos/{owner}/{repo}/git/trees'].post
$.paths['/repos/{owner}/{repo}/git/trees/{tree_sha}'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for GitHub v3 REST Git API
version: 1.0.0
extends: openapi/github-git-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-24'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 13
- target: $.paths['/repos/{owner}/{repo}/git/blobs'].post
update:
x-apievangelist-phrasing:
intent: Create a Git blob in a repository
effect: write
questions:
- How do I upload raw file content as a Git blob without cloning the repo?
- Can I create a blob from base64-encoded content instead of UTF-8 text?
instructions:
- text: Create a blob in {owner}/{repo} with the content {content}.
slots:
owner: path.owner
repo: path.repo
content: requestBody.content
- text: Store {content} as a {encoding}-encoded Git blob in {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
content: requestBody.content
encoding: requestBody.encoding
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/blobs/{file_sha}'].get
update:
x-apievangelist-phrasing:
intent: Get a Git blob by its SHA
effect: read
questions:
- How can I read a file's contents from the Git database by its blob SHA?
- Why is blob content always base64 encoded, and can I get it raw instead?
instructions:
- text: Get blob {file_sha} from {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
file_sha: path.file_sha
- text: Fetch the contents of Git blob {file_sha} in the {repo} repository owned by {owner}.
slots:
owner: path.owner
repo: path.repo
file_sha: path.file_sha
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/commits'].post
update:
x-apievangelist-phrasing:
intent: Create a Git commit object
effect: write
questions:
- How do I create a commit directly through the Git database from a tree SHA?
- Can I set a custom author and committer on a low-level Git commit?
- Is it possible to attach a GPG signature when creating a commit object?
instructions:
- text: Create a commit in {owner}/{repo} with message {message} pointing at tree {tree}.
slots:
owner: path.owner
repo: path.repo
message: requestBody.message
tree: requestBody.tree
- text: Make a Git commit object in {owner}/{repo} for tree {tree} with parents {parents} and message {message}.
slots:
owner: path.owner
repo: path.repo
tree: requestBody.tree
parents: requestBody.parents
message: requestBody.message
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/commits/{commit_sha}'].get
update:
x-apievangelist-phrasing:
intent: Get a Git commit object by SHA
effect: read
questions:
- How do I look up the raw Git commit object, including its tree and parents, for a SHA?
- Can I check whether a commit's signature was verified?
instructions:
- text: Get Git commit object {commit_sha} from {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
commit_sha: path.commit_sha
- text: Show the tree, parents and signature verification for commit {commit_sha} in {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
commit_sha: path.commit_sha
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/matching-refs/{ref}'].get
update:
x-apievangelist-phrasing:
intent: List Git references matching a prefix
effect: read
questions:
- How do I find all branches whose names start with feature/?
- Can I list every tag reference that begins with v1 in a repository?
instructions:
- text: List all refs in {owner}/{repo} that match {ref}.
slots:
owner: path.owner
repo: path.repo
ref: path.ref
- text: Find every branch or tag in {owner}/{repo} whose name starts with {ref}.
slots:
owner: path.owner
repo: path.repo
ref: path.ref
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/ref/{ref}'].get
update:
x-apievangelist-phrasing:
intent: Get a single Git reference
effect: read
questions:
- What commit SHA does a specific branch point to right now?
- How do I check if an exact tag reference exists in a repo?
instructions:
- text: Get the reference {ref} in {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
ref: path.ref
- text: Tell me which SHA the exact ref {ref} points to in {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
ref: path.ref
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/refs'].post
update:
x-apievangelist-phrasing:
intent: Create a branch or tag reference
effect: write
questions:
- How do I create a new branch from a commit SHA through the API?
- Why can't I create a reference in an empty repository?
instructions:
- text: Create the ref {ref} in {owner}/{repo} pointing at {sha}.
slots:
owner: path.owner
repo: path.repo
ref: requestBody.ref
sha: requestBody.sha
- text: Make a new branch {ref} in {owner}/{repo} starting from commit {sha}.
slots:
owner: path.owner
repo: path.repo
ref: requestBody.ref
sha: requestBody.sha
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/refs/{ref}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a branch or tag reference
effect: destructive
questions:
- How do I delete a branch through the Git references API?
- Can I remove a tag ref from a repository without deleting the commit?
instructions:
- text: Delete the reference {ref} from {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
ref: path.ref
- text: Remove branch ref {ref} in the {repo} repository owned by {owner}.
slots:
owner: path.owner
repo: path.repo
ref: path.ref
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/refs/{ref}'].patch
update:
x-apievangelist-phrasing:
intent: Move a reference to a new commit
effect: write
questions:
- How do I point an existing branch at a different commit?
- Can I force-update a branch ref even when it isn't a fast-forward?
instructions:
- text: Update the ref {ref} in {owner}/{repo} to point at {sha}.
slots:
owner: path.owner
repo: path.repo
ref: path.ref
sha: requestBody.sha
- text: 'Force-move existing branch {ref} in {owner}/{repo} to commit {sha} (force: {force}).'
slots:
owner: path.owner
repo: path.repo
ref: path.ref
sha: requestBody.sha
force: requestBody.force
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/tags'].post
update:
x-apievangelist-phrasing:
intent: Create an annotated tag object
effect: write
questions:
- How do I create an annotated tag with a message and tagger through the API?
- Does creating a tag object also create the refs/tags reference?
instructions:
- text: Create an annotated tag object {tag} in {owner}/{repo} on {object} with message {message}.
slots:
owner: path.owner
repo: path.repo
tag: requestBody.tag
object: requestBody.object
message: requestBody.message
- text: Make tag object {tag} for {type} {object} in {owner}/{repo} with the note {message}.
slots:
owner: path.owner
repo: path.repo
tag: requestBody.tag
type: requestBody.type
object: requestBody.object
message: requestBody.message
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/tags/{tag_sha}'].get
update:
x-apievangelist-phrasing:
intent: Get an annotated tag object by SHA
effect: read
questions:
- How do I read the message and tagger of an annotated tag?
- Can I see if a tag object's signature is verified?
instructions:
- text: Get tag object {tag_sha} from {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
tag_sha: path.tag_sha
- text: Show the tagger, message and verification for annotated tag {tag_sha} in {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
tag_sha: path.tag_sha
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/trees'].post
update:
x-apievangelist-phrasing:
intent: Create a Git tree of files
effect: write
questions:
- How do I build a new tree of file changes on top of an existing base tree?
- Can I add or modify several files in one tree without touching the rest of the repo?
instructions:
- text: Create a tree in {owner}/{repo} with the entries {tree}.
slots:
owner: path.owner
repo: path.repo
tree: requestBody.tree
- text: Build a new tree in {owner}/{repo} from base tree {base_tree} with these changes {tree}.
slots:
owner: path.owner
repo: path.repo
base_tree: requestBody.base_tree
tree: requestBody.tree
method: generated
generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/git/trees/{tree_sha}'].get
update:
x-apievangelist-phrasing:
intent: Get a Git tree, optionally recursively
effect: read
questions:
- How do I list every file in a repository at a given commit tree?
- What happens when a tree response comes back truncated?
instructions:
- text: Get tree {tree_sha} from {owner}/{repo}.
slots:
owner: path.owner
repo: path.repo
tree_sha: path.tree_sha
- text: 'List all files recursively in tree {tree_sha} of {owner}/{repo} (recursive: {recursive}).'
slots:
owner: path.owner
repo: path.repo
tree_sha: path.tree_sha
recursive: query.recursive
method: generated
generated: '2026-09-24'