Gitea: ํ”„๋กœ์ ํŠธ๋‹น SCRUM ๋ฐฑ๋กœ๊ทธ/์Šคํ”„๋ฆฐํŠธ ๋ฐฑ๋กœ๊ทธ

์— ๋งŒ๋“  2018๋…„ 02์›” 08์ผ  ยท  42์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: go-gitea/gitea

์ตœ๋Œ€ํ•œ ๋งŽ์€ ๋ถ„๋“ค์ด ์ด ์ด์Šˆ์— ์ฐธ์—ฌํ•˜๊ณ  ๋งŽ์€ ์ œ์•ˆ๊ณผ ์•„์ด๋””์–ด๋ฅผ ์ˆ˜์ง‘ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
Miscrosoft์˜ VSTS(https://www.visualstudio.com/team-services/)์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ์ผ์ž…๋‹ˆ๋‹ค.
๊ผญ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์• ์ž์ผ ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ SCRUM์— ์ ํ•ฉํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
:) ์ฆ๊ฒ๊ฒŒ ํ† ๋ก ํ•˜์„ธ์š”.

kinproposal

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋™์ผํ•œ ๋„๊ตฌ์— ํ†ตํ•ฉ๋œ ๋ณด๋“œ๊ฐ€ ์žˆ๋Š” ์ผ๋ถ€ ํŒ€์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ƒ์„ฑ๋˜์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. Gitlab์ด๋‚˜ Github์™€ ๊ฐ™์€ ๋ณด๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” gitea ํ†ตํ•ฉ ๋ณด๋“œ/ํ”„๋กœ์ ํŠธ ํƒญ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์•„์ด๋””์–ด์˜ ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์•„์ด๋””์–ด๋Š” Gitlab ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

board-some-columns

board-many-columns

์‹ค์ œ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๊ณ ์ •๋œ ๋ฐ์ดํ„ฐ์ผ ๋ฟ์ด์ง€๋งŒ ๋น„์ฃผ์–ผ์€ ์ด์™€ ๋น„์Šทํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://github.com/rudineirk/gitea/blob/projects-board/templates/repo/issue/list.tmpl

๋น ์ง„ ๊ฒƒ์€ Gitlab๊ณผ ๊ฐ™์ด ๋ณด๋“œ๋ฅผ ์ƒ์„ฑ/์„ ํƒํ•˜๋Š” ๋น„์ฃผ์–ผ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํŒ€์„ ์œ„ํ•œ ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ชจ๋“  42 ๋Œ“๊ธ€

ํŠนํžˆ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ๋ง์”€ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

SCRUM์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ํ•˜๋‚˜์˜ ์ œํ’ˆ ๋ฐฑ๋กœ๊ทธ๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ์šฐ์„ ์ˆœ์œ„ ๋˜๋Š” ์‚ฌ์ „ ์ •์˜๋œ ๊ฐ’๋ณ„๋กœ ์ •๋ ฌ๋ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋Š” ์šฐ์„  ์ˆœ์œ„ ํ•„๋“œ("๋ฌธ์ œ"์™€ ๋น„์Šทํ•˜์ง€๋งŒ ์šฐ์„  ์ˆœ์œ„์— ๋”ฐ๋ผ ์ •๋ ฌ๋จ)๋ฅผ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•œ ์ œ๋ชฉ, ์„ค๋ช… ๋ฐ ๊ฐ’์˜ ์ด๋ฆ„๊ณผ ํ•ด๋‹น ์šฐ์„  ์ˆœ์œ„ ํ•„๋“œ๋กœ ๊ตฌ์„ฑ๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ User-Story๊ฐ€ ๊ตฌํ˜„๋˜์—ˆ๋Š”์ง€, ์ œ๊ฑฐ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ(์ผ๋ถ€ ๋ฌธ์ œ๋กœ ์ธํ•ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์„ค๋ช…์ด ํ•„์š”ํ•จ)

