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.
View Overlay File View on GitHub Overlay Specification

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

Raw ↑
# 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'