Criar um repositório

Esta página descreve como criar um repositório usando a interface da Web ou a API do Secure Source Manager.

Se a instância do Secure Source Manager ainda não foi criada, consulte Criar uma instância do Secure Source Manager para começar.

Antes de começar

  1. Crie ou solicite acesso a uma instância do Secure Source Manager. Para mais informações, consulte Criar uma instância do Secure Source Manager.
  2. Instale a Google Cloud CLI.

  3. Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

  4. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  5. Instale o componente beta da Google Cloud CLI:
    gcloud components install alpha

Funções exigidas

Para ter as permissões necessárias para criar um repositório, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.

Para informações sobre como conceder papéis do Secure Source Manager, consulte Controle de acesso com o IAM e Conceder acesso de instância aos usuários.

Criar um repositório

Interface da Web

  1. Para acessar a instância do Secure Source Manager pela interface da Web, copie o URL a seguir na barra de endereço do navegador.

    INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

    Substitua:

    • INSTANCE_ID pelo nome da instância.
    • PROJECT_NUMBER pelo número do projeto da instância. Google CloudPara informações sobre como identificar projetos, consulte Identificar projetos.
    • LOCATION pela região da instância.

  2. Autentique-se usando suas credenciais do Secure Source Manager, se necessário.

  3. Clique no ícone + Criar novo repositório no canto superior direito do menu de navegação.

  4. Preencha os detalhes do repositório:

    1. ID do repositório: insira um nome para o repositório.

    2. Descrição: opcional. Descrição do repositório.

    3. Ramificação padrão: nome da ramificação padrão.

    4. Inicializar repositório: opcional. Selecione essa opção se quiser inicializar o repositório e adicionar arquivos .gitignore, de licença e README.

    5. .gitignore: opcional. Escolha quais arquivos não rastrear usando os modelos de menu suspenso.

    6. licença: opcional. Selecione uma licença comum no menu suspenso.

  5. Clique em Criar repositório.

gcloud

  1. Crie um repositório usando a CLI gcloud executando o seguinte 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
    

    Substitua:

    • REPOSITORY_ID pelo nome do repositório.

    • LOCATION pela região em que você quer criar o repositório. Para informações sobre os locais com suporte, consulte Locais.

    • PROJECT_ID pelo ID do projeto da instância do Secure Source Manager em que você quer criar o repositório.

    • INSTANCE_ID pelo ID da instância em que você está criando o repositório. Para listar as instâncias do Secure Source Manager no seu projeto, consulte Listar e visualizar instâncias.

    • DESCRIPTION por uma descrição do repositório. Isso é opcional e pode ser omitido.

    • BRANCH pelo nome da ramificação padrão. Isso é opcional e pode ser omitido. O nome da ramificação padrão, quando não definido, é main.

    • GITIGNORES por uma lista separada por vírgulas de nomes de modelos gitignore. Isso é opcional e pode ser omitido. Para conferir a lista completa de modelos disponíveis, consulte a referência de configuração de inicialização do repositório.

    • LICENSE pelo nome do modelo de licença a ser aplicado ao repositório. Isso é opcional e pode ser omitido. Para conferir a lista completa de modelos de licença disponíveis, consulte a referência de configuração de inicialização do repositório.

    • README com default para criar um arquivo README com base no modelo padrão. Isso é opcional e pode ser omitido. Se omitido, um arquivo README não será criado.

API

  1. Crie um repositório usando uma chamada REST executando o seguinte 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"}'
    

    Substitua:

    • REGION pela região da instância do Secure Source Manager. Para informações sobre os locais com suporte, consulte Locais.
    • INSTANCE_ID pelo ID da instância do Secure Source Manager.
    • PROJECT_ID pelo ID do projeto da instância do Secure Source Manager. Consulte Identificar projetos para informações sobre onde encontrar o ID do projeto.
    • REPOSITORY_ID pelo nome do repositório.

    Outros valores podem ser especificados usando a flag de dados HTTP POST, -d'{}' incluindo a inicialização do repositório, a adição de um arquivo específico .gitignore ou licenças. Consulte a documentação de referência para mais informações.

    Se você quiser que a saída seja legível, poderá canalizá-la para JSON usando json_pp.

    Exemplo:

    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", "initialConfig":{"defaultBranch":"main"}}' | json_pp
    

    A resposta será semelhante a esta:

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

    Em que:

    • 654987321654 é o número do projeto do repositório.
    • my-project-id é o ID do projeto do repositório.
    • my-repo é o REPOSITORY_ID definido no comando de criação. O campo uris contém os URLs para acessar o repositório pelo navegador da Web ou pelo acesso HTTPS do protocolo Git.
  2. Acesse o novo repositório com o URI HTML na resposta. A revisão de código, o rastreamento de problemas e as solicitações pull são compatíveis com a interface da Web do Secure Source Manager.

O repositório é criado na instância do Secure Source Manager.

O papel de administrador do repositório (roles/securesourcemanager.repoAdmin) é concedido a você quando você cria um novo repositório. A nova permissão do IAM pode levar até 2 minutos para ser propagada. Portanto, se você receber um erro de permissões ao tentar acessar o repositório após a criação, aguarde alguns minutos e tente novamente.

Os repositórios criados são listados na interface da Web do Secure Source Manager na página Meus repositórios.

A seguir