๋งค ์Šคํ”„๋ฆฐํŠธ(์ •์˜๋œ ๊ธฐ๊ฐ„)์—์„œ ๊ฐœ๋ฐœ์ž๋Š” ์ œํ’ˆ ๋ฐฑ๋กœ๊ทธ์—์„œ ์ผ๋ถ€ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์Šคํ”„๋ฆฐํŠธ ๋ฐฑ๋กœ๊ทธ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. P ๋ฐฑ๋กœ๊ทธ๋Š” P-๋ฐฑ๋กœ๊ทธ ์™ธ์— ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ์•„์ด๋””์–ด(์„ ํƒ ์‚ฌํ•ญ์ผ ์ˆ˜๋„ ์žˆ์Œ)๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ํƒํ•œ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ์— ์˜ํ•ด ์„ค๋ช…๋˜๋Š” ํŠน์ • ๋ฌธ์ œ. ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ• ๋‹น๋œ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์ง€๋งŒ ํŽธ์ง‘ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค(๋Œ“๊ธ€๋งŒ ๋‹ฌ ์ˆ˜ ์žˆ์Œ).
๊ฐœ๋ฐœ์ž๋Š” ์ž์‹ ์˜ ์†”๋ฃจ์…˜ ๋…ธํŠธ๋งŒ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ์˜ ์„ค๋ช…/์ œ๋ชฉ์€ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ตœ์†Œํ•œ ๋‘ ๊ฐ€์ง€ ์—ญํ• (์ œํ’ˆ ์†Œ์œ ์ž ๋ฐ ๊ฐœ๋ฐœ์ž(๋ฐฐํƒ€์ ์ด ์•„๋‹˜))์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
dev-1์ด ํ• ๋‹น๋œ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ ๋งˆ์ณค์œผ๋ฉด ๋‹ค๋ฅธ dev-2์—๊ฒŒ ์ž์‹ ์˜ (๋‹ค๋ฅธ dev-2) ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ dev-1์— ํ• ๋‹นํ•˜๋„๋ก ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด ์‹œ์ ์—์„œ ํ† ๋ก ์„ ์œ„ํ•ด ์—ด๋ ค ์žˆ์Œ).

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

์ƒˆ๋กœ์šด ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์ผ๋ถ€ ๊ธฐ๋Šฅ๊ณผ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ ์‹œ์Šคํ…œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์ œํ’ˆ ์†Œ์œ ์ž๋Š” ์ด๋Ÿฌํ•œ ์ œ์•ˆ์„ ๋ฐ›์•„ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์šฐ์„  ์ˆœ์œ„, ์ž์„ธํ•œ ์„ค๋ช… ๋“ฑ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ์ด์Šˆ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ œํ’ˆ ์†Œ์œ ์ž๊ฐ€ ์Šคํฌ๋Ÿผ ํ•ญ๋ชฉ์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž…๋ ฅ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์€์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋ฌธ์ œ ์‹œ์Šคํ…œ์„ ์ œ์™ธํ•˜๊ณ  ์Šคํฌ๋Ÿผ ํ•ญ๋ชฉ์„ ์ž์ฒด ๋ฌธ์ œ๋กœ ๋ณด๋Š” ๊ฒƒ ์ฒด๊ณ„.

