AWSCodepipelineで継続的なデプロイパイプラインをセットアップしようとしています。
パイプラインを作成するときに、「ソースプロバイダー」をGitHubとして提供してから、GitHubに接続します。パイプラインの作成ページの[リポジトリ]ドロップダウンで公開リポジトリを確認できます。ただし、このドロップダウンに組織のプライベートリポジトリを表示することはできません。組織に書き込みアクセス権があります。
AWSCodepipelineが組織のリポジトリにアクセスできるようにするにはどうすればよいですか。
AWS CodePipeline 操作には2つの GitHubスコープ が必要です。 製品とサービスの統合)のセクションGitHubで概説されています。 AWS CodePipelineを使用:ソースアクションの統合 :
[...]新しいパイプラインを作成するか、既存のパイプラインを編集することで、GitHubリポジトリに接続できます。 GitHubリポジトリをパイプラインに初めて追加するときに、リポジトリへのAWS CodePipelineアクセスを承認するように求められます。GitHubと統合するには、AWS CodePipeline OAuthトークンを使用し、2つのGitHubスコープが必要です。リポジトリに変更をコミットしてプッシュしたことを検出するために使用される
admin:repo_hook
と、リポジトリに変更をプッシュしたときのrepo
です。パブリックリポジトリとプライベートリポジトリからアーティファクトを読み取ってパイプラインにプルするために使用されます。GitHubスコープの詳細については、 GitHub Developer APIリファレンス を参照してください。
AWS CodePipelineのアクセスは、そのGitHubアカウントがアクセスできるすべてのリポジトリに対して設定されます;現在、個々のリポジトリ用に構成することはできません。
[強調鉱山]
さて、あなたはおそらくそれを行っていますが、デフォルトでアクセスを許可しないように組織が設定されている可能性があります(これは新しいアプリ/サービスを承認するときに表示および調整可能ですが、見落とされがちです)-これがそれぞれGitHubツールチップ:
所有者によってアクセスが許可されるまで、アプリケーションは組織のプライベートデータにアクセスしたり、パブリックデータを変更したりすることはできません。
組織の所有者である場合は、参照されているCodePipeline GitHubドキュメントに概説されている逆の手順を実行することで、明示的にアクセスを許可できます。
GitHubからこのアクセスを取り消すには、[設定]、[アプリケーション]の順に選択し、[承認済みアプリケーション]で、承認済みアプリケーションのリストからAWS CodePipelineを見つけて、[取り消し]を選択します。 [...]
つまり、GitHubプロファイル=>設定=>アプリケーション=> AWS CodePipelineに移動し、該当する各組織のGrant access
ボタンをクリックします。
組織によっては、次の手順が必要になる場合があります(ただし、構成によって異なります)。
Githubでは、
同じ問題が発生しました。これを機能させるには、リポジトリ管理者レベルの権限が必要です。したがって、組織の管理者レベルからリポジトリへのアクセスを要求する必要があります。最終的に、プライベート組織リポジトリに管理リポジトリを持つサービスユーザーを作成し、CIツールにアクセスできるようになりました。