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>' , ... ] ) ]
Copy

ํ•„์ˆ˜ ๋งค๊ฐœ ๋ณ€์ˆ˜ยถ

name

๋งŒ๋“ค Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œ๋ณธ์˜ ์‹๋ณ„์ž๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์‹๋ณ„์ž์— ๊ณต๋ฐฑ์ด๋‚˜ ํŠน์ˆ˜ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ์ „์ฒด ๋ฌธ์ž์—ด์„ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์ธ ์‹๋ณ„์ž๋„ ๋Œ€/์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์‹๋ณ„์ž ์š”๊ตฌ ์‚ฌํ•ญ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

ORIGIN = 'repository_url'

์ด Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œ๋ณธ์ด ๋‚˜ํƒ€๋‚ด๋Š” ์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์›๋ณธ URL ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. URL์€ HTTPS๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Snowflake๋Š” HTTPS Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ URL ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž ์ง€์ • URL ์„ ์ž์ฒด ๋„๋ฉ”์ธ ๋‚ด์˜ ๊ธฐ์—… Git ์„œ๋ฒ„๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๋ช…๋ น์ค„์—์„œ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‚ด์—์„œ git config ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ORIGIN ๋งค๊ฐœ ๋ณ€์ˆ˜์— ์‚ฌ์šฉํ•  ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$ git config --get remote.origin.url
https://github.com/mycompany/My-Repo.git
Copy
API_INTEGRATION = integration_name

๋Œ€์ƒ URL์— ๋Œ€ํ•ด ํ—ˆ์šฉ๋˜๋Š” ์ž๊ฒฉ ์ฆ๋ช… ๋ฐ ์ ‘๋‘์‚ฌ ๋“ฑ ์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ 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 ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณต์ œ๋ณธ์„ ์ƒ์„ฑํ•˜๋ฉฐ, ์—ฌ๊ธฐ์„œ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์›๋ณธ 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';
Copy