CREATE GIT REPOSITORY¶
Snowflake Gitリポジトリクローン をスキーマに作成するか、既存のGitリポジトリクローンを置き換えます。
- こちらもご参照ください。
ALTER GIT REPOSITORY, DESCRIBE GIT REPOSITORY, DROP GIT REPOSITORY, SHOW GIT BRANCHES, SHOW GIT REPOSITORIES, SHOW GIT TAGS
構文¶
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>' , ... ] ) ]
必須パラメーター¶
name
作成するGitリポジトリのクローンの識別子を指定します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
ORIGIN = 'repository_url'
このGitリポジトリクローンが表すリモートGitリポジトリのorigin URL を指定します。URL には HTTPS を使用する必要があります。
Snowflakeは HTTPS Gitリポジトリ URL をサポートしています。例えば、独自ドメイン内の企業のGitサーバーにカスタムで URL を指定することができます。
コマンドラインから、次の例に示すように、ローカルリポジトリ内で
git config
コマンドを使用して、 ORIGIN パラメーターに使用する値を取得できます。$ git config --get remote.origin.url https://github.com/mycompany/My-Repo.git
API_INTEGRATION = integration_name
リモートのGitリポジトリに関する情報(許可された認証情報やターゲット URLs のプレフィックスなど)を含む API INTEGRATION を指定します。
ここで指定する API 統合には、値が
git_https_api
に設定された API_PROVIDER パラメーターが必要です。API 統合に関する参考情報については、 CREATE API INTEGRATION をご参照ください。
オプションのパラメーター¶
GIT_CREDENTIALS = secret_name
リモートのGitリポジトリとの認証に使用する認証情報を含むSnowflake シークレット を指定します。API 統合によって指定されたデフォルトのシークレットを使用する場合や、この統合が認証を必要としない場合は、このパラメーターを省略します。
ベストプラクティスとして、シークレットの PASSWORD 値には個人用アクセストークンを使用します。GitHub で個人用アクセストークンを作成する方法については、 GitHub ドキュメントの 個人用アクセストークンの管理 をご参照ください。
ここで指定するシークレットは、このコマンドの API_INTEGRATION パラメーターで指定した API 統合の ALLOWED_AUTHENTICATION_SECRETS パラメーターで指定したシークレットにする必要があります。
デフォルト: 値なし
シークレットに関する参照情報については、 CREATE SECRET をご参照ください。
COMMENT = 'string_literal'
外部アクセス統合のコメントを指定します。
デフォルト: 値なし
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
タグ の名前とタグ文字列の値を指定します。
タグ値は常に文字列であり、タグ値の最大文字数は256です。
ステートメントでのタグの指定に関する情報については、 オブジェクトのタグクォータ をご参照ください。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
---|---|---|
CREATE GIT REPOSITORY |
スキーマ |
|
USAGE |
API 統合 |
このコマンドの API INTEGRATION パラメーターで指定された統合。 |
USAGE |
シークレット |
このコマンドの GIT_CREDENTIALS パラメーターで指定されたシークレット。 |
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
OR REPLACE
とIF NOT EXISTS
句は互いに排他的です。両方を同じステートメントで使うことはできません。CREATE OR REPLACE <オブジェクト> ステートメントはアトミックです。つまり、オブジェクトが置き換えられると、単一のトランザクションで、古いオブジェクトが削除されて新しいオブジェクトが作成されます。
例¶
次の例のコードは、 snowflake_extensions
というGitリポジトリのクローンを作成します。リモートリポジトリのorigin URL は https://github.com/my-account/snowflake-extensions.git
です。この例では git_api_integration
という API の統合を使用しています。また、リモートリポジトリと認証するために認証情報を保存するために、 git_secret
と呼ばれるシークレットを使用します。
リモートのGitリポジトリとの統合の設定については、 Gitを使用するためのSnowflakeの設定 をご参照ください。
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';