CREATE GIT REPOSITORY

Cria um clone do repositório Git do Snowflake no esquema ou substitui um clone do repositório Git existente.

Consulte também:

ALTER GIT REPOSITORY, DESCRIBE GIT REPOSITORY, DROP GIT REPOSITORY, SHOW GIT BRANCHES, SHOW GIT REPOSITORIES, SHOW GIT TAGS

Sintaxe

CREATE [ OR REPLACE ] GIT REPOSITORY [ IF NOT EXISTS ] <name>
  ORIGIN = '<repository_url>'
  API_INTEGRATION = <integration_name>
  [ GIT_CREDENTIALS = <secret_name> ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Copy

Parâmetros obrigatórios

name

Especifica o identificador do clone do repositório Git a ser criado.

Se o identificador contiver espaços ou caracteres especiais, toda a cadeia de caracteres deverá ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Para obter mais informações, consulte Requisitos para identificadores.

ORIGIN = 'repository_url'

Especifica o URL de origem do repositório Git remoto que esse clone do repositório Git representa. O URL deve usar HTTPS.

O Snowflake oferece suporte a qualquer URL de repositório Git de HTTPS. Por exemplo, você pode especificar um URL personalizado para um servidor Git corporativo dentro do seu próprio domínio.

Na linha de comando, você pode usar o comando git config de dentro do seu repositório local para obter o valor a ser usado para o parâmetro ORIGIN, conforme mostrado no exemplo a seguir:

$ git config --get remote.origin.url
https://github.com/mycompany/My-Repo.git
Copy
API_INTEGRATION = integration_name

Especifica o API INTEGRATION que contém informações sobre o repositório Git remoto, como credenciais e prefixos permitidos para URLs de destino.

A integração da API que você especificar aqui deve ter um parâmetro API_PROVIDER cujo valor é definido como git_https_api.

Para obter informações de referência sobre as integrações da API, veja CREATE API INTEGRATION.

Parâmetros opcionais

GIT_CREDENTIALS = secret_name

Especifica o segredo do Snowflake que contém as credenciais a serem usadas para autenticação no repositório Git remoto. Omita este parâmetro para usar o segredo padrão especificado pela integração de API ou se essa integração não requer autenticação.

Como prática recomendada, use um token de acesso pessoal para o valor PASSWORD do segredo. Para obter informações sobre como criar um token de acesso pessoal em GitHub, consulte Como gerenciar seus tokens de acesso pessoal na documentação do GitHub.

O segredo que você especificar aqui deve ser um segredo especificado pelo parâmetro ALLOWED_AUTHENTICATION_SECRETS da integração da API que você especifica com o parâmetro API_INTEGRATION deste comando.

Padrão: sem valor

Para obter informações de referência sobre segredos, consulte CREATE SECRET.

COMMENT = 'string_literal'

Especifica um comentário para a integração de acesso externo.

Padrão: sem valor

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

Especifica o nome da tag e o valor da cadeia de caracteres dela.

O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256.

Para obter informações sobre como especificar tags em uma instrução, consulte Cota de tags para objetos.

Requisitos de controle de acesso

A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:

Privilégio

Objeto

Notas

CREATE GIT REPOSITORY

Esquema

USAGE

Integração de API

A integração especificada por este parâmetro da INTEGRATION de API do comando

USAGE

Segredo

O segredo especificado por este parâmetro GIT_CREDENTIALS do comando

O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema.

Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.

Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.

Notas de uso

  • As cláusulas OR REPLACE e IF NOT EXISTS são mutuamente exclusivas. Elas não podem ser usadas na mesma instrução.

  • Instruções CREATE OR REPLACE <object> são atômicas. Ou seja, quando um objeto é substituído, o objeto antigo é excluído e o novo objeto é criado em uma única transação.

Exemplos

O código no exemplo a seguir cria um clone do repositório Git chamado snowflake_extensions, em que o URL de origem do repositório remoto é https://github.com/my-account/snowflake-extensions.git. O exemplo usa uma integração API chamada git_api_integration. Ele também usa um segredo chamado git_secret para armazenar credenciais para autenticação com o repositório remoto.

Para obter detalhes sobre a configuração da integração com um repositório Git remoto, consulte Configuração do Snowflake para usar o Git.

CREATE OR REPLACE GIT REPOSITORY snowflake_extensions
  API_INTEGRATION = git_api_integration
  GIT_CREDENTIALS = git_secret
  ORIGIN = 'https://github.com/my-account/snowflake-extensions.git';
Copy