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

    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:

    1. Nella console Cloud, vai a Connettori di integrazione > Pagina Connessioni e poi selezionare o creare 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 i seguenti passaggi:
      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. Facoltativamente, 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, 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. Facoltativamente, fai clic su + AGGIUNGI ETICHETTA 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 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.

      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. Verifica: controlla i dettagli della connessione e dell'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.
    • 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.

    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, quindi inserisci un valore simile al seguente nella 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, quindi inserisci un valore simile al seguente nella Campo Default Value:
            {
          "PullRequestId": "PR_kwDOLywhW8537gcA",
          "CommitHeadline": "Google MERGE",
          "CommitBody": "This is Google Merge"
            }
        
    4. 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"

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

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

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Repository 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.

    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"

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Problemi 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 dell'attività:

           {
        "Id": "I_kwDOLywhW86Sd-xF"
           } 

    Esempio: operazione CREATE per l'entità "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 dell'attività:

            {
        "Id": "PR_kwDOLywhW8537gcA"
            } 

    Esempio: operazione CREATE per l'entità "Repositories"

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Repository 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 dell'attività:

            {
        "Id": "R_kgDOMhWBEQ"
            } 

    Esempio - Operazione UPDATE per l'entità "Problemi"

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Problemi 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, quindi inserisci un valore simile al seguente nella 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 - Operazione di UPDATE per l'entità "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 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"

    1. Nella finestra di dialogo Configure connector task, fai clic su Entities.
    2. Seleziona Repository 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, quindi inserisci un valore simile al seguente nella 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 dell'attività:

            {
        "Id": "R_kgDOMhWBEQ"
            } 

    Esempio: operazione DELETE per l'entità "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 inserisci PullRequestId= 'PR_kwDOLywhW85yNWPa' and RequestedReviewerUserId= 'U_kgDOCebPLA' in Default Value (Valore predefinito) .
  • 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.

    • 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.

    Ricevere assistenza dalla community Google Cloud

    Puoi pubblicare le tue domande e discutere di questo connettore nella community Google Cloud ai forum Cloud.

    Passaggi successivi