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>' , ... ] ) ]
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
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
etIF 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';