CREATE GIT REPOSITORY

Crée un clone de référentiel Git Snowflake dans le schéma ou remplace un clone de référentiel Git existant.

Voir aussi :

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

Syntaxe

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

Paramètres requis

name

Spécifie l’identificateur du clone de référentiel Git à créer.

Si l’identificateur contient des espaces ou des caractères spéciaux, toute la chaîne doit être délimitée par des guillemets doubles. Les identificateurs entre guillemets doubles sont également sensibles à la casse.

Pour plus d’informations, voir Exigences relatives à l’identificateur.

ORIGIN = 'repository_url'

Spécifie l’URL d’origine du référentiel Git distant que ce clone de référentiel Git représente. L’URL doit utiliser HTTPS.

Snowflake prend en charge le HTTPS de toute URL de référentiel Git. Par exemple, vous pouvez spécifier une URL personnalisée vers un serveur Git d’entreprise au sein de votre propre domaine.

À partir de la ligne de commande, vous pouvez utiliser la commande git config de votre référentiel local pour obtenir la valeur à utiliser pour le paramètre ORIGIN, comme le montre l’exemple suivant :

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

Spécifie la commande API INTEGRATION contenant des informations sur le référentiel Git distant telles que les identifiants de connexion autorisés et les préfixes des URLs cibles.

L’intégration d’API que vous spécifiez ici doit avoir un paramètre API_PROVIDER dont la valeur est définie sur git_https_api.

Pour des informations de référence sur les intégrations d’API, voir CREATE API INTEGRATION.

Paramètres facultatifs

GIT_CREDENTIALS = secret_name

Spécifie le secret Snowflake contenant les identifiants de connexion à utiliser pour s’authentifier auprès du référentiel Git distant. Omettez ce paramètre pour utiliser le secret par défaut spécifié par l’intégration d’API ou si cette intégration ne nécessite pas d’authentification.

Une bonne pratique consiste à utiliser un jeton d’accès personnel pour la valeur PASSWORD du secret. Pour plus d’informations sur la création d’un jeton d’accès personnel dans GitHub, voir Gestion de vos jetons d’accès personnels dans la documentation GitHub.

Le secret que vous spécifiez ici doit être un secret spécifié par le paramètre ALLOWED_AUTHENTICATION_SECRETS de l’intégration d’API que vous précisez à l’aide du paramètre API_INTEGRATION de cette commande.

Par défaut : aucune valeur

Pour des informations de référence sur les secrets, voir CREATE SECRET.

COMMENT = 'string_literal'

Spécifie un commentaire pour l’intégration de l’accès externe.

Par défaut : aucune valeur

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

Spécifie le nom de la balise et la valeur de la chaîne de la balise.

La valeur de la balise est toujours une chaîne de caractères et le nombre maximum de caractères pour la valeur de la balise est 256.

Pour plus d’informations sur la spécification des balises dans une instruction, voir Quota de balise pour les objets.

Exigences en matière de contrôle d’accès

Un rôle utilisé pour exécuter cette opération doit au minimum disposer des privilèges suivants :

Privilège

Objet

Remarques

CREATE GIT REPOSITORY

Schéma

USAGE

intégration API

Intégration spécifiée par le paramètre API INTEGRATION de cette commande

USAGE

Secret

Secret spécifié par le paramètre GIT_CREDENTIALS de cette commande

Le privilège USAGE relatif à la base de données et au schéma parents est exigé pour effectuer des opérations sur tout objet d’un schéma.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

  • Les clauses OR REPLACE et IF NOT EXISTS s’excluent mutuellement. Elles ne peuvent pas être utilisées dans la même instruction.

  • Les instructions CREATE OR REPLACE <objet> sont atomiques. En d’autres termes, lorsqu’un objet est remplacé, l’ancien objet est supprimé et le nouvel objet est créé dans une seule transaction.

Exemples

Le code de l’exemple suivant crée un clone de référentiel Git appelé snowflake_extensions, où l’URL d’origine du référentiel distant est https://github.com/my-account/snowflake-extensions.git. L’exemple utilise une intégration d’API appelée git_api_integration. Il utilise également un secret appelé git_secret pour stocker les identifiants de connexion permettant de s’authentifier auprès du référentiel distant.

Pour des détails sur la configuration d’une intégration avec un référentiel Git distant, voir Configuration de Snowflake pour utiliser 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