Automate branching with GitHub Actions
Create and delete branches with GitHub Actions
Neon provides the following GitHub Actions for working with Neon branches, which you can add to your CI workflows:
tip
Neon supports a GitHub integration that connects your Neon project to a GitHub repository. The integration automatically configures a NEON_API_KEY
secret and PROJECT_ID
variable in your GitHub repository and provides a sample GitHub Actions workflow that utilizes Neon's GitHub Actions. See Neon GitHub integration for more.
Create branch action
This GitHub Action creates a new branch in your Neon project.
GitHub Actions Marketplace
You can find this action on the GitHub Actions Marketplace: Neon Database Create Branch Action.
Prerequisites
- A Neon API key. For information about obtaining an API key, see Create an API key.
- You will need to add your Neon API key to your GitHub repository secrets. See Add a Neon API key to your GitHub repository secrets for instructions.
Example
The following example creates a branch based on the specified parent branch:
Input variables
Outputs
Delete branch action
This GitHub Action deletes a branch from your Neon project.
GitHub Actions Marketplace
You can find this action on the GitHub Actions Marketplace: Neon Database Delete Branch.
Prerequisites
- A Neon API key. For information about obtaining an API key, see Create an API key.
- You will need to add your Neon API key to your GitHub repository secrets. See Add a Neon API key to your GitHub repository secrets for instructions.
Example
The following example deletes a branch with the br-long-forest-224191
branch ID from a Neon project with the project ID rapid-haze-373089
when a pull request is merged.
Input variables
Outputs
This Action has no outputs.
Reset from parent action
This GitHub Action resets a child branch with the latest data from its parent branch.
GitHub Actions Marketplace
You can find this action on the GitHub Actions Marketplace: Neon Database Reset Branch Action.
Prerequisites
- A Neon API key. For information about obtaining an API key, see Create an API key.
- You will need to add your Neon API key to your GitHub repository secrets. See Add a Neon API key to your GitHub repository secrets for instructions.
Example
The following example demonstrates how to reset a branch in your Neon project:
Input variables
project_id
: The ID of your Neon project. Find this value in the Neon Console on the Settings page.parent
: If specified, the branch will be reset to the latest state of the parent branch.branch
: The name or id of the branch to reset.api_key
: An API key created in your Neon account.
The action outputs a connection string. You can modify the connection string with these optional connection string (cs_*
) inputs:
cs_role_name
: The output connection string database role name.cs_database
: The output connection string database name.cs_prisma
: Use Prisma in output connection string or not. The default is 'false'.cs_ssl
: Addsslmode
to the connection string. Supported values are:"require"
,"verify-ca"
,"verify-full"
,"omit"
. The default is"require"
.
Outputs
branch_id
: The ID of the newly reset branch.db_url
: Database connection string for the branch after the reset.db_url_with_pooler
: The pooled database connection string for the branch after the reset.host
: The branch host after the reset.host_with_pooler
: The branch host with pooling after the reset.password
: The password for connecting to the branch database after the reset.
Schema Diff action
This action performs a database schema diff on specified Neon branches for each pull request and writes a Neon Schema Diff summary comment to the pull request in GitHub highlighting the schema differences.
It supports workflows where schema changes are made on a development branch, and pull requests are created for review before merging the changes back into the main branch. By including the schema diff as a comment in the pull request, reviewers can easily assess the changes directly within the pull request.
GitHub Actions Marketplace
You can find this action on the GitHub Actions Marketplace: Neon Schema Diff GitHub Action.
Prerequisites
- A Neon API key. For information about obtaining an API key, see Create an API key.
- You will need to add your Neon API key to your GitHub repository secrets. See Add a Neon API key to your GitHub repository secrets for instructions.
Example
The following example performs a schema diff on a database named mydatabase
between the compare_branch
and the base_branch
branch.
Here's an example workflow that incorporates the action:
In this workflow, the action is triggered by pull request events such as opened
, reopened
, or synchronize
(when new commits are pushed to an existing PR).
The branches to compare are specified by the compare_branch
and base_branch
inputs.
-
The
compare_branch
is the branch linked to the pull request — it's the "downstream" dev branch that contains your proposed schema changes, and is typically created by the Create branch action and defined bypreview/pr-${{ github.event.number }}
in the example above. -
The
base_branch
is the branch you are merging into. It's the "upstream" branch used as the reference point for the comparison. If you don’t explicitly specify thebase_branch
, the action defaults to comparing thecompare_branch
with its parent branch. Thebase_branch
branch is usually namedmain
, which is default name of the root branch created with each Neon project. -
The
database
is the name of the database containing the schema to be compared. -
The
username
is the name of the Postgres role that owns the database. -
permissions: write-all
allows comments to be written on pull requests in public or private repositories. Alternatively, to be less permissive, you could use:
After performing the schema diff comparison:
- The action generates an SQL patch summarizing the changes if there are schema differences between the branches.
- The action then posts a comment to the pull request containing the details of the schema diff.
- Instead of spamming the PR with multiple comments, the action updates the same comment to reflect any changes as new commits are pushed.
- If there are no schema differences between the
compare_branch
and thebase_branch
, the action doesn't add or update a comment, keeping your PR clean.
Input variables
Outputs
The schema diff SQL patch is posted as a Neon Schema Diff summary comment in the pull request, similar to this example:
The comment_url
allows you to easily share the schema diff for review. It also allows developers or scripts to access the comment programmatically for use in other automations.
Add a Neon API key to your GitHub repository secrets
Using Neon's GitHub Actions requires adding a Neon API key to your GitHub repository secrets. There are two ways you can perform this setup:
-
Using the Neon GitHub Integration (recommended) — this integration connects your Neon project to your GitHub repository, creates an API key, and sets the API key in your GitHub repository for you. See Neon GitHub Integration for instructions.
-
Manual setup — this method requires obtaining a Neon API key and configuring it manually in your GitHub repository.
- Obtain a Neon API key. See Create an API key for instructions.
- In your GitHub repository, go to Project settings and locate Secrets at the bottom of the left sidebar.
- Click Actions > New Repository Secret.
- Name the secret
NEON_API_KEY
and paste your API key in the Secret field - Click Add Secret.
Example applications
The following example applications use GitHub Actions workflows to create and delete branches in Neon.
Preview branches with Cloudflare Pages
Demonstrates using GitHub Actions workflows to create a Neon branch for every Cloudflare Pages preview deployment
Preview branches with Vercel
Demonstrates using GitHub Actions workflows to create a Neon branch for every Vercel preview deployment
Preview branches with Fly.io
Demonstrates using GitHub Actions workflows to create a Neon branch for every Fly.io preview deployment
Neon Twitter app
Demonstrates using GitHub Actions workflows to create a Neon branch for schema validation and perform migrations
Need help?
Join our Discord Server to ask questions or see what others are doing with Neon. Users on paid plans can open a support ticket from the console. For more details, see Getting Support.