11

Ich versuche Continuous-Bereitstellungs-Pipelines in AWS Codepipeline einzurichten.AWS CodePipeline kann nicht auf die Repositorys der Organisation zugreifen

Während ich eine Pipeline erstelle, stelle ich "Source provider" als GitHub zur Verfügung und verbinde mich dann mit GitHub. Ich kann meine öffentlichen Repositorys in der Drop-down-Liste "Repository" in der Pipeline erstellen sehen. Aber ich kann die privaten Repositories meiner Organisation in diesem Drop-down nicht sehen. Ich habe Schreibzugriff in Organisation.

Wie kann ich AWS Codepipeline Zugriff auf meine Organisationen Repositories haben.

Antwort

8

AWS CodePipeline erfordert zwei GitHub scopes für ihren Betrieb, wie in Abschnitt GitHub innerhalb Product and Service Integrations with AWS CodePipeline: Source Action Integrations umrissen:

[...] Sie zum GitHub Repository ein entweder durch die Schaffung einer neuen Pipeline bzw. Bearbeitung verbinden kann vorhanden. Wenn Sie zum ersten Mal ein GitHub-Repository zu einer Pipeline hinzufügen, werden Sie aufgefordert, den AWS CodePipeline-Zugriff auf Ihre Repositorys zu autorisieren. Zur Integration mit GitHub, AWS CodePipeline verwendet OAuth-Token und benötigt zwei GitHub Bereiche: admin:repo_hook, die zu erkennen, wird verwendet, wenn Sie begangen haben und schob Änderungen an der Repository und repo, die Artefakte zu lesen verwendet wird, und ziehen Sie aus öffentliche und private Repositories in eine Pipeline. Weitere Informationen zu GitHub-Oszilloskopen finden Sie unter unter GitHub Developer API Reference.
Zugriff für AWS CodePipeline ist für alle Repositorys konfiguriert, auf die das GitHub-Konto Zugriff hat; Es kann derzeit nicht für einzelne Repositories konfiguriert werden.
[Hervorhebung von mir]

Jetzt, während Sie wahrscheinlich das getan haben, ist es möglich, dass Ihre Organisation eingerichtet ist, so dass sie Zugang gewähren standardmäßig nicht (während diese sichtbar und einstellbar ist, wenn die Genehmigung eine neue App/Dienstleistung, wird leicht übersehen) - hier ist der resp. GitHub-Tooltipp:

Bis der Zugriff durch einen Besitzer gewährt wird, kann die Anwendung nicht auf die privaten Daten der Organisation zugreifen oder ihre öffentlichen Daten ändern.

Sofern Sie ein Eigentümer der Organisation sind, können Sie explizit den Zugriff gewähren, indem die inversen Anweisungen in der referenzierten CodePipeline GitHub Dokumentation beschrieben vorgehen:

Sie diesen Zugriff von GitHub widerrufen können Einstellungen durch die Wahl, Wählen Sie Anwendungen, und dann unter autorisierte Anwendungen, finden AWS CodePipeline in der Liste der zugelassenen Anwendungen und wählen Widerrufen. [...]

Das heißt, gehen Sie zu Ihrem GitHub Profil => Einstellungen => Anwendungen => AWS CodePipeline, und klicken Sie auf die Schaltfläche Grant access für jede jeweilige Organisation.

+0

Hallo Steffen, Ich bin kein Besitzer dieser Organisation, aber ich sehe immer noch ein grünes Häkchen neben dem Organisationsnamen in der AWS Codepipeline Erlaubnisseite (GitHub Profil => Einstellungen => Anwendungen => AWS CodePipeline). Obwohl ich meinen Organisationsnamen in "Organisation Zugriff" Teil sehen kann, ist Codepipeline bis nicht in der Lage, private Repos der Organisation zu lesen. – anshul410

1

Wir sind auf das gleiche Problem gestoßen. Die Berechtigung zum Repo-Admin-Level ist erforderlich, damit dies funktioniert. Sie müssen also von Ihrer Organisation Admin-Ebene Zugriff auf das Repo anfordern. Wir haben am Ende einen Service-Benutzer mit Admin-Repo-Recht in privaten ORG Repo erstellt und dann konnten wir auf die CI-Tools zugreifen.