疑難排解

本頁面說明如何解決 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 以上版本。

如何解決這個問題:

  1. 執行下列指令,判斷全域 Git 設定的內容。

    git config --list | grep credential
    
  2. 如果在 macOS 上看到類似 *credential*.helper=store 的行,或是在 Windows OS 上看到 credential.helper = manager,請移除這些行,然後使用 gcloud auth login 重新驗證,再試一次 Git 命令。

  3. 如果回應未包含 macOS 或 Linux 上的 credential.https://*.*.sourcemanager.dev.helper=gcloud.sh,或是 Windows 上的 credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd,請將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定:

    Linux

    1. 如要將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定,請執行下列指令:

      git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
      
    2. 執行下列指令,確認驗證輔助程式行已新增至全域 Git 設定:

      git config --list | grep credential
      

      輸出內容應包含 credential.https://*.*.sourcemanager.dev.helper=gcloud.sh

    3. 執行 gcloud auth login 進行驗證。

    4. 執行 Git 指令來測試驗證。

    Windows

    1. 按照「安裝 Git 和 Google Cloud CLI」的說明,檢查 gcloud CLI 版本。
    2. 如要將 Secure Source Manager 驗證輔助程式新增至全域 Git 設定,請執行下列指令:

      git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd
      
    3. 執行下列指令,確認驗證輔助程式行已新增至全域 Git 設定:

      git config --list | grep credential
      

      輸出內容應包含 credential.https://*.*.sourcemanager.dev.helper=gcloud.cmd

    4. 執行 gcloud auth login 進行驗證。

    5. 執行 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 機群工作負載身分產生:

  • 您有機構政策禁止在特定範圍外使用權杖,例如情境感知存取權:

    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 服務帳戶的必要權限。

如何修正這個問題:

執行期間建構失敗

如果建構作業已成功觸發,但在執行期間失敗,相關聯的提交會顯示「失敗」提交狀態。

如要排解建構失敗的問題,請前往存放區頁面,然後按一下失敗的提交狀態旁邊的「詳細資料」

系統會開啟 Cloud Build 執行記錄。如要進一步瞭解如何排解 Cloud Build 中的建構問題,請參閱「排解建構錯誤」。