CREATE GIT REPOSITORY¶
Snowflake Gitリポジトリクローンをスキーマ内に作成するか、既存のGitリポジトリクローンを置き換えます。
概要については、 Snowflakeでの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です。
ステートメントでのタグの指定に関する情報については、 Tag quotas をご参照ください。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
注意 |
|---|---|---|
CREATE GIT REPOSITORY |
スキーマ |
|
USAGE |
API 統合 |
このコマンドの API INTEGRATION パラメーターで指定された統合。 |
USAGE |
シークレット |
このコマンドの GIT_CREDENTIALS パラメーターで指定されたシークレット。 |
スキーマ内のオブジェクトに対して操作を実行するには、親データベースとスキーマに対する USAGE 権限が必要です。スキーマに対する 任意の権限を付与されたロールは、そのロールがスキーマを解決できることに注意してください。たとえば、スキーマに対するCREATE権限を付与されたロールは、そのスキーマにオブジェクトを作成できますが、そのスキーマに対するUSAGE*も*付与されている必要はありません。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
使用上の注意¶
The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can't both be used in the same statement.
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';