このページでは、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
)。
- プロジェクトに対する Repo 管理者(
詳細については、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 以降が必要です。
この問題を解決するには:
次のコマンドを実行して、グローバル 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 リクエストが失敗し、無効なトークンが返される
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 から生成されたトークンを使用している。
- GKE フリート ワークロード ID から生成された未加工のトークンはサポートされていません。代わりに、ワークロードを Google サービス アカウントにバインドできます。
特定の境界外でトークンを使用できないようにする組織のポリシー(コンテキストアウェア アクセスなど)が設定されている。
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 サービス アカウントを使用するために必要な権限がありません。
問題を解決するには:
- 正しいトリガー ファイル スキーマに従っていることを確認します。
- Secure Source Manager サービス アカウントと Cloud Build サービス アカウントに十分な権限があることを確認します。必要な権限を確認するには、必要なサービス アカウントのロールをご覧ください。
実行中にビルドが失敗する
ビルドが正常にトリガーされたものの、実行中に失敗した場合、関連する commit の commit ステータスは Failure になります。
失敗したビルドのトラブルシューティングを行うには、リポジトリ ページで、失敗したコミット ステータスの横にある [詳細] をクリックします。
Cloud Build 実行ログが開きます。Cloud Build でのビルドのトラブルシューティングの詳細については、ビルドエラーのトラブルシューティングをご覧ください。