Skip to content

SourceCredential ​

The SourceCredential resource allows you to create, update, and manage credentials that AWS CodeBuild uses to access source code repositories. This can include GitHub, Bitbucket, and other supported source providers. For more information, refer to the AWS CodeBuild SourceCredentials documentation.

Minimal Example ​

Create a basic SourceCredential with the required properties and a common optional username.

ts
import AWS from "alchemy/aws/control";

const basicSourceCredential = await AWS.CodeBuild.SourceCredential("basicSourceCredential", {
  ServerType: "GitHub",
  Username: "myGitHubUser",
  Token: alchemy.secret(process.env.GITHUB_TOKEN!),
  AuthType: "personal_access_token"
});

Advanced Configuration ​

Configure a SourceCredential for Bitbucket with an authentication type and an adoption flag.

ts
const advancedSourceCredential = await AWS.CodeBuild.SourceCredential("advancedSourceCredential", {
  ServerType: "Bitbucket",
  Username: "myBitbucketUser",
  Token: alchemy.secret(process.env.BITBUCKET_TOKEN!),
  AuthType: "personal_access_token",
  adopt: true // If true, adopt existing resource instead of failing when resource already exists
});

Use Case: Multiple Credentials ​

Create multiple SourceCredentials for different source providers to manage access in a single project.

ts
const githubSourceCredential = await AWS.CodeBuild.SourceCredential("githubSourceCredential", {
  ServerType: "GitHub",
  Username: "myGitHubUser",
  Token: alchemy.secret(process.env.GITHUB_TOKEN!),
  AuthType: "personal_access_token"
});

const bitbucketSourceCredential = await AWS.CodeBuild.SourceCredential("bitbucketSourceCredential", {
  ServerType: "Bitbucket",
  Username: "myBitbucketUser",
  Token: alchemy.secret(process.env.BITBUCKET_TOKEN!),
  AuthType: "personal_access_token"
});

Use Case: Token Management ​

Dynamically manage tokens for different environments by using secrets stored in your environment variables.

ts
const stagingSourceCredential = await AWS.CodeBuild.SourceCredential("stagingSourceCredential", {
  ServerType: "GitHub",
  Username: "myGitHubUser",
  Token: alchemy.secret(process.env.STAGING_GITHUB_TOKEN!),
  AuthType: "personal_access_token"
});

const productionSourceCredential = await AWS.CodeBuild.SourceCredential("productionSourceCredential", {
  ServerType: "Bitbucket",
  Username: "myBitbucketUser",
  Token: alchemy.secret(process.env.PRODUCTION_BITBUCKET_TOKEN!),
  AuthType: "personal_access_token"
});