Skip to content

Latest commit

ย 

History

History
99 lines (78 loc) ยท 8.11 KB

File metadata and controls

99 lines (78 loc) ยท 8.11 KB

Workspace ์ž‘์—… Agent ๊ตฌ์„ฑ

ํ˜ธ์ŠคํŠธ ์•ฑ์˜ Agent ์ด๋ฆ„๊ณผ ๊ด€๊ณ„์—†์ด ์ ์šฉํ•˜๋Š” ๊ณต์šฉ ํ”„๋กœํ•„์ด๋‹ค. Agent๋Š” ์š”์ฒญ์„ ์กฐ์œจํ•˜๊ณ , Workspace์˜ ์ฝ”๋”ฉ Runtime ๋˜๋Š” command๊ฐ€ ํŒŒ์ผ ์ž‘์—…์„ ์‹คํ–‰ํ•œ๋‹ค. Sandbox๋Š” ๋ณ„๋„ MCP ์„œ๋ฒ„๊ฐ€ ์•„๋‹ˆ๋‹ค.

์‹คํ–‰ ํ™˜๊ฒฝ ์„ค์ •

  1. Agent ํ˜„์žฌ ์„ค์ •์—์„œ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋„๊ตฌ๋ฅผ ํ™œ์„ฑํ™”ํ•œ๋‹ค.
  2. Models์—์„œ Runtime๋ณ„ ๋ชจ๋ธ์„ ์„ ํƒํ•œ๋‹ค.
  3. ์†Œ์œ ์žยท๊ด€๋ฆฌ์ž๊ฐ€ Agent์˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค ๋„๊ตฌ ํƒญ์—์„œ ์ €์žฅ์†Œ ์ •์ฑ…๊ณผ ๊ธฐ๋ณธ Runtime์„ ์„ค์ •ํ•œ๋‹ค.
  4. ์„ค์น˜ ์ธก์—์„œ ๊ณ„์ •ยทWorkerยท์ด๋ฏธ์ง€๋ฅผ ์„ค์ •ํ•œ๋‹ค.

๊ธฐ๋ณธ ์ €์žฅ์†Œ๋Š” ์—†์œผ๋ฉฐ ์ ‘๊ทผ ๋ชจ๋“œ ๊ธฐ๋ณธ์€ ๋“ฑ๋ก + ์‹ ๊ทœ๋‹ค. ์ง€์›ํ•˜๋Š” ์ •์ฑ…์€ ์ €์žฅ์†Œ ๊ณ ์ •, ์†Œ์œ ์ž ์ง€์ •, ๋ชจ๋“  ์ €์žฅ์†Œ, ์‹ ๊ทœ ์ž๋™ ํ—ˆ์šฉ์ด๋‹ค. ์‹ ๊ทœ ๋ชจ๋“œ๋Š” Workspace ๋„๊ตฌ๊ฐ€ ์‹ค์ œ๋กœ ์ƒ์„ฑํ•œ ์ €์žฅ์†Œ๋ฅผ ์ž๋™ ๋“ฑ๋กํ•œ๋‹ค. ๊ธฐ์กด ์ €์žฅ์†Œ๋Š” ์†Œ์œ ์žยท๊ด€๋ฆฌ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ๋“ฑ๋กํ•œ๋‹ค.

์„ค๋ช…๊ณผ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ

์„ค๋ช… ์˜ˆ์‹œ:

