如果您的 Secure Source Manager 实例尚未创建,请参阅 创建 Secure Source Manager 实例以开始使用 。
准备工作
- 创建 Secure Source Manager 实例或请求访问该实例的权限。如需了解详情,请参阅创建 Secure Source Manager 实例。
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init - 安装
betaGoogle Cloud CLI 组件:gcloud components install alpha
所需角色
如需获得创建代码库所需的权限,请让管理员向您授予以下 IAM 角色:
- Secure Source Manager 实例的 Secure Source Manager Instance Repository Creator 角色 (
roles/securesourcemanager.instanceRepositoryCreator) - 实例项目的 Secure Source Manager Repo Creator 角色 (
roles/securesourcemanager.repoCreator)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
如需了解如何授予 Secure Source Manager 角色, 请参阅 使用 IAM 进行访问权限控制 和 向用户授予实例访问权限。
创建代码库
网页界面
-
如需通过网页界面访问 Secure Source Manager 实例,请将以下网址复制到浏览器地址栏中。
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev请替换以下内容:
- 将 INSTANCE_ID 替换为实例名称。
- 将 PROJECT_NUMBER 替换为实例的 Google Cloud 项目编号。如需了解如何识别项目,请参阅 识别项目。
- 将 LOCATION 替换为实例的区域。
根据需要使用 Secure Source Manager 凭据进行身份验证。
点击导航菜单中的 + Create new repository 图标。
填写代码库详细信息:
代码库 ID:输入代码库的名称。
说明:可选:输入代码库的说明。
Default branch:默认分支的名称。
Service account:可选:输入要与代码库关联的服务帐号。此用户代管式服务账号用于 Cloud Build 等集成。如需了解详情,请参阅 连接到 Cloud Build。
Initialize repository:可选:如果您 想初始化代码库并添加 .gitignore、许可和 README 文件,请选择此选项。
.gitignore:可选:使用下拉菜单模板选择要排除的文件。
license:可选:从下拉菜单中选择一个常用许可。
点击创建代码库 。
gcloud
如需使用 gcloud CLI 创建代码库,请运行以下命令:
gcloud source-manager repos create REPOSITORY_ID \ --region=LOCATION \ --project=PROJECT_ID \ --instance=INSTANCE_ID \ --description=DESCRIPTION \ --default-branch=BRANCH \ --gitignores=GITIGNORES \ --license=LICENSE \ --readme=README \ --service-account=SERVICE_ACCOUNT请替换以下内容:
将
REPOSITORY_ID替换为代码库的名称。将
LOCATION替换为要在其中创建代码库的区域。如需详细了解受支持的位置,请参阅 位置。将
PROJECT_ID替换为要在其中创建代码库的 Secure Source Manager 实例的项目 ID。将
INSTANCE_ID替换为要在其中创建代码库的实例的实例 ID。如需列出项目中的 Secure Source Manager 实例,请参阅 列出和查看实例。将
DESCRIPTION替换为代码库的说明。此项为可选,可以省略。将
BRANCH替换为默认分支名称。此项为可选,可以省略。如果未设置,默认分支名称为main。将
GITIGNORES替换为以英文逗号分隔的 gitignore 模板名称列表。此项为可选,可以省略。 如需查看可用模板的完整列表, 请参阅代码库初始化配置参考文档。将
LICENSE替换为要应用于代码库的许可模板名称。此项为可选,可以省略。 如需查看可用许可模板的完整列表,请参阅 代码库初始化配置参考文档。将
README替换为default,以根据默认模板创建 README 文件。此项为可选,可以省略。如果省略,系统将不会创建 README 文件。将
SERVICE_ACCOUNT替换为要与代码库关联的服务帐号的电子邮件地址。此项为可选,可以省略。
API
如需使用 REST 调用创建代码库,请运行以下命令:
curl \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories?repository_id=REPOSITORY_ID \ -d '{ "instance": "projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID", "serviceAccount": "SERVICE_ACCOUNT" }'请替换以下内容:
- 将
REGION替换为 Secure Source Manager 实例的区域。如需详细了解受支持的位置,请参阅 位置。 - 将
INSTANCE_ID替换为 Secure Source Manager 实例 ID。 - 将
PROJECT_ID替换为 Secure Source Manager 实例的项目 ID。如需详细了解在哪里 查找项目 ID,请参阅 识别项目。 - 将
REPOSITORY_ID替换为代码库的名称。 - 将
SERVICE_ACCOUNT替换为要与代码库关联的服务账号的电子邮件地址。
您可以使用 HTTP POST 数据标志
-d'{}'指定其他值,包括初始化代码库、添加特定的.gitignore文件或许可。如需了解详情,请参阅 参考文档。如果您希望输出易于用户理解,可以使用
json_pp将其传递给 JSON。例如:
curl \ -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/my-project-id/locations/us-central1/repositories?repository_id=my-repo \ -d '{ "instance": "projects/my-project-id/locations/us-central1/instances/prod-test-instance", "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com", "initialConfig": { "defaultBranch": "main" } }' | json_pp响应类似如下内容:
{ "name": "operations/266bf4c7-13fe-11ed-be24-da823b7355d0", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-08-04T14:02:59.810496928Z", "endTime": "2022-08-04T14:03:00.558354528Z", "target": "projects/654987321654/locations/us-central1/repositories/my-repo", "verb": "create", "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Repository", "name": "projects/my-project-id/locations/us-central1/repositories/my-repo", "instance": "projects/654987321654/locations/us-central1/instances/prod-test-instance", "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com", "createTime": "2022-08-04T14:03:00Z", "uris": { "html": "https://prod-test-instance-654987321654.us-central1.sourcemanager.dev/my-project-id/my-repo", "gitHttps": "https://prod-test-instance-654987321654-git.us-central1.sourcemanager.dev/my-project-id/my-repo.git" } }其中:
654987321654是代码库项目编号。my-project-id是代码库项目 ID。my-repo是您在创建命令中设置的REPOSITORY_ID。uris字段包含通过 Web 浏览器或通过 Git 协议 HTTPS 访问代码库的网址。
- 将
使用响应中的 HTML URI 访问新代码库。Secure Source Manager 网页界面支持代码审核、问题跟踪和拉取请求。
代码库是在您的 Secure Source Manager 实例中创建的。
创建新代码库时,系统会向您授予 Repo Admin 角色 (roles/securesourcemanager.repoAdmin)。新的 IAM 权限可能需要长达 2 分钟才能传播,因此,如果您在创建后尝试访问代码库时收到权限错误,请等待几分钟,然后重试。
您创建的代码库会列在 Secure Source Manager 网页界面中的我的代码库 页面上。
更新代码库
网页界面
- 转到 Secure Source Manager 网页界面中的代码库页面。
- 点击导航菜单中的代码库设置 。
- 在基本设置 部分中,在服务账号 字段中输入服务账号的电子邮件地址。
- 点击保存更改 。
gcloud
如需更新代码库服务帐号,请运行以下命令:
gcloud source-manager repos update REPOSITORY_ID \ --region=LOCATION \ --project=PROJECT_ID \ --service-account=SERVICE_ACCOUNT请替换以下内容:
- 将
REPOSITORY_ID替换为要更新的代码库的名称。 - 将
LOCATION替换为代码库所在的区域。 - 将
PROJECT_ID替换为项目 ID。 - 将
SERVICE_ACCOUNT替换为要与代码库关联的服务帐号的电子邮件地址。
- 将
API
如需使用 REST 调用更新代码库服务帐号,请运行以下命令:
curl --request PATCH \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories/REPOSITORY_ID?updateMask=serviceAccount \ -d '{"serviceAccount": "SERVICE_ACCOUNT"}'请替换以下内容:
- 将
PROJECT_ID替换为项目 ID。 - 将
REGION替换为区域。 - 将
REPOSITORY_ID替换为代码库 ID。 - 将
SERVICE_ACCOUNT替换为服务帐号电子邮件地址。
- 将
后续步骤
- 向用户授予代码库访问权限
- 将 Git 源代码管理 与 Secure Source Manager 结合使用。
- 列出和查看代码库 在 Secure Source Manager 网页界面中。