๊ธ€ ์ž‘์„ฑ์ž: ์ด์ง€์›๐ŸŒฉ๏ธ

๊ฐœ์š”

Github Actions๋ฅผ ์ด์šฉํ•ด์„œ ์ž๋™์œผ๋กœ ์ด์Šˆ์˜ ๋Œ“๊ธ€์— ํŠน์ • ํ‚ค์›Œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ํ•ด๋‹น ๋Œ“๊ธ€ ์ž‘์„ฑ์ž๋ฅผ Assigneess๋กœ ๋“ฑ๋กํ•˜๊ธฐ

 

โ“ ์™œ ๋„์ž…ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๊ฐ€

2021๋…„์„ ๋งž์ดํ•˜๋ฉด์„œ ์ด๋ฒˆ ์ฃผ์— ๋‚˜๋Š” ์–ผ๋งˆ๋‚˜ ์žฅ์ž‘์„ ํƒœ์› ๋Š”๊ฐ€? ์Šคํ„ฐ๋””์— ์ฐธ์—ฌํ–ˆ๋‹ค. ์ด๊ณณ์—์„œ๋Š” ๋งค์ฃผ 3๊ฐ€์ง€ ๋ชฉํ‘œ๋ฅผ ์™„๋ฃŒํ•˜๊ณ  ๋‚˜์„œ PR์„ ๋‚ ๋ฆฐ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์„ธ๋ช…์˜ ๋ฆฌ๋ทฐ์–ด๊ฐ€ ์ž๋™์œผ๋กœ ์ง€์ •์ด ๋˜๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ณ  ๋จธ์ง€๋˜๋Š” ํ˜•์‹์ด๋‹ค.

๋ฆฌ๋ทฐ์–ด ์„ธ๋ช…์ด ์ž๋™์œผ๋กœ ์ง€์ •๋˜๋Š”๊ฒŒ ์ข‹์•„ ๋ณด์˜€๋‹ค. ํ˜„์žฌ ํ•˜๊ณ  ์žˆ๋Š” ์Šคํ„ฐ๋””์—๋„ ์ ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ์ ์šฉํ•˜๋ฉด ์ด์Šˆ์˜ ํ•„ํ„ฐ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ฐธ์—ฌํ•œ ์ด์Šˆ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹์„ ๊ฑฐ ๊ฐ™์•˜๋‹ค. ํ•˜๊ณ  ์‹ถ์œผ๋ฉด ๋ญ๋‹ค? ํ•ด๋ณธ๋‹ค. ใ…‹ใ…‹

 

ํ•˜๋ฉด์„œ ์•Œ๊ฒŒ๋œ ์‚ฌ์‹ค์ธ๋ฐ Github์˜ teams๋ฅผ ์ด์šฉํ•˜๋ฉด ์ฝ”๋“œ ๋ฆฌ๋ทฐ์–ด๋ฅผ ๋žœ๋ค์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. [์ฐธ๊ณ ]

 

๐Ÿคฏ ์‚ฝ์งˆ๊ณผ ์‚ฝ์งˆ

๊ทธ๋ž˜์„œ ์ฒ˜์Œ์—๋Š” ๊ฒ€์ฆ๋„ ์•ˆ ํ•ด๋ณด๊ณ  ๋ฌด์ž‘์ • ์Šคํ„ฐ๋”” ์ €์žฅ์†Œ์— ์ ์šฉํ•ด๋ดค๋Š”๋ฐ ๋™์ž‘์„ ์•ˆ ํ–ˆ๋‹ค.

์ด๋•Œ ์Šคํ„ฐ๋”” ์Šฌ๋ž™์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์ฑ„๋„์— ์ €์žฅ์†Œ๋ฅผ ๊ตฌ๋…ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋‚ด๊ฐ€ ์ž‘์—…ํ•œ ๊ฒƒ๋“ค์ด ๋ฉ”์‹œ์ง€๋กœ ์™€์„œ ์ฑ„ํŒ…์ด ๋„๋ฐฐ๋˜๋Š” ๋ชจ์Šต์„ ๋ณด๊ณ  ์•„์ฐจ ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์›๊ฒฉ ์ €์žฅ์†Œ ์•Œ๋ฆผ์šฉ ์ฑ„๋„์„ ๋”ฐ๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ์ง€๊ธˆ๋„ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ํ•™๊ต ๊ณต์ง€์‚ฌํ•ญ ๋ด‡ ์‚ฌ๊ฑด์ด ์ƒ๊ฐ๋‚ฌ๋‹ค. (์ž ๊น ๊ณ ์žฅ ๋‚ฌ์—ˆ์„ ๋•Œ ๊ณ ์นœ๋‹ค๊ณ  ํ…Œ์ŠคํŠธ ๊ณ„์ •์ด ์•„๋‹ˆ๋ผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ๋ด‡์œผ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹ค๋Ÿ‰ ๋ฐœ์†กํ–ˆ์—ˆ๋‹ค.) ์Šฌ๋ž™ ์•Œ๋ฆผ ํ…Œ๋Ÿฌ๋ฅผ ๋ฐ›์€ ์Šคํ„ฐ๋””์›๋“ค์—๊ฒŒ ์‹ฌ์‹ฌ์ฐฎ์€ ์‚ฌ๊ณผ๋ฅผ ์ „ํ•ฉ๋‹ˆ๋‹ค... ๋Žจ๋™ํ•ฉ๋‹ˆ๋‹ค ํ‘ํ‘


