本頁面說明如何解決 Secure Source Manager 的問題。
建立存放區時出現錯誤訊息
嘗試建立存放區時,會出現下列錯誤:
There was an error while loading /repo/create. Try refreshing the page.
發生這個問題的原因如下:
- 專案未啟用 Secure Source Manager API。
- 您在專案中沒有存放區管理員角色,或是沒有在 Secure Source Manager 執行個體中建立存放區的權限。
如何解決這個問題:
- 在專案中啟用 Secure Source Manager API。
- 請管理員授予下列角色:
- 專案的「存放區管理員」(
roles/securesourcemanager.repoAdmin
) 角色。 - Secure Source Manager 執行個體的執行個體存取者 (
roles/securesourcemanager.instanceAccessor
)。 - Secure Source Manager 執行個體的執行個體存放區建立者 (
roles/securesourcemanager.instanceRepositoryCreator
)。
- 專案的「存放區管理員」(
詳情請參閱「使用 IAM 控管存取權」。
在 Mac 上複製存放區時出現錯誤訊息
嘗試複製存放區時,會出現下列錯誤:
git: 'credential-gcloud.sh' is not a git command. See 'git --help'. fatal: Authentication failed for [repo-url]
發生這個問題的原因如下:
- 使用 Homebrew 或其他非標準安裝方式安裝 gcloud CLI。
git-credential-gcloud.sh
未新增至 PATH。
如何解決這個問題:
- 執行
source $HOMEBREW_PREFIX/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc
執行下列指令,確認
git-credential-gcloud.sh
是否位於路徑中:which git-credential-gcloud.sh
Git HTTPS 要求失敗,並顯示權限遭拒或未授權錯誤
透過 HTTPS 嘗試執行 Git 指令時,系統會顯示「權限遭拒」或「未經授權」錯誤訊息。
發生下列任一情況時,就會出現這個問題:
- 全域 Git 設定檔缺少 Secure Source Manager 驗證輔助程式。
- 系統會使用 Git 的內建憑證儲存區,而不是呼叫 Secure Source Manager 驗證輔助程式來取得新憑證。
- 系統會使用系統憑證輔助程式,而不是呼叫 Secure Source Manager 驗證輔助程式來取得新憑證。
- 使用 HTTPS 與 Secure Source Manager 存放區互動時,會使用舊版 Google Cloud CLI。Secure Source Manager 需要 Google Cloud CLI 395.0.0 以上版本。
如何解決這個問題:
執行下列指令,判斷全域 Git 設定的內容。
git config --list | grep credential
如果在 macOS 上看到類似
*credential*.helper=store
的行,或是在 Windows OS 上看到credential.helper = manager
,請移除這些行,然後使用gcloud auth login
重新驗證,再試一次 Git 命令。如果回應未包含 macOS 或 Linux 上的
credential.https://*.*.sourcemanager.dev.helper=gcloud.sh
,或是 Windows 上的credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd
,請將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定:Linux
如要將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定,請執行下列指令:
git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
執行下列指令,確認驗證輔助程式行已新增至全域 Git 設定:
git config --list | grep credential
輸出內容應包含
credential.https://*.*.sourcemanager.dev.helper=gcloud.sh
。執行
gcloud auth login
進行驗證。執行 Git 指令來測試驗證。
Windows
- 按照「安裝 Git 和 Google Cloud CLI」的說明,檢查 gcloud CLI 版本。
如要將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定,請執行下列指令:
git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
執行下列指令,確認驗證輔助程式行已新增至全域 Git 設定:
git config --list | grep credential
輸出內容應包含
credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd
。執行
gcloud auth login
進行驗證。執行 Git 指令來測試驗證。
Git HTTPS 要求失敗,並顯示無效權杖
您必須提供有效的 OAuth 權杖,做為 Git HTTPS 作業的密碼。這通常由 Git 憑證輔助程式處理,但也可以搭配使用以其他方法 (例如應用程式預設憑證) 產生的 OAuth 權杖。
如果 Git 要求因無效權杖遭到拒絕,通常表示系統無法從傳入的權杖擷取使用者資訊,這個錯誤可能有多種原因:
您的 gcloud CLI 登入資訊可能已過期
請使用
gcloud auth login
重新登入。權杖的範圍不足。OAuth 權杖應具備下列範圍:
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/userinfo.email
您可以呼叫
curl https://oauth2.googleapis.com/tokeninfo?access_token=${TOKEN}
來檢查權杖範圍您使用的權杖是透過 GKE 機群工作負載身分產生:
- 系統不支援從 GKE 艦隊工作負載身分產生的原始權杖,但您可以將工作負載繫結至 Google 服務帳戶。
您有機構政策禁止在特定範圍外使用權杖,例如情境感知存取權:
Secure Source Manager 本身不支援情境感知存取權,請與支援團隊聯絡,瞭解後續步驟。
專案未顯示在網頁介面的產品選取器中
使用 Secure Source Manager 網頁介面產品選取器時,專案不會顯示。
如果您有多組 Secure Source Manager 登入憑證,就會發生這個問題。
如何解決這個問題:
在 Secure Source Manager 執行個體網址中附加下列內容,即可清除 Cookie:
/_oauth/consent
舉例來說,如果執行個體網址是
https://my-instance-098765432123.us-central1.sourcemanager.dev/
,請在瀏覽器的網址列中輸入https://my-instance-098765432123.us-central1.sourcemanager.dev/_oauth/consent
,然後使用正確的憑證登入。
觸發條件檔案不會觸發建構作業
提交觸發條件檔案後,如果建構作業未如預期觸發,可能是因為下列問題:
- 觸發條件檔案不在預設分支版本中。如要解決這個問題,請將觸發程序檔案移至預設分支版本。
- 觸發條件檔案的格式無效。如果看到這項錯誤,存放區頁面會顯示
Build triggers configuration error: ...
橫幅。如要修正這個問題,請參閱觸發條件檔案結構定義。如果觸發條件檔案設定正確,存放區頁面中的橫幅會顯示Valid build triggers configuration
。
建構觸發條件設定錯誤
將 triggers.yaml
檔案提交至 Secure Source Manager 存放區後,橫幅會顯示下列錯誤:
Build cannot be created.
發生這個問題的原因如下:
- Cloud Build 設定檔的選項無效。
- Cloud Build 設定檔的格式無效。
- Secure Source Manager 服務帳戶沒有使用使用者指定 Cloud Build 服務帳戶的必要權限。
如何修正這個問題:
- 請務必遵循正確的 觸發條件檔案結構定義。
- 請確認 Secure Source Manager 服務帳戶和 Cloud Build 服務帳戶具備足夠的權限。如要查看必要權限,請參閱「必要服務帳戶角色」。
執行期間建構失敗
如果建構作業已成功觸發,但在執行期間失敗,相關聯的提交會顯示「失敗」提交狀態。
如要排解建構失敗的問題,請前往存放區頁面,然後按一下失敗的提交狀態旁邊的「詳細資料」。
系統會開啟 Cloud Build 執行記錄。如要進一步瞭解如何排解 Cloud Build 中的建構問題,請參閱「排解建構錯誤」。