创建代码库

本页面介绍了如何使用 Secure Source Manager 网页界面或 Secure Source Manager API 创建代码库。

如果您的 Secure Source Manager 实例尚未创建,请参阅创建 Secure Source Manager 实例以开始操作。

准备工作

  1. 创建 Secure Source Manager 实例或请求访问权限。如需了解详情,请参阅创建 Secure Source Manager 实例
  2. Install the Google Cloud CLI.

  3. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  4. To initialize the gcloud CLI, run the following command:

    gcloud init
  5. 安装 beta Google Cloud CLI 组件:
    gcloud components install alpha

所需的角色

如需获得创建代码库所需的权限,请让您的管理员为您授予以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

如需了解如何授予 Secure Source Manager 角色,请参阅使用 IAM 进行访问权限控制向用户授予实例访问权限

创建代码库

网页界面

  1. 如需通过网页界面访问 Secure Source Manager 实例,请将以下网址复制到浏览器地址栏中。

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    替换以下内容:

    • INSTANCE_ID 替换为实例名称。
    • PROJECT_NUMBER 替换为实例的 Google Cloud项目编号。如需了解如何标识项目,请参阅标识项目
    • LOCATION 替换为实例的区域。

  2. 根据需要使用 Secure Source Manager 凭据进行身份验证。

  3. 点击导航菜单右上角的 + 创建新代码库图标。

  4. 填写代码库详细信息:

    1. 代码库 ID:输入代码库的名称。

    2. 说明:可选。 代码库的说明。

    3. 初始化代码库:可选。如果您想初始化代码库并添加 .gitignore、许可和 README 文件,请选择此选项。

    4. .gitignore:可选。使用下拉菜单模板选择要跟踪哪些文件。

    5. 许可:可选。从下拉菜单中选择一个通用许可。

    6. 默认分支:默认分支的名称。

  5. 点击提交

gcloud

  1. 使用 gcloud CLI 运行以下命令来创建代码库:

    gcloud alpha 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
    

    替换以下内容:

    • 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 文件。

API

  1. 通过运行以下命令,使用 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"}'
    

    替换以下内容:

    • REGION 是 Secure Source Manager 实例所在的区域。 如需了解支持的位置,请参阅位置
    • INSTANCE_ID 是您的 Secure Source Manager 实例 ID。
    • PROJECT_ID 是 Secure Source Manager 实例的项目 ID。如需了解在哪里可以找到项目 ID,请参阅标识项目
    • REPOSITORY_ID 是代码库的名称。

    您可以使用 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", "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",
        "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_IDuris 字段包含通过 Web 浏览器或通过 Git 协议 HTTPS 访问代码库的网址。
  2. 使用响应中的 HTML URI 访问新代码库。Secure Source Manager 网页界面支持代码审核、问题跟踪和 pull request。

代码库是在您的 Secure Source Manager 实例中创建的。

创建新制品库时,系统会向您授予 Repo Admin 角色 (roles/securesourcemanager.repoAdmin)。新的 IAM 权限可能需要长达 2 分钟才能传播完毕,因此如果您在创建仓库后尝试访问该仓库时收到权限错误,请等待几分钟,然后重试。

您创建的代码库会显示在 Secure Source Manager 网页界面中的我的代码库页面上。

后续步骤