先决条件
在开始之前,您必须向 Bitbucket 应用程序密码或访问令牌添加适当的权限范围。
对于 Bitbucket,您的应用程序密码或访问令牌必须具有以下权限范围。
-
repository:read:授予对授权用户有权访问的所有存储库的读取访问权限。
-
pullrequest:read:授予对拉取请求的读取访问权限。如果您的项目具有 Bitbucket webhook,则您的应用程序密码或访问令牌必须具有此权限范围。
-
Webhook:授予对 Webhook 的访问权限。如果您的项目具有 webhook 操作,则您的应用程序密码或访问令牌必须具有此权限范围。
有关更多信息,请参阅 Bitbucket 网站上的 Bitbucket 云 REST API 的权限范围
使用应用程序密码连接 Bitbucket(控制台)
要在控制台中使用应用程序密码将您的项目连接到 Bitbucket,请在创建项目时执行以下操作。有关信息,请参阅创建构建项目(控制台)。
-
对于源提供商,选择 Bitbucket。
-
对于凭证,执行以下操作之一:
-
选择默认来源凭证,使用您账户的默认来源凭证应用于所有项目。
-
如果未连接到 Bitbucket,请选择管理默认来源凭证。
-
对于凭证类型,选择应用程序密码。
-
如果您选择了默认来源凭证,请在服务中选择要用于存储令牌的服务,然后执行以下操作:
-
如果您选择使用 Secrets Manager,则可以选择使用现有密钥连接或创建新密钥并选择保存。有关如何创建新密钥的更多信息,请参阅在 Secrets Manager 密钥中创建和存储令牌。
-
如果您选择使用 CodeBuild,请输入您的 Bitbucket 用户名和 Bitbucket 应用程序密码,然后选择保存。
-
-
-
选择自定义来源凭证,以便使用自定义来源凭证来覆盖您账户的默认设置。
-
对于凭证类型,选择应用程序密码。
-
在连接中,选择使用现有密钥连接或创建一个新密钥。
-
-
使用访问令牌连接 Bitbucket(控制台)
要在控制台中使用访问令牌将您的项目连接到 Bitbucket,请在创建项目时执行以下操作。有关信息,请参阅创建构建项目(控制台)。
-
对于源提供商,选择 Bitbucket。
-
对于凭证,执行以下操作之一:
-
选择默认来源凭证,使用您账户的默认来源凭证应用于所有项目。
-
如果未连接到 Bitbucket,请选择管理默认来源凭证。
-
对于凭证类型,选择个人访问令牌。
-
如果您选择了默认来源凭证,请在服务中选择要用于存储令牌的服务,然后执行以下操作:
-
如果您选择使用 Secrets Manager,则可以选择使用现有密钥连接或创建新密钥并选择保存。有关如何创建新密钥的更多信息,请参阅在 Secrets Manager 密钥中创建和存储令牌。
-
如果您选择使用 CodeBuild,请输入您的 Bitbucket 访问令牌并选择保存。
-
-
-
选择自定义来源凭证,以便使用自定义来源凭证来覆盖您账户的默认设置。
-
对于凭证类型,选择个人访问令牌。
-
在连接中,选择使用现有密钥连接或创建一个新密钥。
-
-
使用应用程序密码或访问令牌连接 Bitbucket(CLI)
按照以下步骤在 AWS CLI 中使用应用程序密码或访问令牌将您的项目连接到 Bitbucket。有关将 AWS CLI 与 AWS CodeBuild 结合使用的信息,请参阅命令行参考。
-
运行 import-source-credentials 命令:
aws codebuild import-source-credentials --generate-cli-skeleton
输出中将显示 JSON 格式的数据。将数据复制到本地计算机上或安装 AWS CLI 的实例上某位置处的文件(如
)中。按照下面所示修改复制的数据,并保存您的结果。import-source-credentials.json
{ "serverType": "BITBUCKET", "authType": "
auth-type
", "shouldOverwrite": "should-overwrite
", "token": "token
", "username": "username
" }替换以下内容:
-
server-type
:必填值。用于此凭证的源提供商。有效值为 GITHUB、BITBUCKET、GITHUB_ENTERPRISE、GITLAB 和 GITLAB_SELF_MANAGED。 -
auth-type
:必填值。用于连接到存储库的身份验证类型。有效值为 OAUTH、BASIC_AUTH、PERSONAL_ACCESS_TOKEN、CODECONNECTIONS 和 SECRETS_MANAGER。对于 GitHub,仅允许 PERSONAL_ACCESS_TOKEN。对于 Bitbucket 应用程序密码,仅允许 BASIC_AUTH。 -
should-overwrite
:可选值。设置为false
可防止覆盖存储库源凭证。设置为true
可覆盖存储库源凭证。默认值为true
。 -
token
:必填值。对于 GitHub 或 GitHub Enterprise Server,这是个人访问令牌。对于 Bitbucket,这是个人访问令牌或应用程序密码。对于身份验证类型 CODECONNECTIONS,这是连接 ARN。对于身份验证类型 SECRETS_MANAGER,这是密钥 ARN。 -
username
:可选值。GitHub 和 GitHub Enterprise Server 源代码提供商会忽略此参数。
-
-
要使用应用程序密码或访问令牌连接您的账户,请切换到包含您在步骤 1 中保存的
import-source-credentials.json
文件的目录,然后重新运行 import-source-credentials 命令。aws codebuild import-source-credentials --cli-input-json file://import-source-credentials.json
JSON 格式的数据将使用 Amazon 资源名称 (ARN) 显示在输出中。
{ "arn": "arn:aws:codebuild:
region
:account-id
:token/server-type
" }注意
如果您再次使用相同的服务器类型和身份验证类型运行 import-source-credentials 命令,则会更新存储的访问令牌。
在使用应用程序密码连接您的账户后,您可以使用
create-project
来创建您的 CodeBuild 项目。有关更多信息,请参阅 创建构建项目 (AWS CLI)。 -
要查看连接的应用程序密码或访问令牌,请运行 list-source-credentials 命令。
aws codebuild list-source-credentials
JSON 格式的
sourceCredentialsInfos
对象将显示在输出中:{ "sourceCredentialsInfos": [ { "authType": "
auth-type
", "serverType": "BITBUCKET", "arn": "arn
" } ] }sourceCredentialsObject
包含连接的源凭证信息的列表:-
authType
是凭证使用的身份验证类型。这可以是OAUTH
、BASIC_AUTH
、PERSONAL_ACCESS_TOKEN
、CODECONNECTIONS
或SECRETS_MANAGER
。 -
serverType
是源提供商类型。这可以是GITHUB
、GITHUB_ENTERPRISE
、BITBUCKET
、GITLAB
或GITLAB_SELF_MANAGED
。 -
arn
是令牌的 ARN。
-
-
要断开与源提供商的连接并删除其应用程序密码或访问令牌,请使用其 ARN 运行 delete-source-credentials 命令。
aws codebuild delete-source-credentials --arn
arn-of-your-credentials
将返回 JSON 格式的数据,并带有已删除凭证的 ARN。
{ "arn": "arn:aws:codebuild:
region
:account-id
:token/server-type
" }