Skip to main content
← Back to list
01Issue
FeatureOpenExtensions
Assigneesstack72

Relationships

#593 Official extension for GitHub repository configuration (environments, variables, secrets)

Opened by bixu · 6/8/2026

Problem

Managing GitHub Environment variables and secrets as infrastructure-as-code requires a custom extension today. Users building CI/CD pipelines need to:

  • Declare all environment variables and secrets for a GitHub Environment in a model definition YAML
  • Batch-provision them in one method call (not N separate calls)
  • Source secret values from swamp vault expressions
  • Track what was set via data artifacts

There is no official @swamp/github extension covering this.

Proposed solution

An official @swamp/github/environments extension type with:

  • provision method — batch-set variables and secrets for a GitHub Environment in one call
    methods:
      provision:
        arguments:
          environment: ${{ inputs.environment }}
          variables:
            AWS_ROLE_ARN: arn:aws:iam::123456789:role/my-role-${{ inputs.environment }}
            DEPLOY_REGION: us-east-1
          secrets:
            API_TOKEN: ${{ vault.get("my-vault", "api-token") }}
            DB_PASSWORD: ${{ vault.get("my-vault", "db-password") }}
  • setVariable / set methods — single-item operations for ad-hoc use
  • Secret encryption via GitHub's environment public key (libsodium sealed box)
  • Data artifacts confirming what was set (variable names, secret names, timestamps — never values)

A companion @swamp/github/repository type would cover repo-level variables and secrets with the same pattern.

Alternatives

Users currently build custom extensions using @octokit/rest and libsodium-wrappers. This works but duplicates effort across projects and lacks the discoverability of an official extension.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW

Open

6/9/2026, 9:38:28 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack726/9/2026, 9:14:37 PM

Sign in to post a ripple.