Skip to content

GitHubSecret

The GitHubSecret resource lets you manage GitHub Actions secrets in repositories and environments.

Minimal Example

Create a repository-level secret:

ts
import { GitHubSecret } from "alchemy/github";

const secret = await GitHubSecret("api-key", {
  owner: "my-org",
  repository: "my-repo",
  name: "API_KEY",
  value: alchemy.secret("my-secret-value"),
});

Environment Secret

Create a secret scoped to a specific environment:

ts
import { GitHubSecret } from "alchemy/github";

const secret = await GitHubSecret("prod-secret", {
  owner: "my-org",
  repository: "my-repo",
  name: "DEPLOY_KEY",
  value: alchemy.secret("secret-value"),
  environment: "production",
});

Multiple Secrets

Create multiple secrets in a repository:

ts
import { GitHubSecret } from "alchemy/github";

const secrets = await Promise.all([
  GitHubSecret("aws-secret", {
    owner: "my-org",
    repository: "my-repo",
    name: "AWS_KEY",
    value: alchemy.secret(process.env.AWS_KEY),
  }),
  GitHubSecret("db-secret", {
    owner: "my-org",
    repository: "my-repo",
    name: "DB_PASSWORD",
    value: alchemy.secret(process.env.DB_PASSWORD),
  }),
]);