Gitea: Gitea ๋กœ๋“œ๋งต ๋…ผ์˜

์— ๋งŒ๋“  2019๋…„ 05์›” 20์ผ  ยท  77์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: go-gitea/gitea

@go-gitea/maintainers

#1029๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„ ๋‹ค์Œ ํฐ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๊ณ„ํš์„ ์„ธ์›Œ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์–ด๋–ค ์ƒ๊ฐ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

kinproposal

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

์—ฐํ•ฉ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ/์ด์Šˆ/ํฌํฌ

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

gitea ํ™•์žฅ์„ ์œ„ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ(ํ…Œ๋งˆ ํฌํ•จ) ์†”๋ฃจ์…˜.

๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ์ ์ ˆํ•œ OS ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋‚˜๋Š” fedora๋ฅผ ์œ„ํ•ด ๋ญ”๊ฐ€๋ฅผ ์กฐํ•ฉํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ์ง€๋งŒ go๋Š” ํฌ์žฅํ•˜๊ธฐ๊ฐ€ ์—‰๋ง์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•ด #31 ์ข…๋ฅ˜์˜ ์ด์•ผ๊ธฐ๊ฐ€ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ์—ด๋ ค์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” Debian ์‹œ์Šคํ…œ์— tarball์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋งค์šฐ ํŽธ๋ฆฌํ•˜์ง€๋Š” ์•Š์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฐํฌํŒ์„ ์œ„ํ•œ ์ €์žฅ์†Œ๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ์ œ์ž๋ฆฌ์— ๋ฐฐ์น˜ํ•˜๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ์ œ์•ˆ:

  • ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค ์ค‘์— Drone CI/CD๋ฅผ Gitea์— ์ž๋™์œผ๋กœ ํ†ตํ•ฉํ•˜๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.
  • ์„ค์น˜ ํ›„ Gitea UI์—์„œ ๋” ๋งŽ์€ ์‚ฌ์ดํŠธ ๊ด€๋ฆฌ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ์„ฑ. ์˜ˆ๋ฅผ ๋“ค์–ด, _Configuration_ ํŽ˜์ด์ง€์—์„œ _Service Configuration_์˜ ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.
  • ํƒ์ƒ‰ ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ์ˆจ๊ธธ ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์—ฐํ•ฉ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ/์ด์Šˆ/ํฌํฌ

์—ฐํ•ฉ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ/์ด์Šˆ/ํฌํฌ

Fediverse๋ผ๋Š” ๋‹จ์–ด(ActivityPub, OStatus, diaspora* ๋“ฑ)์˜ ์˜๋ฏธ์—์„œ ์—ฐํ•ฉ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋œ ์ž์‹ ์˜ ์›๊ฒฉ ์ธ์Šคํ„ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

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

๋ฒ„๊ทธ๋ฅผ ๋ณด๊ณ ํ•˜๊ณ  UX ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•˜์—ฌ ๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ๋„์šฐ๋ ค๋Š” ์ตœ์†Œํ•œ์˜ ์ฝ”๋”ฉ ๊ธฐ์ˆ ์„ ๊ฐ€์ง„ ์ตœ์ข… ์‚ฌ์šฉ์ž์˜ POV์—์„œ ๋‘ ๊ฐ€์ง€ ์ œ์•ˆ:
1) ForgeFed ํ‘œ์ค€ํ™”๋ฅผ ๋„์™€์ฃผ์„ธ์š”! ์ €๋Š” Gitea(๋ฐ ๊ธฐํƒ€ ์ปค๋ฎค๋‹ˆํ‹ฐ ํ˜ธ์ŠคํŒ… ์ฝ”๋“œ ์œ„์กฐ) ์ธ์Šคํ„ด์Šค์—์„œ ๋ฒ„๊ทธ๋ฅผ ์‹ ๊ณ ํ•˜๋Š” UX๊ฐ€ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•˜๊ณ  ๋ถ„์‚ฐ๋œ GH์™€ ๊ฐ™๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
2) ํ”„๋กœ์ ํŠธ์˜ ๊ฐ ๋ถ€๋ถ„์„ Git ์ €์žฅ์†Œ๋กœ ๋งŒ๋“ค์–ด ์ด์Šˆ, ์œ„ํ‚ค ๋“ฑ์„ ์‰ฝ๊ฒŒ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, ๋ถ„๊ธฐํ•˜๊ฑฐ๋‚˜, ํ‘ธ์‹œํ•˜๊ฑฐ๋‚˜, ๋ถ„๊ธฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GL๊ณผ sr.h๋Š” ์ ์–ด๋„ ์ผ๋ถ€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์œ ์šฉํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž ์žฌ์ ์œผ๋กœ ํฌ์ธํŠธ 1)์— ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฉ”์ผ๋กœ ํ‹ฐ์ผ“์— ํšŒ์‹ ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉ์„ฑ์„ ์œ„ํ•œ ํฐ ์ง„์ „์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

UI์—์„œ ๋ชจ๋“  ๊ตฌ์„ฑ์˜ ํŽธ์ง‘์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(ํ”„๋กœ์„ธ์Šค ์ค‘์— ๊ตฌ์„ฑ ํŒŒ์ผ ํ˜•์‹์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ).

๋Œ€๋ถ€๋ถ„์˜ ๊ตฌ์„ฑ์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ  ์ ์ ˆํ•œ cli ๋ฐ api๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@sapk @tboerger ๊ตฌ์„ฑ์„ ์œ„ํ•ด viper ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ini(๋ฐ ์ผ๋ถ€ ๋ฒ„๊ทธ)๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Gitea๊ฐ€ ์‹คํ–‰ ์ค‘์ด๊ณ  ์ ์ ˆํ•œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ๊ตฌ์„ฑ์„ ๋‹ค์‹œ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. .

๊ธฐ๊บผ์ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์ง€๋งŒ ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— ์‹œ๊ฐ„์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„์ง€ ํ™•์‹ ์ด ์„œ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ €๋„ ๋ฐ”์ดํผ๋ฅผ ์ง€์ง€ํ•ฉ๋‹ˆ๋‹ค. 2๋…„์ „์— ํ•˜๋ ค๊ณ  ํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์ด ์—†์–ด์„œ ๋๋‚ด์ง€ ๋ชปํ–ˆ๋Š”๋ฐ.. ๋‹ค์‹œ ํ•ด๋ณผ ์ˆ˜ ์žˆ์–ด์š” :)

๋‚˜๋Š” ๋” ์ตœ์†Œํ•œ์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์–ป๊ธฐ ์œ„ํ•ด ... ์ด๋Ÿฌํ•œ ์„ค์ •์˜ ๋Œ€๋ถ€๋ถ„์€ ์ •์  ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํ†ตํ•ด ์„ค์ •ํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ db์— ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•˜๊ณ  ์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ ์บ์‹œ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

@lunny ๋ฐ ๋ชจ๋‘: ๋งŽ์€ ์„ค์ •์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ด๋™ํ•˜๊ณ  ์›น ์ธํ„ฐํŽ˜์ด์Šค(์‚ฌ์ดํŠธ ์ „์ฒด ๋˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ „์ฒด)์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ฐจ ๋˜๋Š” gitea์™€ ๊ฐ™์€ ๋„๊ตฌ ์ž์ฒด๊ฐ€ ๋ช…๋ น์ค„์—์„œ ํ•ด๋‹น ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ๋„ ์‰ฌ์šธ ๊ฒƒ์ด๋ฏ€๋กœ ์—ฌ์ „ํžˆ ๊ธฐ๋ณธ ์„ค์ •์„ ์Šคํฌ๋ฆฝํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ ์‹œ์Šคํ…œ์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” gitea์— ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ธฐ๊บผ์ด ์ถ”๊ฐ€ํ•˜๋ ค๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งŽ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@belliash @sapk IMO ํ”Œ๋Ÿฌ๊ทธ์ธ/๋ชจ๋“ˆ์€ ๋ชจ๋ธ ํŒจํ‚ค์ง€๋ฅผ ์™„์ „ํžˆ ๋ฆฌํŒฉํ† ๋งํ•˜๊ณ  ์ถ”์ƒํ™”๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ ๋Š” ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. Go์˜ ๊ธฐ๋ณธ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ง€์›๊ณผ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๊ธฐ์ˆ ์„ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” Gitea ๋ฐ”์ด๋„ˆ๋ฆฌ์— ํฌ๊ฒŒ ์˜์กดํ•˜๋Š” ๊ฑฐ๋Œ€ํ•œ ๋ฐ”์ด๋„ˆ๋ฆฌ์˜€์Šต๋‹ˆ๋‹ค.

