Skip to content
GitHubXDiscord

RepositoryEnvironment

The RepositoryEnvironment resource lets you manage GitHub repository environments for deployment protection rules and secrets.

Create a basic environment with no protection rules:

import { RepositoryEnvironment } from "alchemy/github";
const devEnv = await RepositoryEnvironment("dev-environment", {
owner: "my-org",
repository: "my-repo",
name: "development",
});

Create a production environment with approval requirements and protected branches:

import { RepositoryEnvironment } from "alchemy/github";
const prodEnv = await RepositoryEnvironment("prod-environment", {
owner: "my-org",
repository: "my-repo",
name: "production",
waitTimer: 10, // 10 minute delay
preventSelfReview: true,
reviewers: {
teams: ["platform-team"], // team name
users: ["security-admin"], // username
},
deploymentBranchPolicy: {
protectedBranches: true,
customBranchPolicies: false,
},
});

Create an environment with custom branch deployment patterns:

import { RepositoryEnvironment } from "alchemy/github";
const stagingEnv = await RepositoryEnvironment("staging-environment", {
owner: "my-org",
repository: "my-repo",
name: "staging",
reviewers: {
teams: [1234567], // team ID
users: [7654321], // user ID
},
deploymentBranchPolicy: {
protectedBranches: false,
customBranchPolicies: true,
},
branchPatterns: ["main", "release/*"],
});