GitHub
Il connettore GitHub ti consente di eseguire operazioni di inserimento, eliminazione, aggiornamento e lettura sui dati di GitHub.
Prima di iniziare
Prima di utilizzare il connettore GitHub, svolgi le seguenti attività:
- Nel tuo progetto Google Cloud:
- Assicurati che la connettività di rete sia configurata. Per informazioni sui pattern di rete, consulta Connettività di rete.
- Concedi il ruolo IAM roles/connectors.admin all'utente che configura il connettore.
- Concedi i seguenti ruoli IAM all'account di servizio che vuoi utilizzare per il connettore:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
Un account di servizio è un tipo speciale di Account Google destinato a rappresentare un utente "non umano" che deve eseguire l'autenticazione ed essere autorizzato ad accedere ai dati nelle API Google. Se non hai un account di servizio, devi crearne uno. Per maggiori informazioni, consulta Creare un account di servizio.
- Attiva i seguenti servizi
secretmanager.googleapis.com
(API Secret Manager)connectors.googleapis.com
(API Connectors)
Per informazioni su come attivare i servizi, consulta Abilitazione dei servizi.
Se questi servizi o autorizzazioni non sono stati attivati in precedenza per il tuo progetto, ti verrà chiesto di attivarli durante la configurazione del connettore.
- In GitHub, in base alle tue esigenze, completa le seguenti attività:
- Crea un account GitHub.
- Crea nuovi repository.
- Creare nuove organizzazioni.
- Creare progetti.
- Crea un'app OAuth.
- Crea un'app GitHub.
Configura il connettore
Per configurare il connettore devi creare una connessione all'origine dati (sistema di backend). Una connessione è specifica per un'origine dati. Ciò significa che se hai molte origini dati, devi creare una connessione distinta per ciascuna. Per creare una connessione:
- Nella console Cloud, vai alla pagina Connettori di integrazione > Connessioni, quindi seleziona o crea un progetto Google Cloud.
- Fai clic su + CREA NUOVO per aprire la pagina Crea connessione.
- Nella sezione Località, scegli la località della connessione.
- Regione: seleziona una località dall'elenco a discesa.
Per l'elenco di tutte le regioni supportate, consulta Località.
- Fai clic su AVANTI.
- Regione: seleziona una località dall'elenco a discesa.
- Nella sezione Dettagli connessione, completa quanto segue:
- Connettore: seleziona GitHub dall'elenco a discesa dei connettori disponibili.
- Versione del connettore: seleziona la versione del connettore dall'elenco a discesa delle versioni disponibili.
- Nel campo Nome connessione, inserisci un nome per l'istanza di connessione.
I nomi delle connessioni devono soddisfare i seguenti criteri:
- I nomi delle connessioni possono contenere lettere, numeri o trattini.
- Le lettere devono essere minuscole.
- I nomi delle connessioni devono iniziare con una lettera e terminare con una lettera o un numero.
- I nomi delle connessioni non possono contenere più di 49 caratteri.
- (Facoltativo) Inserisci una Descrizione per l'istanza di connessione.
- Se vuoi, attiva Cloud Logging e poi seleziona un livello di log. Per impostazione predefinita, il livello di log è impostato su
Error
. - Account di servizio: seleziona un account di servizio con i ruoli richiesti.
- Facoltativamente, specifica OwnerLogin: un nome di accesso univoco che appartiene a un utente o a un'organizzazione.
- (Facoltativo) Specifica Schema: utilizza lo schema per limitare gli schemi recuperati dinamicamente a uno schema di progetto o repository specifico. Per recuperare tutti gli schemi, non specificare alcun valore in questo campo. Per informazioni sugli schemi supportati, consulta Schemi e ambiti.
- (Facoltativo) Configura le impostazioni del nodo di connessione:
- Numero minimo di nodi: inserisci il numero minimo di nodi di connessione.
- Numero massimo di nodi: inserisci il numero massimo di nodi di connessione.
Un nodo è un'unità (o una replica) di una connessione che elabora le transazioni. Sono necessari più nodi per elaborare più transazioni per una connessione e, al contrario, sono necessari meno nodi per elaborare meno transazioni. Per capire in che modo i nodi influiscono sui prezzi dei connettori, consulta Prezzi per i nodi di connessione. Se non inserisci alcun valore, per impostazione predefinita il numero minimo di nodi è impostato su 2 (per una maggiore disponibilità) e il numero massimo di nodi è impostato su 50.
- Se vuoi, fai clic su + AGGIUNGI ETIQUETTA per aggiungere un'etichetta alla connessione sotto forma di coppia chiave/valore.
- Fai clic su AVANTI.
- Nella sezione Destinazioni, inserisci i dettagli dell'host remoto (sistema di backend) a cui vuoi connetterti.
- Tipo di destinazione: seleziona un Tipo di destinazione.
- Seleziona Indirizzo host dall'elenco per specificare il nome host o l'indirizzo IP della destinazione.
- Se vuoi stabilire una connessione privata ai tuoi sistemi di backend, seleziona Allegato endpoint dall'elenco, quindi seleziona l'allegato endpoint richiesto dall'elenco Allegato endpoint.
Se vuoi stabilire una connessione pubblica ai tuoi sistemi di backend con una maggiore sicurezza, puoi prendere in considerazione la configurazione di indirizzi IP statici in uscita per le tue connessioni, quindi configurare le regole del firewall in modo da inserire nella lista consentita solo gli indirizzi IP statici specifici.
Per inserire destinazioni aggiuntive, fai clic su + AGGIUNGI DESTINAZIONE.
- Fai clic su AVANTI.
- Tipo di destinazione: seleziona un Tipo di destinazione.
-
Nella sezione Autenticazione, inserisci i dettagli di autenticazione.
Per capire come configurare questi tipi di autenticazione, consulta Configurare l'autenticazione.
- Fai clic su AVANTI.
- Rivedi: controlla i dettagli di connessione e autenticazione.
- Fai clic su Crea.
Configura autenticazione
Inserisci i dettagli in base all'autenticazione che vuoi utilizzare.
- ID client: l'ID client utilizzato per richiedere i token di accesso.
- Ampiezze: un elenco separato da virgole degli ambiti desiderati.
- Client secret: il segreto di Secret Manager contenente il client secret per l'app collegata che hai creato.
Esempi di configurazione delle connessioni
Questa sezione elenca i valori di esempio per i vari campi che configuri durante la creazione della connessione.
OAuth 2.0 - tipo di connessione con codice di autorizzazione
Nome campo Dettagli Località europe-west1 Connettore GitHub Versione del connettore 1 Nome collegamento GitHub-connector Abilita Cloud Logging No Account di servizio Your_Project_Number@serviceaccount OwnerLogin souvikg-Your_Owner_Login Schema Numero minimo di nodi 2 Numero massimo di nodi 50 ID client IDCliente Ambiti repo repo:status repo_deployment Client secret Client secret Versione secret 1 Schemi e ambiti di GitHub
Il connettore GitHub supporta i seguenti schemi:- Schema di informazioni: questo schema contiene tabelle con informazioni sulle licenze e panoramiche di alto livello dei progetti e dei repository associati all'account autenticato. Esiste un solo schema di informazioni. Per recuperare lo schema delle informazioni, specifica quanto segue nel campo dello schema: Informazioni
- Schema del repository: il connettore supporta lo schema per ogni repository nell'account dell'utente o dell'organizzazione autenticati. Utilizza il seguente formato per specificare uno schema del repository: Repository_
. - Schema del progetto: il connettore supporta lo schema per ogni progetto nell'account dell'utente o dell'organizzazione autenticati. Utilizza il seguente formato per specificare uno schema di progetto: Progetto_
Per maggiori informazioni sugli ambiti, consulta Ambiti di GitHub.
Entità, operazioni e azioni
Tutti gli Integration Connectors forniscono un livello di astrazione per gli oggetti dell'applicazione collegata. Puoi accedere agli oggetti di un'applicazione solo tramite questa astrazione. L'astrazione viene mostrata come entità, operazioni e azioni.
- Entità : un'entità può essere considerata un oggetto o una raccolta di proprietà nell'applicazione o nel servizio collegato. La definizione di un'entità varia da un connettore all'altro. Ad esempio, in un connettore di database le tabelle sono le entità, in un connettore di file server le cartelle sono le entità e in un connettore di sistema di messaggistica le code sono le entità.
Tuttavia, è possibile che un connettore non supporti o non abbia entità, nel qual caso l'elenco
Entities
sarà vuoto. - Operazione: un'operazione è l'attività che puoi eseguire su un'entità. Puoi eseguire su un'entità una delle seguenti operazioni:
La selezione di un'entità dall'elenco disponibile genera un elenco di operazioni disponibili per l'entità. Per una descrizione dettagliata delle operazioni, consulta le operazioni sulle entità dell'attività Connettori. Tuttavia, se un connettore non supporta nessuna delle operazioni sulle entità, queste operazioni non supportate non sono elencate nell'elenco
Operations
. - Azione : un'azione è una funzione di prima classe resa disponibile all'integrazione tramite l'interfaccia del connettore. Un'azione ti consente di apportare modifiche a una o più entità e varia da un connettore all'altro. In genere, un'azione avrà alcuni parametri di input e un parametro di output. Tuttavia, è possibile
che un connettore non supporti alcuna azione, nel qual caso l'elenco
Actions
sarà vuoto.
Limitazioni del sistema
Il connettore GitHub può elaborare 2 transazioni al secondo per nodo e limita le transazioni oltre questo limite. Per impostazione predefinita, Integration Connectors alloca 2 nodi (per una maggiore disponibilità) per una connessione.
Per informazioni sui limiti applicabili a Integration Connectors, vedi Limiti.
Azione
Questa sezione elenca l'azione supportata dal connettore GitHub. Per capire come configurare l'azione, consulta Esempi di azioni.
Azione UpdatePullRequestBranch
Questa azione aggiorna il ramo della richiesta di pull.
Parametri di input dell'azione UpdatePullRequestBranch
Nome Tipo Descrizione PullRequestId string L'ID nodo della richiesta pull. ExpectedHeadOid string L'OID della referenza principale per il ramo upstream. UpdateMethod string Il metodo di aggiornamento del ramo da utilizzare. Il valore predefinito è "MERGE". I valori consentiti sono MERGE e REBASE. Parametri di output dell'azione AppsDeployStatus
Questa azione restituisce lo stato 200 (OK) e aggiorna il ramo della richiesta di pull.
Per esempio, per sapere come configurare l'azione
UpdatePullRequestBranch
, consulta Esempi.Azione MergePullRequest
Questa azione unisce la richiesta pull.
Parametri di input dell'azione MergePullRequest
Nome Tipo Descrizione PullRequestId string L'ID nodo della richiesta di pull da unire. ExpectedHeadOid string OID a cui deve corrispondere il riferimento dell'elemento principale della richiesta di pull per consentire l'unione. Se omesso, non viene eseguito alcun controllo. CommitHeadline string Titolo del commit da utilizzare per il commit di unione. Se omesso, viene utilizzato un messaggio predefinito. CommitBody string Testo del commit da utilizzare per il commit di unione. Se omesso, viene utilizzato un messaggio predefinito. MergeMethod string Il metodo di unione da utilizzare. Il valore predefinito è "MERGE". I valori consentiti sono MERGE, SQUASH e REBASE. AuthorEmail string L'indirizzo email da associare a questa unione. Parametri di output dell'azione MergePullRequest
Questa azione restituisce lo stato 200 (OK) e unisce la richiesta pull.
Per esempio, per sapere come configurare l'azione
MergePullRequest
, consulta Esempi.Esempi di azioni
Questa sezione descrive come eseguire alcune delle azioni in questo connettore.
Esempio: UpdatePullRequestBranch
Questo esempio recupera gli stati di deployment dell'applicazione.
- Nella finestra di dialogo
Configure connector task
, fai clic suAction
. - Seleziona l'azione
UpdatePullRequestBranch
e poi fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "PullRequestId": "PR_kwDOLywhW8537gcA" }
Se l'azione ha esito positivo, il parametro risposta
connectorOutputPayload
della taskUpdatePullRequestBranch
avrà un valore simile al seguente:{ "pullrequestid": "PR_kwDOLywhW8537gcA" }
Esempio: MergePullRequest
Questo esempio unisce una richiesta pull.
- Nella finestra di dialogo
Configure connector task
, fai clic suAction
. - Seleziona l'azione
MergePullRequest
e poi fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "PullRequestId": "PR_kwDOLywhW8537gcA", "CommitHeadline": "Google MERGE", "CommitBody": "This is Google Merge" }
Se l'azione ha esito positivo, il parametro risposta
connectorOutputPayload
della taskMergePullRequest
avrà un valore simile al seguente:{ "pullrequestid": "PR_kwDOLywhW8537gcA" }
Esempi di operazioni sulle entità
Questa sezione mostra come eseguire alcune delle operazioni sulle entità in questo connettore.
Esempio: elenca tutti i rami
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Branches
dall'elencoEntity
. - Seleziona l'operazione
List
e poi fai clic su Fine. - Nella sezione Input dell'attività dell'attività Connettori, puoi impostare la clausola filterClause in base alle tue esigenze.
Esempio: elenca tutti i commit
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Commits
dall'elencoEntity
. - Seleziona l'operazione
List
e poi fai clic su Fine. - Nella sezione Input dell'attività dell'attività Connettori, puoi impostare la clausola filterClause in base alle tue esigenze.
Considerazioni
- Commits è il nome dell'entità. Devi passare il valore per la clausola di filtro utilizzando virgolette singole ("), ad esempio Città="Redwood City". dove Città è il nome della colonna e Redwood city è il valore.
- Puoi utilizzare la clausola filtro per filtrare i record in base alle colonne. Ad esempio, se ci sono 20 record con
name = demo16975280986860
, possiamo filtrare i record con la colonna Address='Redwood City' e region='us-east1'.
Puoi eseguire l'operazione Elenca sulle seguenti entità:
CommitComments, Forks, IssueComments, Issue, IssueAssignees, AssignableUser,Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Releases, Watcher, Users, Repositories, Collaborators, OrganizationTeams, OrganizationsMannequins, OrganizationMember, Organization, Licenses, LicensePermission, LicenseLimitation, LicenseConditions, Projects e PullRequestReviewRequests
Esempio: ottieni un record Branches
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Branches
dall'elencoEntity
. - Seleziona l'operazione
Get
e poi fai clic su Fine. - Qui l'ID entità è impostato su 4. Per impostare l'ID entità, nella sezione Input dell'attività dell'attività Connettori, fai clic su EntityId e poi inserisci
4
nel campo Valore predefinito.
Esempio: ottieni un record Repositories
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Repositories
dall'elencoEntity
. - Seleziona l'operazione
Get
e poi fai clic su Fine. - Imposta l'ID entità su 4, che è la chiave da passare. Per impostare l'ID entità, nella sezione Input dell'attività dell'attività Connettori, fai clic su EntityId e poi inserisci
4
nel campo Valore predefinito.
In alcuni casi, l'invio di un singolo ID entità può causare un errore a causa di due chiavi composite. In questi casi, utilizza la clausola filtro con le colonne necessarie.
Per le visualizzazioni, l'operazione Get non funziona perché le visualizzazioni non hanno chiavi primarie. In alternativa, puoi utilizzare l'operazione Elenca con filtri sulle visualizzazioni, che funziona in modo simile all'operazione Get.
Puoi eseguire l'operazione Get sulle seguenti entità:
CommitComments, Commits, IssueAssignees, Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Release, Topics, Users, Collaborators, Organizations e Licenses
Esempio: crea un record Problemi
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Issues
dall'elencoEntity
. - Seleziona l'operazione
Create
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "Title": "Google_Cloud_GitHub_Issues_Create", "Body": "Please check hence raising the Feature Request for the same." }
L'esecuzione di questo esempio restituisce una risposta simile alla seguente nella variabile di output
connectorOutputPayload
del compito del connettore:{ "Id": "I_kwDOLywhW86Sd-xF" }
Esempio: crea un record PullRequests
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
PullRequests
dall'elencoEntity
. - Seleziona l'operazione
Create
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "BaseRefName": "main", "HeadRefName": "New_Branch", "Title": "DEMO_Google_Cloud_PULLRequest", "Body": "This is demo Google_Cloud pull" }
L'esecuzione di questo esempio restituisce una risposta simile alla seguente nella variabile di output
connectorOutputPayload
del compito del connettore:{ "Id": "PR_kwDOLywhW8537gcA" }
Esempio: crea un record Repositories
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Repositories
dall'elencoEntity
. - Seleziona l'operazione
Create
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "Name": "Google_Cloud_DEMO_REPO", "OwnerId": "O_kgDOCaxLsg", "Visibility": "PUBLIC" }
L'esecuzione di questo esempio restituisce una risposta simile alla seguente nella variabile di output
connectorOutputPayload
del compito del connettore:{ "Id": "R_kgDOMhWBEQ" }
Esempio: aggiorna un record Problemi
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Issues
dall'elencoEntity
. - Seleziona l'operazione
Update
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "Title": "New_Updated_Google_Cloud_Issue", "Body": "Newly Updated from Google_Cloud" }
- Imposta il valore di entityId su I_kwDOLywhW86Sd-xF. Per impostare il valore per filterClause,
fai clic su entityId e poi inserisci
I_kwDOLywhW86Sd-xF
nel campo Valore predefinito.L'esecuzione di questo esempio restituisce una risposta simile alla seguente nella variabile di output
connectorOutputPayload
del compito del connettore:{ "Id": "I_kwDOLywhW86Sd-xF" }
Esempio: aggiorna un record PullRequests
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
PullRequests
dall'elencoEntity
. - Seleziona l'operazione
Update
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "Title": "Updated_Google_Cloud_PULL", "Body": "Update New pull Body" }
- Imposta il valore di entityId su PR_kwDOLywhW8537gcA. Per impostare il valore per filterClause,
fai clic su entityId e poi inserisci
PR_kwDOLywhW8537gcA
nel campo Valore predefinito.L'esecuzione di questo esempio restituisce una risposta simile alla seguente nella variabile di output
connectorOutputPayload
del compito del connettore:{ "Id": "PR_kwDOLywhW8537gcA" }
Esempio: aggiorna un record Repositories
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
Repositories
dall'elencoEntity
. - Seleziona l'operazione
Update
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
e poi inserisci un valore simile al seguente nel campoDefault Value
:{ "Name": "Updated_New_Google_Cloud_Repo" }
- Imposta il valore di entityId su R_kgDOMhWBEQ. Per impostare il valore per filterClause,
fai clic su entityId e poi inserisci
R_kgDOMhWBEQ
nel campo Valore predefinito.L'esecuzione di questo esempio restituisce una risposta simile alla seguente nella variabile di output
connectorOutputPayload
del compito del connettore:{ "Id": "R_kgDOMhWBEQ" }
Esempio: elimina un record PullRequestReviewRequests
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona
PullRequestReviewRequests
dall'elencoEntity
. - Seleziona l'operazione
Delete
e poi fai clic su Fine. - Imposta il valore per filterClause,
fai clic su filterClause e poi inserisci
PullRequestId= 'PR_kwDOLywhW85yNWPa' and RequestedReviewerUserId= 'U_kgDOCebPLA'
nel campo Valore predefinito.
In questo esempio, PullRequestReviewRequests è il nome della tabella e il valore per filterClause deve essere passato direttamente.
Ad esempio, PullRequestId= 'PR_kwDOLywhW85yNWPa' e RequestedReviewerUserId= 'U_kgDOCebPLA'.
Qui, PullRequestId= 'PR_kwDOLywhW85yNWPa' e RequestedReviewerUserId= 'U_kgDOCebPLA' sono i valori univoci della chiave primaria che devono essere trasmessi.Utilizzare la connessione GitHub in un'integrazione
Una volta creata, la connessione diventa disponibile sia nell'Apigee Integration sia nell'Application Integration. Puoi utilizzare la connessione in un'integrazione tramite l'attività Connettori.
- Per informazioni su come creare e utilizzare l'attività Connectors in Apigee Integration, consulta Attività Connectors.
- Per informazioni su come creare e utilizzare l'attività Connettori in Application Integration, consulta Attività Connettori.
Ricevere assistenza dalla community Google Cloud
Puoi pubblicare le tue domande e discutere di questo connettore nella community Google Cloud ai forum di Cloud.Passaggi successivi
- Scopri come sospendere e riprendere una connessione.
- Scopri come monitorare l'utilizzo dei connettori.
- Scopri come visualizzare i log del connettore.