GitHub · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for GitHub v3 REST Apps API

30 actions 30 updates phrasing extends openapi/github-apps-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 30 · first 16 shown; the file carries all of them

$.info
$.paths['/app'].get
$.paths['/app-manifests/{code}/conversions'].post
$.paths['/app/hook/config'].get
$.paths['/app/hook/config'].patch
$.paths['/app/hook/deliveries'].get
$.paths['/app/hook/deliveries/{delivery_id}'].get
$.paths['/app/hook/deliveries/{delivery_id}/attempts'].post
$.paths['/app/installation-requests'].get
$.paths['/app/installations'].get
$.paths['/app/installations/{installation_id}'].get
$.paths['/app/installations/{installation_id}'].delete
$.paths['/app/installations/{installation_id}/access_tokens'].post
$.paths['/app/installations/{installation_id}/suspended'].put
$.paths['/app/installations/{installation_id}/suspended'].delete
$.paths['/applications/{client_id}/grant'].delete

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 Apps API
  version: 1.0.0
extends: openapi/github-apps-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: 29
- target: $.paths['/app'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the GitHub App I'm authenticated as
      effect: read
      questions:
      - Which GitHub App do my current JWT credentials belong to?
      - Can I confirm my app's name and owner from its own credentials?
      instructions:
      - text: Show the app associated with my current app credentials.
      - text: Tell me which app I am authenticated as right now.
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app-manifests/{code}/conversions'].post
  update:
    x-apievangelist-phrasing:
      intent: Finish creating an app from a manifest
      effect: write
      questions:
      - How do I complete the app manifest flow after the user is redirected back with a code?
      - What do I get back when I exchange a manifest code for a new app?
      instructions:
      - text: Convert manifest code {code} into a new app and return its credentials.
        slots:
          code: path.code
      - text: Complete the app manifest handshake using temporary code {code}.
        slots:
          code: path.code
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/hook/config'].get
  update:
    x-apievangelist-phrasing:
      intent: View my app's webhook configuration
      effect: read
      questions:
      - Where is my app sending its webhook payloads?
      - What content type and SSL setting is my app's webhook using?
      instructions:
      - text: Show my app's webhook configuration.
      - text: Get the current webhook URL and content type for my app.
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/hook/config'].patch
  update:
    x-apievangelist-phrasing:
      intent: Change my app's webhook settings
      effect: write
      questions:
      - Can I point my app's webhook at a new URL?
      - How do I rotate the secret used to sign my app's webhook deliveries?
      instructions:
      - text: Change my app's webhook URL to {url}.
        slots:
          url: requestBody.url
      - text: Set my app's webhook secret to {secret} and content type to {content_type}.
        slots:
          secret: requestBody.secret
          content_type: requestBody.content_type
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/hook/deliveries'].get
  update:
    x-apievangelist-phrasing:
      intent: List my app's webhook deliveries
      effect: read
      questions:
      - Which webhook deliveries has my app sent recently?
      - Can I see only the redelivered webhook attempts for my app?
      instructions:
      - text: List recent webhook deliveries for my app.
      - text: Show my app's webhook deliveries starting from cursor {cursor}.
        slots:
          cursor: query.cursor
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/hook/deliveries/{delivery_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Inspect one webhook delivery for my app
      effect: read
      questions:
      - What request and response were recorded for one of my app's webhook deliveries?
      - Why did a particular webhook delivery to my app fail?
      instructions:
      - text: Show webhook delivery {delivery_id} for my app.
        slots:
          delivery_id: path.delivery_id
      - text: Get the payload and response status of app delivery {delivery_id}.
        slots:
          delivery_id: path.delivery_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/hook/deliveries/{delivery_id}/attempts'].post
  update:
    x-apievangelist-phrasing:
      intent: Redeliver a webhook from my app
      effect: write
      questions:
      - Can I resend a webhook my app already delivered once?
      - How do I retry a failed webhook delivery for my app?
      instructions:
      - text: Redeliver webhook delivery {delivery_id} for my app.
        slots:
          delivery_id: path.delivery_id
      - text: Retry sending app webhook delivery {delivery_id} again.
        slots:
          delivery_id: path.delivery_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/installation-requests'].get
  update:
    x-apievangelist-phrasing:
      intent: List pending installation requests for my app
      effect: read
      questions:
      - Who has asked to install my app but is still waiting for approval?
      - Are there any pending installation requests for my app?
      instructions:
      - text: List pending installation requests for my app.
      - text: Show outstanding install requests awaiting approval, {per_page} per page.
        slots:
          per_page: query.per_page
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/installations'].get
  update:
    x-apievangelist-phrasing:
      intent: List my app's installations
      effect: read
      questions:
      - Which accounts have installed my GitHub App?
      - Can I see only the installations updated since a certain date?
      - What permissions does each installation of my app have?
      instructions:
      - text: List every installation of my app.
      - text: Show my app's installations updated since {since}.
        slots:
          since: query.since
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/installations/{installation_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get one installation of my app
      effect: read
      questions:
      - What account and permissions belong to a given installation ID?
      - Can I look up a single installation of my app by its ID?
      instructions:
      - text: Get installation {installation_id} of my app.
        slots:
          installation_id: path.installation_id
      - text: Show the account and permissions for app installation {installation_id}.
        slots:
          installation_id: path.installation_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/installations/{installation_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Uninstall my app from an account
      effect: destructive
      questions:
      - How do I completely uninstall my app from an organization or user account?
      - What's the difference between uninstalling and suspending an app installation?
      instructions:
      - text: Uninstall my app from installation {installation_id}.
        slots:
          installation_id: path.installation_id
      - text: Permanently remove app installation {installation_id}.
        slots:
          installation_id: path.installation_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/installations/{installation_id}/access_tokens'].post
  update:
    x-apievangelist-phrasing:
      intent: Create an installation access token
      effect: write
      questions:
      - How do I get a token so my app can call the API on behalf of an installation?
      - Can I limit an installation token to just a few repositories?
      - How long does an installation access token last?
      instructions:
      - text: Create an access token for installation {installation_id}.
        slots:
          installation_id: path.installation_id
      - text: Mint an installation token for {installation_id} limited to repositories {repositories}.
        slots:
          installation_id: path.installation_id
          repositories: requestBody.repositories
      - text: Generate a token for installation {installation_id} with only permissions {permissions}.
        slots:
          installation_id: path.installation_id
          permissions: requestBody.permissions
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/installations/{installation_id}/suspended'].put
  update:
    x-apievangelist-phrasing:
      intent: Suspend an app installation
      effect: destructive
      questions:
      - Can I temporarily block my app from an account without uninstalling it?
      - What stops working when an app installation is suspended?
      instructions:
      - text: Suspend app installation {installation_id}.
        slots:
          installation_id: path.installation_id
      - text: Block installation {installation_id} from accessing the account's resources for now.
        slots:
          installation_id: path.installation_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/app/installations/{installation_id}/suspended'].delete
  update:
    x-apievangelist-phrasing:
      intent: Lift a suspension on an app installation
      effect: destructive
      questions:
      - How do I restore access for an app installation I suspended?
      - Can a suspended installation be reactivated?
      instructions:
      - text: Unsuspend app installation {installation_id}.
        slots:
          installation_id: path.installation_id
      - text: Restore access for suspended installation {installation_id}.
        slots:
          installation_id: path.installation_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/applications/{client_id}/grant'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke a user's grant for my app
      effect: destructive
      questions:
      - How can I revoke every token a user has for my OAuth app?
      - Can an app owner delete a user's authorization grant?
      instructions:
      - text: Revoke the grant for my app {client_id} tied to access token {access_token}.
        slots:
          client_id: path.client_id
          access_token: requestBody.access_token
      - text: Delete the user authorization behind token {access_token} for app client {client_id}.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/applications/{client_id}/token'].post
  update:
    x-apievangelist-phrasing:
      intent: Check whether an OAuth token is valid
      effect: read
      questions:
      - Can I verify a user's OAuth token without using up their rate limit?
      - Is a given access token still valid for my app?
      instructions:
      - text: Check if token {access_token} is valid for app {client_id}.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
      - text: Validate OAuth token {access_token} against my app client {client_id}.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/applications/{client_id}/token'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke a single OAuth token
      effect: destructive
      questions:
      - How do I revoke just one user token for my OAuth app?
      - Can I invalidate a leaked access token without revoking the whole grant?
      instructions:
      - text: Revoke access token {access_token} for app {client_id}.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
      - text: Invalidate the single token {access_token} issued by app client {client_id}.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/applications/{client_id}/token'].patch
  update:
    x-apievangelist-phrasing:
      intent: Reset a user's OAuth token
      effect: write
      questions:
      - Can I swap a user's OAuth token for a new one without them re-authorizing?
      - What happens to the old token when I reset it?
      instructions:
      - text: Reset token {access_token} for app {client_id} and give me the new one.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
      - text: Rotate user token {access_token} on app client {client_id} without user involvement.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/applications/{client_id}/token/scoped'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a narrower, scoped user access token
      effect: write
      questions:
      - Can I turn a broad user access token into one limited to certain repositories?
      - How do I restrict a user token to one organization and a smaller permission set?
      instructions:
      - text: Scope token {access_token} for app {client_id} to account {target}.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
          target: requestBody.target
      - text: Create a scoped copy of {access_token} for app {client_id} limited to repositories {repositories}.
        slots:
          access_token: requestBody.access_token
          client_id: path.client_id
          repositories: requestBody.repositories
      method: generated
      generated: '2026-09-24'
- target: $.paths['/apps/{app_slug}'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up an app by its slug
      effect: read
      questions:
      - Can I get public details about an app from its URL-friendly name?
      - Where do I find an app's slug to look it up?
      instructions:
      - text: Get the app with slug {app_slug}.
        slots:
          app_slug: path.app_slug
      - text: Show public information for the {app_slug} app.
        slots:
          app_slug: path.app_slug
      method: generated
      generated: '2026-09-24'
- target: $.paths['/installation/repositories'].get
  update:
    x-apievangelist-phrasing:
      intent: List repos this installation token can access
      effect: read
      questions:
      - Which repositories can my app installation reach with its current token?
      - What repos does this installation have access to?
      instructions:
      - text: List the repositories accessible to this installation.
      - text: Show repos my installation token can reach, {per_page} per page.
        slots:
          per_page: query.per_page
      method: generated
      generated: '2026-09-24'
- target: $.paths['/installation/token'].delete
  update:
    x-apievangelist-phrasing:
      intent: Revoke the installation token I'm using
      effect: destructive
      questions:
      - Can I kill the installation token I'm currently authenticated with before it expires?
      - What happens after an installation token revokes itself?
      instructions:
      - text: Revoke the installation access token I'm using now.
      - text: Invalidate my current installation token immediately.
      method: generated
      generated: '2026-09-24'
- target: $.paths['/orgs/{org}/installation'].get
  update:
    x-apievangelist-phrasing:
      intent: Find my app's installation on an organization
      effect: read
      questions:
      - Is my app installed on a given organization, and under which installation ID?
      - How do I find the installation for an org from my app?
      instructions:
      - text: Get my app's installation on organization {org}.
        slots:
          org: path.org
      - text: Find the installation ID for my app in the {org} org.
        slots:
          org: path.org
      method: generated
      generated: '2026-09-24'
- target: $.paths['/repos/{owner}/{repo}/installation'].get
  update:
    x-apievangelist-phrasing:
      intent: Find my app's installation for a repository
      effect: read
      questions:
      - Which installation of my app covers a particular repository?
      - Is my app installed on a given repo?
      instructions:
      - text: Get my app's installation for {owner}/{repo}.
        slots:
          owner: path.owner
          repo: path.repo
      - text: Find which installation of my app includes repository {owner}/{repo}.
        slots:
          owner: path.owner
          repo: path.repo
      method: generated
      generated: '2026-09-24'
- target: $.paths['/user/installations'].get
  update:
    x-apievangelist-phrasing:
      intent: List app installations I can access as a user
      effect: read
      questions:
      - Which installations of this app does the signed-in user have permission to access?
      - Can I see the app installations available to a user access token?
      instructions:
      - text: List the app installations my user token can access.
      - text: Show installations I have read, write or admin access to, {per_page} per page.
        slots:
          per_page: query.per_page
      method: generated
      generated: '2026-09-24'
- target: $.paths['/user/installations/{installation_id}/repositories'].get
  update:
    x-apievangelist-phrasing:
      intent: List repos I can access in an installation
      effect: read
      questions:
      - Which repositories in an installation does the signed-in user have access to?
      - Can I list repos for one installation using a user access token?
      instructions:
      - text: List repositories I can access in installation {installation_id}.
        slots:
          installation_id: path.installation_id
      - text: Show the repos my user token can reach through installation {installation_id}.
        slots:
          installation_id: path.installation_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/user/installations/{installation_id}/repositories/{repository_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Add a repository to an app installation
      effect: write
      questions:
      - How do I give an installed app access to one more repository?
      - What access do I need on a repo to add it to an installation?
      instructions:
      - text: Add repository {repository_id} to installation {installation_id}.
        slots:
          repository_id: path.repository_id
          installation_id: path.installation_id
      - text: Grant installation {installation_id} access to repo ID {repository_id}.
        slots:
          installation_id: path.installation_id
          repository_id: path.repository_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/user/installations/{installation_id}/repositories/{repository_id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Remove a repository from an app installation
      effect: destructive
      questions:
      - Can I take a single repository away from an installed app?
      - Which token type is required to remove a repo from an installation?
      instructions:
      - text: Remove repository {repository_id} from installation {installation_id}.
        slots:
          repository_id: path.repository_id
          installation_id: path.installation_id
      - text: Revoke installation {installation_id}'s access to repo ID {repository_id}.
        slots:
          installation_id: path.installation_id
          repository_id: path.repository_id
      method: generated
      generated: '2026-09-24'
- target: $.paths['/users/{username}/installation'].get
  update:
    x-apievangelist-phrasing:
      intent: Find my app's installation on a user account
      effect: read
      questions:
      - Has a particular user installed my app on their personal account?
      - How can my app find the installation for a given username?
      instructions:
      - text: Look up the personal-account installation of my app belonging to user {username}.
        slots:
          username: path.username
      - text: Find the installation ID of my app on {username}'s account.
        slots:
          username: path.username
      method: generated
      generated: '2026-09-24'