EveryAppEveryApp
Providers

GitHub

Code hosting: repositories, issues, pull requests, Actions and releases through the REST API.

Repositories, issues, pull requests and releases. Use a token for your own repositories; let people connect their accounts for theirs.

Used by: RepoLens reads traffic, stars and downloads with a token.

API key

  1. Open Settings → Developer settings → Fine-grained tokens → Generate new token.
  2. Name it after your Gateway and pick an expiry. Under Resource owner, pick the account or organization whose repositories the app reads.
  3. Under Repository access, choose only the repositories the app needs.
  4. Under Permissions, give the least the app needs (for example Contents: Read and Metadata: Read).
  5. Select Generate token and copy it. It's shown once.

Add it to your Gateway. It asks for the key:

everyapp provider add github

Use it in an app

In the app's everyapp.config.ts:

capabilities: {
  github: { access: "read", why: "What the app does with it." },
},

The app calls GitHub's API with integrationFetch(), and the Gateway adds the key. Use "write" if the app changes things. More in API providers.

Check it worked: everyapp provider show github shows the key as set.

Rate limits: 5,000 requests an hour per token; at most 100 concurrent requests and 900 points a minute across REST endpoints.

Connect accounts

Each person connects their own GitHub account in the Gateway, once, and every app that asks uses it. Apps never see the tokens. How connecting works

The redirect URI to register, with your Gateway's address (like apps.example.com):

https://<your gateway>/connect/github-oauth/callback
  1. Open Settings → Developer settings → OAuth Apps and select New OAuth App. Make an OAuth App, not a GitHub App.
  2. Enter a name, your Gateway's address as the homepage, and the redirect URI above as the Authorization callback URL.
  3. Select Register application, then Generate a new client secret.
  4. Copy the Client ID and the client secret. The secret is shown once.

Add it to your Gateway. It asks for the client ID and secret:

everyapp provider add github-oauth

Or add it in Manage workspace → Providers.

Use it in an app

capabilities: {
  "github-oauth": { access: "read", scopes: ["repo.read"], why: "What the app does with it." },
},

Apps ask for these scope sets:

SetAllowsProvider scopes
identityGitHub account (who you are)read:user, user:email
repo.readRepositories (read, private ones included)repo
repo.writeRepositories (read and write)repo
org.readOrganizations and teams (read)read:org

Check it worked: everyapp provider show github-oauth shows the client as set. Then open the account menu → Connected accounts → Connect GitHub.

Sign in with GitHub

Adds Continue with GitHub to your Gateway's sign-in page, for people you've invited. Sign-in

  1. Open github.com and create an OAuth App.
  2. Add the redirect URL https://<your gateway>/api/auth/callback/github.
  3. Copy:
    • GITHUB_SIGNIN_CLIENT_ID: The OAuth App's Client ID.
    • GITHUB_SIGNIN_CLIENT_SECRET: A client secret generated on the OAuth App.
  • GitHub Apps are something else: make an OAuth App (Settings → Developer settings → OAuth Apps).

Turn it on. It asks for each value:

everyapp signin add github

Check it worked: everyapp signin show github shows each setting as set. Then sign out and select the button.

More help

Ask your coding agent to set GitHub up: the everyapp skill has the full guide (setup/signin-github.md).

Something wrong or missing? Open an issue.

On this page