mirror of
https://github.com/Infisical/infisical.git
synced 2026-01-10 07:58:15 -05:00
111 lines
5.1 KiB
Plaintext
111 lines
5.1 KiB
Plaintext
---
|
|
title: "GitHub Actions"
|
|
description: "How to sync secrets from Infisical to GitHub Actions"
|
|
---
|
|
|
|
<Tabs>
|
|
<Tab title="Usage">
|
|
Infisical provides a different way to sync secrets to GitHub that can be used in Github Actions workflows.
|
|
You can sync secrets to the following GitHub scopes:
|
|
|
|
- Repository
|
|
- Github Organization
|
|
- Repository Environment
|
|
|
|
|
|
<Info>
|
|
To know more about usage and limitation of secrets in GitHub Actions, please visit the [Official Github documentation](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions).
|
|
</Info>
|
|
|
|
|
|
#### Prerequisites:
|
|
- Set up and add envars to [Infisical Cloud](https://app.infisical.com)
|
|
- Ensure you have admin privileges to the repository you want to sync secrets to.
|
|
- For Organizations only,
|
|
- During the oAuth ensure you gave access to the respective Organization.
|
|
- For Environment only
|
|
- Require access to the repository and create the environment under repository settings if it doesn't exist.
|
|
|
|
<Steps>
|
|
<Step title="Authorize Infisical for GitHub">
|
|
Navigate to your project's integrations tab in Infisical.
|
|
|
|

|
|
|
|
Press on the GitHub tile and grant Infisical access to your GitHub account (repo privileges only).
|
|
|
|

|
|
|
|
<Info>
|
|
If this is your project's first cloud integration, then you'll have to grant Infisical access to your project's environment variables.
|
|
Although this step breaks E2EE, it's necessary for Infisical to sync the environment variables to the cloud platform.
|
|
</Info>
|
|
</Step>
|
|
<Step title="Configure Infisical GitHub integration">
|
|
- Select Source Project Environment that needs to be synced ( Development, Staging or Production )
|
|
- Enter Secret path ( Default to root folder `/`)
|
|
- Select a scope ( Repository, Organization, Repository Environment ) based on the scope of the repository you want to sync secrets to.
|
|
|
|
<Tabs>
|
|
<Tab title="Repository">
|
|
- Select one or more repositories to sync secrets to.
|
|
|
|

|
|
</Tab>
|
|
<Tab title="Organization">
|
|
- Select the organization to sync secrets to.
|
|

|
|
|
|
</Tab>
|
|
<Tab title="Repository Environment">
|
|
- Select the repository
|
|
- Select the target environment you want to sync secrets to. if you can't find the environment, create one under repository settings > Environments > New environment and try again.
|
|

|
|
</Tab>
|
|
</Tabs>
|
|
|
|
- Once configured, press on the "Create Integration" button.
|
|
|
|

|
|
</Step>
|
|
</Steps>
|
|
|
|
</Tab>
|
|
<Tab title="Self-Hosted Setup">
|
|
Using the GitHub integration on a self-hosted instance of Infisical requires configuring an OAuth application in GitHub
|
|
and registering your instance with it.
|
|
<Steps>
|
|
<Step title="Create an OAuth application in GitHub">
|
|
Navigate to your user Settings > Developer settings > OAuth Apps to create a new GitHub OAuth application.
|
|
|
|

|
|

|
|

|
|
|
|
Create the OAuth application. As part of the form, set the **Homepage URL** to your self-hosted domain `https://your-domain.com`
|
|
and the **Authorization callback URL** to `https://your-domain.com/integrations/github/oauth2/callback`.
|
|
|
|

|
|
|
|
<Note>
|
|
If you have a GitHub organization, you can create an OAuth application under it
|
|
in your organization Settings > Developer settings > OAuth Apps > New Org OAuth App.
|
|
</Note>
|
|
</Step>
|
|
<Step title="Add your OAuth application credentials to Infisical">
|
|
Obtain the **Client ID** and generate a new **Client Secret** for your GitHub OAuth application.
|
|
|
|

|
|
|
|
Back in your Infisical instance, add two new environment variables for the credentials of your GitHub OAuth application:
|
|
|
|
- `CLIENT_ID_GITHUB`: The **Client ID** of your GitHub OAuth application.
|
|
- `CLIENT_SECRET_GITHUB`: The **Client Secret** of your GitHub OAuth application.
|
|
|
|
Once added, restart your Infisical instance and use the GitHub integration.
|
|
</Step>
|
|
</Steps>
|
|
|
|
</Tab>
|
|
</Tabs>
|