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à:

    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:

    1. Nella console Cloud, vai alla pagina Connettori di integrazione > Connessioni, quindi seleziona o crea un progetto Google Cloud.

      Vai alla pagina Connessioni

    2. Fai clic su + CREA NUOVO per aprire la pagina Crea connessione.
    3. Nella sezione Località, scegli la località della connessione.
      1. Regione: seleziona una località dall'elenco a discesa.

        Per l'elenco di tutte le regioni supportate, consulta Località.

      2. Fai clic su AVANTI.
    4. Nella sezione Dettagli connessione, completa quanto segue:
      1. Connettore: seleziona GitHub dall'elenco a discesa dei connettori disponibili.
      2. Versione del connettore: seleziona la versione del connettore dall'elenco a discesa delle versioni disponibili.
      3. 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.
      4. (Facoltativo) Inserisci una Descrizione per l'istanza di connessione.
      5. Se vuoi, attiva Cloud Logging e poi seleziona un livello di log. Per impostazione predefinita, il livello di log è impostato su Error.
      6. Account di servizio: seleziona un account di servizio con i ruoli richiesti.
      7. Facoltativamente, specifica OwnerLogin: un nome di accesso univoco che appartiene a un utente o a un'organizzazione.
      8. (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.
      9. (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.

      10. Se vuoi, fai clic su + AGGIUNGI ETIQUETTA per aggiungere un'etichetta alla connessione sotto forma di coppia chiave/valore.
      11. Fai clic su AVANTI.
    5. Nella sezione Destinazioni, inserisci i dettagli dell'host remoto (sistema di backend) a cui vuoi connetterti.
      1. 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.

      2. Fai clic su AVANTI.
    6. Nella sezione Autenticazione, inserisci i dettagli di autenticazione.

      Per capire come configurare questi tipi di autenticazione, consulta Configurare l'autenticazione.

    7. Fai clic su AVANTI.
    8. Rivedi: controlla i dettagli di connessione e autenticazione.
    9. 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.

    1. Nella finestra di dialogo Configure connector task, fai clic su Action.
    2. Seleziona l'azione UpdatePullRequestBranch e poi fai clic su Fine.
    3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
            {
          "PullRequestId": "PR_kwDOLywhW8537gcA"
            } 
        
    4. Se l'azione ha esito positivo, il parametro risposta connectorOutputPayload della task UpdatePullRequestBranch avrà un valore simile al seguente:

             {
          "pullrequestid": "PR_kwDOLywhW8537gcA"
             } 
        

    Esempio: MergePullRequest

    Questo esempio unisce una richiesta pull.

    1. Nella finestra di dialogo Configure connector task, fai clic su Action.
    2. Seleziona l'azione MergePullRequest e poi fai clic su Fine.
    3. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
            {
          "PullRequestId": "PR_kwDOLywhW8537gcA",
          "CommitHeadline": "Google MERGE",
          "CommitBody": "This is Google Merge"
            }
        
    4. Se l'azione ha esito positivo, il parametro risposta connectorOutputPayload della task MergePullRequest 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Branches dall'elenco Entity.
    3. Seleziona l'operazione List e poi fai clic su Fine.
    4. Nella sezione Input dell'attività dell'attività Connettori, puoi impostare la clausola filterClause in base alle tue esigenze.

    Esempio: elenca tutti i commit

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Commits dall'elenco Entity.
    3. Seleziona l'operazione List e poi fai clic su Fine.
    4. 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Branches dall'elenco Entity.
    3. Seleziona l'operazione Get e poi fai clic su Fine.
    4. 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Repositories dall'elenco Entity.
    3. Seleziona l'operazione Get e poi fai clic su Fine.
    4. 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.
    5. 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Issues dall'elenco Entity.
    3. Seleziona l'operazione Create e fai clic su Fine.
    4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona PullRequests dall'elenco Entity.
    3. Seleziona l'operazione Create e fai clic su Fine.
    4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Repositories dall'elenco Entity.
    3. Seleziona l'operazione Create e fai clic su Fine.
    4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Issues dall'elenco Entity.
    3. Seleziona l'operazione Update e fai clic su Fine.
    4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
           {
        "Title": "New_Updated_Google_Cloud_Issue",
        "Body": "Newly Updated from Google_Cloud"
           }
      
    5. 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona PullRequests dall'elenco Entity.
    3. Seleziona l'operazione Update e fai clic su Fine.
    4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
            {
        "Title": "Updated_Google_Cloud_PULL",
        "Body": "Update New pull Body"
            }
      
    5. 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Repositories dall'elenco Entity.
    3. Seleziona l'operazione Update e fai clic su Fine.
    4. Nella sezione Input attività dell'attività Connettori, fai clic su connectorInputPayload e poi inserisci un valore simile al seguente nel campo Default Value:
            {
        "Name": "Updated_New_Google_Cloud_Repo"
            }
      
    5. 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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona PullRequestReviewRequests dall'elenco Entity.
    3. Seleziona l'operazione Delete e poi fai clic su Fine.
    4. Imposta il valore per filterClause, fai clic su filterClause e poi inserisci PullRequestId= 'PR_kwDOLywhW85yNWPa' and RequestedReviewerUserId= 'U_kgDOCebPLA' nel campo Valore predefinito.
    5. 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