Workspace์™€ Sandbox์—์„œ ์ฝ”๋“œยทํŒŒ์ผยท๋ฐ์ดํ„ฐ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณต์šฉ ์—์ด์ „ํŠธ๋‹ค. PR ๋ฆฌ๋ทฐ, Issue ์ˆ˜์ •, ๊ธฐ๋Šฅ ๊ตฌํ˜„, ๋ฆฌํŒฉํ† ๋ง, ์˜์กด์„ฑ ์—…๊ทธ๋ ˆ์ด๋“œ, CI ์‹คํŒจ ์กฐ์‚ฌ, ๋ณด์•ˆ ์ˆ˜์ •๊ณผ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์„ ์ง€์›ํ•œ๋‹ค. ๊ตฌํ˜„ยท์ˆ˜์ • ์ž‘์—…์€ ๊ฒ€์ฆ๊ณผ ์ž‘์—… ๋ธŒ๋žœ์น˜ PR๊นŒ์ง€ ์ œ๊ณตํ•œ๋‹ค. ๋ณ‘ํ•ฉยทํƒœ๊ทธยท๋ฆด๋ฆฌ์ฆˆยท๋ฐฐํฌ๋Š” ์š”์ฒญ๋œ ๋ฒ”์œ„์—์„œ ์กฐ์œจํ•œ๋‹ค.

์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ๋Š” workspace-agent.md๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ฝ”๋”ฉ ์š”์ฒญ์˜ ๊ธฐ๋ณธ ์™„๋ฃŒ ๋ฒ”์œ„๋Š” ์ƒˆ ์ž‘์—… ๋ธŒ๋žœ์น˜์˜ ๊ตฌํ˜„ยท๊ฒ€์ฆยท์ปค๋ฐ‹ยทํ‘ธ์‹œยทPR์ด๋‹ค. main ๋ฐ˜์˜ยทํƒœ๊ทธยท๋ฆด๋ฆฌ์ฆˆยท๋ฐฐํฌ๋Š” ๋ณ„๋„ ์‚ฌ์šฉ์ž ์š”์ฒญ๊ณผ ํ™•์ธ์„ ๋”ฐ๋ฅธ๋‹ค. ์กฐํšŒยท๋ฆฌ๋ทฐ๋‚˜ ๊ฒŒ์‹œ ์ œํ•œ ์š”์ฒญ์€ ๊ทธ ๋ฒ”์œ„๋ฅผ ์ง€ํ‚จ๋‹ค. ์ž‘์—…๋ณ„ ์ƒ์„ธ ์ง€์นจ๊ณผ Git ์˜ˆ์ œ๋Š” ์—ฐ๊ฒฐ Skill์—์„œ ์ฝ๋Š”๋‹ค. ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ํŠน์ • ๊ณ„์ •ยท์ €์žฅ์†ŒยทIssue๋ฅผ ๋„ฃ์ง€ ์•Š๋Š”๋‹ค.

Skills ๋ฐ”์ธ๋”ฉ

์ž‘์—… Skill ๊ธฐ๋ณธ ์™„๋ฃŒ ๋ฒ”์œ„
Review Pull Request code-review ํ•ด๋‹น HEAD์˜ ๊ทผ๊ฑฐ ์žˆ๋Š” ๋ฆฌ๋ทฐ; ๊ฒŒ์‹œยท์ˆ˜์ •์€ ์š”์ฒญ๋œ ๊ฒฝ์šฐ๋งŒ
Fix Issue fix-issue ์›์ธ ์ˆ˜์ •๊ณผ ํšŒ๊ท€ ๊ฒ€์ฆ
Implement Feature implement-feature ๊ด€์ฐฐ ๊ฐ€๋Šฅํ•œ ์š”๊ตฌ ๋™์ž‘๊ณผ ๊ฒ€์‚ฌ
Refactor refactor-code ๋ณด์กดํ•  ๊ณ„์•ฝ๊ณผ ์ „ํ›„ ๋™๋“ฑ์„ฑ ๊ฒ€์ฆ
Dependency Upgrade dependency-upgrade ๋Œ€์ƒ ๋ฒ„์ „ยทmanifestยทlockfileยท์ด๊ด€ยท๊ฒ€์‚ฌ
CI Failure Investigator ci-failure-investigator ์‹คํŒจ run/attempt/SHA์™€ ์›์ธ; ์ˆ˜์ •ยท์žฌ์‹คํ–‰์€ ์š”์ฒญ๋œ ๊ฒฝ์šฐ๋งŒ
Security Remediation security-remediation ์ง€์ •๋œ ๋ฌธ์ œ์˜ ์ˆ˜์ •ยท์•ˆ์ „ํ•œ ํšŒ๊ท€ ๊ฒ€์ฆยท๋‚จ์€ ์šด์˜ ์กฐ์น˜
Project Generator project-generator ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ์™€ ๊ฒ€์ฆยท์‚ฌ์šฉ๋ฒ•
์‹คํ–‰ ๊ณต๊ฐ„๊ณผ ๊ฒŒ์‹œ ์กฐ์œจ workspace-task ๊ฐ™์€ Workspace/Session ์žฌ์‚ฌ์šฉ, ์ ‘์ˆ˜ยท์™„๋ฃŒยท์Šน์ธ ๊ตฌ๋ณ„
์ผ๋ฐ˜ ํŒŒ์ผยท๋ฐ์ดํ„ฐยท์ž๋™ํ™” sandbox-task ์›๋ณธ ๋ณด์กดยท๋ณ€ํ™˜ยท์ง‘๊ณ„ยท์Šคํฌ๋ฆฝํŠธ์™€ ๊ฒฐ๊ณผ ๊ฒ€์‚ฌ
PR ์ œ๋ชฉยท๋ณธ๋ฌธ pr-description ์‹ค์ œ ๋ณ€๊ฒฝ๊ณผ ๊ฒ€์‚ฌ์— ๊ทผ๊ฑฐํ•œ ์„ค๋ช…

์œ„ 11๊ฐœ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ๋™์  ๋ฐœ๊ฒฌ์— ์˜์กดํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ชจ๋“  Skill์˜ ๋ณธ๋ฌธ์„ ๋ฏธ๋ฆฌ ์ฝ๊ฑฐ๋‚˜ ํ•œ ์š”์ฒญ์— 8๊ฐœ ๊ฐœ๋ฐœ ์ž‘์—…์„ ๋ชจ๋‘ ์ ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ชจ๋ธ๊ณผ ์ตœ๋Œ€ ํ„ด์€ ์ž‘์—… ๊ทœ๋ชจยท์„œ๋น„์Šค ์ •์ฑ…์— ๋งž์ถ˜๋‹ค. ๊ธด native ์ž‘์—…์€ ๋ถ€๋ชจ์˜ ์ƒํƒœ ์กฐํšŒ ํ•œ๋„๋ฅผ ๋Š˜๋ ค ์œ ์ง€ํ•˜์ง€ ์•Š๊ณ , ๋™์ผ Workspace์—์„œ ํ›„์† ํ™•์ธํ•œ๋‹ค.

GitHub MCP ํ”„๋กœํ•„

devops์˜ github ์„ ์–ธ์€ ์œ ์ง€ํ•˜๋ฉฐ MCP ์„œ๋ฒ„๋ฅผ ์ค‘๋ณต ๋“ฑ๋กํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ™์€ ์—ฐ๊ฒฐ์˜ ๋น„๋ฐ€์ด ์•„๋‹Œ Agent์˜ MCP ๋ฐ”์ธ๋”ฉ ํ—ค๋”๋ฅผ X-MCP-Toolsets: context,repos,issues,pull_requests,actions๋กœ ์„ค์ •ํ•˜๊ณ  ์žฌ๋ฐœ๊ฒฌํ•œ๋‹ค. Workspace๊ฐ€ Git ๊ฒŒ์‹œยท๋ฐฐํฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๊ธฐ๋ณธ ํ”„๋กœํ•„์—๋Š” X-MCP-Readonly: true๋„ ์„ค์ •ํ•œ๋‹ค. ๋ชจ๋ธยท๋„๊ตฌ ์„ ํƒ์„ ์ˆ˜์ •ํ•ด๋„ ์ด ํ—ค๋”๋ฅผ ์œ ์ง€ํ•œ๋‹ค. mcp.json ๋™๊ธฐํ™”๊ฐ€ ์†Œ์œ ํ•˜์ง€ ์•Š๋Š” ์„ค์น˜ ์„ค์ •์ด๋‹ค. ๊ณ„์ •ยทํ† ํฐยทOAuth scope๋Š” ๋ณต์‚ฌํ•˜๊ฑฐ๋‚˜ ํ™•๋Œ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

GitHub๋Š” ์›๊ฒฉ ์ฆ๊ฑฐ์™€ ์š”์ฒญ๋œ ํ˜‘์—…์„ ๋‹ด๋‹นํ•œ๋‹ค. Workspace ํŒŒ์ผ์˜ Git ๊ฒŒ์‹œ์™€ ์—ญํ• ์ด ๊ฒน์น˜๋Š” create_repository, create_branch, push_files, create_pull_request, merge_pull_request๋Š” ์ด ํ”„๋กœํ•„์—์„œ ์ œ์™ธํ•œ๋‹ค. IssueยทPR ์ฝ๊ธฐ, ํŒŒ์ผยทcommitยทrelease ์ฝ๊ธฐ์™€ ๊ฒ€์ƒ‰์„ ์—ฐ๊ฒฐํ•˜๊ณ  CI ์กฐ์‚ฌ์—๋Š” Actions์˜ actions_list, actions_get, get_job_logs ์ฝ๊ธฐ ๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. workflow ์‹คํ–‰/์žฌ์‹คํ–‰ ๋„๊ตฌ๋Š” ์กฐ์‚ฌ์— ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค. ์ƒˆ ์ €์žฅ์†Œ ์ƒ์„ฑ์—๋Š” Workspace.create_repository๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์ •ยท์ €์žฅ์†Œ ์กฐํšŒ๋ฅผ ์œ„ํ•ด get_me์™€ ์กฐํšŒ ๋„๊ตฌ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค. ์ƒ์„ฑ ์ „์— check_repository_access์˜ allowedยทcreation_allowed๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ์„œ๋ฒ„ ์ƒ์„ฑ ๊ฒฐ๊ณผ์˜ base_branch๋ฅผ ๊ฒ€์‚ฌํ•œ๋‹ค. ์ด๋ฆ„์ด ํ—ˆ์šฉ ๋ชฉ๋ก์— ์žˆ๋‹ค๋Š” ์ด์œ ๋กœ ๋ฐ”๋กœ cloneํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฆฌ๋ทฐยทIssue ํ”ผ๋“œ๋ฐฑ ๊ฒŒ์‹œ๊นŒ์ง€ ํ•„์š”ํ•œ ๋ณ„๋„ ํ”„๋กœํ•„์€ ์š”์ฒญ ๋ฒ”์œ„์— ๋งž๋Š” ์“ฐ๊ธฐ ๋„๊ตฌ๋งŒ ๋ช…์‹œ์ ์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ ๊ธฐ๋ณธ ํ”„๋กœํ•„์€ ํ•ด๋‹น ๊ฒŒ์‹œ๋ฅผ ์ง€์›ํ•œ๋‹ค๊ณ  ์•ฝ์†ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๋ณด์•ˆ ๊ฒฝ๊ณ  API๋Š” ๋ณ„๋„ toolsetยท๊ถŒํ•œ์ด ์žˆ์„ ๋•Œ๋งŒ ์—ฐ๊ฒฐํ•œ๋‹ค. ์ ‘๊ทผ์ด ์—†์œผ๋ฉด ์‚ฌ์šฉ์ž ์ œ๊ณต advisoryยท์Šค์บ” ๊ฒฐ๊ณผ์™€ ํ˜„์žฌ ์ฝ”๋“œยท์˜์กด์„ฑ์œผ๋กœ ๋Œ€์‘ํ•œ๋‹ค. ์ ‘๊ทผ ๊ฑฐ์ ˆ์„ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ๋œป์œผ๋กœ ํ•ด์„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฝ”๋“œยทGitHub ์ž๋ฃŒ๋Š” github MCP ์šด์˜ ์ง€์นจ์„ ๋”ฐ๋ฅธ๋‹ค.