TLDR :D
์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ์—ญํ• ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ์ œํ’ˆ ์†Œ์œ ์ž(๊ธฐ๋ณธ์ ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์ œํ’ˆ/ํ”„๋กœ์ ํŠธ ์†Œ์œ ์ž๊ฐ€ ์—ญํ• ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ์†Œ์œ ์ž)์ด๊ณ  ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.
๋˜ํ•œ ์ •์˜๋œ(์ œํ’ˆ ์†Œ์œ ์ž?) ๊ธฐ๊ฐ„๊ณผ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์žˆ๋Š” ์Šคํ”„๋ฆฐํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”„๋ฆฐํŠธ ๋ฐฑ๋กœ๊ทธ์— ์•„๋ฌด ๊ฒƒ๋„ ์—†์œผ๋ฉด ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์ง€๋งŒ ์ฃผ์„( ํ•˜์œ„ ๋Œ“๊ธ€์ด ์žˆ๋Š” ํ•˜๋‚˜์˜ ์Šคํ‹ฐ์ปค ๋Œ“๊ธ€?).
๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ์˜ ์ƒํƒœ๋ฅผ ๋ฏธ์™„์„ฑ ์ƒํƒœ์—์„œ ์™„๋ฃŒ ์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์Šคํ”„๋ฆฐํŠธ ๋‚ด์—์„œ๋งŒ? ์•„๋‹ˆ๋ฉด ์›ํ•  ๋•Œ๋งˆ๋‹ค?)(๋ฌธ์ œ๋Š” ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๊ฐ€ ์–ด๋–ค ์ƒํƒœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?)
์Šคํ”„๋ฆฐํŠธ๊ฐ€ ๋๋‚˜๋ฉด "์ด์Šˆ ํŠธ๋ž˜์ปค"์˜ ์ƒํƒœ๊ฐ€ ๊ฒ€ํ†  ๋‹จ๊ณ„๋กœ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์™„๋ฃŒ๋œ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋งŒ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ๋ˆ์ ํ•œ ๊ฐœ๋ฐœ์ž ์ฝ”๋ฉ˜ํŠธ๋งŒ? ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๊นŒ? ๋ชจ๋“  ์ฝ”๋ฉ˜ํŠธ?). (์–ด๋–ค ์ƒํƒœ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? : ์ œ์•ˆ: ๊ณ„ํš, ์Šคํ”„๋ฆฐํŠธ, ๊ฒ€ํ† , ํšŒ๊ณ )
๊ทธ๋Ÿฐ ๋‹ค์Œ ์ œํ’ˆ ์†Œ์œ ์ž(?)๋Š” ์ƒํƒœ๋ฅผ ํšŒ๊ณ ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ์ œ์•ˆ, ํŒจํ„ด, ๋ชจ๋ฒ” ์‚ฌ๋ก€, ๋‚˜์œ ๊ด€ํ–‰ ๋“ฑ์€ ๋ฌผ๋ก  ๋ชจ๋“  ์™„๋ฃŒ ๋ฐ ๋ฏธ์™„์„ฑ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” "๊ฒŒ์‹œํŒ"์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ๋‹จ๊ณ„ ํ›„์— ์ œํ’ˆ ์†Œ์œ ์ž(?)๋Š” ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ์™„์„ฑ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ(?)๋Š” ์ œํ’ˆ ๋ฐฑ๋กœ๊ทธ๋กœ ๋Œ์•„๊ฐ€์•ผ ํ•˜๊ณ  ์™„๋ฃŒ๋œ ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋Š” ๋ณด๊ด€๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์ค‘์— ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ๊ฒฌ๋˜๋ฉด ์‚ฌ๋žŒ๋“ค์„ ์†๊ฐ€๋ฝ์œผ๋กœ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.)
๊ทธ๋ฆฌ๊ณ  ๊ณ„ํš ๋‹จ๊ณ„์—์„œ ๊ฐœ๋ฐœ ํŒ€์€ ์Šคํ”„๋ฆฐํŠธ ๋ฐฑ๋กœ๊ทธ์— ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ ๋‹ค์‹œ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ด ๋‹จ๊ณ„ ํ›„์— ์–ด๋–ป๊ฒŒ๋“  ์ œํ’ˆ ์†Œ์œ ์ž๊ฐ€ ์Šคํ”„๋ฆฐํŠธ๋ฅผ ์‹œ์ž‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฆ๊ฑฐ์šด ํ† ๋ก (ํฌ๋ง)

์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋Š” ๋˜ํ•œ ์ผ๋ฐ˜์ ์ธ ์ด์Šˆ ํŠธ๋ž˜์ปค์—์„œ ์ด์Šˆ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ชจ๋“  ์†์„ฑ(์˜ˆ: ํƒœ๊ทธ ๋“ฑ)์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์ด๋ฏธ #805์—์„œ ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ํŒ€์˜ ์›Œํฌํ”Œ๋กœ๊ฐ€ ํฌ๊ฒŒ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๊ณ , ์ด๋Ÿฐ ์ด์œ ๋กœ GitHub๋‚˜ GitLab, ๋˜๋Š” Bitbucket์˜ Scrum ์‹œ์Šคํ…œ๊ณผ ์œ ์‚ฌํ•œ "ํ”„๋กœ์ ํŠธ" ๊ธฐ๋Šฅ์ด ์—†์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ƒํ™ฉ์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์†”๋ฃจ์…˜์€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Issues๋Š” ์ถ”์ ํ•  ํ•ญ๋ชฉ์ด ๋งŽ์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ์†Œ๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ข‹์€ ์ ˆ์ถฉ์•ˆ์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ํ•œ Gitea๋Š” ์ž์ฒด์ ์œผ๋กœ GitHub/Lab ์Šคํƒ€์ผ ๋ฌธ์ œ๋ฅผ ๊ณ ์ˆ˜ํ•˜๊ณ  API์™€ ์›นํ›…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋„๊ตฌ๋งŒ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜ ์‚ฌ๋žŒ๋“ค์ด ์™ธ๋ถ€ ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!).

