创建代码库

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

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

准备工作

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

  3. 如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  4. 如需初始化 gcloud CLI,请运行以下命令:

    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. 点击 导航菜单右上角的 + Create new repository 图标。

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

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

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

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

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

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

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

  5. 点击创建代码库

gcloud

  1. 如需使用 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
    

    请替换以下内容:

    • 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 网页界面支持代码审核、问题跟踪和拉取请求。

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

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

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

后续步骤