97 lines
3.6 KiB
TypeScript
97 lines
3.6 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import * as codepipeline from '../../../aws-codepipeline';
|
|
import type { SecretValue } from '../../../core';
|
|
import { Action } from '../action';
|
|
/**
|
|
* If and how the GitHub source action should be triggered
|
|
*/
|
|
export declare enum GitHubTrigger {
|
|
NONE = "None",
|
|
POLL = "Poll",
|
|
WEBHOOK = "WebHook"
|
|
}
|
|
/**
|
|
* The CodePipeline variables emitted by GitHub source Action.
|
|
*/
|
|
export interface GitHubSourceVariables {
|
|
/** The name of the repository this action points to. */
|
|
readonly repositoryName: string;
|
|
/** The name of the branch this action tracks. */
|
|
readonly branchName: string;
|
|
/** The date the currently last commit on the tracked branch was authored, in ISO-8601 format. */
|
|
readonly authorDate: string;
|
|
/** The date the currently last commit on the tracked branch was committed, in ISO-8601 format. */
|
|
readonly committerDate: string;
|
|
/** The SHA1 hash of the currently last commit on the tracked branch. */
|
|
readonly commitId: string;
|
|
/** The message of the currently last commit on the tracked branch. */
|
|
readonly commitMessage: string;
|
|
/** The GitHub API URL of the currently last commit on the tracked branch. */
|
|
readonly commitUrl: string;
|
|
}
|
|
/**
|
|
* Construction properties of the `GitHubSourceAction GitHub source action`.
|
|
*/
|
|
export interface GitHubSourceActionProps extends codepipeline.CommonActionProps {
|
|
/**
|
|
*
|
|
*/
|
|
readonly output: codepipeline.Artifact;
|
|
/**
|
|
* The GitHub account/user that owns the repo.
|
|
*/
|
|
readonly owner: string;
|
|
/**
|
|
* The name of the repo, without the username.
|
|
*/
|
|
readonly repo: string;
|
|
/**
|
|
* The branch to use.
|
|
*
|
|
* @default "master"
|
|
*/
|
|
readonly branch?: string;
|
|
/**
|
|
* A GitHub OAuth token to use for authentication.
|
|
*
|
|
* It is recommended to use a Secrets Manager `Secret` to obtain the token:
|
|
*
|
|
* const oauth = cdk.SecretValue.secretsManager('my-github-token');
|
|
* new GitHubSourceAction(this, 'GitHubAction', { oauthToken: oauth, ... });
|
|
*
|
|
* If you rotate the value in the Secret, you must also change at least one property
|
|
* of the CodePipeline to force CloudFormation to re-read the secret.
|
|
*
|
|
* The GitHub Personal Access Token should have these scopes:
|
|
*
|
|
* * **repo** - to read the repository
|
|
* * **admin:repo_hook** - if you plan to use webhooks (true by default)
|
|
*
|
|
* @see https://docs.aws.amazon.com/codepipeline/latest/userguide/appendix-github-oauth.html#GitHub-create-personal-token-CLI
|
|
*/
|
|
readonly oauthToken: SecretValue;
|
|
/**
|
|
* How AWS CodePipeline should be triggered
|
|
*
|
|
* With the default value "WEBHOOK", a webhook is created in GitHub that triggers the action
|
|
* With "POLL", CodePipeline periodically checks the source for changes
|
|
* With "None", the action is not triggered through changes in the source
|
|
*
|
|
* To use `WEBHOOK`, your GitHub Personal Access Token should have
|
|
* **admin:repo_hook** scope (in addition to the regular **repo** scope).
|
|
*
|
|
* @default GitHubTrigger.WEBHOOK
|
|
*/
|
|
readonly trigger?: GitHubTrigger;
|
|
}
|
|
/**
|
|
* Source that is provided by a GitHub repository.
|
|
*/
|
|
export declare class GitHubSourceAction extends Action {
|
|
private readonly props;
|
|
constructor(props: GitHubSourceActionProps);
|
|
/** The variables emitted by this action. */
|
|
get variables(): GitHubSourceVariables;
|
|
protected bound(scope: Construct, stage: codepipeline.IStage, _options: codepipeline.ActionBindOptions): codepipeline.ActionConfig;
|
|
}
|