如何在AWS CDK CodePipeline中无需oauthToken配置GitHubSourceAction?
如何在公开GitHub仓库下配置无需oauthToken的CodePipeline GitHubSourceAction
问题背景
此前为私有GitHub仓库创建了如下CodePipeline源阶段配置:
pipeline.addStage({ stageName: 'Source', actions: [ new GitHubSourceAction({ actionName: 'Checkout', owner: github.ardcOwner, repo: github.raidoSrcRepo, branch: "main", oauthToken: SecretValue.secretsManager('personal-token' ), output: outputSources, trigger: GitHubTrigger.NONE, }), ], });
如今仓库已转为公开状态,且触发方式设为NONE无需配置webhook,想知道如何创建无需提供oauthToken属性的新GitHubSourceAction,或者是否可以给oauthToken提供“虚拟”值来避免闲置密钥。
解决方案
1. 用虚拟值填充oauthToken
虽然GitHubSourceAction的oauthToken是必填项,但在公开仓库且关闭触发器的情况下,你完全可以传一个没权限的虚拟值来满足参数要求,不会影响拉取公开代码的操作。
示例代码:
pipeline.addStage({ stageName: 'Source', actions: [ new GitHubSourceAction({ actionName: 'Checkout', owner: github.ardcOwner, repo: github.raidoSrcRepo, branch: "main", // 传个虚拟值就行,不用实际有效密钥 oauthToken: SecretValue.plainText('dummy-token'), output: outputSources, trigger: GitHubTrigger.NONE, }), ], });
注意:这里用
SecretValue.plainText没问题,因为是公开仓库且不需要触发器,虚拟值不会有安全风险。
2. 可选替代:用GitHubPublicSourceAction(如果你的CDK版本支持)
有些CDK版本里专门提供了GitHubPublicSourceAction来处理公开仓库的情况,这个组件不用传oauthToken参数。如果你的CDK版本支持,可以直接替换使用:
import { GitHubPublicSourceAction } from '@aws-cdk/aws-codepipeline-actions'; pipeline.addStage({ stageName: 'Source', actions: [ new GitHubPublicSourceAction({ actionName: 'Checkout', owner: github.ardcOwner, repo: github.raidoSrcRepo, branch: "main", output: outputSources, trigger: GitHubTrigger.NONE, }), ], });
内容的提问来源于stack exchange,提问作者Shorn
相关产品推荐
相关产品推荐