@jxsl13 Gitea ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” https://github.com/opf/openproject ๋ฅผ ์ถ”์ฒœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์›Œํฌํ”Œ๋กœ๋ฅผ ์ง€์›ํ•˜๋ฉฐ ํ‹ฐ์ผ“/๋ฐœ๊ธ‰ ๊ด€๋ฆฌ์ž๋กœ ์‚ฌ์šฉํ•˜๋„๋ก gitea๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(gitea์—์„œ URL์„ ์„ค์ •ํ•˜์—ฌ).

@sap ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ฝค ์œ ๋งํ•ด ๋ณด์ž…๋‹ˆ๋‹ค

@sapk ์ €๋Š” Open-project๋ฅผ ์„ค์น˜ํ•˜๊ณ  Gitea์—์„œ ํ‹ฐ์ผ“/์ด์Šˆ ๊ด€๋ฆฌ์ž๋ฅผ ๋ณ€๊ฒฝํ–ˆ์ง€๋งŒ ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. open-project์™€ gitea ์‚ฌ์ด์— ์–ด๋–ค ๊ด€๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜๋Š” OpenProject์— ๋Œ€ํ•œ Gitea ๋งํฌ๋งŒ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‚ด ์งˆ๋ฌธ์€ ๋‚ด gitea ๋ฌธ์ œ๋ฅผ openproject ์ž‘์—…(gitea ์ฝ”๋“œ, gitea ๋ฐ openproject์—์„œ ๋™์ผํ•œ ์ˆ˜์˜ ๋ฌธ์ œ)๊ณผ ๊ด€๋ จ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‹ต์žฅ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

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

๋‚˜๋Š” ๋ ˆ์ด๋ธ”์—์„œ ์Šคํฌ๋Ÿผ/์นธ๋ฐ˜ "๋ณด๋“œ"๋ฅผ ๋งŒ๋“ค๊ณ  ๋‹ค๋ฅธ ๋ณด๊ธฐ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” Gitlab ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ๋„๊ตฌ์— ํ†ตํ•ฉ๋œ ๋ณด๋“œ๊ฐ€ ์žˆ๋Š” ์ผ๋ถ€ ํŒ€์˜ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ์ƒ์„ฑ๋˜์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. Gitlab์ด๋‚˜ Github์™€ ๊ฐ™์€ ๋ณด๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” gitea ํ†ตํ•ฉ ๋ณด๋“œ/ํ”„๋กœ์ ํŠธ ํƒญ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์•„์ด๋””์–ด์˜ ํ”„๋กœํ† ํƒ€์ž…์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์•„์ด๋””์–ด๋Š” Gitlab ์ ‘๊ทผ ๋ฐฉ์‹์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

board-some-columns

board-many-columns

์‹ค์ œ๋กœ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ  ๊ณ ์ •๋œ ๋ฐ์ดํ„ฐ์ผ ๋ฟ์ด์ง€๋งŒ ๋น„์ฃผ์–ผ์€ ์ด์™€ ๋น„์Šทํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
https://github.com/rudineirk/gitea/blob/projects-board/templates/repo/issue/list.tmpl

๋น ์ง„ ๊ฒƒ์€ Gitlab๊ณผ ๊ฐ™์ด ๋ณด๋“œ๋ฅผ ์ƒ์„ฑ/์„ ํƒํ•˜๋Š” ๋น„์ฃผ์–ผ์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํŒ€์„ ์œ„ํ•œ ๋ณด๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@rudineirk ์ด ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