์›นํ›… ์ง€์›์„ ๊ฐœ์„ ํ•˜๊ณ  ์›นํ›…์œผ๋กœ ์‚ฌ์šฉ์ž ์ •์˜ ํŽ˜์ด์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž‘์—…์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์กฐ์šฉํ•˜๊ณ  ์„ฑ์ˆ™ํ•œ API๋ฅผ ์ด๋ฏธ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋” ํ˜„์‹ค์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@jonasfranz ๋งŽ์€ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ์„ ๋ฆฌํŒฉํ† ๋งํ•˜๋Š” ๊ฒƒ์„ ๋งค์šฐ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

go list -f  '{{ .Imports }}' code.gitea.io/gitea/models 

98(!)๊ฐœ์˜ ์ง์ˆ˜์ž…์„ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์ค‘ 50๊ฐœ๋Š” non-go ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.

go list -f  '{{ .Deps }}' code.gitea.io/gitea/models

437(!!)๊ฐœ์˜ ์ „์ด ์ข…์†์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. (์ด ์ค‘ 304๊ฐœ๊ฐ€ ๋…ผ๊ณ  ์ฝ”์–ด์ž„)

๋“œ๋ก  ์†Œ์Šค๋ฅผ ๋ณด๋ฉด ์›นํ›…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ์™ธ์—๋„ grpc ๊ธฐ๋ฐ˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์ธ packer์™€ ๊ฐ™์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ชจ๋ธ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

@tboerger ๋ฌด์ธ ํ•ญ๊ณต๊ธฐ์˜ ํ”Œ๋Ÿฌ๊ทธ ๊ฐ€๋Šฅํ•œ ๋ฌผ๊ฑด์—์„œ ์˜ˆ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๋„์ปค ์ด๋ฏธ์ง€ ๊ธฐ๋ฐ˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์„ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”?

๊ตฌ์„ฑ, ๋น„๋ฐ€ ๋“ฑ์— ๋Œ€ํ•œ ํ™•์žฅ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” https://github.com/drone/drone/tree/master/plugin ์—์„œ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. Gitea์˜ ๋‹ค์Œ ํฐ ๋‹จ๊ณ„๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ €๋„ ์š”์ฆ˜ ์ด๋Ÿฐ ์ƒ๊ฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋“œ๋ก ์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ๊ณผ ๋น„์Šทํ•ด์•ผ ํ•˜์ง€๋งŒ ๋” ๋งŽ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ์— UI๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๊ณ  Gitea์˜ OAuth2๋กœ ์ž๋™ ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ๋ณด์•ˆ ์ •์ฑ…์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ

Open Source Geospatial Foundation์„ ์œ„ํ•ด ์„ ํƒํ•  ํ˜ธ์ŠคํŒ… ํ”Œ๋žซํผ์„ _๊ฒฐ์ •_ํ•˜๊ธฐ ์œ„ํ•ด 2016๋…„๊ฒฝ์— ๋งŒ๋“  ๋น„๊ต ํ‘œ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์ด ํ‘œ์—๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Gitea๋Š” ๋‹ค์Œ ์—ด ์ค‘ ํ•˜๋‚˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

https://wiki.osgeo.org/wiki/GitInfrastructureComparison

2016๋…„์— ๋ˆ„๋ฝ๋œ ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ์ด ์˜ค๋Š˜๋‚ ์—๋„ ์—ฌ์ „ํžˆ ๋ˆ„๋ฝ๋˜์—ˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”์ผ๋กœ ํšŒ์‹ (๋Œ“๊ธ€/ํšŒ์‹ ) --- ์ผ๋ถ€ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์€ ์˜ค๋Š˜ ํ˜„์žฌ ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

migrate from github ๋ฐ Comments on diff lines ๋Œ€ํ•œ @strk ๋„๊ตฌ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ์ž ์ •์˜ ํ•„์š”
#6037 ์ฐธ์กฐ

๋”ฐ๋ผ์„œ ์ด๋ฏธ ๊ฐ€๋Šฅํ•œ ํ…œํ”Œ๋ฆฟ ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€ ์ƒ๋‹นํžˆ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋ชฉ ์ค„์€ ์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์šฐ๋ฆฌ๊ฐ€ ์ •๋ง๋กœ ํ•ด์•ผ ํ•  ์ผ์€ ์ด๋ฉ”์ผ๊ณผ git serv hook ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•ด i18n์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

pull ์š”์ฒญ์„ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
#6375 ์ฐธ์กฐ

UI์—์„œ ํƒœ๊ทธ๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ, ํ• ๋‹น, ๋ณ€๊ฒฝ, ์‚ญ์ œ ๋“ฑ ์ด ๊ธฐ๋Šฅ์ด ์ •๋ง ๊ทธ๋ฆฝ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ(์‚ฌ์šฉ์ž ์ƒ์„ฑ ๋ฐ ์ธ์ฆ ldap ๋“ฑ์„ ๊ตฌ์„ฑํ•˜๋Š” cli ๋˜๋Š” api ์‚ฌ์šฉ) ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์— ์ฐฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ๋‘ ๊ฐ€์ง€๊ฐ€ ๊ธฐํ…Œ์•„๋ฅผ ํ•œ ๊ฑธ์Œ ๋” ๋‚˜์•„๊ฐ€๊ฒŒ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

LFS

  • [x] ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ LFS ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ๋Š” ์™„์ „ํžˆ ๋ถˆํˆฌ๋ช…ํ•ฉ๋‹ˆ๋‹ค. #7199๋Š” ์ด๊ฒƒ์„ ์ œ๊ณตํ•˜๋ ค๋Š” ์‹œ๋„์ž…๋‹ˆ๋‹ค.

    • [ ] ๋ธ”๋กญ ์กฐํšŒ๋ฅผ ์œ„ํ•œ ๋ธ”๋ฃธ ํ•„ํ„ฐ - ์ปค๋ฐ‹์„ ์ฐพ๋Š” ์•ฝ๊ฐ„ ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•๊ณผ ๋ธ”๋กญ์„ ๋„์ž…ํ•œ ํŠธ๋ฆฌ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์œผ๋ฉด ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค.

  • [ ] ํ˜„์žฌ LFS์— ์—…๋กœ๋“œ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์•ˆ์ •์ ์ธ ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฏ€๋กœ ๋งค์šฐ ํฐ ์—…๋กœ๋“œ๋Š” ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #1723์— ๋”ฐ๋ผ tus.io๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ํฌ์ธํ„ฐ์ฒ˜๋Ÿผ ๋ณด์ด๋Š” ํŒŒ์ผ์ด ํฌ์ธํ„ฐ๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ํŒŒ์ผ์ด LFS ํฌ์ธํ„ฐ์ธ์ง€ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด .gitattributes๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. #7199์˜ ๊ธฐ๋Šฅ์„ ๋งค์šฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์ง€๋งŒ...
  • [ ] LFS ํŒŒ์ผ์€ diff ๋ณด๊ธฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝํ™”

