Crea e aggiorna un repository

Questa pagina descrive come creare e aggiornare un repository utilizzando l'interfaccia web di Secure Source Manager o l'API Secure Source Manager.

Se la tua istanza Secure Source Manager non è ancora stata creata, consulta Creare un'istanza Secure Source Manager per iniziare.

Prima di iniziare

  1. Crea o richiedi l'accesso a un'istanza Secure Source Manager. Per ulteriori informazioni, vedi Creare un'istanza Secure Source Manager.
  2. Installa Google Cloud CLI.

  3. Se utilizzi un provider di identità (IdP) esterno, devi prima accedere a gcloud CLI con la tua identità federata.

  4. Per inizializzare gcloud CLI, esegui questo comando:

    gcloud init
  5. Installa il componente beta di Google Cloud CLI:
    gcloud components install alpha

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare un repository, chiedi all'amministratore di concederti i seguenti ruoli IAM:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Per informazioni sulla concessione dei ruoli Secure Source Manager, consulta Controllo dell'accesso con IAM e Concedere agli utenti l'accesso all'istanza.

Crea un repository

Interfaccia web

  1. Per accedere all'istanza di Secure Source Manager tramite la sua interfaccia web, copia il seguente URL nella barra degli indirizzi del browser.

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    Sostituisci quanto segue:

    • INSTANCE_ID con il nome dell'istanza.
    • PROJECT_NUMBER con il numero di progetto Google Cloud dell'istanza. Per informazioni sull'identificazione dei progetti, consulta Identificazione dei progetti.
    • LOCATION con la regione dell'istanza.

  2. Se necessario, esegui l'autenticazione utilizzando le credenziali di Secure Source Manager.

  3. Fai clic sull'icona + Crea nuovo repository nel menu di navigazione.

  4. Compila i dettagli del repository:

    1. ID repository: inserisci un nome per il repository.

    2. Descrizione: (facoltativo) inserisci una descrizione del repository.

    3. Branch predefinito: nome del branch predefinito.

  5. Service account: (facoltativo) inserisci il account di servizio da associare al repository. Questo account di servizio gestito dall'utente viene utilizzato per integrazioni come Cloud Build. Per saperne di più, vedi Connettersi a Cloud Build.

  6. Inizializza repository: (facoltativo) seleziona questa opzione se vuoi inizializzare il repository e aggiungere i file .gitignore, license e README.

  7. .gitignore: (facoltativo) scegli quali file non monitorare utilizzando i modelli del menu a discesa.

  8. Licenza: (facoltativo) seleziona una licenza comune dal menu a discesa.

  9. Fai clic su Crea repository.

gcloud

  1. Crea un repository utilizzando gcloud CLI eseguendo il seguente comando:

    gcloud source-manager repos create REPOSITORY_ID \
        --region=LOCATION \
        --project=PROJECT_ID \
        --instance=INSTANCE_ID \
        --description=DESCRIPTION \
        --default-branch=BRANCH \
        --gitignores=GITIGNORES \
        --license=LICENSE \
        --readme=README \
        --service-account=SERVICE_ACCOUNT
    

    Sostituisci quanto segue:

    • REPOSITORY_ID con il nome del tuo repository.

    • LOCATION con la regione in cui vuoi creare il repository. Per ulteriori informazioni sulle località supportate, vedi Località.

    • PROJECT_ID con l'ID progetto dell'istanza Secure Source Manager in cui vuoi creare il repository.

    • INSTANCE_ID con l'ID istanza dell'istanza in cui stai creando il repository. Per elencare le istanze di Secure Source Manager nel tuo progetto, consulta Elencare e visualizzare le istanze.

    • DESCRIPTION con una descrizione del repository. Questa opzione è facoltativa e può essere omessa.

    • BRANCH con il nome del ramo predefinito. Questo campo è facoltativo e può essere omesso. Se non è impostato, il nome del ramo predefinito è main.

    • GITIGNORES con un elenco separato da virgole di nomi di modelli gitignore. Questa opzione è facoltativa e può essere omessa. Per visualizzare l'elenco completo dei modelli disponibili, consulta i riferimenti alla configurazione di inizializzazione del repository.

    • LICENSE con il nome del modello di licenza da applicare al tuo repository. Questa opzione è facoltativa e può essere omessa. Per visualizzare l'elenco completo dei modelli di licenza disponibili, consulta i riferimenti alla configurazione di inizializzazione del repository.

    • README con default per creare un file README dal modello predefinito. Questa opzione è facoltativa e può essere omessa. Se omesso, non verrà creato un file README.

    • SERVICE_ACCOUNT con l'indirizzo email del account di servizio che vuoi associare al repository. Questo campo è facoltativo e può essere omesso.

