์ต๋ํ ๋ง์ ๋ถ๋ค์ด ์ด ์ด์์ ์ฐธ์ฌํ๊ณ ๋ง์ ์ ์๊ณผ ์์ด๋์ด๋ฅผ ์์งํ๋ ๋ชจ์ต์ ๋ณด๊ณ ์ถ์ต๋๋ค.
Miscrosoft์ VSTS(https://www.visualstudio.com/team-services/)์ ๊ฐ์ ๊ธฐ๋ฅ์ด ์๋ค๋ ๊ฒ์ ๋งค์ฐ ํฅ๋ฏธ๋ก์ด ์ผ์
๋๋ค.
๊ผญ ๊ทธ๋ฐ ๊ฒ์ ์๋์ง๋ง ์ ์์ผ ํ๋ก์ธ์ค ๋ชจ๋ธ SCRUM์ ์ ํฉํ ๊ฒ์
๋๋ค.
:) ์ฆ๊ฒ๊ฒ ํ ๋ก ํ์ธ์.
ํนํ ์ํ๋ ๊ธฐ๋ฅ์ด ๋ฌด์์ธ์ง ๋ง์ํด ์ฃผ์๊ฒ ์ต๋๊น?
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 ์ ๊ทผ ๋ฐฉ์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์ค์ ๋ก๋ ์๋ํ์ง ์๊ณ ๊ณ ์ ๋ ๋ฐ์ดํฐ์ผ ๋ฟ์ด์ง๋ง ๋น์ฃผ์ผ์ ์ด์ ๋น์ทํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
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์ ๋ํด ์ธ๊ธํ ์ฌ๋์ ์์ง ์์ต๋๋ค.
๋ค์์ ์ ๋ง ์ ์ฉํ ๊ฒ ๊ฐ์ต๋๋ค.
/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 ์์ ์์ ํ์ต๋๋ค.
๋์ ์ฐ์ ์์:
๋ฏธ๋์ ํ๋ฆฌ์ค:
๋ฎ์ ์ฐ์ ์์:
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 ๋น์ ์ค ํ๋:
๋น์ ์ ์ฌ์ ์ ์ผ๋ก๋ ์ง์ ์ผ๋ก ๊ธฐ์ฌํ์ง ์์ ๋ ์ผ์ ๋๋ด๋ผ๊ณ ์๊ตฌํ์ง ์์ต๋๋ค. ๊ทธ๊ฒ์ ์คํ ์์ค์์ ์ ๋ ํฉ๋๋ค.
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 ์ ๋ฌธ์ ๋ฅผ ๋ณด๋ด์ฃผ์ธ์. ์ด ๊ธฐ๋ฅ์ ๋ํด ๋ ๋ง์ ๊ฐ์ ์ฌํญ์ด ์์ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋์ผํ ๋๊ตฌ์ ํตํฉ๋ ๋ณด๋๊ฐ ์๋ ์ผ๋ถ ํ์ ๊ฒฝ์ฐ ๋ฌธ์ ๊ฐ ์์ฑ๋์ด์ผ ํ์ต๋๋ค. Gitlab์ด๋ Github์ ๊ฐ์ ๋ณด๋๊ฐ ์์ผ๋ฉด ์ ๋ง ์ ์ฉํ ๊ฒ์ ๋๋ค. ๋๋ gitea ํตํฉ ๋ณด๋/ํ๋ก์ ํธ ํญ์ ๋ํ ์์ด๋์ด๋ฅผ ์๊ฐํ๊ณ ์์๊ณ ์์ด๋์ด์ ํ๋กํ ํ์ ์ ๋ง๋ค์์ต๋๋ค. ์ด ์์ด๋์ด๋ Gitlab ์ ๊ทผ ๋ฐฉ์์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
์ค์ ๋ก๋ ์๋ํ์ง ์๊ณ ๊ณ ์ ๋ ๋ฐ์ดํฐ์ผ ๋ฟ์ด์ง๋ง ๋น์ฃผ์ผ์ ์ด์ ๋น์ทํด์ผ ํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
https://github.com/rudineirk/gitea/blob/projects-board/templates/repo/issue/list.tmpl
๋น ์ง ๊ฒ์ Gitlab๊ณผ ๊ฐ์ด ๋ณด๋๋ฅผ ์์ฑ/์ ํํ๋ ๋น์ฃผ์ผ์ ๋๋ค. ์ฌ๋ฌ ํ์ ์ํ ๋ณด๋๋ฅผ ๋ง๋ค ์ ์๋ค๋ฉด ์ ๋ง ์ ์ฉํ ๊ฒ์ ๋๋ค.