์ข…๋ฃŒ ๋ฐ Gitea๋ฅผ ์‹ค์ œ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ ์‹œ์ž‘

  • [ ] ์ข…๋ฃŒ์— ๋Œ€ํ•œ Gitea์˜ ๋Œ€์‘์„ ๊ฐ•ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • [x] ์ด๋Š” ์ˆ˜์‹  ์—ฐ๊ฒฐ, ํŠนํžˆ ๋‚ด์žฅ๋œ SSH์˜ ์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ฐ‘์ž‘์Šค๋Ÿฌ์šด ์ข…๋ฃŒ๋ฅผ ํ†ตํ•ด git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์†์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #7274๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ์‹œ๋„์˜ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค.

    • [ ] ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž‘์—…๊ณผ ๊ฐ™์€ ์•Œ๋ฆผ์€ ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ธ๋ฑ์‹ฑ ๋Œ€๊ธฐ์—ด์€ ๋””์Šคํฌ๋‚˜ DB ๋Œ€๊ธฐ์—ด, ์œ ์‚ฌํ•˜๊ฒŒ ๋ฉ”์ผ ๋Œ€๊ธฐ์—ด ๋“ฑ์„ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ์ผ๋ถ€๊ฐ€ ์žˆ์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋Œ€๊ธฐ์—ด์€ ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • [ ] ์œ„์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋กœ ์ธ๋ฑ์‹ฑ๊ณผ ๊ฒ€์ƒ‰์„ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ •์ƒ์ ์ธ ์ข…๋ฃŒ๋Š” ์–ด๋–ค ๊ฒฝ์šฐ์—๋„ ์ด๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€๋งŒ ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ํ–ฅํ•œ ๋‹จ๊ณ„์˜ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์ง€๋งŒ ์—ฌ๋Ÿฌ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ๋ฑ์„œ๋ฅผ ๋ณ„๋„์˜ ํ”„๋กœ์„ธ์Šค๋กœ ๋ถ„๋ฆฌํ•˜๊ณ  Gitea์—์„œ ์ฝ๊ธฐ ์ „์šฉ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ „์ฒด ์ธ๋ฑ์‹ฑ์„ ๋‚ด๋ณด๋‚ด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”๋ชจ๋ฆฌ์— ์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ ๋น„๊ต ๋ฐ โ€‹โ€‹์ฝ๊ธฐ

  • [ ] Diff ์ฝ”๋“œ๋Š” ๋ฆฌํŒฉํ† ๋ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝํ•˜๊ณ  ์ „์ฒด diff๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฝ๊ณ  ์‚ฌ์šฉ์ž๊ฐ€ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๊ธฐ ์ „์— ๋ธŒ๋ผ์šฐ์ €์—์„œ ์—„์ฒญ๋‚œ diff๋ฅผ ๊ตฌ๋ฌธ ๋ถ„์„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” UI์™€ ์„œ๋ฒ„ ๋ณ€๊ฒฝ์ด ๋ชจ๋‘ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ Ajax๋กœ ๋’ท๋ฐ›์นจ๋˜๋Š” ๋ฌดํ•œ ์Šคํฌ๋กค์ด ์ด์— ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๊ธฐ์ˆ ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ถฉ๋ถ„ํžˆ ์‚ฌ์•…ํ•œ ํฐ diff๋Š” ์„œ๋ฒ„์™€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋ชจ๋‘ ์ค‘๋‹จ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • [ ] ์šฐ๋ฆฌ์˜ diff ์•„ํ‚คํ…์ฒ˜๋Š” ํ˜„์žฌ ๋ฏธ๋ฆฌ ๋ณ‘ํ•ฉ๋œ ๋ถ„๊ธฐ์™€ ๊ฐœ์ฒด๋กœ ๊ธฐ๋ณธ ์ €์žฅ์†Œ๋ฅผ ์˜ค์—ผ์‹œํ‚ต๋‹ˆ๋‹ค.
  • [ ] ์ผ๋ฐ˜์ ์œผ๋กœ ์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฝ๋Š” ๊ฒƒ์„ ์ค‘๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด๊ฒƒ์„ ์›ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์žˆ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์ฝ๋Š” ๊ฒƒ์„ ์ œํ•œํ•ด์•ผ ํ•˜๊ณ  ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ์ˆ ์ด๋‚˜ ๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๋˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ์—์„œ ๋ Œ๋”๋ง๋˜๋Š” ์ „์ฒด ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ์— ์™„์ „ํžˆ ๋ฒ„ํผ๋ง๋˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋น„๊ต์  ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ผ๋„ ์—ฌ์ „ํžˆ ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • [ ] (๋งŒ์•ฝ ์šฐ๋ฆฌ๊ฐ€ ์ž„์˜์˜ ๊ธด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” git ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ stdout ๋ฒ„ํผ๋กœ ์ง์ ‘ ์ฝ๋Š” ๊ฒƒ์„ ํ”ผํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ด์•ผ ํ•˜์ง€๋งŒ ๋” ๋งŽ์€ go-routine ํŒŒ์ดํ”„๋ผ์ธ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

๋ณ‘ํ•ฉ

  • [ ] ํ˜„์žฌ ๋ณ‘ํ•ฉ์„ ์œ„ํ•œ ์ŠคํŒŒ์Šค ์ฒดํฌ์•„์›ƒ์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ๋ณ‘ํ•ฉ์„ ์™„์ „ํžˆ ๋ฆฌํŒฉํ„ฐ๋งํ•ด์•ผ git ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ git merge๊ฐ€ https://git-scm.com/docs/git-merge-one-file ๋กœ ๋“œ๋กญ๋‹ค์šด๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋นจ๋ฆฌ ๊ฐ๊ธฐ๊ฐ€ ์•„๋‹Œ ๋ณ‘ํ•ฉ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ถˆํ•„์š”ํ•˜๊ณ  charset/filesystem ์š”์†Œ์— ์˜์กดํ•˜๋Š” ๋ฐ˜์ž„์˜ ๊ฒฝ๋กœ๋ฅผ ์„œ๋ฒ„์— ๊ฐ•์ œ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ž„์‹œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ณ‘ํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ํ•ด์‹ฑํ•˜๊ณ  ์ธ๋ฑ์Šค์— ์ง์ ‘ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒˆ์ถœ ๋ฐ ์ €์žฅ์†Œ ์œ„์น˜

  • [ ] ์šฐ๋ฆฌ๋Š” ํƒˆ์ถœ์„ ์œ„ํ•ด ๋ชจ๋“  ๊ณณ์„ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ ˆ๊ฑฐ์‹œ Gogs ์ฝ”๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ œ๋Œ€๋กœ ์ด์Šค์ผ€์ดํ”„๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์—ฌ๋Ÿฌ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ๋‹ด๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [ ] ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์ €์žฅ์†Œ ์ด๋ฆ„์— ์ด์Šค์ผ€์ดํ”„๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฐ€์ •์€ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์„ ๊ฐ•์š”ํ•ฉ๋‹ˆ๋‹ค. git ์„œ๋ช…์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ๋ณดํ˜ธํ•˜์ง€๋„ ์•Š์•˜์œผ๋ฏ€๋กœ #5774์ž…๋‹ˆ๋‹ค.
  • [ ] ์‚ฌ์šฉ์ž๊ฐ€ ๊ธฐ๋ณธ ์ €์žฅ์†Œ ์œ„์น˜๊ฐ€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์œ„์น˜์™€ ์ผ์น˜ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ - ์˜ˆ๋ฅผ ๋“ค์–ด $GITEA_ROOT/owner/reponame ์ด๋Š” ์ž˜๋ชป๋œ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์ด๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์šฐ๋ฆฌ ์ €์žฅ์†Œ๋ฅผ ์„œ๋ฒ„์˜ git์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ์ƒ๊ฐ - ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. $GITEA_ROOT/repository-$ID ๋กœ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ƒค๋”ฉ๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. (์ด๋ ‡๊ฒŒ ํ•˜๋ฉด repo.MustOwner() ๋˜๋Š” repo.GetOwner() ์— ๋Œ€ํ•œ ๋งŽ์€ ํ˜ธ์ถœ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค)

    • [ ] ์ผ๋‹จ ์œ„์˜ ๋‹จ๊ณ„๋กœ ์ด๋™ํ•˜๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ์ ์ ˆํ•˜๊ฒŒ ์ด์Šค์ผ€์ดํ”„ํ•˜๋ฉด ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ์ €์žฅ์†Œ ์ด๋ฆ„์— ๋Œ€ํ•œ ์ œ์•ฝ์„ ์™„ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #5774์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ๊ฐ€์งœ.

  • [x] ์„œ๋ฒ„ git ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ถฉ๋ถ„ํ•œ Gitea ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Gitea๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์„œ๋ฒ„์—์„œ Gitea์˜ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๋ฐ˜๋ณต์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ Gitea๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ๋ถˆํ‰ํ•ฉ๋‹ˆ๋‹ค. #6961 is a a ์ด์— ํ•„์š”ํ•œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์ด๋ฅผ ๋ณ‘ํ•ฉํ•œ ํ›„ https://github.com/go-gitea/gitea/blob/bf552761894dee08f734d91f5c8175cd0cb2f9f5/cmd/hook.go#L72 ๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ SSH_ORIGINAL_COMMAN์˜ ์„ค์ •์„ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ์„ค์ •์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ ํ‘œ์ค€ ํ™˜๊ฒฝ์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.
  • [ ] ์šฐ๋ฆฌ๋Š” NO_EXEC ๋งˆ์šดํŠธ๋œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ ์‹ค์ œ๋กœ ์ด๊ฒƒ์„ ๊ถŒ์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ต์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. .git/config ๋˜๋Š” ์ค‘์•™ .gitconfig core.hooksPath ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ํ›„ํฌ๋ฅผ ๋ฐฐ์น˜ํ•  ์œ„์น˜๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • [ ] ๊ธฐ๋ณธ์ ์œผ๋กœ ์ฃผ์„์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฝ”๋“œ ์ค„์„ ์ง์ ‘ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ UTF-8์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๋น„ UTF8 ์ฝ”๋“œ์— ๋Œ€ํ•ด ์ฃผ์„์„ ๋‹ฌ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

API / SDK

  • [ ] Swagger๋ฅผ ๊ฐ–๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๋…ธ๋ ฅ์„ ๊ธฐ์šธ์ผ ๋•Œ API๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์˜ ์–‘์€ ์ •๋ง ์–ด๋งˆ์–ด๋งˆํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๊ฒƒ์„ swagger์—์„œ ์ž๋™ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฐ€๋Šฅํ•œ ํ•œ ๋งŽ์ด ์ž๋™ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ๊ฐœ๋ฐœ ์ค‘์ธ Gitea์— ๋Œ€ํ•ด ๊ณ ์ • API ๋ฒ„์ „์„ ํ…Œ์ŠคํŠธํ•  ๋ฐฉ๋ฒ•์ด ์—†์œผ๋ฏ€๋กœ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์–ธ์ œ ์ ์šฉํ• ์ง€ ์•Œ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • [ ] ์ž๋™ ์ƒ์„ฑ๋œ API/SDK๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•œ ํ…Œ์ŠคํŠธ ํ•˜๋„ค์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ

  • [ ] ์šฐ๋ฆฌ๋Š” ํ˜„์žฌ TRACE ๋ ˆ๋ฒจ์—์„œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‚ฌ๋ฌผ์— ์ ์ ˆํ•œ ์ถ”์ ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋Šฅ๋ ฅ์„ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. https://gitea.com/gitea/log/pulls/3 ์ดํ›„๋กœ Gitea๋กœ ๋ฐฑํฌํŠธํ•˜๋ฉด makefile์—์„œ ์ด๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • [ ] ๋” ๋งŽ์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๊ณ  ์ผ๋ถ€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹ค์ œ๋กœ ๋‹จ์œ„์ธ์ง€ ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€์ธ์ง€ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค. ์˜ˆ: https://github.com/go-gitea/gitea/blob/master/integrations/download_test.go
  • [ ] ์‚ฌ์šฉ์ž ์Šคํ† ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•˜๋ ค๋Š” ๋” ๋งŽ์€ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ - ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๊ณ  X๋ฅผ ์ˆ˜ํ–‰ํ•œ ๋‹ค์Œ Y์™€ Z๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐœ๋ณ„์ ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. https://github.com/go-gitea/gitea/blob/master/integrations/download_test.go ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ํ†ตํ•ฉ๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ…Œ์ŠคํŠธํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์† ๋งํ•˜์ง€๋งŒ ๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ๋Š” https://github.com/go-gitea/gitea/blob/master/integrations/ssh_key_test.go ๋ฐ https://github.com/go-gitea/gitea/blob ๊ธฐ๋Šฅ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ†ตํ•ฉ๋˜๋Š”์ง€ ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š”
  • [x] ํ…Œ์ŠคํŠธ ๊ธฐ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ํ˜„์žฌ CI๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ 30-40๋ถ„์ด ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค! ์ด๊ฒƒ์„ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค.

Go ํŒจํ‚ค์ง€ ์•„ํ‚คํ…์ฒ˜

๋ชจ๋ธ

  • [ ] code.gitea.io/gitea/models ์€(๋Š”) ์ค‘์ง€ํ•ด์•ผ ํ•˜๋Š” ํ•ญ๋ชฉ์ด ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค.
  • [ ] models.x ๋Š” ํŒŒ๊ดด๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋”์ฐํ•œ ์•„ํ‚คํ…์ฒ˜ ๊ฒฐ์ •์ž…๋‹ˆ๋‹ค.
  • [ ] ๋„ˆ๋ฌด ๋งŽ์€ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ์–ด๋–ค ์ƒํƒœ์ธ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— nil ํฌ์ธํ„ฐ ์—ญ์ฐธ์กฐ๋ฅผ ์œ ๋ฐœํ•˜๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์‰ฝ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ go์˜ ํƒ€์ดํ•‘ ์‹œ์Šคํ…œ์„ ์กฐ๊ธˆ ๋” ์ž˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
  • [x] ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์–ป์„ ๋•Œ๋งˆ๋‹ค ์†Œ์œ ์ž๋ฅผ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋ฏ€๋กœ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ…Œ์ด๋ธ”์— OwnerName์„ ๊ณ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋ฆฌ์„๊ณ  ์‹œ๊ฐ„ ๋‚ญ๋น„์ž…๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ์†Œ์œ ์ž๋ฅผ ์ž์ฃผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋“œ๋Š” ๋น„์šฉ์€ ๊ทธ๋‹ค์ง€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • [ ] ์•„์ง ๋ชจ๋ธ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ž‘์—…์ด ๋„ˆ๋ฌด ๋งŽ์œผ๋ฉฐ ๋” ๋งŽ์ด ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ๋ชจ๋ธ์„ ์ฝ”์–ด์™€ ๋น„์ฝ”์–ด๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“ˆ

  • [x] ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์˜ ๋ชจ๋“ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋ธ์— ์˜์กดํ•˜๋Š” ๋ชจ๋“ˆ๊ณผ ๋ชจ๋ธ์ด ์˜์กดํ•˜๋Š” ๋ชจ๋“ˆ์ž…๋‹ˆ๋‹ค. ์ด๋“ค์„ ๋ถ„๋ฆฌํ•ด ๋ด…์‹œ๋‹ค. ํ•˜๋‚˜๋Š” ์„œ๋น„์Šค๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์นด๋กฑ

  • [ ] @lunny๊ฐ€ ์ œ์•ˆํ•œ ์ง„์œผ๋กœ์˜ ์ „ํ™˜์„ ์ง„์ง€ํ•˜๊ฒŒ ๋ฐ›์•„๋“ค์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋Š” ๋งˆ์นด๋กฑ์— ๋Œ€ํ•œ ์˜์กด์„ฑ์œผ๋กœ ๊ฐ€๋“ ์ฐจ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ

  • [ ] ๋งˆ์นด๋กฑ์— ๋”ฐ๋ผ์„œ๋„(!)
  • [ ] ์—ฐ๊ฒฐ ํ•ด์ œ๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ข…์†์„ฑ์ธ go-ini์™€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตญ์ œํ™”

  • [ ] ์ด๋ฉ”์ผ์ด ๊ตญ์ œํ™”๋˜์ง€ ์•Š์Œ
  • [ ] Git ๋ฉ”์‹œ์ง€๊ฐ€ ๊ตญ์ œํ™”๋˜์ง€ ์•Š์Œ
  • [ ] ๊ตญ์ œํ™”๋˜์ง€ ์•Š์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€
  • [ ] CrowdIn์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตญ์ œํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹น์‚ฌ์˜ ํœด๊ณ  ์›น์‚ฌ์ดํŠธ ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • [ ] ์–ธ์–ด ์„ ํƒ๊ธฐ ๋ชฉ๋ก์— franรงais, espaรฑol๊ณผ ๊ฐ™์€ ์†Œ๋ฌธ์ž ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ด์ƒํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ์–ธ์–ด์—์„œ ๋ฌธ์žฅ์˜ ์‹œ์ž‘์„ ๋‚˜ํƒ€๋‚ด๋ฏ€๋กœ AFAICS๋Š” ๋Œ€๋ฌธ์ž๋กœ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Oui, si j'รฉcris en franรงais j'รฉcris "franรงais", mais si j'รฉcris une liste รก puces, j'รฉcris:

    • ์˜์–ด

    • ํ”„๋ž‘์„ธ์ฆˆ

    • ์ŠคํŽ˜์ธ์–ด


Gitea ๋คํ”„ ๋ฐ ๋ณต์›

  • [ ] SQL ๋ณ€ํ˜• ๊ฐ„ ๋ณ€ํ™˜์„ ์œ„ํ•ด Gitea ๋คํ”„๊ฐ€ ์†์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • [ ] ๋ณต์› ๋ช…๋ น์ด ์—†์Šต๋‹ˆ๋‹ค.

UI ๋ถ€๋ถ„์—์„œ๋Š” ๋‘ ๊ฐ€์ง€ UI๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ํ•˜๋‚˜์˜ ์ผ๋ฐ˜ HTML(js๊ฐ€ ์—†๋Š” ํ˜„์žฌ HTML๊ณผ ์œ ์‚ฌ)
  • API ํ˜ธ์ถœ์—๋งŒ ์˜์กดํ•˜๋Š” ์™„์ „ํ•œ JS. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด API๋ฅผ ๊ฑฐ์˜ ์žฌ๊ณ ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์™ธ๋ถ€ ์•ฑ๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ๋„ ๋” ๋งŽ์ด ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • @lunny๊ฐ€ ์ œ์•ˆํ•œ ์ง„์œผ๋กœ์˜ ์ „ํ™˜์„ ์ง„์ง€ํ•˜๊ฒŒ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ง„ ๋Œ€์‹  ๊ณ ์ฐŒ๋ฅผ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

  • CrowdIn์œผ๋กœ ๊ตญ์ œํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹น์‚ฌ์˜ ํœด๊ณ  ์›น์‚ฌ์ดํŠธ ๋ฌธ์„œ๋ฅผ ์ž๋™์œผ๋กœ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

IMHO ์›น์‚ฌ์ดํŠธ/๋ฌธ์„œ๋Š” ์ „ํ˜€ ๋ฒˆ์—ญ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ํ•ญ์ƒ ๊ตฌ์‹์ž…๋‹ˆ๋‹ค...

IMHO ์›น์‚ฌ์ดํŠธ/๋ฌธ์„œ๋Š” ์ „ํ˜€ ๋ฒˆ์—ญ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ํ•ญ์ƒ ๊ตฌ์‹์ž…๋‹ˆ๋‹ค...

๊ทธ๋Ÿฌ๋‚˜ crowdin์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ตฌ์‹์œผ๋กœ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์•Œ๋ฆฌ๊ณ  ํ˜„์žฌ ๋ฒˆ์—ญ์„ ๋ฌดํšจํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ์ ์ ˆํ•œ OS ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? NS

์•„๋งˆ๋„ GItea ๊ฐœ๋ฐœ์ž๊ฐ€ ์ œ์–ดํ•˜๊ณ  ๋ฒ„์ „์„ ๊ด€๋ฆฌํ•˜๋Š” PPA ์Šคํƒ€์ผ ํŒจํ‚ค์ง€๋Š” ์ข‹์€ ์ƒ๊ฐ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ €๋Š” ๋น ๋ฅด๊ฒŒ ์›€์ง์ด๋Š” ํ”„๋กœ์ ํŠธ(์˜ˆ: GItea)๋ฅผ ์œ„ํ•œ ๋ฐ๋น„์•ˆ ์Šคํƒ€์ผ์˜ "๋ณด์•ˆ ํŒจ์น˜ ๊ณ ์ • ๋ฐ ๋ฐฑํฌํŠธ" ๋ฒ„์ „ ๊ด€๋ฆฌ ๋ฐฉ์‹์„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ https://github.com/go-gitea/gitea/issues/3840 ์„ ๊ฐ–๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค
ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ๋ผ์šฐํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•ด๊ฒฐ๋œ ํ›„์—์•ผ ๋ช…ํ™•ํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด์ธ ๊ธฐ๋ณธ ์ •๋ฆฌ/๋ฆฌํŒฉํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ #3840์„ ๊ฐ–๊ณ  ์‹ถ๋‹ค.
ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ๋ผ์šฐํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•ด๊ฒฐ๋œ ํ›„์—์•ผ ๋ช…ํ™•ํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด์ธ ๊ธฐ๋ณธ ์ •๋ฆฌ/๋ฆฌํŒฉํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ํ˜„์žฌ Gitlab์— ๋Œ€ํ•ด ๊ตฌํ˜„๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— Drone ์ง€์›์„ ๋Š์Šจํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ #3840์„ ๊ฐ–๊ณ  ์‹ถ๋‹ค.
ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ๋ผ์šฐํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํ•ด๊ฒฐ๋œ ํ›„์—์•ผ ๋ช…ํ™•ํ•ด์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด์ธ ๊ธฐ๋ณธ ์ •๋ฆฌ/๋ฆฌํŒฉํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

@tboerger
๋‚ด ์ƒ๊ฐ์€ repo๊ฐ€ โ€‹โ€‹๊ทธ๋ฃน/๋””๋ ‰ํ† ๋ฆฌ์— ์ค‘์ฒฉ๋˜์ง€ ์•Š์œผ๋ฉด URL์ด ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๊ทธ๋ฃน/๋””๋ ‰ํ† ๋ฆฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ URL์„ "์—…๊ทธ๋ ˆ์ด๋“œ"ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์˜ˆ, ์ƒˆ URL์ด ์žˆ๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Drone์„ ์ง€์›ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@lafriks
๊ทธ๊ฑฐ ์ข‹์€ ์•„์ด๋””์–ด๊ตฐ์š”. ์ด ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” Git ๋ชจ๋“ˆ ๋˜๋Š” Repo ํ”„๋กœ์ ํŠธ์˜ ํ•˜์œ„ ํ”„๋กœ์ ํŠธ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ, ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ทธ ๊ฒฝ์šฐ๋ฅผ ์ปค๋ฒ„ํ•˜๋Š”์ง€ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๊ฑฑ์ • ๋งˆ. ๋‚˜๋Š” ๊ทธ๋Ÿฌํ•œ ๊ด‘๋ฒ”์œ„ํ•˜๊ณ  ์•„๋งˆ๋„ ํŒŒ๊ดด์ ์ธ ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ค๊ธฐ๋ฅผ ๊บผ๋ฆฝ๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๋งŽ์€ ์ข‹์€ ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ๋“ค์„ ์œ ์ง€ํ•˜๊ณ  ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์–ธ์ œ, ์–ด๋–ป๊ฒŒ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ์ด ํ† ๋ก ์€ ์˜์›ํžˆ ๊ณ„์†๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” ์†Œ์œ ์ž๊ฐ€ ์ฃผ์ œ๋ฅผ ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๊ทธ๋“ค๊ณผ ํšŒ์› ์‚ฌ์ด์˜ ํˆฌํ‘œ๋ฅผ ์ œ์•ˆํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์–ด๋–ป๊ฒŒ ์ƒ๊ฐํ•˜๋‚˜์š”?

@DblK ๋งž์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ gitea.com์œผ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•œ ํ›„์—๋Š” ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

  • ์ˆ˜์€ ์ง€์›
  • PR ๋ฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋” ๋‚˜์€ ์ •๋ ฌ ๋ฐ ํ•„ํ„ฐ๋ง
  • ์ˆ˜์€ ์ง€์›

์•„๋‹ˆ์š” ๊ดœ์ฐฎ์•„์š”. ์ด์œ ๊ฐ€ ์žˆ์–ด "git"ea๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋” ๋„“์€ ๋ฒ”์œ„๋ฅผ ๊ฐ–๊ณ  ์‹ถ์€ ๋งˆ์Œ์€ ์ดํ•ดํ•˜์ง€๋งŒ
๋ถ€ํ’€์–ด ์˜ค๋ฅด๋Š” ๊ฒƒ์ด ๋ชจํ‰์ด์— ์žˆ์Šต๋‹ˆ๋‹ค ...

์ˆ˜์€ ์ˆ˜์ž…์ด ๋Œ€์•ˆ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

2019๋…„ 7์›” 26์ผ UTC ์˜คํ›„ 1์‹œ 52๋ถ„ 50์ดˆ์— Sandro Santilli [email protected] ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

  • ์ˆ˜์€ ์ง€์›

์•„๋‹ˆ์š” ๊ดœ์ฐฎ์•„์š”. ์ด์œ ๊ฐ€ ์žˆ์–ด "git"ea๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
๋” ๋„“์€ ๋ฒ”์œ„๋ฅผ ๊ฐ–๊ณ  ์‹ถ์€ ๋งˆ์Œ์€ ์ดํ•ดํ•˜์ง€๋งŒ
๋ถ€ํ’€์–ด ์˜ค๋ฅด๋Š” ๊ฒƒ์ด ๋ชจํ‰์ด์— ์žˆ์Šต๋‹ˆ๋‹ค ...

--
๋‹น์‹ ์ด ๋Œ“๊ธ€์„ ๋‹ฌ์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ํšŒ์‹ ํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/go-gitea/gitea/issues/6998#issuecomment -515461704

์—ฐํ•ฉ ํ’€ ๋ฆฌํ€˜์ŠคํŠธ/์ด์Šˆ/ํฌํฌ

Fediverse๋ผ๋Š” ๋‹จ์–ด(ActivityPub, OStatus, diaspora* ๋“ฑ)์˜ ์˜๋ฏธ์—์„œ ์—ฐํ•ฉ๋˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ํ”„๋กœ์ ํŠธ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋œ ์ž์‹ ์˜ ์›๊ฒฉ ์ธ์Šคํ„ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์›ํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฏธ #1612์—์„œ ์ด์— ๋Œ€ํ•œ ๋…ผ์˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ForgeFed๋Š” Gitea์™€ ๊ฐ™์€ ์ฝ”๋“œ ์œ„์กฐ์— ์—ฐํ•ฉํ•˜๊ธฐ ์œ„ํ•œ ๋ช‡ ๊ฐ€์ง€ ํฅ๋ฏธ๋กœ์šด ์•„์ด๋””์–ด๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด Gitea์˜ ๋‹ค์Œ ํฐ ๊ธฐ๋Šฅ์ด๋ผ๋ฉด ๊ต‰์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

Github์ด ์ œ๊ณต ํ•˜๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•œ ๊ทธ๋ž˜ํ”ฝ ํŒŒ์ผ(JPEG, PNG ๋ฐ PDF)์„ ์œ„ํ•œ ์‹œ๊ฐ์  diff ๋„๊ตฌ๋ฅผ ์›ํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ PR์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•œ PR์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค์ด์ง€๋งŒ ์Šค์™€์ดํ”„ ๋˜๋Š” ์–ด๋‹ˆ์–ธ ์Šคํ‚จ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋Š” ํฌํ•จ๋˜์ง€ ์•Š๊ณ  ๋‚˜๋ž€ํžˆ๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ PDF ํŒŒ์ผ์„ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๋ž˜ํ”ฝ ์ž๋ฃŒ(๋งค๋‰ด์–ผ ๋ฐ ๋ธŒ๋กœ์…” ํฌํ•จ) ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์—ฌ๊ธฐ์—์„œ Gitea๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ PDF์— ๋Œ€ํ•œ ํ›Œ๋ฅญํ•œ ์‹œ๊ฐ์  ์ฐจ์ด๋Š” ์ธ์ƒ์„ ๋ฐ”๊ฟ€ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฒ„๋ฆฌ๊ณ  ์‹ถ์€ ๋ช‡ ๊ฐ€์ง€ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.smile_cat:

  1. Cloud KSM์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋น„๋ฐ€์„ ํˆฌ๋ช…ํ•˜๊ฒŒ ์•”ํ˜ธํ™”/๋ณตํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด DB๊ฐ€ ํ•ดํ‚น๋˜์–ด ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” DB์— ์“ฐ๊ธฐ ์ „์— ๋น„๋ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ธฐ ์œ„ํ•ด XORM ์ธ์ฝ”๋”ฉ/๋””์ฝ”๋”ฉ ๋ฐฉ๋ฒ•๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž ์ •์˜ ์œ ํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋ฐ๋ชจ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค: https://github.com/gomodules/ksm-xorm

  2. OIDC ์ง€์›: Gitea๋ฅผ ํ†ตํ•ด ๋กœ๊ทธ์ธํ•  ๋•Œ oauth2 ํ† ํฐ๊ณผ ํ•จ๊ป˜ id_token์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  3. Gitea ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์€ ํ™•์ธ๋œ ๋ชจ๋“  Git ์ €์žฅ์†Œ์—์„œ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ: ์‚ฌ์šฉ์ž๋Š” Github/Gitlab/BitBuket/Gitea ์ €์žฅ์†Œ๋ฅผ ๊ณ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฒƒ๋„ ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด gitea๊ฐ€ ํ•˜๋‚˜์˜ ๊ธ€๋กœ๋ฒŒ ์‚ฌ์šฉ์ž ํ”„๋กœํ•„์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

  4. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ๋„๋ฉ”์ธ ์ง€์›(go)

  5. Github๊ณผ ์™„๋ฒฝํ•˜๊ฒŒ ํ˜ธํ™˜๋ฉ๋‹ˆ๋‹ค(์ด ๋ถ€๋ถ„์—์„œ ์ผ๋ถ€ ์ž‘์—…์„ ๋ณด์•˜์ง€๋งŒ ์ด๋ฏธ ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.)

  6. ์„ ํƒ์  ์–ธ์–ด ์„œ๋ฒ„ ํ†ตํ•ฉ. UI์— ๋‚ด์žฅ๋œ ํƒ์ƒ‰๊ณผ ๊ฐ™์€ Sourcegraph์™€ ๊ฐ™์€ ๊ฒƒ.

1,2ํŽธ์— ์งง๊ฒŒ๋‚˜๋งˆ ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ํ•˜๋‚˜์˜ ๊ฑฐ๋Œ€ํ•œ ํŽ˜์ด์ง€ ๋Œ€์‹  BitBucket๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝ๋œ ํด๋” ๋ฐ ํŒŒ์ผ์˜ ํŠธ๋ฆฌ ํ˜•ํƒœ๋กœ diff๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ›จ์”ฌ ๋” ์ฝ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

ํ•˜๋ฃจ ๋˜๋Š” ๋งค์ฃผ ๋ชจ๋“  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์•Œ๋ฆผ์„ ์ง‘๊ณ„ํ•˜๋Š” ์˜ต์…˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ง€๋‚œ ์ฃผ ํ™œ๋™์˜ ์š”์•ฝ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ง€์ • ํ…œํ”Œ๋ฆฟ๊ณผ ํ‘œ์ค€ ๋ณ€์ˆ˜ ํ’€์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์ง€์ • ์›นํ›…์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Gitea ์ง„ํ™”๊ฐ€ ์•„๋‹ˆ๋ผ ์œ ์šฉํ•  ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ : #7853

github์™€ ๊ธฐ๋Šฅ ํŒจ๋ฆฌํ‹ฐ!

๋˜๋Š” ์ตœ์†Œํ•œ ๋™๋“ฑ์„ฑ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์ „์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๋Š” Wiki์˜ ์ตœ์‹  ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฏธ๋ž˜์˜ ๊ฐœ๋ฐœ ๋…ธ๋ ฅ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@lonix1 ํ•ด๋‹น ๋ชฉ๋ก์€ https://docs.gitea.io/en-us/comparison/ ์„

@kolaente ๊ฑฐ์˜ ๋ชจ๋“  ๋ˆˆ๊ธˆ์ด ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค! ์‘!

๋‚˜๋Š” ์—ฌ๊ธฐ์—์„œ ๋งค์šฐ ์ƒˆ๋กญ์ง€๋งŒ ๊ธฐ๊บผ์ด ์ฝ”๋”์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” gitea๊ฐ€ ์š”์ ์„ ์ง€์›ํ•œ๋‹ค๋ฉด ๊ทธ๊ฒƒ์„ ์ข‹์•„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‚ด ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ํฐ ๊ตฌ๋ฉ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํžˆ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์š”์  ์‹œ์Šคํ…œ์„ ์ œ์ž๋ฆฌ์— ๋‘๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์š”์ ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋Š” https://github.com/go-gitea/gitea/issues/693 (์—ฌ๊ธฐ์—์„œ ์•„์ง ์ฐธ์กฐ๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์•„์„œ ์—ฐ๊ฒฐ)์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

Help ๋งํฌ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” Help ๋ฌธ์„œ๋„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ์˜ ์ดˆ๊ธฐ ์†Œ์Šค๋Š” GitHub ๋„์›€๋ง ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ Gitea ๊ด€๋ จ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@bagasme ๋„์›€๋ง์€ github์—์„œ

  1. ์ด๋ฉ”์ผ์„ ํ†ตํ•œ ๋ฌธ์ œ ์ƒ์„ฑ(GitLab ์„œ๋น„์Šค ๋ฐ์Šคํฌ ์ฐธ์กฐ).

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

  1. GitLab์˜ AutoDevOps์™€ ์œ ์‚ฌํ•œ ๊ฒƒ. ์ด๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— CI yaml ํŒŒ์ผ์ด ์—†์„ ๋•Œ ๊ธฐ๋ณธ CI ์ž‘์—…์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

2a. ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ UI ํƒญ ๋ฐ ์ธ์ฆ.

  1. ๋ด‡
  2. ์›น ์ปค๋ฐ‹์„ ์œ„ํ•œ GPG
  3. ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋ณ‘ํ•ฉ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ธฐ๋Šฅ
  4. ์›น UI์—์„œ ํŒŒ์ผ ์ƒ์„ฑ ๊ธฐ๋Šฅ(๋นˆ ๋ฒ ์–ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํฌํ•จ)
  5. UI๋ฅผ ํ†ตํ•ด repo์— ์ฒจ๋ถ€๋œ ์Šค๋‹ˆํŽซ ๊ด€๋ฆฌ(GitLab ์ฐธ์กฐ)
  6. Git ํ”„๋กœํ† ์ฝœ v2 ์ง€์›
  7. ํ–ฅ์ƒ๋œ ์›น IDE ์˜ต์…˜
  8. Kubernetes ํ†ตํ•ฉ(GitLab์˜ UI ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํ†ตํ•ด)
  9. ๋งˆ์šฐ์Šค ์˜ค๋ฒ„ ์‹œ ํˆดํŒ์ด ํ‘œ์‹œ๋˜๊ธฐ ์ „์— 400ms ์ง€์—ฐ ์ถ”๊ฐ€
  10. ๋” ๋‚˜์€ CI ํ†ตํ•ฉ(ํŒŒ์ดํ”„๋ผ์ธ ํ‘œ์‹œ, Concourse ์ง€์› ๋“ฑ)
  11. UI ์ˆ˜์ •
  12. 2FA ์‹œํ–‰
  13. ํŒŒ์ผ ์ž ๊ธˆ
  14. PR ๋ณ‘ํ•ฉ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋ฌธ์ œ๋ฅผ ์ž๋™์œผ๋กœ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ผ์ข…์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ/ํ™•์žฅ ์‹œ์Šคํ…œ.

๋Œ€๋ถ€๋ถ„์˜ ์ œ์•ˆ์€ ํ›Œ๋ฅญํ•˜์ง€๋งŒ ํ•ต์‹ฌ ์ฝ”๋“œ๋ฒ ์ด์Šค์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณต์‹(๋ฐ ๋น„๊ณต์‹) ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋˜ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž‘์„ฑ์ž๊ฐ€ ๋” ์ž์ฃผ ๋ฆด๋ฆฌ์Šคํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

@lonix1 git hooks,

@guillep2k ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ. ๊ทธ๊ฒƒ๋“ค์€ ๋งค์šฐ ์œ ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค - ๊ทธ๋Ÿฌ๋‚˜ ์•„๋งˆ๋„ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋„ˆ๋ฌด ๋งŽ์€ ๋ถ€๋ถ„์„ ๋งŒ์ง€๊ธฐ ๋•Œ๋ฌธ์— 1) ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋„ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๊ณ  2) ๊ทธ๋กœ ์ธํ•ด ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ์ด ๋งค์šฐ ๋Š๋ฆฝ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์€ ์ด๋Ÿฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์‹ ์ค‘ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ๋ณ„๋„๋กœ ์ถœ์‹œ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ๋ฉ”์ธ ๋ธŒ๋žœ์น˜์— ๋ณ‘ํ•ฉ๋˜๊ธฐ ์ „์— ๊ธฐ๊บผ์ด ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ํฐ ์ƒˆ ๊ธฐ๋Šฅ์˜ ๋‹ค๋ฅธ ์˜ˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„๋กœ ์Šคํฌ๋กคํ•˜์‹ญ์‹œ์˜ค.

