Repository erstellen und aktualisieren

Auf dieser Seite wird beschrieben, wie Sie ein Repository über die Secure Source Manager-Weboberfläche oder die Secure Source Manager API erstellen und aktualisieren.

Wenn Ihre Secure Source Manager-Instanz noch nicht erstellt wurde, lesen Sie den Abschnitt Secure Source Manager-Instanz erstellen.

Hinweis

  1. Erstellen Sie eine Secure Source Manager-Instanz oder fordern Sie Zugriff darauf an. Weitere Informationen finden Sie unter Secure Source Manager-Instanz erstellen.
  2. Installieren Sie die Google Cloud CLI.

  3. Wenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.

  4. Führen Sie den folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  5. Installieren Sie die beta-Komponente der Google Cloud CLI:
    gcloud components install alpha

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Repositorys benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Informationen zum Zuweisen von Secure Source Manager-Rollen finden Sie unter Zugriffssteuerung mit IAM und Nutzern Instanzzugriff gewähren.

Repository erstellen

Weboberfläche

  1. Wenn Sie über die Weboberfläche auf die Secure Source Manager-Instanz zugreifen möchten, kopieren Sie die folgende URL in die Adressleiste Ihres Browsers.

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    Ersetzen Sie Folgendes:

    • INSTANCE_ID durch den Instanznamen.
    • PROJECT_NUMBER durch die Projektnummer der Instanz. Google CloudInformationen zum Identifizieren von Projekten finden Sie unter Projekte identifizieren.
    • LOCATION durch die Region der Instanz.

  2. Authentifizieren Sie sich bei Bedarf mit Ihren Secure Source Manager-Anmeldedaten.

  3. Klicken Sie im Navigationsmenü auf das Symbol + Neues Repository erstellen.

  4. Geben Sie die Repository-Details ein:

    1. Repository-ID: Geben Sie einen Namen für das Repository ein.

    2. Beschreibung: Optional: Geben Sie eine Beschreibung des Repositorys ein.

    3. Standardzweig: Name des Standardzweigs.

  5. Dienstkonto: Optional. Geben Sie das Dienstkonto ein, das mit dem Repository verknüpft werden soll. Dieses nutzerverwaltete Dienstkonto wird für Integrationen wie Cloud Build verwendet. Weitere Informationen finden Sie unter Verbindung zu Cloud Build herstellen.

  6. Repository initialisieren: Optional: Wählen Sie diese Option aus, wenn Sie das Repository initialisieren und die Dateien .gitignore, license und README hinzufügen möchten.

  7. .gitignore: Optional: Wählen Sie im Drop-down-Menü aus den Vorlagen aus, welche Dateien nicht verfolgt werden sollen.

  8. Lizenz: Optional: Wählen Sie im Drop-down-Menü eine gängige Lizenz aus.

  9. Klicken Sie auf Repository erstellen.

gcloud

  1. Erstellen Sie ein Repository mit der gcloud CLI, indem Sie den folgenden Befehl ausführen:

    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
    

    Ersetzen Sie Folgendes:

    • Ersetzen Sie REPOSITORY_ID durch den Namen für Ihr Repository.

    • LOCATION durch die Region, in der Sie das Repository erstellen möchten. Weitere Informationen zu unterstützten Standorten finden Sie unter Standorte.

    • PROJECT_ID durch die Projekt-ID der Secure Source Manager-Instanz, in der Sie das Repository erstellen möchten.

    • INSTANCE_ID durch die Instanz-ID der Instanz, in der Sie das Repository erstellen. Informationen zum Auflisten der Secure Source Manager-Instanzen in Ihrem Projekt finden Sie unter Instanzen auflisten und ansehen.

    • DESCRIPTION mit einer Beschreibung des Repositorys. Dies ist optional und kann weggelassen werden.

    • BRANCH durch den Namen des Standardzweigs. Dies ist optional und kann weggelassen werden. Wenn kein Standardzweigname festgelegt ist, wird main verwendet.

    • GITIGNORES durch eine durch Kommas getrennte Liste von gitignore-Vorlagennamen. Dies ist optional und kann weggelassen werden. Eine vollständige Liste der verfügbaren Vorlagen finden Sie in der Konfigurationsreferenz für die Repository-Initialisierung.

    • LICENSE durch den Namen der Lizenzvorlage, die auf Ihr Repository angewendet werden soll. Dies ist optional und kann weggelassen werden. Eine vollständige Liste der verfügbaren Lizenzvorlagen finden Sie in der Konfigurationsreferenz für die Repository-Initialisierung.

    • README mit default, um eine README-Datei aus der Standardvorlage zu erstellen. Dies ist optional und kann weggelassen werden. Wenn diese Option nicht angegeben wird, wird keine README-Datei erstellt.

    • SERVICE_ACCOUNT durch die E-Mail-Adresse des Dienstkontos, das Sie mit dem Repository verknüpfen möchten. Dies ist optional und kann weggelassen werden.