API

  1. Crea un repository utilizzando una chiamata REST eseguendo questo comando:

    curl \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories?repository_id=REPOSITORY_ID \
        -d '{
          "instance": "projects/PROJECT_ID/locations/REGION/instances/INSTANCE_ID",
          "serviceAccount": "SERVICE_ACCOUNT"
        }'
    

    Sostituisci quanto segue:

    • REGION con la regione dell'istanza Secure Source Manager. Per ulteriori informazioni sulle località supportate, vedi Località.
    • INSTANCE_ID con l'ID istanza Secure Source Manager.
    • PROJECT_ID con l'ID progetto della tua istanza di Secure Source Manager. Per maggiori informazioni su dove trovare l'ID progetto, consulta Identificazione dei progetti.
    • REPOSITORY_ID con il nome del repository.
    • SERVICE_ACCOUNT con l'indirizzo email del service account che vuoi associare al repository.

    È possibile specificare valori aggiuntivi utilizzando il flag dei dati HTTP POST, -d'{}', inclusa l'inizializzazione del repository, l'aggiunta di un file .gitignore specifico o di licenze. Per saperne di più, consulta la documentazione di riferimento.

    Se vuoi che l'output sia leggibile, puoi reindirizzarlo a JSON utilizzando json_pp.

    Ad esempio:

    curl \
        -X POST \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/my-project-id/locations/us-central1/repositories?repository_id=my-repo \
        -d '{
          "instance": "projects/my-project-id/locations/us-central1/instances/prod-test-instance",
          "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com",
          "initialConfig": {
            "defaultBranch": "main"
          }
        }' | json_pp
    

    La risposta è simile alla seguente:

    {
      "name": "operations/266bf4c7-13fe-11ed-be24-da823b7355d0",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2022-08-04T14:02:59.810496928Z",
        "endTime": "2022-08-04T14:03:00.558354528Z",
        "target": "projects/654987321654/locations/us-central1/repositories/my-repo",
        "verb": "create",
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Repository",
        "name": "projects/my-project-id/locations/us-central1/repositories/my-repo",
        "instance": "projects/654987321654/locations/us-central1/instances/prod-test-instance",
        "serviceAccount": "my-service-account@my-project-id.iam.gserviceaccount.com",
        "createTime": "2022-08-04T14:03:00Z",
        "uris": {
          "html": "https://prod-test-instance-654987321654.us-central1.sourcemanager.dev/my-project-id/my-repo",
          "gitHttps": "https://prod-test-instance-654987321654-git.us-central1.sourcemanager.dev/my-project-id/my-repo.git"
        }
    }
    

    Dove:

    • 654987321654 è il numero di progetto del repository.
    • my-project-id è l'ID progetto del repository.
    • my-repo è REPOSITORY_ID che hai impostato nel comando di creazione. Il campo uris contiene gli URL per accedere al repository tramite il browser web o tramite l'accesso HTTPS al protocollo Git.
  2. Accedi al nuovo repository con l'URI HTML nella risposta. La revisione del codice, il monitoraggio dei problemi e le richieste di pull sono supportati nell'interfaccia web di Secure Source Manager.

Il repository viene creato nell'istanza Secure Source Manager.

Quando crei un nuovo repository, ti viene concesso il ruolo Amministratore repository (roles/securesourcemanager.repoAdmin). La nuova autorizzazione IAM potrebbe richiedere fino a 2 minuti per la propagazione, quindi se ricevi un errore di autorizzazione quando provi ad accedere al repository dopo la creazione, attendi qualche minuto e riprova.

I repository che hai creato sono elencati nell'interfaccia web di Secure Source Manager nella pagina I miei repository.

Aggiorna un repository

Interfaccia web

  1. Vai alla pagina del repository nell'interfaccia web di Secure Source Manager.
  2. Fai clic su Impostazioni repository nel menu di navigazione.
  3. Nella sezione Impostazioni di base, inserisci l'indirizzo email del account di servizio nel campo Service account.
  4. Fai clic su Salva modifiche.

gcloud

  1. Per aggiornare il account di servizio del repository, esegui questo comando:

    gcloud source-manager repos update REPOSITORY_ID \
        --region=LOCATION \
        --project=PROJECT_ID \
        --service-account=SERVICE_ACCOUNT
    

    Sostituisci quanto segue:

    • REPOSITORY_ID con il nome del repository che vuoi aggiornare.
    • LOCATION con la regione in cui si trova il repository.
    • PROJECT_ID con l'ID progetto.
    • SERVICE_ACCOUNT con l'indirizzo email del account di servizio che vuoi associare al repository.

API

  1. Per aggiornare l'account di servizio del repository utilizzando una chiamata REST, esegui questo comando:

    curl --request PATCH \
        -H "Content-Type: application/json" \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/repositories/REPOSITORY_ID?updateMask=serviceAccount \
        -d '{"serviceAccount": "SERVICE_ACCOUNT"}'
    

    Sostituisci quanto segue:

    • PROJECT_ID con l'ID progetto.
    • REGION con la regione.
    • REPOSITORY_ID con l'ID repository.
    • SERVICE_ACCOUNT con l'email del account di servizio.

Passaggi successivi