๊ทธ ํ›„๋กœ ๊ฐœ์ธ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋งŒ๋“ค์–ด์„œ ์ž‘์—…์„ ํ–ˆ๋‹ค. ์›”์š”์ผ ์˜คํ›„ 8์‹œ๋ถ€ํ„ฐ ์ž์ •๊นŒ์ง€, ๊ทธ๋‹ค์Œ ๋‚  ์˜คํ›„ 3์‹œ๋ถ€ํ„ฐ 8์‹œ๊นŒ์ง€... ์ค‘๊ฐ„์— ์•ˆ ๋˜๋Š” ์ค„ ์•Œ๊ณ  ๋˜๋Š” ๊ธฐ๋Šฅ๋งŒ ๋จผ์ € ์ ์šฉํ–ˆ์—ˆ๋Š”๋ฐ! ๋‹ค ๋งŒ๋“ค์–ด์„œ ํ…Œ์ŠคํŠธ๊นŒ์ง€ ํ•˜๊ณ ์„œ ์ ์šฉํ–ˆ๋‹ค.

์•„๋ฌดํŠผ ๊ด€๋ จ๋œ ํ•œ๊ธ€ ์ž๋ฃŒ๊ฐ€ ๋ณ„๋กœ ์—†์–ด์„œ.. ๋‚˜๋ž‘ ๋น„์Šทํ•œ ์šฉ๋„๋กœ ์ž๋™ํ™”ํ•˜๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์„ ์œ„ํ•ด ๊ธ€๋กœ ๊ธฐ๋กํ•ด๋ณธ๋‹ค.

ํ…Œ์ŠคํŠธํ•ด๋ณธ๋‹ค๊ณ  ์Œ“์ธ ๋ถˆํ•„์š”ํ•œ ์ปค๋ฐ‹ ํ”์ ๋“ค. ์ง€๊ธˆ์€ ์‚ญ์ œํ–ˆ๋‹ค.

์ •๋ง ๋‹คํ–‰ํžˆ๋„ Github Actions๋Š” ๊ณต์‹ ๋ฌธ์„œ๊ฐ€ ์ž˜ ์ •๋ฆฌ๋˜์–ด ์žˆ์—ˆ๊ณ , ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž˜ ๋งŒ๋“ค์–ด๋†“์€ ๊ฒƒ๋“ค์„ ๊ฐ€์ ธ๋‹ค๊ฐ€ ํ™œ์šฉํ•˜๋ฉด ๋๋‹ค.

์ฒ˜์Œ ์จ๋ด์„œ ์–ด๋ ค์› ๋‹ค.

์ด ๊ธ€์—์„œ๋Š” Issues Helper๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

๐Ÿ’ฌ ์ด์Šˆ์˜ ๋Œ“๊ธ€์— ํŠน์ • ํ‚ค์›Œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ํ•ด๋‹น ๋Œ“๊ธ€ ์ž‘์„ฑ์ž๋ฅผ Assigneess๋กœ ๋“ฑ๋กํ•˜๊ธฐ

Issues Helper์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ ์ค‘์— find-comments์™€ add-assignees๋ฅผ ์ด์šฉํ•ด์„œ ๋งŒ๋“ค์—ˆ๋‹ค.

name: ์—๋Š” ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์ด๋ฆ„์„ ์ž‘์„ฑํ•œ๋‹ค. ๋‚˜์ค‘์— Actions ํƒญ์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์‹๋ณ„ํ•  ๋•Œ ์“ฐ์ธ๋‹ค.

