Amministratori e sviluppatori di Code Stream possono integrare Code Stream con il ciclo di vita di Git utilizzando il trigger Gerrit. Quando si modifica il codice in GitHub, GitLab o Bitbucket Enterprise, l'evento comunica con Code Stream tramite un webhook e attiva una pipeline. Il webhook funziona con le versioni Enterprise locali di GitLab, GitHub e Bitbucket quando sia Cloud Assembly sia la versione Enterprise sono raggiungibili nella stessa rete.
Quando si aggiunge il webhook per Git in
Code Stream, crea un webhook anche nel repository GitHub, GitLab o Bitbucket. Se si aggiorna o si elimina il webhook in un secondo momento, tale azione comporta l'aggiornamento o l'eliminazione del webhook anche in GitHub, GitLab o Bitbucket.
La definizione del webhook deve includere un endpoint Git nel ramo del repository che si desidera monitorare. Per creare il webhook, Code Stream utilizza l'endpoint Git. Se l'endpoint non esiste, è possibile crearlo quando si aggiunge il webhook. In questo esempio si presuppone l'esistenza di un endpoint Git predefinito in GitHub.
Nota: Per creare un webhook, l'endpoint Git deve utilizzare un token privato per l'autenticazione. Non può utilizzare una password.
È possibile creare più webhook per rami diversi utilizzando lo stesso endpoint Git e specificando valori diversi per il nome del ramo nella pagina di configurazione del webhook. Per creare un altro webhook per un altro ramo nello stesso repository Git, non è necessario clonare l'endpoint Git più volte per più rami. È infatti sufficiente specificare il nome del ramo nel webhook in modo da poter riutilizzare l'endpoint Git. Se il ramo nel webhook Git è lo stesso ramo dell'endpoint, non è necessario specificare il nome del ramo nella pagina del webhook Git.
In questo esempio viene illustrato come utilizzare il trigger Git con un repository di GitHub, ma i prerequisiti includono i preparativi necessari se viene utilizzato un altro tipo di server Git.
Prerequisiti
- Verificare di essere un membro di un progetto in Code Stream. In caso contrario, chiedere a un amministratore di Code Stream di essere aggiunti come membri di un progetto. Vedere Come aggiungere un progetto in Code Stream.
- Assicurarsi di disporre di un endpoint Git nel ramo GitHub che si desidera monitorare. Vedere Come integrare Code Stream con Git.
- Verificare di disporre dei diritti necessari per creare un webhook nel repository Git.
- Se si configura un webhook in GitLab, modificare le impostazioni di rete predefinite in GitLab Enterprise per attivare le richieste in uscita e consentire la creazione di webhook locali.
Nota: Questa modifica è necessaria solo per GitLab Enterprise. Queste impostazioni non si applicano a GitHub o Bitbucket.
- Accedere all'istanza di GitLab Enterprise come amministratore.
- Passare alle impostazioni di rete utilizzando un URL, ad esempio
http://{gitlab-server}/admin/application_settings/network
.
- Espandere Richieste in uscita e fare clic su:
- Consenti richieste alla rete locale dal webhook e dai servizi.
- Consenti richieste alla rete locale dall'hook di sistema.
- Per le pipeline che si desidera attivare, verificare di aver impostato le proprietà di input per inviare i parametri Git quando viene eseguita la pipeline.
Per informazioni sulla creazione dei parametri di input, vedere Pianificazione di una creazione nativa di integrazione e consegna continue in Code Stream prima dell'aggiunta manuale di attività.
Procedura
- In Code Stream, fare clic su .
- Fare clic sulla scheda Webhook per Git, quindi su Nuovo webhook per Git.
- Selezionare un progetto.
- Immettere un nome e una descrizione significativi per il webhook.
- Selezionare un endpoint Git configurato per il ramo che si desidera monitorare.
Quando si crea il webhook, la definizione del webhook include i dettagli dell'endpoint corrente.
- Se in seguito si modifica il tipo Git, il tipo di server Git o l'URL del repository Git nell'endpoint, il webhook non sarà più in grado di attivare una pipeline poiché tenterà di accedere al repository Git utilizzando i dettagli dell'endpoint originale. È necessario eliminare il webhook e crearlo di nuovo con l'endpoint.
- Se in seguito si modifica il tipo di autenticazione, il nome utente o il token privato nell'endpoint, il webhook continuerà a funzionare.
- Se si utilizza un repository BitBucket, l'URL del repository deve essere in uno di questi formati:
https://api.bitbucket.org/{user}/{repo name}
o http(s)://{bitbucket-enterprise-server}/rest/api/1.0/users/{username}/repos/{repo name}
.
Nota: Se in precedenza è stato creato un webhook utilizzando un endpoint Git che utilizza una password per l'autenticazione di base, è necessario eliminare e ridefinire il webhook con un endpoint Git che utilizza un token privato per l'autenticazione.
Vedere
Come integrare Code Stream con Git.
- (Facoltativo) Immettere il ramo di cui si desidera monitorare il webhook.
Se il ramo non viene specificato, il webhook monitora il ramo configurato per l'endpoint Git.
- (Facoltativo) Generare un token segreto per il webhook.
Se si utilizza un token segreto,
Code Stream genera un token di stringa casuale per il webhook. Quindi, quando il webhook riceve i dati dell'evento Git, invia i dati con il token segreto.
Code Stream utilizza le informazioni per stabilire se le chiamate provengono dall'origine prevista, ad esempio il ramo, il repository o l'istanza configurati di GitHub. Il token segreto offre un livello aggiuntivo di sicurezza. utilizzato per verificare che i dati dell'evento Git provengano dall'origine corretta.
- (Facoltativo) Specificare inclusioni o esclusioni di file come condizioni per il trigger.
- Inclusioni di file. Se uno qualsiasi dei file in un commit corrisponde ai file specificati nel regex o nei percorsi di inclusione, il commit attiva le pipeline. Con un regex specificato, Code Stream attiva le pipeline solo quando i nomi di file nell'insieme di modifiche corrispondono all'espressione fornita. Il filtro regex è utile quando si configura un trigger per più pipeline in un singolo repository.
- Esclusioni di file. Quando tutti file in un commit corrispondono ai file specificati nel regex o nei percorsi di esclusione, le pipeline non vengono attivate.
- Assegnazione di priorità alle esclusioni. Quando è attivata, l'opzione Assegna priorità all'esclusione garantisce che le pipeline non vengano attivate anche se uno qualsiasi dei file di un commit corrisponde ai file specificati nel regex o nei percorsi di esclusione. L'opzione è disattivata per impostazione predefinita.
Se le condizioni soddisfano sia l'inclusione di file sia l'esclusione di file, le pipeline non vengono attivate.
Nell'esempio seguente sia le inclusioni che le esclusioni sono condizioni per l'attivazione.
- Per le inclusioni dei file, un commit con una modifica a runtime/src/main/a.java o a qualsiasi file Java attiva le pipeline configurate nella configurazione dell'evento.
- Per le esclusioni dei file, solo un commit con modifiche in entrambi i file non attiva le pipeline configurate nelle configurazioni dell'evento.
- Per l'evento Git, selezionare una richiesta Push o Pull.
- Immettere il token dell'API.
Il token dell'API VMware Cloud Services autentica l'utente per le connessioni API esterne con
Code Stream. Per ottenere il token API:
- Fare clic su Genera Token.
- Immettere l'indirizzo e-mail associato al nome utente e alla password, quindi fare clic su Genera.
Il token generato è valido per sei mesi. È anche noto come token di aggiornamento.
- Per mantenere il token come una variabile per un utilizzo futuro, fare clic su Crea variabile, assegnare un nome alla variabile e fare clic su Salva.
- Per mantenere il token come valore di testo per un utilizzo futuro, fare clic su Copia e incollare il token in un file di testo da salvare in locale.
È possibile scegliere di creare una variabile e archiviare il token in un file di testo per un utilizzo futuro.
- Fare clic su Chiudi.
- Selezionare la pipeline per il webhook da attivare.
Se la pipeline include parametri di input aggiunti personalizzati, nell'elenco Parametri di input vengono visualizzati i parametri e i valori. È possibile immettere valori per i parametri di input che vengono passati alla pipeline con l'evento trigger. Oppure è possibile lasciare vuoti i valori o utilizzare i valori predefiniti, se sono specificati.
Per informazioni sui parametri di input di invio automatico per i trigger Git, vedere i Prerequisiti.
- Fare clic su Crea.
Il webhook viene visualizzato come nuova scheda.
- Fare clic sulla scheda del webhook.
Quando viene visualizzato nuovamente il modulo dei dati del webhook, nella parte alta è presente un URL. Il webhook Git si connette al repository GitHub tramite l'URL del webhook.
- In una nuova finestra del browser, aprire il repository GitHub che si connette tramite il webhook.
- Per visualizzare il webhook aggiunto in Code Stream, fare clic sulla scheda Impostazioni e selezionare Webhook.
Nella parte inferiore dell'elenco dei webhook viene visualizzato lo stesso URL del webhook.
- Per apportare una modifica al codice, fare clic sulla scheda Codice e selezionare un file nel ramo. Dopo aver modificato il file, eseguire il commit della modifica.
- Per verificare che l'URL del webhook funzioni, fare clic sulla scheda Impostazioni e selezionare nuovamente Webhook.
Nella parte inferiore dell'elenco dei webhook viene visualizzato un segno di spunta verde accanto all'URL del webhook.
- Tornare a Code Stream per visualizzare l'attività sul webhook Git. Fare clic su .
In Stato esecuzione verificare che l'esecuzione della pipeline sia stata avviata.
- Fare clic su Esecuzioni e tenere traccia della pipeline durante l'esecuzione.
Per osservare l'esecuzione della pipeline, è possibile fare clic su Aggiorna.
risultati
Congratulazioni! Il trigger per Git è stato utilizzato correttamente.