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, esegui le seguenti attività:
- Nel tuo progetto Google Cloud:
- Concedi il ruolo IAM roles/connectors.admin all'utente. configurazione del 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 abilitati in precedenza per il tuo progetto, ti viene chiesto di abilitarli 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.
- Creare 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. it significa che se hai molte origini dati, devi creare una connessione separata per ogni origine dati. Per creare una connessione:
- Nella console Cloud, vai a Connettori di integrazione > Pagina Connessioni e poi selezionare o creare 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 i seguenti passaggi:
- 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.
- Facoltativamente, 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, 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.
- Facoltativamente, fai clic su + AGGIUNGI ETICHETTA 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 maggiore sicurezza, puoi valuta la possibilità di configurare una rete statica in uscita indirizzi IP per le tue connessioni, quindi configura le regole del firewall per inserire nella lista consentita solo gli indirizzi IP statici specifici.
Per inserire altre destinazioni, 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.
- Verifica: controlla i dettagli della connessione e dell'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.
- Ambiti: un elenco separato da virgole degli ambiti desiderati.
- Client Secret: secret di Secret Manager contenente il client secret per l'app connessa che hai creato.
Esempi di configurazione della connessione
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 Connettore-GitHub 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 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 ciascun repository nell'account dell'utente o dell'organizzazione autenticato. Utilizza il formato seguente per specificare uno schema di repository: Repository_
. - Schema del progetto: il connettore supporta lo schema per ogni progetto nell'account dell'utente o dell'organizzazione autenticati. Utilizza il formato seguente per specificare uno schema di progetto: Project_
Per saperne di più sugli ambiti, consulta la pagina sugli ambiti 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 ti viene esposta sotto forma di 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à,
connettore file server, le cartelle sono le entità e, in un connettore del 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 è possibile eseguire su un'entità. Puoi eseguire
una qualsiasi delle seguenti operazioni su un'entità:
La selezione di un'entità dall'elenco disponibile genera un elenco di operazioni disponibili per l'entità. Per una descrizione dettagliata delle operazioni, consulta operazioni relative a entità. Tuttavia, se un connettore non supporta nessuna delle operazioni relative all'entità, come quelle non supportate operazioni 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. Normalmente, un'azione ha alcuni parametri di input e un output
. Tuttavia, è possibile
che un connettore non supporta alcuna azione, nel qual caso l'elenco
Actions
sarà vuoto.
Limitazioni di sistema
Il connettore GitHub può elaborare due transazioni al secondo, per nodo, e throttles qualsiasi transazione oltre questo limite. Per impostazione predefinita, Integration Connectors alloca due nodi (per una migliore 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 vedi 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 di riferimento della testa per il ramo a monte. UpdateMethod string Il metodo di ramo di aggiornamento 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.
Ad esempio su come configurare l'azione
UpdatePullRequestBranch
consulta gli Esempi.Azione MergePullRequest
Questa azione unisce la richiesta di pull.
Parametri di input dell'azione MergePullRequest
Nome Tipo Descrizione PullRequestId string L'ID nodo della richiesta di pull da unire. ExpectedHeadOid string OID che deve corrispondere all'intestazione 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 di pull.
Per esempio, per sapere come configurare l'azione
MergePullRequest
, consulta Esempi.Esempi di azioni
In questa sezione viene descritto come eseguire alcune 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
, quindi inserisci un valore simile al seguente nella 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
, quindi inserisci un valore simile al seguente nella CampoDefault Value
:{ "PullRequestId": "PR_kwDOLywhW8537gcA", "CommitHeadline": "Google MERGE", "CommitBody": "This is Google Merge" }
Se l'azione viene eseguita correttamente, Risposta
connectorOutputPayload
dell'attivitàMergePullRequest
avrà un valore simile al seguente:{ "pullrequestid": "PR_kwDOLywhW8537gcA" }
Esempi di operazioni con entità
Questa sezione mostra come eseguire alcune delle operazioni relative alle entità in questo connettore.
Esempio - Operazione LIST per l'entità "Filiali"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona Filiali dall'elenco
Entity
. - Seleziona l'operazione
LIST
e fai clic su Fine. - Sezione Input attività dell'attività Connettori, puoi impostare filterClause in base al requisito del cliente. Consulta la sezione Nota di seguito
In questo esempio, branches è il nome dell'entità e il valore per la clausola di filtro deve essere sempre passato tra virgolette singole ("), ad esempio City='Pune'. Città è il nome della colonna e Pune è il valore
Puoi utilizzare la clausola Filtra per filtrare un determinato insieme di record in base alle colonne. Se sono presenti 20 record con name = demo16975280986860, puoi filtrare i record con la colonna Address='Miami' e region='us-east1'.
Puoi eseguire operazioni LIST sulle seguenti entità:
Commit,CommitComments, Fork, IssueComments, Issue, IssueAssignees,AssignableUser,Labels, Milestones, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Release, Watcher, Utenti, Repositories, collaboratori, OrganizationTeams, OrganizationMannequins, OrganizationMember, organizzazione, LicenseReviews, LicensePermission, LicenseLimitation, LicenseRequests
Esempio - Operazione GET per l'entità "Filiale"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona Filiali dall'elenco
Entity
. - Seleziona l'operazione
GET
e fai clic su Fine. - Imposta l'ID entità su 4, che corrisponde alla chiave da passare. Per impostare l'ID entità, in
Nella sezione Input attività dell'attività Connettori, fai clic su EntityId e
quindi inserisci
4
nel campo Valore predefinito.
In questo esempio, branches è il nome dell'entità e il valore dell'ID entità deve essere passato direttamente, ad esempio 4. Se la trasmissione di un singolo ID entità genera un errore a causa di due chiavi composte, utilizzi la clausola di filtro con le colonne richieste
Esempio: operazione GET per l'entità "Repositories"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona Repository dall'elenco
Entity
. - 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 questo esempio, Repositories è il nome dell'entità e il valore per Entity Id deve essere passato direttamente, ad esempio 4. Se la trasmissione di un singolo ID entità genera un errore a causa di due chiavi composte, utilizzi la clausola di filtro con le colonne richieste
Puoi eseguire operazioni GET sulle seguenti entità:
CommitComments, Commit, IssueAssignees, Etichette, Milestone, PullRequestReviews, PullRequests, PullRequestComments, ReleaseAssets, Release, Topics, Utenti, Collaboratori, Organizzazioni e Licenze.
Esempio - Operazione CREATE per l'entità "Problemi"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona Problemi dall'elenco
Entity
. - 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
dell'attività:{ "Id": "I_kwDOLywhW86Sd-xF" }
Esempio: operazione CREATE per l'entità "PullRequests"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona PullRequests dall'elenco
Entity
. - 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
dell'attività:{ "Id": "PR_kwDOLywhW8537gcA" }
Esempio: operazione CREATE per l'entità "Repositories"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona Repository dall'elenco
Entity
. - 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
dell'attività:{ "Id": "R_kgDOMhWBEQ" }
Esempio - Operazione UPDATE per l'entità "Problemi"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona Problemi dall'elenco
Entity
. - Seleziona l'operazione
UPDATE
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
, quindi inserisci un valore simile al seguente nella 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 - Operazione di UPDATE per l'entità "PullRequests"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona PullRequests dall'elenco
Entity
. - 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 inserisci
PR_kwDOLywhW8537gcA
in Default Value (Valore predefinito) .L'esecuzione di questo esempio restituisce una risposta simile alla seguente nella variabile di output
connectorOutputPayload
dell'attività:{ "Id": "PR_kwDOLywhW8537gcA" }
Esempio: operazione UPDATE per l'entità "Repositories"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona Repository dall'elenco
Entity
. - Seleziona l'operazione
UPDATE
e fai clic su Fine. - Nella sezione Input attività dell'attività Connettori, fai clic su
connectorInputPayload
, quindi inserisci un valore simile al seguente nella 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
dell'attività:{ "Id": "R_kgDOMhWBEQ" }
Esempio: operazione DELETE per l'entità "PullRequestReviewRequests"
- Nella finestra di dialogo
Configure connector task
, fai clic suEntities
. - Seleziona PullRequestReviewRequests dall'elenco
Entity
. - Seleziona l'operazione
DELETE
e poi fai clic su Fine. - Imposta il valore per filterClause,
fai clic su filterClause e inserisci
PullRequestId= 'PR_kwDOLywhW85yNWPa' and RequestedReviewerUserId= 'U_kgDOCebPLA'
in Default Value (Valore predefinito) .
- Per capire come creare e utilizzare l'attività Connectors in Apigee Integration, vedi Attività connettori.
- Per informazioni su come creare e utilizzare l'attività Connettori in Application Integration, consulta Attività Connettori.
- Scopri come sospendere e riprendere una connessione.
- Scopri come monitorare l'utilizzo dei connettori.
- Scopri come visualizzare i log del connettore.
Utilizza la connessione GitHub in un'integrazione
Una volta creata, la connessione diventa disponibile sia nell'integrazione Apigee sia nell'integrazione delle applicazioni. Puoi usare la connessione in un'integrazione tramite l'attività Connettori.