on: ์—๋Š” ์›Œํฌํ”Œ๋กœ์šฐ์˜ ํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ๋˜๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค. ๋‚˜๋Š” ์ด์Šˆ์˜ ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์„ ๋•Œ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ ์‹คํ–‰๋˜๊ฒŒ ์ž‘์„ฑํ–ˆ๋‹ค.
์ด๋ฐ–์—๋„ push ๋˜์—ˆ์„ ๋•Œ, pull request๊ฐ€ ์™”์„ ๋•Œ, fork ํ–ˆ์„ ๋•Œ ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ์ด๋ฒคํŠธ๋“ค์ด ์žˆ๋‹ค. ๋” ๋งŽ์€ ์ด๋ฒคํŠธ๋Š” Events that trigger workflows ๋ฌธ์„œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

jobs: ๋ฐ‘์œผ๋กœ ์ด์ œ ํ•ด์•ผ ํ•  ์ผ๋“ค์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.

find-comments์˜ ์‚ฌ์šฉ๋ฒ•

find-comments + create-comment + update-comment ํ™œ์šฉ


body-includes: ์—๋Š” ๋Œ“๊ธ€ ๋‚ด์šฉ์— ์ฐพ๊ณ ์ž ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋ฅผ ์ ๋Š”๋‹ค. ๋‚˜๋Š” ๋Œ“๊ธ€์— ๋งํฌ๊ฐ€ ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•˜๊ณ  ์‹ถ์–ด์„œ http๋ฅผ ํ‚ค์›Œ๋“œ๋กœ ์ž‘์„ฑํ–ˆ๋‹ค.

outputs: ์— ๋“ค์–ด๊ฐ€๋Š” ๊ฑด ๋‹ค๋ฅธ job์— ๊ฐ’์„ ๋„˜๊ฒจ์ค„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ${{ needs.job1.outputs.xxx }} ํ˜•ํƒœ๋กœ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ์ง€์ • ํ‚ค์›Œ๋“œ๊ฐ€ ๋“ค์–ด๊ฐ„ ๋Œ“๊ธ€ ์ •๋ณด๋ฅผ ๋„˜๊ธด๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ job์€ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์‹คํ–‰๋˜๋Š”๋ฐ, needs: ์— ํ•ด๋‹น job์ด ์‹คํ–‰๋˜๊ธฐ ์ „์— ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” job์„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋‹ค.

job2 ์—์„œ๋Š” job1์—์„œ ๊ฐ€์ ธ์˜จ ๋Œ“๊ธ€ ๋ชฉ๋ก ์ค‘์— ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ ๋Œ“๊ธ€ ์ •๋ณด์˜ ์ž‘์„ฑ์ž๋ฅผ ํ•„ํ„ฐ๋งํ•œ๋‹ค. ํ•„ํ„ฐ๋ง์„ ํ•  ๋•Œ jq๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, -r ์˜ต์…˜์„ ๋ถ™์—ฌ์ฃผ๋ฉด ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

print ์ž‘์—…์€ ํ™•์ธ ์ฐจ ๋งŒ๋“ค์–ด ๋†“์€ ๋ถ€๋ถ„์ด๊ณ  ์—†์–ด๋„ ๋ฌด๋ฐฉํ•˜๋‹ค. job3์—์„œ๋Š” job2์—์„œ ํ•„ํ„ฐ๋งํ•œ ๋Œ“๊ธ€ ์ž‘์„ฑ์ž๋ฅผ ํ•ด๋‹น ์ด์Šˆ์˜ assignees๋กœ ๋“ฑ๋กํ•œ๋‹ค.

์Šคํ„ฐ๋”” ์ €์žฅ์†Œ์— ์ ์šฉ๋œ ์‚ฌ์ง„

 

๐Ÿ˜ถ ์—ฌ๋‹ด

๋‚จ์ด ๋งŒ๋“  ๊ฑธ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“ค์—ˆ์ง€๋งŒ, ๊ทธ๋ž˜๋„ ์žฌ๋ฏธ์žˆ์—ˆ๋‹ค. ๋งŒ๋“ค๊ณ  ๋‚˜๋‹ˆ ๋ฟŒ๋“ฏํ•˜๋‹ค. ์ด๋ž˜์„œ ๋‹ค๋“ค ์ž๋™ํ™”ํ•˜๋Š” ๊ฑธ๊นŒ?

Issue-Helper ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์•ฑ์„ ์ด์šฉํ•˜๋ฉด ํŠน์ • Label์— ํŠน์ • ์‚ฌ๋žŒ assignees๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ, ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ๋ฆฌ๋ทฐ์–ด ์ง€์ •ํ•˜๊ธฐ ๋“ฑ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ต์ง€ ์•Š์œผ๋‹ˆ ์ง€๊ธˆ๊นŒ์ง€ ์ง์ ‘ ์ ์šฉํ•˜๊ณ  ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ์ง์ ‘ ๋งŒ๋“ค์–ด๋ด๋„ ์ข‹์„ ๊ฑฐ ๊ฐ™๋‹ค.

๋ฐ˜์‘ํ˜•