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.25.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 709977c24c3b077100843887ef7cfe715be4fc2fdec015d64f48571bdc53557e |
|
MD5 | ea24865b3b75c0064c792199b91a78d1 |
|
BLAKE2b-256 | 1019123f02e917926de7829dbaa671672d1b0faeda1679102de104cb7a6ff41f |
Close
Hashes for cloudcomponents.cdk_pull_request_check-1.25.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7be6bcb1e439857a5894b7b62a0c15b47c0008987114ca756c0d01e967fccf01 |
|
MD5 | 9485f1165aec6eee7c8b49dce6d32e4a |
|
BLAKE2b-256 | 415d71d3d8d1338679dc36443d651e1ca8fd273f30b1216ef133afa6a79334c2 |