Skip to content

Support non-interactive sign-in for CI with a GitHub App or machine account #5039

Open

Description

@AzureMike

Feature summary

Let the GitHub Copilot app sign in without a browser, with a token from a GitHub App or a machine account, so CI can run the app.

What problem are you trying to solve?

We run the real GitHub Copilot app in GitHub Actions to test our plugin and skills for regressions. The test starts the app, sends a prompt, and checks the files that the agent writes.

The app has only a browser or device code sign-in. It has no documented way to sign in with a token. The only setup that works for us is a personal OAuth token that we write into the app profile before the app starts. That ties CI to one person's account.

We tested these tokens with app 1.1.30 on Linux:

  • The Actions GITHUB_TOKEN with copilot-requests: write. GET /user returns 403 Resource not accessible by integration, and the session fails with Execution failed: 400 Bad Request. The Copilot API accepts the same token with Copilot-Integration-Id: copilot-developer-cli but returns 400 with copilot-developer-app.
  • A classic personal access token. Copilot does not support classic tokens.

Proposed solution

Add a documented, non-interactive sign-in for the app, for example a COPILOT_GITHUB_TOKEN environment variable. Accept at least one token type that does not belong to a person:

  • A GitHub App installation or user-to-server token.
  • A token for a machine account.
  • The Actions GITHUB_TOKEN with copilot-requests: write, billed to the organization. Copilot CLI already supports this.

Workflow impact

Teams that build plugins, skills, or canvas extensions for the app cannot run end-to-end UI tests in CI without a person's token. With this change, they can test the app itself in CI and catch regressions before users do.

Installation context

GitHub Actions ubuntu-24.04 runner. The app is installed from the 1.1.30 .deb release and runs under Xvfb in an organization-owned public repository.

Additional context

Copilot CLI documents environment variable authentication for CI. We would like the same for the app.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions