Cdk component that automatically check pull requests
Project description
@cloudcomponents/cdk-pull-request-check
Cdk component that automatically check pull requests
Install
TypeScript/JavaScript:
npm install --save @cloudcomponents/cdk-pull-request-check
Python:
pip install cloudcomponents.cdk-pull-request-check
How to use
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.core import Construct, Stack, StackProps
from aws_cdk.aws_codecommit import Repository
from aws_cdk.aws_codebuild import BuildSpec
from cloudcomponents.cdk_pull_request_check import PullRequestCheck
class CodePipelineStack(Stack):
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None, analyticsReporting=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting)
repository = Repository(self, "Repository",
repository_name="MyRepositoryName"
)
# CodePipeline etc.
PullRequestCheck(self, "PullRequestCheck",
repository=repository,
build_spec=BuildSpec.from_source_filename("prcheck.yml")
)
Approval Template Rules
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.core import Construct, Stack, StackProps
from aws_cdk.aws_codecommit import Repository
from aws_cdk.aws_codebuild import BuildSpec
from cloudcomponents.cdk_pull_request_check import PullRequestCheck
from cloudcomponents.cdk_pull_request_approval_rule import ApprovalRuleTemplate, ApprovalRuleTemplateRepositoryAssociation
class CodePipelinePullRequestCheckStack(Stack):
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None, analyticsReporting=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting)
repository = Repository(self, "Repository",
repository_name="repository"
)
{ approvalRuleTemplateName } = ApprovalRuleTemplate(self, "ApprovalRuleTemplate",
approval_rule_template_name="Require 1 approver",
template=Template(
approvers=Approvers(
number_of_approvals_needed=1
)
)
)
ApprovalRuleTemplateRepositoryAssociation(self, "ApprovalRuleTemplateRepositoryAssociation",
approval_rule_template_name=approval_rule_template_name,
repository=repository
)
# Approves the pull request
PullRequestCheck(self, "PullRequestCheck",
repository=repository,
build_spec=BuildSpec.from_source_filename("prcheck.yml")
)
Custom notifications
The component comments the pull request and sets the approval state by default. Custom notifications can be set up this way
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.core import Construct, Stack, StackProps
from aws_cdk.aws_codecommit import Repository
from aws_cdk.aws_codebuild import BuildSpec
from aws_cdk.aws_events_targets import SnsTopic
from aws_cdk.aws_sns import Topic
from aws_cdk.aws_sns_subscriptions import EmailSubscription
from cloudcomponents.cdk_pull_request_check import PullRequestCheck
class CodePipelineStack(Stack):
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None, analyticsReporting=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting)
repository = Repository(self, "Repository",
repository_name="MyRepositoryName",
description="Some description."
)
# Your CodePipeline...
pr_check = PullRequestCheck(self, "PullRequestCheck",
repository=repository,
build_spec=BuildSpec.from_source_filename("buildspecs/prcheck.yml")
)
pr_topic = Topic(self, "PullRequestTopic")
pr_topic.add_subscription(
EmailSubscription(process.env.DEVSECOPS_TEAM_EMAIL))
pr_check.on_check_started("started",
target=SnsTopic(pr_topic)
)
pr_check.on_check_succeeded("succeeded",
target=SnsTopic(pr_topic)
)
pr_check.on_check_failed("failed",
target=SnsTopic(pr_topic)
)
API Reference
See API.md.
Example
See more complete examples.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for cloudcomponents.cdk-pull-request-check-1.34.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85d21d0c60a0c7fd95dea30172c01aacda2230cd29e641c49c9814637a766966 |
|
MD5 | d3caf41cf5d84171c695eb8db1ae31be |
|
BLAKE2b-256 | fde75acc36e368d6df54adbd5973844acc30245038851dbb6b5968a05d723771 |
Close
Hashes for cloudcomponents.cdk_pull_request_check-1.34.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e324f3443990a123a7fdc772beda96a3f24b7316734eb437ec2f5a7b75335bc5 |
|
MD5 | 8451dbf093672d9083387856819585b3 |
|
BLAKE2b-256 | 99721518542c5049a54c9f65683199aa4576923e8ed15c93e5f1ee3bfc3bfe3e |