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.21.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a98c397de0f6a303374d547a112fc13be22f2c61c3de676a74558a977f315fe |
|
MD5 | 75b08a860a17e3604c07a53db5caa9ee |
|
BLAKE2b-256 | 32deed4f60b6e52b59383ddae8141727502c51d2f3564ff0ced43455dd0dc132 |
Close
Hashes for cloudcomponents.cdk_pull_request_check-1.21.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4004d2391870aef9bb3bb5ee0c0a52c782ab178b4ba883eed6f41fa6af3742c |
|
MD5 | 4a603797747893a75f9fb92e528281b2 |
|
BLAKE2b-256 | 0e1675ba112412fd3f2b8e95d70fe70ba6842f423a473be35697f0e37573667e |