View a markdown version of this page

Appendice A: GitHub (tramite app OAuth) azioni sorgente - AWS CodePipeline

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Appendice A: GitHub (tramite app OAuth) azioni sorgente

Questa appendice fornisce informazioni sull'azione GitHub (tramite l'app OAuth) in. CodePipeline

Nota

Sebbene non sia consigliabile utilizzare l'azione GitHub (tramite app OAuth), le pipeline esistenti con l'azione GitHub (tramite app OAuth) continueranno a funzionare senza alcun impatto. Per una pipeline con un'azione GitHub (tramite app OAuth), CodePipeline utilizza i token per connettersi al tuo repository. OAuth-based GitHub Al contrario, l' GitHub azione (tramite GitHub App) utilizza una risorsa di connessione per associare AWS le risorse al repository. GitHub La risorsa di connessione utilizza token basati su app per connettersi. Per ulteriori informazioni sull'aggiornamento della pipeline all' GitHubazione consigliata che utilizza una connessione, consulta. Aggiorna un'azione sorgente GitHub (tramite app OAuth) a un'azione sorgente GitHub (tramite GitHub app) Per ulteriori informazioni sull' OAuth-based GitHub accesso rispetto all' GitHub accesso basato su app, consulta. https://docs.github.com/en/developers/apps/differences-between-github-apps-and-oauth-apps

Per l'integrazione con GitHub, CodePipeline utilizza un'applicazione GitHub OAuth per la pipeline. CodePipelineutilizza i webhook per gestire il rilevamento delle modifiche per la pipeline con l'azione source GitHub (tramite l'app OAuth).

Nota

Quando configuri un'azione sorgente GitHub (tramite GitHub App) in CloudFormation, non includi alcuna informazione sul GitHub token né aggiungi una risorsa webhook. Si configura una risorsa di connessioni come mostrato in AWS::CodeStarConnections: :Connection nella Guida per l' CloudFormation utente.

Questo riferimento contiene le seguenti sezioni per l'azione GitHub (tramite app OAuth):

Importante

Quando crei CodePipeline webhook, non utilizzate le vostre credenziali né riutilizzate lo stesso token segreto su più webhook. Per una sicurezza ottimale, genera un token segreto univoco per ogni webhook che crei. Il token segreto è una stringa arbitraria che fornisci, che viene GitHub utilizzata per calcolare e firmare i payload del webhook a cui vengono inviati CodePipeline, per proteggere l'integrità e l'autenticità dei payload del webhook. L'utilizzo delle proprie credenziali o il riutilizzo dello stesso token su più webhook può portare a vulnerabilità di sicurezza.

Nota

Se è stato fornito un token segreto, verrà oscurato nella risposta.

Aggiungere un'azione GitHub sorgente (tramite l'app OAuth)

