CREATE GIT REPOSITORY¶
Creates a Snowflake Git repository clone in the schema or replaces an existing Git repository clone.
For an overview, see 在 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 存储库的来源 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 存储库相关信息的 API INTEGRATION,例如目标 URLs 的允许凭据和前缀。
您在此处指定的 API 集成必须具有值设置为
git_https_api
的 API_PROVIDER 参数。有关 API 集成的参考信息,请参阅 CREATE API INTEGRATION。
可选参数¶
GIT_CREDENTIALS = secret_name
指定 Snowflake 密钥,其中包含用于对远程 Git 存储库进行身份验证的凭据。省略此参数以使用 API 集成指定的默认密钥,或者如果此集成不需要身份验证。
作为最佳实践,对密钥的 PASSWORD 值使用个人访问令牌。有关在 GitHub 中创建个人访问令牌的信息,请参阅 GitHub 文档中的 管理个人访问令牌 (https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)。
此处指定的密钥必须是由您使用此命令的 API_INTEGRATION 参数指定的 API 集成的 ALLOWED_AUTHENTICATION_SECRETS 参数指定。
默认:无值
有关密钥的参考信息,请参阅 CREATE SECRET。
COMMENT = 'string_literal'
指定外部访问集成的注释。
默认:无值
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE GIT REPOSITORY |
架构 |
|
USAGE |
API 集成 |
此命令的 API INTEGRATION 参数指定的集成 |
USAGE |
密钥 |
此命令的 GIT_CREDENTIALS 参数指定的密钥 |
要对架构中的任何对象执行操作,需要对父数据库和架构的 USAGE 权限。请注意,如果某个角色获授某个架构的任意权限,该角色便能够解析该架构。例如,若某角色被授予 CREATE 权限,则可以在该架构上创建对象,而无需 同时 被授予该架构的 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
The OR REPLACE and IF NOT EXISTS clauses are mutually exclusive. They can't both be used in the same statement.
CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
示例¶
以下示例中的代码创建名为 snowflake_extensions
的 Git 存储库暂克隆,其中远程存储库的源 URL 为 https://github.com/my-account/snowflake-extensions.git
。该示例使用名为 git_api_integration
的 API 集成。它还使用为 git_secret
的密钥来存储凭据,以便使用远程存储库进行身份验证。
有关设置与远程 Git 存储库集成的详细信息,请参阅 设置 Snowflake 以使用 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';