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
指定包含目标 Git 存储库相关信息的 API INTEGRATION,例如目标 URLs 的允许凭据和前缀。
您在此处指定的 API 集成必须具有值设置为
git_https_api
的 API_PROVIDER 参数。有关 API 集成的参考信息,请参阅 CREATE API INTEGRATION。
可选参数¶
GIT_CREDENTIALS = secret_name
指定 Snowflake 密钥,其中包含用于对存储库进行身份验证的凭据。省略此参数以使用 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 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
示例¶
以下示例中的代码创建名为 snowflake_extensions
的 Git 存储库暂存区,其中存储库的源 URL 为 https://github.com/my-account/snowflake-extensions.git
。该示例使用名为 git_api_integration
的 API 集成,以及名为 git_secret
的密钥来存储凭据,以便使用存储库进行身份验证。
有关设置存储库集成的详细信息,请参阅 设置 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';