トラブルシューティング

このページでは、Secure Source Manager に関する問題を解決する方法について説明します。

リポジトリの作成時のエラー メッセージ

リポジトリを作成しようとすると、次のエラーが表示されます。

There was an error while loading /repo/create. Try refreshing the page.

この問題は、次のような場合に発生します。

  • プロジェクトで Secure Source Manager API が有効になっていません。
  • プロジェクトに Repo 管理者のロールがないか、Secure Source Manager インスタンスでリポジトリを作成する権限がありません。

この問題を解決するには:

  • プロジェクトで Secure Source Manager API を有効にします
  • 管理者に次のロールを付与するよう依頼してください。
    • プロジェクトに対する Repo 管理者(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]

この問題は、次のような場合に発生します。

  • gcloud CLI が Homebrew またはその他の非標準のインストールを使用してインストールされている。
  • 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 認証ヘルパーがありません。
  • Secure Source Manager 認証ヘルパーを呼び出して新しい認証情報を取得する代わりに、Git の組み込み認証情報ストアが使用されています。
  • 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 リクエストが失敗し、無効なトークンが返される

Git HTTPS オペレーションのパスワードとして、有効な OAuth トークンが必要です。これは通常、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 フリート ワークロード ID から生成されたトークンを使用している。

  • 特定の境界外でトークンを使用できないようにする組織のポリシー(コンテキストアウェア アクセスなど)が設定されている。

    Secure Source Manager はコンテキストアウェア アクセスをネイティブにサポートしていません。次の手順については、サポートにお問い合わせください。

ウェブ インターフェースのプロダクト セレクタにプロジェクトが表示されない

Secure Source Manager のウェブ インターフェースのプロダクト セレクタを使用すると、プロジェクトが表示されません。

この問題は、Secure Source Manager のログイン認証情報が複数ある場合に発生します。

この問題を解決するには:

  • Secure Source Manager インスタンスの URL に /_oauth/consent を追加して、Cookie をクリアします。

    たとえば、インスタンスの URL が 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 サービス アカウントを使用するために必要な権限がありません。

問題を解決するには:

実行中にビルドが失敗する

ビルドが正常にトリガーされたものの、実行中に失敗した場合、関連する commit の commit ステータスは Failure になります。

失敗したビルドのトラブルシューティングを行うには、リポジトリ ページで、失敗したコミット ステータスの横にある [詳細] をクリックします。

Cloud Build 実行ログが開きます。Cloud Build でのビルドのトラブルシューティングの詳細については、ビルドエラーのトラブルシューティングをご覧ください。