๋‚˜๋„ ์ด๋Ÿฐ ์ผ์ด ์ƒ๊ฒผ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค! ์ด๋ฅผ ํ†ตํ•ด ๋งŽ์€ ์†Œ๊ทœ๋ชจ ํŒ€์ด Taiga.io ๋“ฑ๊ณผ ๊ฐ™์€ ์„ค์ •ํ•˜๊ธฐ ์–ด๋ ค์šด ์™ธ๋ถ€ ๋„๊ตฌ์™€ ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๋Š” ๋Œ€์‹  gitea๋กœ ์ง์ ‘์ ์œผ๋กœ ์ฃผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ปค๋ฐ‹์„ ๋ฌธ์ œ์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์™ธ๋ถ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ํฐ ์žฅ์ ์ž…๋‹ˆ๋‹ค! (์ปค๋ฐ‹์—์„œ ์ด์Šˆ ID๋ฅผ ์–ธ๊ธ‰ํ•˜์—ฌ ์ด์Šˆ/ํ‹ฐ์ผ“์— ํ‘œ์‹œ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๊ฝค ๋ฉ‹์ง„ ์ผ์ž…๋‹ˆ๋‹ค :)

์ €๋Š” ์šฐ๋ฆฌ ํŒ€์ด ํ˜„์žฌ https://taiga.io/๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ธฐ๋Šฅ์— ์ •๋ง ๊ด€์‹ฌ์ด ์žˆ์ง€๋งŒ ์ง„์ •ํ•œ ๊ฐ€์น˜๋Š” ์นธ๋ฐ˜/์Šคํฌ๋Ÿผ ๊ณ„ํš ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ํ†ตํ•ฉ๋œ ๋ฌธ์ œ ์ถ”์ ๊ธฐ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

Kanban ์Šคํƒ€์ผ ๋ณด๋“œ๊ฐ€ ํ›Œ๋ฅญํ•  ๊ฒƒ์ด๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. Github์˜ "์ตœ์ƒ์œ„"์— ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ ์ค‘ ์ผ๋ถ€์™€ ๊ทธ ์ด์ƒ์„ ์ œ๊ณตํ•˜๋Š” Zenhub์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•œ ์‚ฌ๋žŒ์€ ์•„์ง ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ •๋ง ์œ ์šฉํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ฌธ์ œ์— ๋Œ€ํ•œ Kanban ๋ณด๊ธฐ โ€“ ์ด ๋ณด๊ธฐ๋Š” ๊ฑฐ์˜ ์ „์ ์œผ๋กœ UI์ด๋ฉฐ ์—ด ๋ฐ ์—ด์˜ ๋ฌธ์ œ ์ˆœ์„œ๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ DB ์ƒํ˜ธ ์ž‘์šฉ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Gantt ์ฐจํŠธ โ€“ Gitea๋Š” ์ด๋ฏธ ๋ฐœํ–‰ ๊ธฐํ•œ๊ณผ ์ข…์†์„ฑ, ์ด์ •ํ‘œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ Gantt ์ฐจํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฏ€๋กœ ์ด๊ฒƒ์ด ์ •๋ง ์œ ์šฉํ•œ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ฉ๋ฆฌ์ ์ธ ํ†ตํ•ฉ ๋น„์šฉ์ด ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ด๋Š” mermaidjs ๋˜๋Š” React Google Charts ์™€ ๊ฐ™์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. #7405 ์ด๊ฒƒ๋„ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์กฐ์ง ๋งˆ์ผ์Šคํ†ค โ€“ ์•„๋งˆ๋„ ๊ตฌํ˜„ํ•˜๊ธฐ ๊ฐ€์žฅ ์‰ฌ์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ Gitea ์ƒ๋‹จ์— "๋ฌธ์ œ"( /issues ) ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋งˆ์ผ์Šคํ†ค ๊ธฐ๋Šฅ๋„ ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ๋‚˜์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ด์ •ํ‘œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ •๋ง ๋ฉ‹์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ๋‹จ์ผ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ๋งŒ ์ด์ •ํ‘œ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜์‹ฌํ•  ์—ฌ์ง€ ์—†์ด, ๊ทธ๊ฒƒ๋“ค ๊ฐ๊ฐ์€ ๊ทธ ์ž์ฒด๋กœ ๊ธฐ๋Šฅ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฐํ•ฉ๋œ ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ/๊ตฌ์„ฑ ์š”์†Œ๋กœ ๋ถ„ํ• ํ•ด์•ผ ํ• ๊นŒ์š”?

ํŽธ์ง‘: ๋ˆ„๊ตฐ๊ฐ€ https://github.com/funktechno/git-kanban-enhanced-chrome-extension ์—์„œ gitea์šฉ Chrome ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๊ฐ™์€ zenhub์—์„œ ์ž‘์—…ํ•˜๊ณ 