์‹ค์ œ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ๋ฒ”์œ„

  • ์ƒˆ Workspace๋ฅผ ๋งŒ๋“ค๊ธฐ ์ „์— options.current_workspace๋ฅผ ํ™•์ธํ•œ๋‹ค. ํ›„์† ์š”์ฒญ์€ run ๋˜๋Š” prepare_git๋‹ค.
  • Runtime ์ง€์ •์ด ์—†์œผ๋ฉด options.default_runtime์„ ๋”ฐ๋ฅธ๋‹ค. ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋ณธ๊ฐ’์€ ModelsยทAgent ์„ค์ •์—์„œ ์ˆ˜์ •ํ•œ๋‹ค. ์ด๋ฏธ ์ฃผ์–ด์ง„ ์…ธ ์Šคํฌ๋ฆฝํŠธยท๊ฒ€์ฆ๋œ ์งง์€ ๋ช…๋ น์—๋Š” command๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. CLI ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋„ ์ž์—ฐ์–ด ์ฝ”๋”ฉ ์ž‘์—…์ด๋‹ค.
  • PR ๋ฆฌ๋ทฐยทCI ์กฐ์‚ฌ๋งŒ์œผ๋กœ ์ถฉ๋ถ„ํ•œ ์ž‘์—…์—๋Š” Sandbox๋ฅผ ๋งŒ๋“ค์ง€ ์•Š๋Š”๋‹ค. ์žฌํ˜„์ด ํ•„์š”ํ•˜๋ฉด ์‹ค์ œ HEAD๋ฅผ ํ™•์ธํ•œ๋‹ค.
  • start๋Š” branch ๊ธฐ๋ฐ˜ clone์ด๋‹ค. ์ž„์˜ SHA checkout, ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ fork, ๋‹ค๋ฅธ Runtime์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์—†๋‹ค.
  • Git-free ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ์€ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ƒ์„ฑํ•œ ํŒŒ์ผ์ด ์žˆ๋Š” ๊ณต๊ฐ„์— ์ €์žฅ์†Œ๋ฅผ ๋’ค๋Šฆ๊ฒŒ attachํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๊ฒŒ์‹œํ•  ํ”„๋กœ์ ํŠธ๋Š” ์ƒ์„ฑ ์ „์— ์ €์žฅ์†Œ ๋˜๋Š” ์†Œ์œ ์ž๊ฐ€ ํ—ˆ์šฉ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. GitHub ์—ฐ๊ฒฐ ์ž์ฒด๊ฐ€ Workspace ์ •์ฑ…์„ ๋ฐ”๊พธ์ง€๋Š” ์•Š๋Š”๋‹ค.
  • CSVยทJSONยท๋กœ๊ทธ ๋ถ„์„, ํŒŒ์ผ ๋ณ€ํ™˜, ์ผ๊ด„ ์ฒ˜๋ฆฌ์™€ ๋ณด๊ณ ์„œ ์žฌ๋ฃŒ ์ƒ์„ฑ๋„ ๊ฐ™์€ ๊ณต๊ฐ„์—์„œ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ฒจ๋ถ€ยทArtifact์˜ ์ž๋™ mount, ๊ณต๊ฐœ ๋ฏธ๋ฆฌ๋ณด๊ธฐ, ๋‹ค์šด๋กœ๋“œ export, ํ˜ธ์ŠคํŠธ ์ ‘๊ทผ์€ ์ œ๊ณต๋˜์ง€ ์•Š๋Š” ํ•œ ์•ฝ์†ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • Chat ์Šน์ธ ์‘๋‹ต์— source_chat_url์ด ์žˆ์œผ๋ฉด ์Šน์ธ ๊ฒฐ๊ณผ๊ฐ€ ์›๋ž˜ ์ฑ„ํŒ…์— ์ „๋‹ฌ๋˜๊ณ  ๊ฐ™์€ SDK ์ด๋ ฅ์œผ๋กœ ์žฌ๊ฐœ๋œ๋‹ค. ๋‹ค๋‹จ๊ณ„ ์š”์ฒญ์€ ๊ฐ ์„ฑ๊ณต ํ›„ ๋‹ค์Œ ๊ฒ€ํ† ๋กœ ์ด์–ด๊ฐ€๋ฉฐ, ์‹คํŒจยท๊ฑฐ์ ˆยท๊ฒฐ๊ณผ ๋ถˆ๋ช…์ธ ๋™์ž‘์„ ์ž๋™ ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋Š”๋‹ค. PR ๊ฒ€์‚ฌ pending์€ ci_watch๋กœ ์ตœ๋Œ€ 30๋ถ„ ๊ด€์ฐฐํ•˜๊ณ  ๊ฒ€์‚ฌ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์€ ์ฑ„ํŒ…์„ ์žฌ๊ฐœํ•œ๋‹ค. Playgroundยท์ง์ ‘ Workspace ์š”์ฒญ์—๋Š” ์›๋ž˜ Chat์„ ์ž„์˜๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • Workspace checks, ์ง์ ‘ ์‹คํ–‰ํ•œ ๊ฒ€์‚ฌ์™€ GitHub CI๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค. Git ๊ฒŒ์‹œยทCIยท๋ฆด๋ฆฌ์Šคยท๋ฐฐํฌ๋„ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๋‹ค.

GitHub Webhook

Agent Settings์˜ Webhook URL์„ GitHub Payload URL๋กœ ์‚ฌ์šฉํ•˜๊ณ  Content type์€ application/json์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. Agent๊ฐ€ ๋ฐœ๊ธ‰ํ•œ ์‹œํฌ๋ฆฟ์„ GitHub Secret์— ๋„ฃ์œผ๋ฉด ์„œ๋ช…์œผ๋กœ ์ธ์ฆํ•˜๋ฏ€๋กœ ์ปค์Šคํ…€ ํ—ค๋”๊ฐ€ ํ•„์š” ์—†๋‹ค. 202๋Š” ์ ‘์ˆ˜ ๊ฒฐ๊ณผ์ด๋ฉฐ ์‹ค์ œ ์‘๋‹ต์€ Trigger ์ด๋ ฅ์—์„œ ํ™•์ธํ•œ๋‹ค. Webhook์€ machine actor๋กœ ์‹คํ–‰๋˜๋ฉฐ ๊ฐœ์ธ ์‚ฌ์šฉ์ž Workspace ์‹คํ–‰ ๊ถŒํ•œ์ด๋‚˜ Git ์Šน์ธ ๊ถŒํ•œ์„ ์ž๋™์œผ๋กœ ์–ป์ง€ ์•Š๋Š”๋‹ค.

๊ฒ€์ฆ

์ €์žฅ์†Œ ์ •์  ๊ฒ€์‚ฌ์™€ ํ–‰๋™ ํ‰๊ฐ€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์‹œ๋‚˜๋ฆฌ์˜ค ๊ฒ€ํ† ์™€ ์‹ค์ œ ๋ชจ๋ธยท๋„๊ตฌ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค. ์šด์˜ ํ™•์ธ์€ ์ฝ๊ธฐ ์ž‘์—…๊ณผ ๊ฒฉ๋ฆฌ๋œ Git-free fixture๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์›๊ฒฉ ๊ฒŒ์‹œยท๋ณด์•ˆ ์„ค์ • ๋ณ€๊ฒฝ์„ ํ…Œ์ŠคํŠธ ๋ถ€์ž‘์šฉ์œผ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค.