Configuração do Snowflake para usar o Git

Quando você integra um repositório Git remoto e clona o repositório, o Snowflake cria um clone do repositório Git que especifica o local do repositório remoto, credenciais (se necessário) e detalhes sobre como o Snowflake deve interagir com a API do repositório Git.

Para usar um repositório Git remoto com o Snowflake, siga estas etapas:

  1. Crie um segredo, se necessário, para manter as credenciais de autenticação com o repositório remoto.

  2. Crie uma integração da API para especificar detalhes sobre a interação do Snowflake com a API do repositório Git.

  3. Crie um clone do repositório Git para o qual você pode sincronizar arquivos do repositório remoto.

Criação de um segredo com credenciais para autenticação

Se seu repositório Git remoto exigir autenticação, você precisará criar um segredo que contém credenciais que o Snowflake pode usar para autenticar no repositório remoto.

Você usará o segredo de várias maneiras. Se alguém criar uma integração de API que especifique a interação do Snowflake com a API do repositório Git, deve especificar este segredo como um valor do parâmetro ALLOWED_AUTHENTICATION_SECRETS. Além disso, se alguém configurar o Snowflake para usar o Git, deverá especificar o segredo.

Para criar um segredo, você deve usar uma função que tenha recebido os seguintes privilégios:

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.

SQL:

Você pode usar o comando CREATE SECRET para criar um segredo que contém credenciais do repositório Git.

O código no exemplo a seguir cria um segredo chamado myco_git_secret com um nome de usuário e o token de acesso pessoal do usuário para usar como credenciais:

USE ROLE ACCOUNTADMIN;
CREATE ROLE myco_secrets_admin;
GRANT CREATE SECRET ON SCHEMA myco_db.integrations TO ROLE myco_secrets_admin;

USE ROLE myco_db_owner;
GRANT USAGE ON DATABASE myco_db TO ROLE myco_secrets_admin;
GRANT USAGE ON SCHEMA myco_db.integrations TO ROLE myco_secrets_admin;

USE ROLE myco_secrets_admin;
USE DATABASE myco_db;
USE SCHEMA myco_db.integrations;

CREATE OR REPLACE SECRET myco_git_secret
  TYPE = password
  USERNAME = 'gladyskravitz'
  PASSWORD = 'ghp_token';
Copy

Criação de uma integração da API para interagir com a API do repositório

Para especificar detalhes sobre como o Snowflake interage com a API do repositório Git, você precisará criar uma integração da API.

Alguém configurando uma conta Snowflake para usar o Git irá especificar a integração de API a ser usada.

Para criar uma integração de API, você deve usar uma função que tenha recebido os seguintes privilégios:

Ao criar uma integração da API para uma API do repositório Git, você deve:

  • Especificar git_https_api como o valor do parâmetro API_PROVIDER.

  • Especifique, se a autenticação for necessária, um segredo que contenha as credenciais do repositório remoto como um valor do parâmetro ALLOWED_AUTHENTICATION_SECRETS. Você pode especificar uma das seguintes opções:

    • Um ou mais segredos do Snowflake (em uma lista separada por vírgulas) que o Snowflake pode usar ao autenticar com o repositório.

    • all (não diferencia maiúsculas de minúsculas) para especificar que qualquer segredo pode ser usado.

    • none (não diferencia maiúsculas de minúsculas) para especificar que nenhum segredo pode ser usado.

SQL:

Você pode usar o comando CREATE API INTEGRATION para criar uma integração da API que especifica detalhes para a interação do Snowflake com a API do repositório Git.

O código no exemplo a seguir cria uma integração de API chamada git_api_integration:

USE ROLE ACCOUNTADMIN;
CREATE ROLE myco_git_admin;
GRANT CREATE INTEGRATION ON ACCOUNT TO ROLE myco_git_admin;

USE ROLE myco_db_owner;
GRANT USAGE ON DATABASE myco_db TO ROLE myco_git_admin;
GRANT USAGE ON SCHEMA myco_db.integrations TO ROLE myco_git_admin;

USE ROLE myco_secrets_admin;
GRANT USAGE ON SECRET myco_git_secret TO ROLE myco_git_admin;

USE ROLE myco_git_admin;
USE DATABASE myco_db;
USE SCHEMA myco_db.integrations;

CREATE OR REPLACE API INTEGRATION git_api_integration
  API_PROVIDER = git_https_api
  API_ALLOWED_PREFIXES = ('https://github.com/my-account')
  ALLOWED_AUTHENTICATION_SECRETS = (myco_git_secret)
  ENABLED = TRUE;
Copy

Criar um clone do repositório Git Snowflake a partir do repositório remoto

Para configurar o Snowflake para trabalhar com um repositório Git remoto, crie um clone do repositório Git no Snowflake para conter os arquivos obtidos do repositório remoto.

Nota

Antes de iniciar as etapas desta seção, considere primeiro criar um segredo (se o repositório remoto exigir autenticação) e uma integração de API. Você pode precisar de ambos.

O clone do repositório Git especifica o seguinte:

  • A origem do repositório remoto

    No Git, origin é uma abreviação para o URL do repositório remoto. Use esse URL ao configurar o Snowflake para usar um repositório Git remoto. O URL deve usar HTTPS. Você pode recuperar o URL de origem das seguintes maneiras:

    • Na interface do usuário do GitHub, para obter o URL de origem na página inicial do repositório, selecione o botão Code e, em seguida, copie o URL HTTPS na caixa exibida abaixo do botão.

    • Na linha de comando, use o comando git config de dentro do seu repositório local, como no exemplo a seguir:

      $ git config --get remote.origin.url
      
      Copy

      O comando produz saídas como as seguintes:

      https://github.com/my-account/snowflake-extensions.git
      

      Para obter informações de referência sobre git config, veja a documentação do git.

  • Credenciais, se necessário, para o Snowflake usar ao autenticar com o repositório

  • Uma integração da API especificando detalhes para interação do Snowflake com a API do repositório

Para criar um clone do repositório Git no Snowflake, você deve usar uma função que tenha recebido os seguintes privilégios:

  • CREATE GIT REPOSITORY no esquema que contém o clone do repositório Git

    Para obter mais informações, consulte requisitos de controle de acesso do CREATE GIT REPOSITORY.

  • USAGE no segredo que contém credenciais para autenticação com o Git

  • USAGE na integração de API ao qual o clone do repositório Git faz referência

Você pode criar um clone do repositório Git usando Snowsight ou SQL.

Nota

Antes de criar um clone do repositório Git, você precisará criar um segredo (se o repositório remoto exigir autenticação) e uma integração de API.

O código no exemplo a seguir cria um clone do repositório Git chamado snowflake_extensions. O clone especifica a integração de git_api_integration API e o segredo myco_git_secret com credenciais para autenticação.

USE ROLE ACCOUNTADMIN;
GRANT CREATE GIT REPOSITORY ON SCHEMA myco_db.integrations TO ROLE myco_git_admin;

USE ROLE myco_git_admin;

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