Puoi aggiungere GitHub (tramite l'app OAuth) azioni sorgente a: CodePipeline

  • Utilizzando la procedura guidata Create pipeline (Crea una pipeline personalizzata (console)) della CodePipeline console o la pagina di azione Modifica per scegliere l'opzione del provider. GitHub La console crea un webhook che avvia la pipeline quando la fonte cambia.

  • Utilizzo della CLI per aggiungere la configurazione dell'GitHubazione e creare risorse aggiuntive come segue:

    • Utilizzo della configurazione dell'azione di GitHub esempio in GitHub (tramite l'app OAuth) riferimento all'azione sorgente per creare l'azione come mostrato inCreazione di una pipeline (CLI).

    • Disattivazione dei controlli periodici e creazione manuale del rilevamento delle modifiche, poiché per impostazione predefinita il metodo di rilevamento delle modifiche prevede l'avvio della pipeline mediante il polling dell'origine. Esegui la migrazione della pipeline di polling sui webhook per le azioni (tramite l'app OAuth). GitHub

GitHub (tramite l'app OAuth) riferimento all'azione sorgente

Nota

Sebbene non sia consigliabile utilizzare l'azione GitHub (tramite app OAuth), le pipeline esistenti con l'azione GitHub (tramite app OAuth) continueranno a funzionare senza alcun impatto. Per una pipeline con un'azione sorgente GitHub (tramite l'app OAuth), CodePipeline utilizza i token per connettersi al tuo repository. OAuth-based GitHub Al contrario, la nuova GitHub azione (tramite GitHub App) utilizza una risorsa di connessione per associare AWS le risorse al repository. GitHub La risorsa di connessione utilizza token basati su app per connettersi. Per ulteriori informazioni sull'aggiornamento della pipeline all' GitHub azione consigliata che utilizza una connessione, consulta. Aggiorna un'azione sorgente GitHub (tramite app OAuth) a un'azione sorgente GitHub (tramite GitHub app)

Attiva la pipeline quando viene effettuato un nuovo commit sul GitHub repository e sul ramo configurati.

Per l'integrazione GitHub, CodePipeline utilizza un'applicazione OAuth o un token di accesso personale per la pipeline. Se utilizzi la console per creare o modificare la pipeline, CodePipeline crea un GitHub webhook che avvia la pipeline quando si verifica una modifica nel repository.

Devi aver già creato un GitHub account e un repository prima di connettere la pipeline tramite un'azione. GitHub

Se desideri limitare l'accesso ai CodePipeline repository, crea un GitHub account e concedi all'account l'accesso solo ai repository con cui desideri integrarti. CodePipeline Usa quell'account quando configuri l'uso dei GitHub repository CodePipeline per le fasi di origine nelle pipeline.

Per ulteriori informazioni, consulta la documentazione per gli GitHub sviluppatori sul GitHub sito Web.

Tipo di operazione

  • Categoria: Source

  • Proprietario: ThirdParty

  • Provider: GitHub

  • Versione: 1

Parametri di configurazione

Owner

Obbligatorio: sì

Il nome dell' GitHub utente o dell'organizzazione proprietaria del GitHub repository.

Repo

Obbligatorio: sì

Il nome del repository in cui devono essere rilevate le modifiche di origine.

Ramo

Obbligatorio: sì

Il nome del ramo in cui devono essere rilevate le modifiche di origine.

OAuthToken

Obbligatorio: sì

Rappresenta il token di GitHub autenticazione che consente CodePipeline di eseguire operazioni sul GitHub repository. La voce viene sempre visualizzata come una maschera di quattro asterischi. Rappresenta uno dei seguenti valori:

  • Quando si utilizza la console per creare la pipeline, CodePipeline utilizza un token OAuth per registrare la connessione. GitHub

  • Quando usi il AWS CLI per creare la pipeline, puoi passare il tuo token di accesso GitHub personale in questo campo. Sostituisci gli asterischi (****) con il tuo token di accesso personale copiato da. GitHub Quando si esegue get-pipeline per visualizzare la configurazione dell'operazione, per questo valore viene visualizzata la maschera con quattro asterischi.

  • Quando utilizzi un CloudFormation modello per creare la pipeline, devi prima archiviare il token come indirizzo segreto. AWS Secrets Manager Includete il valore di questo campo come riferimento dinamico al segreto memorizzato in Secrets Manager, ad esempio{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}.

Per ulteriori informazioni sugli GitHub ambiti, consulta la GitHub Developer API Reference sul GitHub sito web.

PollForSourceChanges

Obbligatorio: no

PollForSourceChangescontrolla se esegue il CodePipeline polling nel GitHub repository per le modifiche alla fonte. Si consiglia di utilizzare i webhook per rilevare le modifiche all'origine. Per ulteriori informazioni sulla configurazione dei webhook, vedere Migra le pipeline di polling ai webhook (tramite l'app OAuth) GitHub (azioni di origine) (CLI) o Aggiorna le pipeline per gli eventi push (tramite l'app OAuthGitHub ) (azioni di origine) (CloudFormation modello).

Importante

Se si intende configurare webhook, è necessario impostare PollForSourceChanges su false per evitare esecuzioni di pipeline duplicate.

I valori validi per questo parametro sono:

  • True: se impostato, esegue il CodePipeline polling del repository per le modifiche all'origine.

    Nota

    Se omettiPollForSourceChanges, per CodePipeline impostazione predefinita esegue il polling del tuo repository per le modifiche alla fonte. Questo comportamento è lo stesso se PollForSourceChanges è impostato su true.

  • False: se impostato, CodePipeline non esegue il polling del repository per le modifiche all'origine. Utilizzare questa impostazione se si intende configurare un webhook per rilevare le modifiche all'origine.

Input artifact (Artefatti di input)

  • Numero di artefatti: 0

  • Descrizione: gli artefatti di input non si applicano a questo tipo di azione.

Artefatti di output

  • Numero di artefatti: 1

  • Descrizione: l'artefatto di output di questa azione è un file ZIP che contiene il contenuto del repository configurato e del ramo al commit specificato come revisione di origine per l'esecuzione della pipeline. Gli artefatti generati dal repository sono gli artefatti di output dell'azione. GitHub L'ID di commit del codice sorgente viene visualizzato CodePipeline come revisione di origine per l'esecuzione della pipeline attivata.

Variabili di output

Quando è configurata, questa azione produce variabili che possono essere referenziate dalla configurazione dell'azione di un'azione downstream nella pipeline. Questa azione produce variabili che possono essere viste come variabili di output, anche se l'azione non ha uno spazio dei nomi. È possibile configurare un'azione con uno spazio dei nomi per rendere tali variabili disponibili per la configurazione delle azioni downstream.

Per ulteriori informazioni sulle variabili in CodePipeline, vedere. Riferimento alle variabili

CommitId

L'ID di GitHub commit che ha attivato l'esecuzione della pipeline. Gli ID di commit sono l'SHA completo del commit.

CommitMessage

Il messaggio di descrizione, se presente, associato al commit che ha attivato l'esecuzione della pipeline.

CommitUrl

L'indirizzo URL per il commit che ha attivato la pipeline.

RepositoryName

Il nome del GitHub repository in cui è stato effettuato il commit che ha attivato la pipeline.

BranchName

Il nome del ramo del GitHub repository in cui è stata apportata la modifica al codice sorgente.

AuthorDate

La data in cui il commit è stato creato, in formato timestamp.

CommitterDate

La data in cui è stato eseguito il commit, in formato timestamp.

Dichiarazione di azione (GitHub esempio)

YAML
Name: Source Actions: - InputArtifacts: [] ActionTypeId: Version: '1' Owner: ThirdParty Category: Source Provider: GitHub OutputArtifacts: - Name: SourceArtifact RunOrder: 1 Configuration: Owner: MyGitHubAccountName Repo: MyGitHubRepositoryName PollForSourceChanges: 'false' Branch: main OAuthToken: '{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}' Name: ApplicationSource
JSON
{ "Name": "Source", "Actions": [ { "InputArtifacts": [], "ActionTypeId": { "Version": "1", "Owner": "ThirdParty", "Category": "Source", "Provider": "GitHub" }, "OutputArtifacts": [ { "Name": "SourceArtifact" } ], "RunOrder": 1, "Configuration": { "Owner": "MyGitHubAccountName", "Repo": "MyGitHubRepositoryName", "PollForSourceChanges": "false", "Branch": "main", "OAuthToken": "{{resolve:secretsmanager:MyGitHubSecret:SecretString:token}}" }, "Name": "ApplicationSource" } ] },

Connessione a GitHub (OAuth)

La prima volta che utilizzi la console per aggiungere un GitHub repository a una pipeline, ti viene chiesto di autorizzare CodePipeline l'accesso ai tuoi repository. Il token richiede i seguenti ambiti: GitHub

  • L'ambito repo, utilizzato per il controllo completo per leggere ed estrarre artefatti da repository pubblici e privati in una pipeline.

  • L'ambito admin:repo_hook, utilizzato per il controllo completo di hook di repository.

Quando si utilizza la CLI o un CloudFormation modello, è necessario fornire il valore per un token di accesso personale in cui è già stato creato. GitHub

Le risorse correlate seguenti possono essere utili durante l'utilizzo di questa operazione.