如果尚未建立 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 執行個體存放區建立者角色 (
roles/securesourcemanager.instanceRepositoryCreator) Secure Source Manager 執行個體 - 執行個體專案的Secure Source Manager 存放區建立者角色 (
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 憑證進行驗證。
按一下導覽選單中的「+ 建立新的存放區」圖示。
填寫存放區詳細資料:
存放區 ID:輸入存放區名稱。
說明:選用:輸入存放區的說明。
預設分支版本:預設分支版本的名稱。
服務帳戶:選用:輸入要與存放區建立關聯的服務帳戶。這個使用者管理的服務帳戶用於 Cloud Build 等整合服務。詳情請參閱「連線至 Cloud Build」。
初始化存放區:選用:如要初始化存放區並新增 .gitignore、授權和 README 檔案,請選取這個選項。
.gitignore:選用:使用下拉式選單範本,選擇要排除哪些檔案。
授權:選用:從下拉式選單中選取常見授權。
點選「Create Repository」(建立存放區)。
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」欄位包含透過網頁瀏覽器存取存放區的網址,或透過 Git 通訊協定 HTTPS 存取存放區的網址。
使用回應中的 HTML URI 存取新存放區。Secure Source Manager 網頁介面支援程式碼審查、問題追蹤和提取要求。
存放區會在 Secure Source Manager 執行個體中建立。
建立新存放區時,系統會授予您存放區管理員角色 (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 網頁介面中列出及查看存放區。