Note
GitHub Copilot Extensions is in public preview and subject to change.
Once you have configured your server and created your GitHub App, you need to configure your GitHub App for use with your Copilot extension.
Prerequisites
- You have configured your server to deploy your Copilot Extension, and you have your hostname (aka forwarding endpoint). For more information, see Configuring your server to host your Copilot extension.
- You have created a GitHub App for your Copilot extension. For more information, see Creating a GitHub App for your Copilot Extension.
Configuring your GitHub App
-
In the upper-right corner of any page on GitHub, click your profile photo.
-
Navigate to your account settings.
- For an app owned by a personal account, click Settings.
- For an app owned by an organization:
- Click Your organizations.
- To the right of the organization, click Settings.
- For an app owned by an enterprise:
- If you use Enterprise Managed Users, click Your enterprise to go directly to the enterprise account settings.
- If you use personal accounts, click Your enterprises and then to the right of the enterprise, click Settings.
-
Navigate to the GitHub App settings.
- For an app owned by a personal account or organization:
- In the left sidebar, click Developer settings, then click GitHub Apps.
- For an app owned by an enterprise:
- In the left sidebar, under "Settings", click GitHub Apps.
- For an app owned by a personal account or organization:
-
To the right of the GitHub App you want to configure for your Copilot Extension, click Edit.
-
In the "Identifying and authorizing users" section, under "Callback URL", enter your callback endpoint URL, then click Save changes.
Note
Your server's hostname is the forwarding endpoint that you copied from your terminal when you configured your server. See Configuring your server to host your Copilot extension.
If you are using an ephemeral domain in ngrok, you will need to update this URL every time you restart your ngrok server.
-
In the left sidebar, click Permissions & events.
-
To expand the "Account permissions" section, click anywhere in the section.
-
In the "GitHub Copilot Chat" row, select the Access: dropdown menu, then click Read-only.
-
To enable the application to receive editor content (for example the currently opened file), in the "Copilot Editor Context" row, select the Access: dropdown menu, then click Read-only.
-
Click Save changes.
-
In the left sidebar, click Copilot.
-
Read the GitHub Marketplace Developer Agreement and the GitHub Pre-release License Terms, then accept the terms for creating a Copilot Extension.
-
In the "App type" section, select the dropdown menu, then click Agent.
-
Under "URL," enter your server's hostname (aka forwarding endpoint) that you copied from your terminal.
Note
If you are using an ephemeral domain in ngrok, you will need to update this URL every time you restart your ngrok server.
-
Under "Inference description", type a brief description of your agent, then click Save. This will be the description users see when they hover over your extension's slug in the chat window.
-
Your pre-authorization URL is a link on your website that starts the authorization process for your extension. Users will be redirected to this URL when they decide to authorize your extension. If you are using a pre-authorization URL, under "Pre-authorization URL," enter the URL, then click Save changes.
-
In your GitHub App settings, in the left sidebar, click Install App, then, next to the account you want to install your app on, click Install.
-
In the top right of any page on GitHub, click the GitHub Copilot icon next to the search bar.
The GitHub Copilot Chat panel is displayed. To resize the panel, click and drag the top or left edge.
-
If the panel contains a previous conversation you had with Copilot, click the "New conversation" icon (a plus sign) at the top right of the panel.
-
Invoke your extension by typing
@EXTENSION-NAME
, replacing any spaces in the extension name with-
, then pressEnter
. -
If this is your first time using the extension, you will be prompted to authenticate. Follow the steps on screen to authenticate your extension.
-
Ask your extension a question in the chat window. For example,
What is the software development lifecycle?
.