@adelowo ์—๋Š” ์‚ฌ๋žŒ๋“ค์ด ์ฒดํฌ์ธํ•˜๊ณ  ์‹ถ์–ดํ•  ๋งŒํ•œ ์ง€์  ์ด ์žˆ์Šต๋‹ˆ๋‹ค . ๋‚˜๋Š” ๊ทธ๊ฐ€ ๋ฌด์—‡์„ ํ•ดํ‚นํ•˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ๋งค์šฐ ํฌ๋ง์ ์ž…๋‹ˆ๋‹ค.

์ธ์Šคํ„ด์Šค ํ˜ธ์ŠคํŒ…์˜ ๋‹จ์ˆœ์„ฑ์„ ๊ณ ๋ คํ•  ๋•Œ ๋” ๋งŽ์€ PM ์œ ํ˜• ๋„๊ตฌ๊ฐ€ gitea๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์‹ถ์ง€๋งŒ, ๋‚ด๋…„ ์ •๋„์— gitea์—์„œ ์›Œํฌ๋ณด๋“œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ๋งค์šฐ ๊ธฐ์ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์‚ฌ๋žŒ๋“ค์ด PM์„ ์„ธ๊ฒŒ ์น˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ง€๊ธˆ ํƒ€์ด๊ฐ€๋‚˜ ๋Œ€์•ˆ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  _์ถฉ๋ถ„ํžˆ ํ–‰๋ณตํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ, ์ฐจ์ด์ ์€ ์—ฌ๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค https://github.com/go-gitea/gitea/compare/master...adelowo :kanban_board?expand=1

@adelowo ์–ธ์ œ PR์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ฝ 8~10์ผ ํ›„

@adelowo _localhost/user/project_ /projects (๋ฉ”๋‰ด๋ณ„๋กœ)๋ฅผ ์–ป์œผ๋ ค๊ณ ํ•˜๋ฉด 500์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.

2019/09/12 10:30:44 ...ers/repo/projects.go:62:Projects() [E] GetProjects: no such table: project

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ถ€ํŠธ์ŠคํŠธ๋žฉ์ด ์•„์ง ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค @ ๋ฒ„์ „ e7cf2b77afe50b5818c52405364faf3c914b9e63

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค. gitea migrate ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

https://github.com/adelowo/gitea/blob/kanban_board/models/migrations/v95.go

ํŠน๋ณ„ํžˆ ํ‘œ์‹œ๋˜์ง€ ์•Š์Œ:

2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column email_notifications_preference db default is ''enabled'', struct default is 'enabled'
2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column passwd_hash_algo db default is ''pbkdf2'', struct default is 'pbkdf2'
2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column diff_view_style db default is '''', struct default is ''
2019/09/12 16:15:08 models/models.go:181:NewEngine() [W] Table user Column theme db default is '''', struct default is ''

ํ•˜์ง€๋งŒ:

# sqlite3 data/gitea.db .schema | grep proj
CREATE TABLE `repository` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `owner_id` INTEGER NULL, `lower_name` TEXT NOT NULL, `name` TEXT NOT NULL, `description` TEXT NULL, `website` TEXT NULL, `original_url` TEXT NULL, `default_branch` TEXT NULL, `num_watches` INTEGER NULL, `num_stars` INTEGER NULL, `num_forks` INTEGER NULL, `num_issues` INTEGER NULL, `num_closed_issues` INTEGER NULL, `num_pulls` INTEGER NULL, `num_closed_pulls` INTEGER NULL, `num_milestones` INTEGER DEFAULT 0 NOT NULL, `num_closed_milestones` INTEGER DEFAULT 0 NOT NULL, `num_projects` INTEGER DEFAULT 0 NOT NULL, `num_closed_projects` INTEGER DEFAULT 0 NOT NULL, `is_private` INTEGER NULL, `is_empty` INTEGER NULL, `is_archived` INTEGER NULL, `is_mirror` INTEGER NULL, `is_fork` INTEGER DEFAULT 0 NOT NULL, `fork_id` INTEGER NULL, `size` INTEGER DEFAULT 0 NOT NULL, `is_fsck_enabled` INTEGER DEFAULT 1 NOT NULL, `close_issues_via_commit_in_any_branch` INTEGER DEFAULT 0 NOT NULL, `topics` TEXT NULL, `avatar` TEXT NULL, `created_unix` INTEGER NULL, `updated_unix` INTEGER NULL);
CREATE TABLE `issue` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `repo_id` INTEGER NULL, `index` INTEGER NULL, `poster_id` INTEGER NULL, `original_author` TEXT NULL, `original_author_id` INTEGER NULL, `name` TEXT NULL, `content` TEXT NULL, `milestone_id` INTEGER NULL, `project_id` INTEGER NULL, `priority` INTEGER NULL, `is_closed` INTEGER NULL, `is_pull` INTEGER NULL, `num_comments` INTEGER NULL, `ref` TEXT NULL, `deadline_unix` INTEGER NULL, `created_unix` INTEGER NULL, `updated_unix` INTEGER NULL, `closed_unix` INTEGER NULL, `is_locked` INTEGER DEFAULT 0 NOT NULL);
CREATE INDEX `IDX_issue_project_id` ON `issue` (`project_id`);

@genofire ๋‹ค์‹œ ๋ณผ ์ˆ˜ ์žˆ๋‚˜์š”? https://github.com/adelowo/gitea/commit/812f256cdeed312877787b383279c30c5cda9a4f ์—์„œ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. thx - ์—ฌ๊ธฐ์— ๋ช‡ ๊ฐ€์ง€ ์ž‘์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋†’์€ ์šฐ์„ ์ˆœ์œ„:

  • [ ] ๋ณด๋“œ ๊ฐ„ ์ด์Šˆ ์ด๋™
  • [x] ํ˜„์žฌ ์ด์Šˆ์— ํ”„๋กœ์ ํŠธ ์ถ”๊ฐ€
  • [x] ํ”„๋กœ์ ํŠธ ๋ณด๊ธฐ

- [x] ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๋ฏธ๋””์—„ ํ”„๋ฆฌ์˜ค:

  • [ ] ํ”„๋กœ์ ํŠธ ์•„์ด์ฝ˜(ATM์€ MergeRequest์™€ ๋™์ผ)
  • [ ] ํ”„๋กœ์ ํŠธ ๋ณด๊ธฐ ์ค‘ ์ด์Šˆ ์ƒ์„ฑ
  • [ ] ์ด์Šˆ ์ƒ์„ฑ ์ค‘ ํ”„๋กœ์ ํŠธ ์„ ํƒ

๋‚ฎ์€ ์šฐ์„  ์ˆœ์œ„:

  • [ ] ๋ณด๋“œ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
  • [ ] ๋ณด๋“œ ์ถ”๊ฐ€
  • [ ] ๋ณด๋“œ ์ œ๊ฑฐ
  • [ ] ๋ณด๋“œ ์ด๋™
  • [ ] ๊ฒ€์ƒ‰ ์˜†์— Label | Milestone ๋“œ๋กญ
  • [ ] ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€(ํ…Œ์ŠคํŠธ๋˜์ง€ ์•Š์Œ)

๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ๋ณด๋“œ ๊ฐ„์— ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ชฉ๋ก์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด์ œ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นœ์ ˆํ•˜๊ฒŒ ์ตœ์‹ ์„ ๋‹น๊ฒจ

https://github.com/go-gitea/gitea/commit/c55d44e0233f46094fbebd33feac82e5072e1ba7

https://github.com/go-gitea/gitea/pull/8346 ์—์„œ PR์„ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ๋ณด๋“œ ๊ฐ„์— ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €์žฅ๋˜์ง€ ์•Š์œผ๋ฉด ๋‹ค์‹œ ๋กœ๋“œํ•˜์—ฌ Uncategorized ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.


์ด์ œ ์ด์Šˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Œ

ํ  ๋‹ค์‹œํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ํ† ๋ก ์„ PR๋กœ ์˜ฎ๊ฒจ์„œ ๋ชจ๋“  ๊ฒƒ์ด ํ•œ ๊ณณ์—์„œ ์ด๋ฃจ์–ด์ง€๋„๋ก ํ•ฉ์‹œ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”

๊ฐ’์ด 0์ธ ์ฃผ์„: ์ด ์ผ์ด ์ผ์–ด๋‚˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. :shipit: :rocket: :four_leaf_clover:

#8346์„ ์‹œ๋„ํ•˜๊ณ  ๋” ๋งŽ์€ ์กฐ์–ธ์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์„ธ์š”.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? (์ง€๋‚œ ํฌ์ŠคํŒ… ์ดํ›„ ํ•œ ๋‹ฌ์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค.)

ํŽธ์ง‘: @storrgie์™€ ๊ฐ™์€ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ์ž์‹ ์˜ ์ž‘์—…์— ๊ด€์‹ฌ์„ ๊ฐ–๋Š” ์‚ฌ๋žŒ๋“ค์— ์˜ํ•ด ๊ธฐ๋ถ„์ด ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ซ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ํ™”๋‚˜๊ฒŒ ํ•  ์˜๋„๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

@tinxx ๋‹น์‹  ์ค‘ ํ•˜๋‚˜:

  • ๋ฐ”๋กœ ์œ„์— ๋งํฌ๋œ PR์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ค์ œ PR์—์„œ ํ”ผ๋“œ๋ฐฑ ์ œ๊ณต
  • ์‚ฌ๋žŒ๋“ค์ด ์ด ์ผ์„ ํ•˜๋„๋ก ์žฌ์ •์ ์œผ๋กœ ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ์‹ญ์‹œ์˜ค (์˜ˆ: ๊ธฐ๋ถ€๋ฅผ ์œ„ํ•ด

๋‹น์‹ ์€ ์žฌ์ •์ ์œผ๋กœ๋‚˜ ์ง€์ ์œผ๋กœ ๊ธฐ์—ฌํ•˜์ง€ ์•Š์„ ๋•Œ ์ผ์„ ๋๋‚ด๋ผ๊ณ  ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ์˜คํ”ˆ ์†Œ์Šค์—์„œ ์œ ๋…ํ•ฉ๋‹ˆ๋‹ค.

Jetbrains๋Š” gitea ํ†ตํ•ฉ์ด ํฌํ•จ ๋œ ์ƒˆ ๋ฒ„์ „์˜ YouTrack์„ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค.

@adelowo ์†Œ์‹์ด ์žˆ๋‚˜์š”?

๊ทธ ๋™์•ˆ ๋˜ ๋‹ค๋ฅธ ์ œ์•ˆ: kanboard

๊ทธ๊ฒƒ์€ ์ •ํ™•ํžˆ ๋ˆˆ์— ๋„๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ (์ฆ‰์‹œ) ๋น ๋ฅด๋ฉฐ ๋งค์šฐ ์œ ์šฉํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์งˆ๋ฌธ์ž: PR์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๊ทธ๋ฆฌ ๋ฉ€์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค :wink:

๋„ค @gsantner . ๋ช‡ ๊ฐ€์ง€ UI ์ˆ˜์ •๋งŒ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋ง์— ๊ฐ€๋ด์•ผ ํ•  ๊ณณ

@adelowo ์–ธ์ œ ์‚ฌ์šฉํ•  ์ˆ˜

@zuhairamahdi 1.12.0์— ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ #8346 PR์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์ค‘ ํ”„๋กœ์ ํŠธ ๋ฐ/๋˜๋Š” ๋ณด๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ด€์‹ฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

https://github.com/go-gitea/gitea/pull/8346#issuecomment -617175388

๋‚˜๋Š” ๋ ˆ์ด๋ธ”์—์„œ ์Šคํฌ๋Ÿผ/์นธ๋ฐ˜ "๋ณด๋“œ"๋ฅผ ๋งŒ๋“ค๊ณ  ๋‹ค๋ฅธ ๋ณด๊ธฐ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” Gitlab ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ๋„ ๋†“์น˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ ˆ์ธ/ํ”„๋กœ์ ํŠธ ๋ณด๋“œ๋กœ ์ด๋™ํ•  ๋•Œ ๋ฌธ์ œ์˜ ๋ ˆ์ด๋ธ”์ด ์—…๋ฐ์ดํŠธ๋˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ ˆ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•˜์—ฌ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์—์„œ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฐธ์กฐ(์˜ˆ: Fixes #1 )๋กœ ๋ ˆ์ธ ๊ฐ„์— ๋ฌธ์ œ๋ฅผ ์ด๋™ํ•˜๋Š” ๊ฒƒ๋„ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@0xC4N1 ์ƒˆ ๋ฌธ์ œ๋ฅผ ๋ณด๋‚ด์ฃผ์„ธ์š”. ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ๊ฐœ์„  ์‚ฌํ•ญ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