API

  1. Erstellen Sie ein Repository mit einem REST-Aufruf, indem Sie den folgenden Befehl ausführen:

    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"
        }'
    

    Ersetzen Sie Folgendes:

    • REGION durch die Region Ihrer Secure Source Manager-Instanz. Weitere Informationen zu unterstützten Standorten finden Sie unter Standorte.
    • INSTANCE_ID durch Ihre Secure Source Manager-Instanz-ID.
    • PROJECT_ID durch die Projekt-ID Ihrer Secure Source Manager-Instanz. Weitere Informationen dazu, wo Sie Ihre Projekt-ID finden, finden Sie unter Projekte identifizieren.
    • Ersetzen Sie REPOSITORY_ID durch den Namen für Ihr Repository.
    • SERVICE_ACCOUNT durch die E-Mail-Adresse des Dienstkontos, das Sie mit dem Repository verknüpfen möchten.

    Zusätzliche Werte können mit dem HTTP POST-Daten-Flag -d'{}' angegeben werden, z. B. zum Initialisieren des Repositorys, zum Hinzufügen einer bestimmten .gitignore-Datei oder zum Hinzufügen von Lizenzen. Weitere Informationen finden Sie in der Referenzdokumentation.

    Wenn Sie möchten, dass die Ausgabe für Menschen lesbar ist, können Sie sie mit json_pp in JSON umwandeln.

    Beispiel:

    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
    

    Die Antwort sieht in etwa so aus:

    {
      "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"
        }
    }
    

    Wobei:

    • 654987321654 ist die Projektnummer des Repositorys.
    • my-project-id ist die Projekt-ID des Repositorys.
    • my-repo ist die REPOSITORY_ID, die Sie im Befehl „create“ festgelegt haben. Das Feld uris enthält die URLs für den Zugriff auf das Repository über den Webbrowser oder über den HTTPS-Zugriff per Git-Protokoll.
  2. Greifen Sie mit dem HTML-URI in der Antwort auf das neue Repository zu. Code-Reviews, Problem-Tracking und Pull-Anfragen werden in der Secure Source Manager-Weboberfläche unterstützt.

Das Repository wird in Ihrer Secure Source Manager-Instanz erstellt.

Wenn Sie ein neues Repository erstellen, erhalten Sie die Rolle „Repo Admin“ (roles/securesourcemanager.repoAdmin). Es kann bis zu zwei Minuten dauern, bis die neue IAM-Berechtigung wirksam wird. Wenn Sie also beim Zugriff auf das Repository nach der Erstellung einen Berechtigungsfehler erhalten, warten Sie einige Minuten und versuchen Sie es dann noch einmal.

Von Ihnen erstellte Repositories werden in der Secure Source Manager-Weboberfläche auf der Seite Meine Repositories aufgeführt.

Repository aktualisieren

Weboberfläche

  1. Rufen Sie im Secure Source Manager-Webinterface die Repository-Seite auf.
  2. Klicken Sie im Navigationsmenü auf Repository settings (Repository-Einstellungen).
  3. Geben Sie im Bereich Grundeinstellungen die E-Mail-Adresse des Dienstkontos in das Feld Dienstkonto ein.
  4. Klicken Sie auf Änderungen speichern.

gcloud

  1. Führen Sie den folgenden Befehl aus, um das Dienstkonto des Repositorys zu aktualisieren:

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

    Ersetzen Sie Folgendes:

    • REPOSITORY_ID durch den Namen des Repositorys, das Sie aktualisieren möchten.
    • LOCATION durch die Region, in der sich das Repository befindet.
    • PROJECT_ID durch die Projekt-ID.
    • SERVICE_ACCOUNT: die E-Mail-Adresse des Dienstkontos, das Sie mit dem Repository verknüpfen möchten.

API

  1. Führen Sie den folgenden Befehl aus, um das Dienstkonto des Repositorys mit einem REST-Aufruf zu aktualisieren:

    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"}'
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID durch die Projekt-ID.
    • REGION durch die Region.
    • REPOSITORY_ID durch die Repository-ID.
    • SERVICE_ACCOUNT durch die E-Mail-Adresse des Dienstkontos.

Nächste Schritte