CREATE GIT REPOSITORY¶
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
作成するリポジトリステージの識別子を指定します。
識別子にスペースまたは特殊文字が含まれる場合は、文字列全体を二重引用符で囲む必要があります。二重引用符で囲まれた識別子も大文字と小文字が区別されます。
詳細については、 識別子の要件 をご参照ください。
ORIGIN = 'repository_url'
このリポジトリステージが表すGitリポジトリの原点 URL を指定します。
URL には HTTPS を使用する必要があります。
コマンドラインから、次の例に示すように、ローカルリポジトリ内で
git config
コマンドを使用して、 ORIGIN パラメーターに使用する値を取得できます。$ git config --get remote.origin.url https://github.com/mycompany/My-Repo.git
API_INTEGRATION = integration_name
ターゲット URLs の許可される認証情報やプレフィックスなど、ターゲットGitリポジトリについての情報が含まれる API INTEGRATION を指定します。
ここで指定する API 統合には、値が
git_https_api
に設定された API_PROVIDER パラメーターが必要です。API 統合に関する参考情報については、 CREATE API INTEGRATION をご参照ください。
オプションのパラメーター¶
GIT_CREDENTIALS = secret_name
リポジトリとの認証に使用する認証情報が含まれる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です。
ステートメントでのタグの指定に関する情報については、 オブジェクトおよび列のタグクォータ をご参照ください。
アクセス制御の要件¶
この SQL コマンドの実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
CREATE GIT REPOSITORY |
スキーマ |
|
USAGE |
API 統合 |
このコマンドの API INTEGRATION パラメーターで指定された統合。 |
USAGE |
シークレット |
このコマンドの GIT_CREDENTIALS パラメーターで指定されたシークレット。 |
スキーマ内の任意のオブジェクトを操作するには、親データベースとスキーマに対する USAGE 権限も必要であることに注意してください。
指定された権限のセットを使用してカスタムロールを作成する手順については、 カスタムロールの作成 をご参照ください。
セキュリティ保護可能なオブジェクト に対して SQL アクションを実行するためのロールと権限付与に関する一般的な情報については、 アクセス制御の概要 をご参照ください。
例¶
次の例のコードは、 snowflake_extensions
というGitリポジトリのステージを作成します。リポジトリの原点 URL は https://github.com/my-account/snowflake-extensions.git
です。この例では、 git_api_integration
という API 統合と、 git_secret
というシークレットを使用して、リポジトリとの認証情報を保存しています。
リポジトリとの統合設定の詳細については、 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';