์ž๋™ ์ƒ์„ฑ ์ปค๋ฐ‹์˜ @brandonkal GPG ์„œ๋ช…์€ ์ด์ œ #7631์˜ ๋ณ‘ํ•ฉ์œผ๋กœ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋กœ๋“œ๋งต์€ ๋‹ค์Œ ๋„ค ๊ฐ€์ง€ ๋ฒ”์ฃผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๊ธฐ๋Šฅ

์•„์ง ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” _๊ธฐ๋ณธ ๊ธฐ๋Šฅ_์ด ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด:

๋ณด์•ˆ

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๋ณด์•ˆ ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  • [ ] [Docker ์ด๋ฏธ์ง€๋Š” ์—ฌ์ „ํžˆ ๋ฃจํŠธ๋กœ ์‹คํ–‰](https://github.com/go-gitea/gitea/issues/1190) Docker ๊ฐ€์ด๋“œ์—์„œ ์ด์— ๋Œ€ํ•ด ๋งค์šฐ ๋ช…ํ™• ํ•˜๊ณ  root ๋ฅผ ์‚ฌ์šฉํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • [ ] [์•„์ง 2FA ์‹œํ–‰ ๋ถˆ๊ฐ€](https://github.com/go-gitea/gitea/issues/880)
  • [ ] [์ธ๋ผ์ธ ์Šคํƒ€์ผ์„ ์ œ๊ฑฐํ•˜์—ฌ ๋” ์—„๊ฒฉํ•œ CSP ํ—ค๋” ์„ค์ • ์‚ฌ์šฉ](https://github.com/go-gitea/gitea/issues/305)
  • [ ] [๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ฒจ๋ถ€ ํŒŒ์ผ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.](https://github.com/go-gitea/gitea/issues/7908)

์™„์„ฑ

๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜/์„œ๋น„์Šค์™€์˜ ํ†ตํ•ฉ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ข‹์€ ์ผ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์€ โ€‹โ€‹์ผ๋ฐ˜์ ์œผ๋กœ ๋‹จ์ผ ๋„๊ตฌ์—๋งŒ ์˜์กดํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๋˜ํ•œ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ์ง์žฅ์—์„œ Gitea๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค๋“ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ๋Š” ์ƒํ˜ธ ์šด์šฉ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ผ๋ฐ˜ ์›นํ›…์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด gitea์˜ ๋‚ด๋ถ€๋ฅผ ์•Œ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. @guillep2k ๋Š” "์™ธ๋ถ€ ๋ช…๋ น" ํ†ตํ•ฉ์ด ์ผ๋ฐ˜ ์›นํ›… ํ†ตํ•ฉ๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฉ‹์ง„ ์•„์ด๋””์–ด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค .
:๊ฒฝ๊ณ : ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ์ด ๋ฌธ์ œ์˜ ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์ด 'ํ”Œ๋Ÿฌ๊ทธ์ธ ์ง€์›'์œผ๋กœ ์›ํ•˜๋Š” ๋ฌธ์ œ์˜ ๋Œ€๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค . ๊ทธ๋ž˜์•ผ ์‚ฌ์šฉ์ž๊ฐ€ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ @lunny ๋Š” ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ƒ ์ด๋ฏธ git hooks๋ฅผ ํ†ตํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์–ธ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋‹ค๋ฅธ ๋„๊ตฌ/ํ”Œ๋Ÿฌ๊ทธ์ธ/์„œ๋น„์Šค๋ฅผ ํ†ตํ•ฉํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ตœ๊ณ ์˜ ๊ธฐ๋Šฅ

๋˜ํ•œ ๊ฒฝ์Ÿ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ(์˜ˆ: Git[Hub/Lab]) ์—๋Š” ๋ถ„๋ช…ํžˆ ๋ช‡ ๊ฐ€์ง€ ๋ฉ‹์ง„ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค(๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค).

  • [ ] [PR ๋˜๋Œ๋ฆฌ๊ธฐ](https://github.com/go-gitea/gitea/issues/6375)
  • [ ] [@arthur-bauer๊ฐ€ ์–ธ๊ธ‰ํ•œ ๋น„ํ…์ŠคํŠธ์— ๋Œ€ํ•œ diff ๊ฐœ์„ ](https://github.com/go-gitea/gitea/issues/6998#issuecomment-516325459)
  • [ ] [๊ด€๋ฆฌ์ž ํŽธ์ง‘](https://github.com/go-gitea/gitea/issues/717)
  • [ ] [๊ธฐ๋ฐ€ ๋ฌธ์ œ](https://github.com/go-gitea/gitea/issues/3217)
  • [ ] ๋” ๋งŽ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ธ๋ถ€ ์ •๋ณด ํ‘œ์‹œ(์˜ˆ: ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํฌ๊ธฐ , ๊ธฐ์—ฌ์ž ๊ทธ๋ž˜ํ”„ , ์–ธ์–ด ํ‘œ์‹œ์ค„ )
  • [ ] ์ผ๋ถ€ ์œ„ํ‚ค ๊ฐœ์„  ์‚ฌํ•ญ(#823 #574)
  • [ ] [@SignumPL์ด ์–ธ๊ธ‰ํ•œ BitBucket๊ณผ ๊ฐ™์€ ์ฐจ์ด์ ์ด ์žˆ์Œ](https://github.com/go-gitea/gitea/issues/6998#issuecomment-517151615) (์ด์ „์—๋Š” ๋ชฐ๋ž์ง€๋งŒ ์‹ค์ œ๋กœ ์œ ์šฉํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. )
  • [ ] [Octotree์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ ํ†ตํ•ฉ](https://github.com/go-gitea/gitea/issues/3045#issuecomment-546233388)

Oracle Database๋ฅผ ์˜ต์…˜์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ธฐ์ˆ ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด.

@DemiusAcademius xorm์ด oracle์„ ๋” ์ž˜ ์ง€์›ํ•œ๋‹ค๋ฉด ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์ตœ๊ทผ GitLab ํŠธ๋ž˜์ปค ๋ฐœํ‘œ๋กœ ์ธํ•ด ์ ์  ๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด Gitea๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ GitHub/GitLab์—๋Š” ์—ฌ์ „ํžˆ ๋„คํŠธ์›Œํฌ ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฐํ•ฉ์€ ์„œ๋กœ ๋‹ค๋ฅธ Gitea ์ธ์Šคํ„ด์Šค์˜ ์‚ฌ์šฉ์ž ๊ฐ„์˜ ํ˜‘์—… ๋Šฅ๋ ฅ์„ ๊ฐœ์„ ํ•˜๊ณ  ์ „์ฒด Gitea ๋„คํŠธ์›Œํฌ๋ฅผ ์ฆ๊ฐ€์‹œํ‚ค๋Š” ํฐ ๋™์ธ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค: #1612

UI์—์„œ ํฐ ์ฐจ์ด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์€ Gitea ์ฑ„ํƒ์˜ ์ œํ•œ ์š”์†Œ๋กœ ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ‹ฐ์ผ“ ์ฃผ์†Œ: #7341(๊ธฐ๋Šฅ), #7495(ํฌ๋ž˜์…” ๋ฒ„๊ทธ)

UI์—์„œ ํฐ ์ฐจ์ด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์€ Gitea ์ฑ„ํƒ์˜ ์ œํ•œ ์š”์†Œ๋กœ ๋ณด๊ณ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
ํ‹ฐ์ผ“ ์ฃผ์†Œ: #7341(๊ธฐ๋Šฅ), #7495(ํฌ๋ž˜์…” ๋ฒ„๊ทธ)

๊ทธ๊ฒƒ์€ _๊ฑฐ๋Œ€ํ•œ_ ํ•œ๊ณ„์ž…๋‹ˆ๋‹ค. IMO ์œ„์— ๋‚˜์—ด๋œ ๋ชจ๋“  @alexanderadam ์€ ์ด๊ฒƒ์— ๋น„ํ•ด ์ฐฝ๋ฐฑํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์— ์ธ๋ผ์ธ์œผ๋กœ ์ฃผ์„์„ ๋‹ฌ์•„ ํฐ diff๋ฅผ ๊ฒ€ํ† ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ํฐ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

W/R/T ๋งŽ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ  ํŽ˜๋”๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ๋†’์€ ์ˆ˜์š”๋ฅผ ์ผ์œผํ‚จ Microsoft์™€ Github์— ๋Œ€ํ•œ ๋ถ„๋…ธ-Gitlab์€ ์ตœ๊ทผ ํ† ์ง€์™€ ๊ฒฝ์ œ ๊ทœ๋ชจ๋กœ ์„ธ๊ณ„ ์ตœ๋Œ€ 2๊ฐœ ๊ตญ๊ฐ€์ธ ์ค‘๊ตญ๊ณผ ๋Ÿฌ์‹œ์•„์˜ ์ง์› ๊ธˆ์ง€๋ฅผ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฏธ๊ตฐ์€ ๋ฏธ๊ตญ ์ œ๊ตญ์˜ ํ™•์žฅ/์ดํ•ด์— ๋Œ€ํ•œ ์žฅ๋ฒฝ์„ ์•ฝํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ค‘๊ตญ๊ณผ ๋Ÿฌ์‹œ์•„์— ์ดˆ์ ์„ ์˜ฎ๊ฒผ์Šต๋‹ˆ๋‹ค. ์„ ์ „ ๋ฐ ์žฌ์ •์  ์ธ์„ผํ‹ฐ๋ธŒ๋กœ ์ธํ•ด Microsoft(Github, Azure), Amazon, Google, Atlassian(Trello, Jira), ์‹ฌ์ง€์–ด Gitlab๊นŒ์ง€ ์ „์Ÿ, ์ŠคํŒŒ์ด ํ™œ๋™, ์„ ์ „ ๋ฐ ๊ฐ์‹œ ์‚ฐ์—…์— ๊ณต๊ฒฉ์ ์ธ ์—ญํ• ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์•„๋งˆ๋„ ์ด ์ฃผ์ œ๋Š” ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์˜ ๋ณ„๋„ ์„น์…˜์—์„œ ์ด ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•˜๊ณ  ์ด ์ˆ˜์š”๋ฅผ ํฌ์ฐฉํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„๋„์˜ ๊ธฐ๊ธˆ ๋ชจ๊ธˆ ์บ ํŽ˜์ธ์„ ํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ํด ๊ฒƒ์ž…๋‹ˆ๋‹ค. ForgeFed๋ฅผ ๋ชจ๊ธˆ์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์€ ์ง€๊ธˆ๊นŒ์ง€ ๊ทธ๋“ค์˜ ์ž‘์—…์„ ๋ณผ ๋•Œ ์œ ์ตํ•˜๊ณ  ๊ณต์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Microsoft๊ฐ€ Github์„ ์ด๊ธด ์ง€ 17๊ฐœ์›”์ด ์ง€๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋˜ ๋‹ค๋ฅธ 17๊ฐœ์˜ ๋‚˜๋ฐฉ์ด ์—ฐํ•ฉ๋œ Gitea๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ '์ˆœ ๊ฐ€์น˜ ๊ตฌ์ถ•'์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์—์„œ ์ •์น˜์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ฃผ์ œ๋ฅผ ๊ณ„์† ์œ ์ง€ํ•ฉ์‹œ๋‹ค - ๋ชจ๋‘๋ฅผ ์œ„ํ•œ Gitea ๊ฐœ์„ 

@lafriks Gitea๋ฅผ ๊ฐœ์„ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋Œ€์ฒด ์ œํ’ˆ์œผ๋กœ ์ถฉ์กฑ๋˜์ง€ ์•Š๋Š” ํ‹ˆ์ƒˆ ์‹œ์žฅ์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋งˆ์ผ€ํŒ…์€ ์™ธ๋ถ€ ๊ธฐํšŒ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ด๋ฉฐ "์ •์น˜์ "์€ ๋งˆ์ผ€ํŒ… ๋ถ„์„์˜ 4๊ฐ€์ง€ ์ฃผ์š” ๋ฒ”์ฃผ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ํ˜„๋ช…ํ•œ ๋ธŒ๋žœ๋“œ๋Š” ๊ธฐ๋Šฅ, ์‚ฌ์–‘ ๋ฐ ๊ฐ€๊ฒฉ์„ ์ œ๊ณตํ•˜๋Š” ๋งŒํผ ์‚ฌ๋žŒ๋“ค์˜ _๊ฐ€์น˜_๊ฐ€ ๋™๋“ฑํ•˜๊ฒŒ ์–ดํ•„ํ•ฉ๋‹ˆ๋‹ค. Gitea์™€ ๊ฐ™์€ ๋Œ€์•ˆ์—๋Š” ๊ฐ€์น˜ ๊ธฐ๋ฐ˜("์ •์น˜์ ") ๋Œ๋ฆผ์ด ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๊ฐ•์กฐํ•˜๊ณ  ์œ ์ง€ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์€ ์†Œ๋น„์ž์™€ ์‹œ์žฅ ๊ธฐํšŒ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

@OKNoah์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ

์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•œ ๋งˆ์ผ€ํŒ… 101:

  1. ๊ฐ•์ œ ์ˆ˜์šฉ์†Œ๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  2. ์ •์น˜๋ฅผ ์–ธ๊ธ‰ํ•˜์ง€ ๋ง๋ผ
  3. ์€๋ฐ•์ง€ ๋ชจ์ž ๋ถ„์‹ค
  4. ์ œ๊ตญ์ฃผ์˜์™€ ๊ฐ™์€ ๊ณ ๋Œ€ ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  5. ์ œํ’ˆ์˜ ์žฅ์ ์„ ํŒŒ์•…ํ•˜์‹ญ์‹œ์˜ค. Gitea์˜ ์žฅ์ ์€ ๋‹จ์ˆœ์„ฑ์ž…๋‹ˆ๋‹ค.

GitLab.com์˜ ํˆฌ๋ช…์„ฑ์ด ๊ธฐ๋ถ„์„ ์ƒํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ GitLab-FOSS๋ฅผ ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์ฃผ ์ข‹์€ ์˜ฌ์ธ์› ์ œํ’ˆ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ„๋‹จํ•œ ์„ค์น˜๋ฅผ ์›ํ•˜๊ฑฐ๋‚˜ GitLab ๋˜๋Š” GitHub Enterprise์— ๋น„ํ•ด ๋” ์ ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ Gitea๋Š” ๊ธฐ๋ณธ ์›น ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ข‹์€ ์˜ต์…˜์ž…๋‹ˆ๋‹ค.

์ด ์Šค๋ ˆ๋“œ๋Š” ๋‹จ์ˆœ์„ฑ์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ๊ทธ ๊ฒฉ์ฐจ๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๋…ผ์˜ํ•ฉ๋‹ˆ๋‹ค.

๋‚ด 2์„ผํŠธ - ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ์„œ ์—ฌ๊ธฐ์— ์ด๋ฏธ ํ‘œํ˜„๋œ ์•„์ด๋””์–ด๋ฅผ ์š”์•ฝํ•œ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์ด Gitea๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ํŠน์„ฑ์ด ์•„๋‹ˆ๋ผ๊ณ  ๋ง์”€ํ•˜์‹ ๋‹ค๋ฉด, ์ œ๊ฐ€ ์ž˜๋ชป ์ดํ•ดํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์ €๋Š” ์ด๋งŒ ๋ฌผ๋Ÿฌ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋งํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ”๋Š” ์ด ์Šค๋ ˆ๋“œ๊ฐ€ Gitea์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ/๊ฐœ์„  ์‚ฌํ•ญ(ํŠนํžˆ ๊ธฐ์ˆ ์ ์ธ ์‚ฌํ•ญ)์— ๋Œ€ํ•ด ๋…ผ์˜ํ•˜๊ธฐ ์œ„ํ•œ ์žฅ์†Œ๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋…ผ์˜๋Š” ํ™˜์˜ํ•  ๋งŒํ•œ ๊ฒƒ์ด์ง€๋งŒ ์ด ํŠน์ • ์Šค๋ ˆ๋“œ์—์„œ๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ฆฌ๋“œ ์ค‘ ํ•˜๋‚˜๋กœ์„œ @XVilka๊ฐ€ ์˜ณ๊ฒŒ ๋งํ•œ ๋Œ€๋กœ ์ด ์Šค๋ ˆ๋“œ๋ฅผ ์ž ๊ธ€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ์š”์ฒญํ–ˆ์œผ๋ฉฐ ์ด์ œ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์œ„ํ•ด ํ‰๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

v2์— ๋Œ€ํ•œ FHS ๊ทœ์ • ์ค€์ˆ˜ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”Œ๋ž˜๊ทธ๋กœ ์ด๋ฏธ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ v2์˜ ๊ธฐ๋ณธ๊ฐ’์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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