ããã«ã¡ã¯ã
ç§ã¯ForgeFedã¯ãŒãã³ã°ã°ã«ãŒããšååããŠããœãããŠã§ã¢éçºãã©ãããã©ãŒã ã®
ä»æ§ã¯ãŸã äœæäžã§ãããå®éã®å
容ãä»æ§ã®èŠä»¶ã«é¢ä¿ãªããããã€ãã®åºæ¬äºé
ãå®è£
ããŠããã§ãã¬ãŒã·ã§ã³ã®æºåãããããšãã§ãããšæããŸãã
ãã®æºåã«åºã¥ããŠãä»æ§ãã«ããŒããå¿
èŠãããããšãããããç解ããããã«ãGitea-ForgeFedPoCãæ§ç¯ããæ¹ãç°¡åãããããŸããã
ãŸãã¯ãGiteaåºæã®ãã§ãã¬ãŒã·ã§ã³ãå®è£
ããããšãã§ããŸãããForgeFedïŒPã«ã¯äžå
¬å¹³ãããããŸããã
ç§ã«ãšã£ãŠããã®åºæ¬ã®1ã€ã¯ãéäžåã·ã¹ãã ãšåæ£åã·ã¹ãã ããŠãŒã¶ãŒã«ã€ããŠè¡ãä»®å®ã®éãã«ããã課é¡ã«å¯ŸåŠããããšã§ãã
ãã§ãã¬ãŒã·ã§ã³ã¯éäžåã·ã¹ãã ã§æ§æãããåæ£åã·ã¹ãã ã§ããããããã§ãã¬ãŒã·ã§ã³ããµããŒãããå Žåã¯ããã®éãã«å¯ŸåŠããå¿
èŠããããŸãã
ä»®å®ã®1ã€ã®ïŒç§ã«ãšã£ãŠäžå¿çãªïŒéãã¯ã質åãéããŠè¡šçŸããããšãã§ããŸã
éäžåã·ã¹ãã ãšåæ£åã·ã¹ãã ã®ããŠãŒã¶ãŒãæŠå¿µã®äºææ§ã«ã€ããŠèª¬æããŸãã
ããšãã°ãéäžåã·ã¹ãã ãšåæ£åã·ã¹ãã ã®äž¡æ¹ã§ãPRãªããžã§ã¯ãã¯ããŠãŒã¶ãŒãšããŠæŠå¿µåã§ãããã®ã«èµ·å ããŸãã
äžå
åãããã·ã¹ãã ã§ã¯ããã®ãŠãŒã¶ãŒã¯ãŠãŒã¶ãŒåã ãã§äžæã«èå¥ããã³ã¢ãã¬ã¹æå®ã§ããŸãã
é£åã·ã¹ãã ã§ã¯ãŠãŒã¶ãŒåã¯äŸç¶ãšããŠéèŠã§ããããŠãŒã¶ãŒåã¯äžæã§ã¯ãªãããŠãŒã¶ãŒãèå¥ããã®ã«ååã§ããããŸããããã®ããã®è¿œå æ
å ±ãå¿
èŠã§ãã é£åã·ã¹ãã ã§ã¯ããã®æ
å ±ã¯éåžžã€ã³ã¹ã¿ã³ã¹ã§ãã 次ã«ãããããäžç·ã«ãªã£ãŠãã§ãã¬ãŒã·ã§ã³IDã圢æããŸãã
ïŒæ¬¡ã®æ®µèœã®äžå¯è§£ãªæ§è³ªãèš±ããŠãã ããããã ããå®å šãæãããã«ããšã«ããããã§èšåããããšæããŸã:) UIã¬ãã«ã®ãŠãŒã¶ãŒãšã€ã³ã¹ã¿ã³ã¹ã§ã¯ååã§ãããæè¡ã¬ãã«ã§ã¯ForgeFedã§ã¯ååã§ã¯ãããŸããã ActivityPubã«åºã¥ããŠæ§ç¯ãããŠãããããWebäžã«æ§ç¯ãããŠããLinked Dataã®æŠå¿µã掻çšãããããã€ã³ã¿ãŒãããã¬ãã«ã®ãŠãŒã¶ãŒå+ã€ã³ã¹ã¿ã³ã¹ã§ã¯äžååã§ãããWebã¬ãã«ã§URIãåé¿ããããšã¯ã§ããŸããã ãããšãªã³ã¯ãããåé¡ã§ãã§ã«è¿°ã¹ãå¶éã®ããã«ãããã§ã¯WebFingerãçç¥ããŸãã
ãšã«ããããã®åé¡ã¯ããŠãŒã¶ãŒã®äžå€®èå¥åããŠãŒã¶ãŒåãããã§ãã¬ãŒã·ã§ã³IDã«ïŒã©ã®ãããªåœ¢åŒã§ãïŒå€æŽãããããšã«é¢ä¿ããŠããŸãã
ãã§ãã¬ãŒã·ã§ã³IDãããŒã¿ã¢ãã«ã«è¿œå ããããã«ç§ãç¥ã£ãŠãããã®æŠç¥ããããŸãïŒå®å šã«ãŸãã¯çã«ç§ã®ãã®ã§ã¯ãããŸããïŒïŒ
ç§ã¯å人çã«ã3çªç®ã®ãªãã·ã§ã³ãæ¯æããŠããŸããããã¯ããªããžã§ã¯ãã¢ãã«ã«å¿ èŠãªå€æŽã«å¯ŸåŠããããã®ããæ確ãªæ¹æ³ã§ããããã§ãã
ãã§ãã¬ãŒã·ã§ã³IDããŠãŒã¶ãŒãšã³ãã£ãã£ã«è¿œå ããã ãã®å Žåãããã¯ããŠãŒã¶ãŒãšã³ãã£ãã£ã«é¢ããäžå¿çãªä»®å®ãç Žãå¿ èŠãããããšãæå³ããŸããã€ãŸãããŠãŒã¶ãŒåã¯äžæã§ã¯ãªããªããŸãã äž»ã«ããŒã«ã«èªèšŒãã¡ã€ã³ãšäžè¬IDãã¡ã€ã³ã®æ··åã«é¢ããŠãããããããã圱é¿ã«äžå¿«æãèŠããŸãã
ãŸãããã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒããç¬èªã®ãšã³ãã£ãã£ãæã€æ°ããæŠå¿µãšããŠå°å
¥ããããšãã§ããŸãã
ããã¯ããŠãŒã¶ãŒã®è¡šç€ºãåž°å±ã«ã€ããŠæžå¿µããŠãããã¹ãŠã®é åã«è§Šããå¿
èŠãããããšãæå³ããŸãã ããªãããããäžæãæ£ããããããã®ãªããããªãã¯ãããåé¿ã§ããªããšæããŸãã ãã ããããã«å ããŠããããã¡ã€ã«ã衚瀺ããžãã¯ãªã©ããŠãŒã¶ãŒçšã«ãã§ã«æã£ãŠãããã®ãè€è£œããå¿
èŠããããŸãïŒãžã§ããªãã¯ãæããªãããã«ããŠããããéåé·ã«å®è£
ããã³ä¿å®ããã®ãé£ããããŸãïŒã
ããã«ããããŠãŒã¶ãŒãšã³ãã£ãã£ãåé¢ãã3çªç®ã®ã¢ãããŒãã«é²ã¿ãŸãã
ããã¯ããŠãŒã¶ãŒãšã³ãã£ãã£ãå®éã«ã¯èªèšŒïŒãã°ã€ã³çšïŒãšã³ãã£ãã£ãšIDãšã³ãã£ãã£ã®2ã€ã®ãšã³ãã£ãã£ã§æ§æãããŠãããšããåæã«åºã¥ããŠããŸãã
2ã€ã®ãšã³ãã£ãã£ã¯ãéäžåã·ã¹ãã ã§ã¯ç¬ç«ããŠããªãããã1ã€ã«çµåãããŸãã äžæ¹ãé£åã·ã¹ãã ã§ã¯ããããã¯ç¬ç«ããŠããŸãããã¹ãŠã®IDã«ãã°ã€ã³æ
å ±ãé¢é£ä»ããããŠããããã§ã¯ãããŸããã ãã®ãããããããçµã¿åãããã®ã¯æå³ããããŸããã ããã¯ããŠãŒã¶ãŒãšã³ãã£ãã£ãåå²ãããšããææ¡ã«ã€ãªãããŸãã
次ã«ãïŒãã°ã€ã³ïŒãŠãŒã¶ãŒåããã¹ã¯ãŒããããã³å¯Ÿå¿ããIDåç
§ãæã€1ã€ã®ãšã³ãã£ãã£ããããŸãã ãããŠã衚瀺åãïŒäžæã§ã¯ãªãïŒãŠãŒã¶ãŒåããã§ãã¬ãŒã·ã§ã³IDãã¢ãã¿ãŒURLãªã©ãä»ã®ãã¹ãŠã®IDãæã€1ã€ã®ãšã³ãã£ãã£ã§ååã§ã...
ããã§ãå€ãã®ã³ãŒãã«è§Šããå¿
èŠããããŸããããã®å ŽåãããŒã«ã«IDãšãã§ãã¬ãŒã·ã§ã³IDã®äž¡æ¹ã«IDãšã³ãã£ãã£ã䜿çšããŠãããããåãå·»ãããžãã¯ïŒãããã¡ã€ã«ãªã©ïŒãå
±æã§ããŸã:)
ãããŸã§ã®ãšãããããã«å¯Ÿããç§ã®ã¹ã¿ã³ã¹ã ç§ã¯èªåã®ã¢ãããŒãã«è³æã§ãããä»ã®ã¢ãããŒããèªç±ã«æå±ããããšãã§ããŸãããæçµçã«ã¯äž»ã«èŠç¹ã§ãããç§ã¯èªç±ã«æèŠãè¿°ã¹ãããšãã§ããŸãã :)
èªãã§ãããŠããããšãã
å®éã«ã¯ããã§ãã¬ãŒã·ã§ã³/å€éšãŠãŒã¶ãŒãå®è¡ã§ããããšã«ã€ããŠã®ãŠãŒã¹ã±ãŒã¹ãäœã§ãããã«ãã£ãŠç°ãªããŸãã ãªããžããªããã¹ãã§ããªãå Žåã¯ããã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒããŒãã«ãäœæãã衚瀺åããŠãŒã¶ãŒåãªã©ãããã«ç§»åããŠãåé¡ãããŸããã ããã«ãããããŒã«ã«ãŠãŒã¶ãŒããŒãã«ã䜿çšããŠãã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒããŒãã«ã䜿çšããã³ãŒãã®ãã¹ãŠã®éšåãå®å šã«æžãçŽãå¿ èŠããããŸãããããã¯å€§å€ãªäœæ¥ã«ãªãå¯èœæ§ããããŸã:)
@lafriksã«å®å šã«åæããŸãã ãããå§ããåã«ãããã€ãã®è³ªåãç¥ãå¿ èŠããããŸãã
ãªããžããªããã¹ãã§ããªãå Žåã¯ããã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒããŒãã«ãäœæãã衚瀺åããŠãŒã¶ãŒåãªã©ãããã«ç§»åããŠãåé¡ãããŸããã
ãã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒã¯ãªããžããªãæã€ããšãã§ããŸããããŠãŒã¶ãŒã®ã€ã³ã¹ã¿ã³ã¹ã§ãã¹ããããŸãã
ã€ãŸãããã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒã ãã§ãªãããã§ãã¬ãŒã·ã§ã³ãããžã§ã¯ãïŒãªããžããªãåé¡ãPRãªã©ïŒããããŸãã ããããããã¯ãã®åé¡ã®ç¯å²å€ã§ãã
- ãã®æ©èœãå¿ èŠãªã®ã¯èª°ã§ããïŒ å人ã®giteaãŠãŒã¶ãŒ/ãã©ã€ããŒãgiteaã䜿çšããŠããäŒç€Ÿ/ giteaãŸãã¯ä»ã®äººãä»ããGitãã¹ãã£ã³ã°Webãµã€ãïŒ
ç§ã®ããã«ãããªãŒããã³ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®éçºãäžå åãããäžå åãããéããªãŒãµãŒãã¹ã«éäžãããšããèãã奜ãŸãªã人ã ã ïŒGitHubïŒ
- ãªã圌ãã¯ãã®æ©èœãå¿ èŠãšããŸããïŒ
GiteaãGitLabã®ãããªç¡æã®ä»£æ¿æ段ããããŸããããããã®ã€ã³ã¹ã¿ã³ã¹ã¯äºãã«åé¢ãããŠããããã䜿çšäžã®æ¬ ç¹ããããŸãã ïŒãããŠããããã¯ãŒã¯å¹æã®åœ±é¿ãåããŸããïŒ
ããšãã°DebianGitLabã§ã¢ã«ãŠã³ããäœæããæ欲ããã£ããšããŠããããã¯ãã®ã€ã³ã¹ã¿ã³ã¹ã«éå®ãããŸãã
ææªã®å Žåãåãããžã§ã¯ãã«ã¯ç¬èªã®ã€ã³ã¹ã¿ã³ã¹ãããã確èªããã¢ã«ãŠã³ããéåžžã«å€ããããŸãã ïŒã¯ããé»åã¡ãŒã«éç¥ããããŸãããWebã§äœããå¿
èŠã§ããããã§ãªããã°ãGit + MLã§ãååã§ããïŒ
- 圌ãã¯ãã®æ©èœãã©ã®ããã«äœ¿çšãããã§ããïŒ
ãã§ãã¬ãŒã·ã§ã³ã³ã©ãã¬ãŒã·ã§ã³ã®å ŽåãGitHubã®ãããã¯ãŒã¯å¹æãå£ããŸãã
ããŒã ã€ã³ã¹ã¿ã³ã¹ã«1ã€ã®ã¢ã«ãŠã³ããããããã§ãã¬ãŒã·ã§ã³ããµããŒãããä»»æã®ãããžã§ã¯ãïŒ ForgeFedãªã©ïŒãšå ±åäœæ¥ã§ããŸãã
https://github.com/go-gitea/gitea/blob/7217b703e95a3ab01b69f91879fb4d6532f0b2c5/models/user.go#L94 -L97
ããã¯æ£ããã§ãã
Name
ã¯ãŠãŒã¶ãŒåïŒ criztovyl
ïŒã§ãããFullName
ã¯è¡šç€ºåã§ãïŒ "Christoph Schulz"ïŒïŒ
ãããã LowerName
ã®çç±ã¯äœã§ããïŒ ïŒ strings.ToLower(u.Name)
ïŒ
SQLã¯ãšãªã§lower(Name)
ã䜿çšããªãããã
SQLã¯ãšãªã§
lower(Name)
ã䜿çšããªãããã
ãããããªããŸã£ããïŒ å€æŽããããªãããã ç解ããŠãã ããã :)
ç§ã¯å°ããããå§ããããã€ãã®å±æ§ãuser.go
ïŒã¿ã€ãUser
ïŒããæ°ããuser_identity.go
ïŒã¿ã€ãIdentity
ïŒã«æãã«ç§»åããããã€ãã®ã³ãŒããè¿œå ããŸããIDããã®å€ã§å€ãå±æ§ãåããAfterLoad
ã
ãã®åŸãå±æ§ãUser
ããIdentity
移åãã移è¡ã®äœæã§åé¡ãçºçããŸããã æ¢åã®ç§»è¡ãšxormããã¥ã¡ã³ãã調ã¹ãŠãããããã«è©³ãã調ã¹ãŸãããããã«ããã€ãã®ãã³ããããã°æ¬åœã«å¬ããã§ãã :)
次åã¯ããã€ãã®ã³ããããå ±æããŸãã
ãããããªããŸã£ããïŒ å€æŽããããªãããã ç解ããŠãã ããã :)
ãŠãŒã¶ãŒåã§ã¯å€§æåãšå°æåãåºå¥ãããããŠãŒã¶ãŒãhttps://try.gitea.io/AxIFiVeãhttps://try.gitea.io/Axifiveãªã©ã®ãªã¯ãšã¹ããéä¿¡ãããšãäžæã®ãŠãŒã¶ãŒããã°ããèŠã€ããå¿
èŠãããããã strings.ToLower(username)
ãšåŒã³ãŸãã
éžæã®ããã«ãã£ãŒã«ããå°æåã«å€æããããšã¯éåžžã«ã³ã¹ãã®ãããDBæäœã§ããã2çªç®ã®ãã£ãŒã«ããè¿œå ããæ¹ãã¯ããã«ç°¡åã§ãã
ç§ã¯ã³ãŒããçŽæããŸããã
èŠåŽããŠããã³ãŒããããã·ã¥ããŸãããhttps ïŒ
IDã¢ãã«ã®åæã§ãã30è¡ç®ã¯ãæåŸ
ã©ããã«æ©èœããŸããããŒãã«ãäœæãããŸãã
ãããããŠãŒã¶ãŒã¢ãã«ã®åæã§ãã35è¡ç®ã¯æ©èœããŠããªãããã§ãããŒãã«ã«ã¯ãã®åŸãå€ãåãæ®ã£ãŠããŸãã
Sync2ã¯åã®ã¿ãè¿œå ããŸãã
åãåé€ããå Žåã¯ã以äžã䜿çšããå¿ èŠããããŸãã
移è¡ã¯ã¢ãã«ãä»ã®å Žæã«ãããã®ãåç §ããã¹ãã§ã¯ãªãããšã«æ³šæããŠãã ãã-ãããã¯å°æ¥ã®ç§»è¡ã§å€æŽãããå¯èœæ§ããããŸãã ãããã¯å®å šã«èªå·±å®çµåã§ããå¿ èŠããããŸã-ä»ã®Giteaã³ãŒããžã®åç §ã¯ãããŸããã
ããïŒ
ããã§ã¯ãå®éã«IDã®ã³ããŒãæã£ãŠããå¿ èŠããããŸãã åæ§ã«ããã§ïŒ
ããã¯ããããxorm: "-"
ã§ããããšãæå³ãããŠããŸããããã®å Žåã移è¡ã§ã¯ããããå¿
èŠãããŸããã
ææ¡ãããIDããŒãã«ãèŠããšããªãããã«login_sourceã䜿çšã§ããªãã®ã§ããïŒ
ãã³ããããããšã:)
ç§ãåæããéããlogin_sourceã®åé¡ã¯ããŠãŒã¶ãŒåãç¬èªã«äžæã§ããå¿ èŠãããããšã§ãã
ãã§ãã¬ãŒã·ã§ã³ã®å ŽåããŠãŒã¶ãŒåã¯äžæã§ã¯ãªããIDã®ã¿ãäžæã§ãïŒãã®ãããªIDã®äžæã®èå¥åã¯éåžžURI / IRIã§ãïŒã ãŠãŒã¶ãŒåã¯ãããã«éå®ããã衚瀺åã®ãããªãã®ã§ãã
ããã¯ãããã
xorm: "-"
ã§ããããšãæå³ãããŠããŸããããã®å Žåã移è¡ã§ã¯ããããå¿ èŠãããŸããã
ããããŸããããIdentityIdã«ãã£ãŠåç §ãããIdentityã¯ã©ã®ããã«å ¥åãããŸããïŒ ããã¯èªåçã«ã§ããããããšãã©ããã«è¿œå ããå¿ èŠããããŸããïŒ
ãŸããæåã«ããŒãã«ãäœæããå Žåã§ããIDã¢ãã«ãå¿ èŠãªã®ã§ããã®ãŸãŸã«ããŠããããšã¯ã§ããŸããã
ãããŠãã1ã€ã®ç°¡åãªè³ªåã dbå ã®ãã£ã¯ã¹ãã£ããã®ãã¹ãŠã®ãã¹ãããŒã¿ãæã€giteaã€ã³ã¹ã¿ã³ã¹ãå®è¡ããããšã¯å¯èœã§ããïŒ
ç§ã¯æã èŠèŠçãªã¿ã€ãã§ãã ããšãã°ããããã¡ã€ã«ããŸã æ£ãã衚瀺ãããŠããããšã確èªãããã®ã§ãããããšãã°ãé©åãªçµç¹ã®å²ãåœãŠããããŸãã
https://github.com/go-gitea/gitea/blob/master/contrib/pr/checkout.goãåç §ãããšãPRã®ç¢ºèªã«åœ¹ç«ã€ãã£ã¯ã¹ãã£ãèªã¿èŸŒãŸã
ããªãã¯ããããä¿®æ£çãäœãããšãã§ããŸãã
go run -tags "sqlite sqlite_unlock_notify" contrib/pr/checkout.go -run
ã¯é
åã®ããã«æ©èœããŸã:)
ãããã³ãŒãã®ãªããŒãããªãããšã«å ããŠãããã¯å°ãè€éã ãšæããŸãïŒD
@lafriksã«å®å šã«åæããŸãã ãããå§ããåã«ãããã€ãã®è³ªåãç¥ãå¿ èŠããããŸãã
1. Who wants this feature? Personal gitea user / Companies with private gitea / Git hosting website via gitea or others? 2. Why they need this feature? 3. How they want to use this feature?
å人ç
å人çãªäœ¿çšæ³ãããã¯ééããªãéåžžã«è¯ãæ©èœã§ãããã ãããªãã¯ãšãã©ã€ããŒãã®ãªããžããªãä¿åããã€ã³ã¹ã¿ã³ã¹ããããŸãïŒãã¹ãŠã§ã¯ãããŸããããå€ããããŸãïŒã 誰ãããããã§ã³ã©ãã¬ãŒã·ã§ã³ãããå Žåã圌ãã¯ç§ã®ã€ã³ã¹ã¿ã³ã¹ã§ãŠãŒã¶ãŒãååŸããå¿ èŠããããããã¯éã«æ©èœããŸããGiteaã€ã³ã¹ã¿ã³ã¹ã®ã©ããã«ãããžã§ã¯ãããããäœããä¿®æ£ãããæ©èœãªã¯ãšã¹ãã解決ããããããªã©ãã³ã©ãã¬ãŒã·ã§ã³ãããå Žåã¯ããŠãŒã¶ãŒãããã«èªå°ããããdiff / ref-linksãå«ããã«ãªã¯ãšã¹ãã¡ãŒã«ãéä¿¡ããå¿ èŠããããŸãã
ãã©ã€ããŒããªããžããªäžã®ä»ã®ã€ã³ã¹ã¿ã³ã¹ãããŠãŒã¶ãŒãæåŸ ã§ããå ŽåããŸãã¯ãŠãŒã¶ãŒãèªåã®ãŠãŒã¶ãŒãšåçŽã«åå ã§ããå ŽåïŒç¹å®ã®ã€ã³ã¹ã¿ã³ã¹ããããã¯/ãã©ãã¯ãªã¹ãã«ç»é²ãããŠããªãå ŽåïŒãããã¯ã¯ããã«ç°¡åã§ãã
äŒæ¥
äŒæ¥ãããã䜿çšãããã©ããã¯ããããŸããããæœåšçãªæ©äŒãèŠãããšãã§ããŸãã çŸåšãã»ãšãã©ã®äŒæ¥ãGitHubã䜿çšããŠããŸããããã¯ã誰ããGitHubãŠãŒã¶ãŒãæã£ãŠãããæš©é/ããŒã ã管çã§ããããã§ãã ïŒæ¶ç©ºã®ïŒäŒç€ŸãšããŠãèªåã®Giteaããã¹ãããŠãããŸããŸãªã€ã³ã¹ã¿ã³ã¹ã®GiteaãŠãŒã¶ãŒãšä»ã®ãŠãŒã¶ãŒãæåŸ ããããŒã ã«å ¥ããŠãäŒç€Ÿãå®å šã«ãã¯ãããšèšãããšãã§ããæ°ããæ代ãéå§ããå¯èœæ§ã®ããæš©éãäžããããšãã§ããã°ãã¹ããã³ã«ã¯å€ãã®ã€ã³ã¹ã¿ã³ã¹ãããã1ã€ãéžæããŠäœ¿çšã§ããããã«ãç¹ã«å€§èŠæš¡ãªã°ã«ãŒã/é£åæŠå£«ãèªåã§ãã¹ããã/ã§ããªããŠãŒã¶ãŒã«Giteaã€ã³ã¹ã¿ã³ã¹ãæäŸã§ããå Žåã¯ãGiteaã䜿çšã§ããŸãããããŠããªããæããã¹ãŠã«å°éããŸãã
äžæ¹ã§ãããã¯å€§å€ãªäœæ¥ã«ãªããšæããŸãããããæ©èœãããã©ããã¯ããããŸããããŠãŒã¶ãŒãã©ã®ããã«äœ¿çšããããã«åºã¥ããŠããŠãŒã¶ãŒãããå°ããªãã©ã°ã¡ã³ãã«åå²ã§ããŸãã
ãã®æ©èœãå¿ èŠãªã®ã¯èª°ã§ããïŒ å人ã®giteaãŠãŒã¶ãŒ/ãã©ã€ããŒãgiteaã䜿çšããŠããäŒç€Ÿ/ giteaãŸãã¯ä»ã®äººãä»ããGitãã¹ãã£ã³ã°Webãµã€ãïŒ
å人ãŠãŒã¶ãŒãšããŠâŠ
ãªã圌ãã¯ãã®æ©èœãå¿ èŠãšããŸããïŒ
æ°çŸã®ã€ã³ã¹ã¿ã³ã¹ã§ã¢ã«ãŠã³ããäœæããããããŸããã
圌ãã¯ãã®æ©èœãã©ã®ããã«äœ¿çšãããã§ããïŒ
åé¡ãå ±åããã ãã§ãã ã ããç§ã¯ããå ±åããŸããã åé¡ã®ãªããžããªããã¹ããããŠããå Žæã«é¢ä¿ãªãããã§ã«ã¢ã«ãŠã³ããæã£ãŠããã€ã³ã¹ã¿ã³ã¹ãããããè¡ãããšã¯ã§ããŸããïŒ
ãšããã§ïŒåãããšãã1åéãã®ä¿®æ£ãå«ããæå°éã®PR / MRãã«ãåœãŠã¯ãŸããŸãã ã€ãŸãããããžã§ã¯ãã«ãå®éã«åå ãããäºå®ããªããŠãã2ã»ã³ããå¯ä»ããå Žåã§ãã
@lafriksã«å®å šã«åæããŸãã ãããå§ããåã«ãããã€ãã®è³ªåãç¥ãå¿ èŠããããŸãã
- ãã®æ©èœãå¿ èŠãªã®ã¯èª°ã§ããïŒ å人ã®giteaãŠãŒã¶ãŒ/ãã©ã€ããŒãgiteaã䜿çšããŠããäŒç€Ÿ/ giteaãŸãã¯ä»ã®äººãä»ããGitãã¹ãã£ã³ã°Webãµã€ãïŒ
ç§ã¯@ a1batrossãªã©ã®ä»ã®äººãšã³ã©ãã¬ãŒã·ã§ã³ããå人çãªGiteaãŠãŒã¶ãŒã§ãã ã©ã¡ãã«ãç¬èªã®Giteaã€ã³ã¹ã¿ã³ã¹ããããŸãããã€ã³ã¹ã¿ã³ã¹éã®ãã«ãªã¯ãšã¹ããªã©ã圌ã®ãªããžããªã®1ã€ã«ã³ãŒããç°¡åã«æäŸã§ããããã«ããããšæããŸãã
- ãªã圌ãã¯ãã®æ©èœãå¿ èŠãšããŸããïŒ
ä»ã®ã€ã³ã¹ã¿ã³ã¹ã§ã¢ã«ãŠã³ããäœæãããããã¯ããã«ç°¡åã§ããããããã°ãä»ã®ã€ã³ã¹ã¿ã³ã¹ããã®ã³ãŒããåãå ¥ããããã«ãªãŒãã³ç»é²ãããå¿ èŠããããŸããã 100äžã®Giteaã¢ã«ãŠã³ãã¯å¿ èŠãããŸããã
- 圌ãã¯ãã®æ©èœãã©ã®ããã«äœ¿çšãããã§ããïŒ
äž»ã«ã¯ãã¹ã€ã³ã¹ã¿ã³ã¹ãã«ãªã¯ãšã¹ããšåé¡ã ãŸããçµç¹ã«ãªã¢ãŒããŠãŒã¶ãŒãå«ãããïŒçŽæ¥ããã·ã¥ã§ããããã«ããããïŒã
- ãã®æ©èœãå¿ èŠãªã®ã¯èª°ã§ããïŒ å人ã®giteaãŠãŒã¶ãŒ/ãã©ã€ããŒãgiteaã䜿çšããŠããäŒç€Ÿ/ giteaãŸãã¯ä»ã®äººãä»ããGitãã¹ãã£ã³ã°Webãµã€ãïŒ
å人çãªçç±ã¯ãã¢ã¯ãã£ããªã¢ã«ãŠã³ãã®æ°ãæžããã®ã«å€§ãã«åœ¹ç«ã€ãšæãããã§ãã
Gitãã¹ãã£ã³ã°ãŠã§ããµã€ãã¯ããããã¯ãŒã¯å¹æãæžãããäžåºŠã«åé¡ãå ±åããããã«æ¥ããã¹ãŠã®äººã®ã¢ã«ãŠã³ãã®è©³çŽ°ãä¿åããå¿ èŠããªãããã§ãã
- ãªã圌ãã¯ãã®æ©èœãå¿ èŠãšããŸããïŒ
æµ·å€ãããžã§ã¯ããžã®è²¢ç®ã容æã«ããããã«ãã¯ã€ãã¯ãã£ãã¯ã¹ã®åé¡ãå ±åããããã®ã¢ã«ãŠã³ããäœæããå¿ èŠã¯ãããŸããã
- 圌ãã¯ãã®æ©èœãã©ã®ããã«äœ¿çšãããã§ããïŒ
ããŸããŸãªå Žæã«é¢é£ä»ããããGitãªããžããªå šäœã§ã倧éã®ã¢ã«ãŠã³ãã§ã¯ãªãã1ã€ã®gitIDã®ã¿ãæã€ããã«äœ¿çšããããšæããŸãã
çŸåšGitteaãGitHubãGitLabã§è¡ã£ãŠãããã¹ãŠã®ããšã1ãæã§å®è¡ã§ããããã«ããããšæããŸãã ããã¯åé¡ããã«/ããŒãžèŠæ±ãçµç¹ã§ãã
1. Who wants this feature? Personal gitea user / Companies with private gitea / Git hosting website via gitea or others?
ãã©ã€ããŒãã ç¬èªã®GitãµãŒããŒãå®è¡ãããšãã€ã³ãã©ã¹ãã©ã¯ãã£ãå°ããããããããžã§ã¯ãã®å¯çšæ§ãäœäžããããã«èŠããŸãã åæ£åãšGithub / GitLabãšã®çžäºéçšæ§ã«ããããããžã§ã¯ãã¯ãããã®ãã©ãããã©ãŒã äžã«ãããã®ããã«ã¢ã¯ã»ã¹å¯èœã§å©çšãããããªããŸãã 誰ããç§ã®ãµãŒããŒã«ã¢ã«ãŠã³ããæã£ãŠããå¿ èŠããªãã®ã§ãå¯çš¿è ã«ãšã£ãŠããé åçã§ãã
2. Why they need this feature?
ã·ãŒã ã¬ã¹çµ±åã 奜ããªãããžã§ã¯ãã§ã³ã©ãã¬ãŒã·ã§ã³ãããã€ã³ã¿ãŒãã§ãŒã¹ã䜿çšããŠãã ããã
3. How they want to use this feature?
ãµãŒããŒã®äžå€®æš©éãšãCIãŸãã¯ãã®ä»ã®ã¯ã©ãŠããµãŒãã¹ããå¿ èŠãªæé«ã®æ©èœãæäŸãããã¹ãã£ã³ã°ãœãããŠã§ã¢ãšçžäºäœçšããããã«ããŸãã 誰ããGitLab / GitHub / Giteaã®ãã¹ãŠã®ç°ãªãAPIããã³ãã¹ãŠã®å°ããªAPIãšäºææ§ãããå¿ èŠã¯ãããŸããã
fr33domloverïŒForgeFedããŒã ïŒããã®é£éŠãã£ãŒãããã¯ã®ã³ããŒïŒ
çŸåšã®ç¶æ³ã§ã¯ãGiteaãGitLabãgithu8ãªã©ã®ãã©ãŒãžã§ãã¹ããããŠããã¬ããšããåãããã«ã¯ãããã«ã¢ã«ãŠã³ããå¿ èŠã§ãã åãã©ãŒãžã®ãŠã§ããµã€ãã¯å¥ã ã®å³¶ã§ãã
ç¬èªã®ãã©ãŒãžããã¹ããããšãã«ãŒã«ãªã©ãäœæã§ããŸãããå€ç«ããŠããŸãã ããªããèŠã€ããã®ã¯é£ããã§ãã å€ãã®äººã¯ãgithu8ãé¢ãããšãè²¢ç®ãå°ãªããªãã®ã§ã¯ãªãããšå¿é ããŠããŸãã ãŸããå¯çš¿è ã¯åãã©ãŒãžã§ã¢ã«ãŠã³ããäœæããå¿ èŠããããŸãã
ãŸããgithu8ã¯ç¬èªä»æ§ã§äžå åãããŠããã人ã ã«ãã人ã ã®ããã®ã³ãã¥ããã£ãããžã§ã¯ãã§ã¯ãããŸããã
ãããžã§ã¯ãã®å¯èŠæ§ãšãããžã§ã¯ããžã®ã¢ã¯ã»ã¹ã¯ããŠãŒã¶ãŒã®ã¢ã«ãŠã³ããããªãã®ãã©ãŒãžã«ããã®ããä»ã®ãã©ãŒãžã«ããã®ãã«äŸåããªããšããèãæ¹ã§ãã 1ã€ã®ã¢ã«ãŠã³ããäœæããŠãã©ãããã§ãåå ã§ããŸãã ãããžã§ã¯ãã®æ€çŽ¢ãçºèŠãæšå¥šãªã©ã¯ããããã¯ãŒã¯å šäœããã®ãã®ãèŠã€ããŸãã åäžã®ãã©ãŒãžãä»ã®ã©ã®ãã©ãŒãžããããŠãŒã¶ãŒã«å¯ŸããŠåŒ·åãªåãæã£ãŠããããšã¯ãããŸããã
äŸïŒ
- çµç¹/ããŒã /ã°ã«ãŒãã«ã¯ãããŸããŸãªãã©ãŒãžã®ãŠãŒã¶ãŒãå«ããããšãã§ããŸã
- ã³ããããããã·ã¥ããŠãããŸããŸãªãã©ãŒãžã®ãªããžããªã«é 眮ã§ããŸã
- ãã©ãŒãžéã§åé¡ãéããããããŒãžãªã¯ãšã¹ããéããããã³ã¡ã³ãããããã³ãŒãã¬ãã¥ãŒãéä¿¡ãããã§ããŸã
- ãªããžããªãCIãµãŒããŒãWikiã課é¡è¿œè·¡ã·ã¹ãã ãªã©ã¯ãç°ãªããµãŒããŒäžã«é 眮ããŠããã·ãŒã ã¬ã¹ã«é£æºã§ããŸãã
- 圌ãã¯ãã®æ©èœãã©ã®ããã«äœ¿çšãããã§ããïŒ
ä»ã®äººããã§ã«è¿°ã¹ãããšã«å ããŠïŒãŠã§ãããµãŒãã£ã³ããŠããéãç§ã¯åœŒãèªèº«ã®ã€ã³ã¹ã¿ã³ã¹gitea / gitlabã€ã³ã¹ã¿ã³ã¹ã«ååšããããããã®èå³æ·±ããããžã§ã¯ãã«ééããŸãã ç§ã¯ãã°ãã°ãããã®ã¬ãã«ã¹ã¿ãŒãä»ãããã ãã§ãããããã§ã®æ©æŠïŒãµã€ã³ã¢ããïŒã¯é«ãããŸãã 代ããã«ããã©ãŠã¶ã§ããã¯ããŒã¯ãä»ããŸãããã»ãšãã©ã®å ŽåãåŸã§ãã§ãã¯ããã®ãå¿ããŸãïŒããã¯ããŒã¯ãå€ãããŸãïŒã
githubã§ã¯ãããã¯ããŒã¯ã®æ段ãšããŠã ãã§ãªãããããžã§ã¯ããžã®æè¬ã®å°ãšããŠãStarsã䜿çšããŠããŸãã ç¹ã«é¢å¿ã®ãããããžã§ã¯ããç£èŠããŠããã®ã§ãã¢ã¯ãã£ããã£ã远跡ããç°¡åãªæ¹æ³ãšããŠéç¥ããã·ã¥ããŒãããããŸãã
ã¹ã¿ãŒã¯æªçšãããå¯èœæ§ããããŸãããããšãã°githubãªããžããªã«14kã®ã¹ã¿ãŒãããå Žåããã®äººæ°ã«ã€ããŠäœãã瀺ããŠããããããžã§ã¯ããæçšã§è³ªã®é«ããã®ã§ãããšåççã«ç¢ºä¿¡ã§ããŸãã gitea / gitlabã§ã¯ãçŸåšãæã¯ããŸãæããŠãããŸããã
çæ³çã«ã¯ãå°æ¥çã«ã¯ãã©ãã§å®è¡ãããã«é¢ä¿ãªãããã¹ãŠã®ã³ãŒãã£ã³ã°ã¢ã¯ãã£ããã£ã®æŠèŠãææ¡ã§ãããé£éŠæ¿åºã«æ¥ç¶ãããå Žæã1ã€ãããŸãã
1. Who wants this feature? Personal gitea user / Companies with private gitea / Git hosting website via gitea or others?
ç§ã¯å人çãªGiteaãŠãŒã¶ãŒã§ã
ç§ã«ã¯2ã€ã®Giteaã€ã³ã¹ã¿ã³ã¹ããããŸãã1ã€ã¯ã¢ãŒãã³ã¬ã¯ãã£ãïŒãããžã§ã¯ãã®ã³ãŒããä¿æããå ŽæïŒçšã§ããã1ã€ã¯ç§çšïŒå人ããã³å¥çŽäœæ¥ãããã³åŠçãšã®ããã€ãã®ãããžã§ã¯ããè¡ãå ŽæïŒã§ãã
2. Why they need this feature?
äž»ãªçç±ã¯ãGitHubããã®ç«¶åä»ç€Ÿã䜿ããããªãããã§ãã
ãã®äžé£ã®è³ªåã¯è¯ãäŸã§ããäŒè©±ã«åå ããã«ã¯GitHubã¢ã«ãŠã³ããå¿
èŠã§ããããã§ãã¬ãŒã·ã§ã³ã§ã¯ããã§ãã¬ãŒã·ã§ã³ã¢ã«ãŠã³ãã䜿çšã§ããŸãã
3. How they want to use this feature?
å ±éã®ãããã³ã«ïŒActivityPubïŒã䜿çšããŠãGiteaãšä»ã®ãµãŒãã¹ããã¹ãŠãã§ãã¬ãŒã·ã§ã³ãããŠããå Žåããã§ãã¬ãŒã·ã§ã³ãããVCSãµãŒãã¹éã®çžäºäœçšã®å¯èœæ§ãéãããã ãã§ãªãããã§ãããŒã¹å šäœã«å¯ŸããŠãã³ã¡ã³ãããŠãããžã§ã¯ãã«ãµãã¹ã¯ã©ã€ãã§ããŸããããšãã°ããã¹ããã³ããã®æŽæ°ã
ä»ã®å€ãã®ãŠãŒã¶ãŒã®å£°ãåæ ããŠããµãŒããŒã§ç»é²ãéããªããŠããåã«åé¡ãäœæããã ãã§ãã人ã
ãç§ã®ãããžã§ã¯ãã«ç°¡åã«è²¢ç®ã§ããããã«ããããšæã£ãŠããŸããã¢ã«ãŠã³ããè¿œå ããæéããããã«ãåé¡ãäœæããããããããªè²¢ç®ããããããããšãã§ããŸã
çæ³çãªäžçã§ã¯ãGitHubã¢ã«ãŠã³ãã¯ãããããŸãã
1. Who wants this feature? Personal gitea user / Companies with private gitea / Git hosting website via gitea or others?
ç§ã¯ãã¹ãŠ3ã§ãã
2. Why they need this feature?
ãã©ã€ããŒããŠãŒã¶ãŒãšããŠïŒ
githubãgitlabãããã³ãã©ããå¥ã®å Žæãã§ããŒã¿ããã¹ããããã©ããã®éžæã¯é倧ãªãã®ã§ãã
ç§ãgithub / gitlabãéžæããå Žåãç§ã¯ãã©ãããã©ãŒã ãšããŠã®åœŒãã®æ±ºå®ã«ç¿»åŒãããç§ã®ããŒã¿ãå¶åŸ¡ããããšã¯ã§ããŸããã
ä»ã®ãã®ïŒããšãã°ãèªåã®giteaã€ã³ã¹ã¿ã³ã¹ïŒãéžæããå Žåããããžã§ã¯ããèŠã€ããã®ã¯å°é£ã§ã[1]ãæçš¿ã«ã¯ãèªåã®ã¢ã«ãŠã³ããæã£ãŠããïŒã€ãŸããä»ã¯Webãµã€ãã®ãã¹ãã«ãªã£ãŠããŸããïŒããã¯è¯ããããŸããïŒããã¡ãŒã«ãéä¿¡ããå¿
èŠããããŸããã«ãŒãïŒããã¯å¶éçã§ããã誰ãããã®ã¯ãŒã¯ãããŒã奜ãããã§ã¯ãããŸããïŒã
ãã§ãã¬ãŒã·ã§ã³ã䜿çšãããšïŒå¿
ãããåœé ãããŠãããšã¯éããŸããããçæ³çã«ã¯ããŸããŸãªãµãŒãã¹éã§çžäºéçšå¯èœã§ãïŒãäž¡æ¹ã®é·æã掻çšã§ããŸããèªåã®ã¢ã«ãŠã³ãã䜿çšããŠä»»æã®ã€ã³ã¹ã¿ã³ã¹ããè²¢ç®ããããŒã«ã«ã§ãã¹ããããŠãããããžã§ã¯ããèŠã€ããããšãã§ããŸããããŒã¿ãšãã©ãããã©ãŒã ã管çãç¶ããŸãã
äŒæ¥ãã¹ããšããŠïŒ
ãã§ã«è¿°ã¹ãããã«ãããŸããŸãªçç±ãããè€æ°ã®giteaã€ã³ã¹ã¿ã³ã¹ããããŸãã
ãã¯ã€ããªã¹ããã§ãã¬ãŒã·ã§ã³ïŒã€ãŸãããã§ãã¬ãŒã·ã§ã³ãç¹å®ã®ä»ã®ãµãŒããŒã«å¯ŸããŠã®ã¿æå¹ã«ãªã£ãŠããå ŽåïŒã«é¢å¿ããããå
éšããŒããšä»»æã®ãœãããŠã§ã¢ããŒãããŒã®ããŒããšã®éã®äº€æã容æã«ããŸããã©ã®ãããªå Žåã§ããå¿
ãããå
éšã¢ã¯ã»ã¹ãèš±å¯ããå¿
èŠã¯ãããŸããã
ãŠã§ããµã€ãã®ãã¹ããšããŠïŒ
ãã©ã€ããŒããŠãŒã¶ãŒã®éšåãããã¹ãŠãåããŸã-ããã¯çŸåšãèŠèŸŒã¿ãŠãŒã¶ãŒãžã®å£²ã蟌ã¿ã§ãã
ããªãã¯ãããªãã®å¯äžã®è°è«ãšããŠãçŽç²ã«ããŸããXã¯æªã§ãããç§ã¯ããã§ã¯ãªããã«é Œãå¿
èŠã¯
ããã«ãããªãã®ãµãŒãã¹ã«ç§»è¡ãã人ã
ã®ã³ã¹ãã¯ã¯ããã«å°ãããªããŸãïŒç¡èŠã§ããªãå ŽåïŒã
3. How they want to use this feature?
èŠçŽãšããŠ/ç¹°ãè¿ããŸãïŒ
ãã©ã€ããŒããŠãŒã¶ãŒãšããŠïŒãããŠäºå®äžããã ãã®ãŠãŒã¶ãŒãæã€ããšã«ãããŠã§ããµã€ããã¹ãïŒïŒ
æ³äººãŠãŒã¶ãŒãšããŠïŒ
1. Who wants this feature? Personal gitea user / Companies with private gitea / Git hosting website via gitea or others?
ç§ã®å人çãªgiteaãšç§ãã¡ãä»äºã§äœ¿çšãããã®ã®äž¡æ¹ã®ããã«ç§ã¯ããããŸãã
2. Why they need this feature?
ä»ã®åœé ãããã€ã³ã¹ã¿ã³ã¹ã®ãããžã§ã¯ãã§å ±åäœæ¥ããããã ãã¹ãŠã®ã·ã¹ãã ã§ãŠãŒã¶ãŒã¢ã«ãŠã³ããäœæããå¿ èŠã¯ãããŸããã ç§ã®ãã©ã€ããŒãã€ã³ã¹ã¿ã³ã¹ã®å Žåãã©ã³ãã ãªäººã«ã¢ã¯ã»ã¹ãèš±å¯ããããããŸããã ãããŠãäŒç€Ÿã®ã€ã³ã¹ã¿ã³ã¹ã®å Žåãæããã«éåŸæ¥å¡ã¯ã¢ã¯ã»ã¹ã§ããŸããã
3. How they want to use this feature?
ç§ã¯ããã䜿çšããŠããªãŒãã³ãœãŒã¹ãšãããã©ã€ãšã¿ãªã®äž¡æ¹ã®ãããžã§ã¯ãã§ã³ã©ãã¬ãŒã·ã§ã³ããŸãã
- ãã®æ©èœãå¿ èŠãªã®ã¯èª°ã§ããïŒ å人ã®giteaãŠãŒã¶ãŒ/ãã©ã€ããŒãgiteaã䜿çšããŠããäŒç€Ÿ/ giteaãŸãã¯ä»ã®äººãä»ããGitãã¹ãã£ã³ã°Webãµã€ãïŒ
ééããªãå人ãŠãŒã¶ãŒã
- ãªã圌ãã¯ãã®æ©èœãå¿ èŠãšããŸããïŒ
ãªãŒãã³ãœãŒã¹ã¯ã³ã©ãã¬ãŒã·ã§ã³ããã¹ãŠã§ãã GitHubã¯ãã³ãŒããžã®åãçµã¿ã瀟äŒçãªãã®ã«ããåé¡ã®å ±åããããžã§ã¯ããžã®è²¢ç®ãç°¡åã«ããããšã§ããªãŒãã³ãœãŒã¹ãäž»æµã«ããŸããã GitHubã眮ãããŠããã¹ããŒã¹ãåæ£åããããšã¯è¯ãããšã§ãããåé¡ãããããç°¡åã«éä¿¡ã§ãããšããç¹ã§ã¯ãããªãåŸéããŠããŸãã
- 圌ãã¯ãã®æ©èœãã©ã®ããã«äœ¿çšãããã§ããïŒ
ãã§ãã¬ãŒã·ã§ã³ã¯äžèšã®åé¡ã解決ããŸãããŠãŒã¶ãŒãã©ã®ã€ã³ã¹ã¿ã³ã¹ãŸãã¯ãã©ãããã©ãŒã ã䜿çšããŠãããã¯é¢ä¿ãªãããããŠãŒã¶ãŒã¯ãªã¢ãŒããããžã§ã¯ãããã«ããç¬èªã®ããŒã«ã«ã¢ã«ãŠã³ãã䜿çšããŠãç¬èªã®ã€ã³ã¹ã¿ã³ã¹ãããããžã§ã¯ãã«è²¢ç®ã§ããŸãã
ã©ãããããããGitHubã¯ããã«æ°ããã³ã¡ã³ãã«é¢ããéç¥ã¡ãŒã«ãéä¿¡ããŸããã§ãããç§ã¯ããããå®å šã«èŠéããŸããã
ãšã«ãããç§ã¯ããã¯ã°ã©ãŠã³ãã§éãã§ããŸãããä»ã¯xormãšç±å¿ãªèªã¿èŸŒã¿ã«èŠåŽããŠããŸãã
ç§ãæã£ãŠããŸãïŒ
type Identity struct {
ID int64 `xorm:"pk autoincr"`
UserName string
DisplayName string
}
type User struct {
ID int64 `xorm:"pk autoincr"`
Slug string // LowerName
IdentityId int64 `xorm:"NOT NULL DEFAULT 0"`
Identity Identity `xorm:"-"`
}
ã©ã®ããã«äœãã®ã§ããe.Get(&User{Slug: slug})
èªåããŒãïŒïŒïŒ Identity
ã§äžãIdentityId
ïŒ
ç§ã¯ãããããŸããããšã¯æããªãã xormã¯ãã®éããã§ããªããšæããŸããã€ãŸãã Identity
UserID
åãããå Žåãxormã¯User
Identities
ã¹ã©ã€ã¹ãåããããšãã§ããŸãã
xormãgormãšååã«çããå Žåã¯ããããå®çŸããããã«IdentitiesåãããªããŒãã§ããã¯ãã§ãã éåžžã®SQLã§ã¯JOINã«ãªãã®ã§ã httpïŒ//gobook.io/read/gitea.com/xorm/manual-en-US/chapter-05/5.join.htmlã圹ã«ç«ã¡ãŸãã
ãµã³ãã«ã®ãããªãã®
engine.Table("user").Alias("u").
Join("INNER", []string{"group", "g"}, "g.id = u.group_id").
Join("INNER", "type", "type.id = u.type_id").
Where("u.name like ?", "%"+name+"%").Find(&users, &User{Name:name})
ããã¥ã¡ã³ãã«åŸã£ãŠããªãã¯ãè¡ãå¿ èŠããããŸãã
ããŒããã¢ã€ãã³ãã£ãã£ã®ãªã¹ããæã£ãŠããç§ã®åé¡ã®ããã«å©ãã«ã¯ãªããŸããã
æ®å¿µãªãããJoin-Approachãæ©èœããŸããã
ã³ãŒãããŒã¹ãããå°ã調ã¹ãŠã¿ããšã Repository
ã«Owner *User
ãããã GetOwner
é¢æ°ã䜿çšããŠæåã§ããŒããããŠããããã«èŠããŸããåããã¿ãŒã³ãã³ãŒãã«é©çšããŸãããä»ã :)
ããã§ãããŒã«ã«ãªããžããªãã¯ãªãŒã³ã¢ããããããŒã«ã«ãŠãŒã¶ãŒãããã¡ã€ã«ã衚瀺ããããã«æ©èœãããŠãŒã¶ãŒ/ IDåå²ã®ãã©ããããŒãžã§ã³ãã³ãããããŠããã·ã¥ããŸããïŒäŸïŒlocalhostïŒ8080 / user1ïŒã ïŒïŒhttps://github.com/criztovyl/gitea/commit/d0f24f7919d15ee481f5eae7ec6131ff369eaa66ãåç
§ããŠãã ãã
ä»ã®ãšãããããã¯ãŠãŒã¶ãŒã«å¯ŸããŠã®ã¿æ©èœããçµç¹ã¯ãŸã æ©èœããŠããŸããã
ããã»ã©å€ãã¯ãããŸããããäœãã§ãã :)
çµç¹ãæã£ãŠãããã¹ãŠã®èãã¹ã¿ãã¢ãŠãããããšã§ãçµç¹ã®ãããã¡ã€ã«ããŒãžãæ©èœããããã«ãªããŸããã https://github.com/criztovyl/gitea/compare/d0f24f7...3901206bcãåç §ããŠ
ç§ã®ã³ãŒãã¯ããªãæŸåçã§ãããæçµçãªãã®ã§ã¯ãããŸããã :)
ãŠãŒã¶ãŒããŒãã«ã«is_local
ãšremote_url
2ã€ã®åãè¿œå ããŠã¿ãŸãããïŒããããdomain
ããããŸããããã¹ãŠã®giteaã€ã³ã¹ã¿ã³ã¹ãç¹å®ã®ãã¡ã€ã³ã®ã¡ã€ã³ãã©ã«ããŒã§ãã¹ããããŠããããã§ã¯ãããŸããã romain_url
ïŒã§è¡ããŸãããïŒ ããããã°ãè¿œå ã®ããŒãã«ãçµåã¯å¿
èŠãããŸããã
誰ãããããææ¡ããã®ã¯åããŠã§ã¯ãããŸãããç§ãããã«ã€ããŠèããŸããã
ããããããã«ããããŠãŒã¶ãŒåã®ã¿ã§èª€ã£ãŠãŠãŒã¶ãŒãæ¯èŒããå¯èœæ§ããããŸããããã¯ãïŒãã®ç¹å®ã®ã±ãŒã¹ã§ã¯ïŒ3ã€ãã¹ãŠã®is_local
ã remote_url
ãããã³username
æ¯èŒããå¿
èŠãããããç¡å¹ã§ãã remote_url = ""
is_local
æå³ããå Žåã remote_url = ""
remote_url
ãšusername
æ¯èŒããã ãã«æé©åã§ããŸãïŒã
ãã1ã€ã®æžå¿µã¯ãusersããŒãã«ãå¢ããããšã§ããããšãã°ã lower_name
ã€ã³ããã¯ã¹ã¯ã remote_url
ãšlower_name
çµã¿åãããã€ã³ããã¯ã¹ã§ããå¿
èŠããããŸãã ïŒäžæ¹ãããŒã«ã«ãŠãŒã¶ãŒå°çšã«lower_name
èšå®ããããšãã§ããŸã...ããŒããïŒ
å®è£
ãããã¯ãªãŒã³ã ãšæãã®ã§ãauthn / identity-splitã奜ã¿ãŸãã ïŒIDã¯æ°ããæŠå¿µã§ããããããŠãŒã¶ãŒåã ããæ¯èŒããã ãã§ã¯ãããŸãããïŒ
ããããåå²ã®å°å
¥ãããã«è€éã§ãããããããããã«ãªã£ãã®ã§ãããäžåºŠæ±ºå¿ããå¿
èŠããããšæããŸãã :)
ç§ã¯æã
å°ããã€ãŒãã§ãã ^^
@criztovyl remote_url
ãŸãã¯domain (sub domain)
ãå€æŽãããå Žåããããå€æŽãããå¯èœæ§ããããŸã
ãåç¥ã®ããã«ãååãä»ããã®ã¯é£ããã§ã
username
ãšemail
䜿çšããµããŒãããŸããïŒ1. Who wants this feature? Personal gitea user / Companies with private gitea / Git hosting website via gitea or others?
誰ãããäŸãã°ã人皮差å¥ã«å察- 2019ãgithubã®ãããããã±ãããšgitlabã®ã§ç¥èŠå°ççäœçœ®ã«åºã¥ããŠãŠãŒã¶ãé®æããã- https://archive.today/U1R2L ã BLMãã¢ã®å·šå€§ãªæ³¢ã§ããœãããŠã§ã¢ã³ãã¥ããã£ã§äººçš®å·®å¥ããµããŒãããããšã¯æŽå²ã®äžã§è¯ãç¬éã§ã¯ãããŸããã https://codeberg.orgã§giteaã®ãŠãŒã¶ãŒãšããŠãç§ã¯èªåã®ååã§è©±ããŠããã ãã§ãã ããã¯https://codeberg.org/Codeberg/Community/issues/142ãšããŠæçš¿ãããŠã
2. Why they need this feature?
䟿å©ãã®ïŒKeye 2009ïŒ ïŒWu 2018ïŒ ã github / bitbucket / gitlabã®ãªã³ã©ã€ã³ãœãŒã·ã£ã«ãããã¯ãŒã¯æ©èœã¯éåžžã«åŒ·åã§ãã ã@ããšæ°æåãå ¥åãããšãããªãŒãœãããŠã§ã¢ã³ãã¥ããã£ã®å€§éšåã®äžãããå¿ èŠãªäººã®ãŠãŒã¶ãŒIDã®å ¥åãæ±ããããå¯èœæ§ããããŸãã ããã¯å¹ççã§å ¬éãããŠããïŒããã©ã«ãïŒãpingãå®è¡ãã人ã¯ãé»åã¡ãŒã«ããã¯ã¹ãã¯ãªãŒã³ã¢ããããªããŠããåé¡ã«å¿çãããç¡èŠãããã§ããŸãã
ãã ãã httpsïŒ//codeberg.orgããã³ãã®ä»ã®äººçš®å·®å¥çã§ãªãgitãªããžããªãµãŒããŒã«ã¯ãActivityPubã¿ã€ãã®ãã§ãã¬ãŒã·ã§ã³ããŸã ãããŸããã ããããgithubã®ãŠãŒã¶ãŒãã³ãã¥ããã£ããŒã¹ã®ãµãŒããŒãžã®ç§»è¡ãæããšã©ãŸãããçç±ã®1ã€ã§ããã䟿å©ãã®å°å¶åäž»ãã¯ãã¯ãŒã«ãã¯ã€ãã³ãã¥ããã£ã®ç°¡åãªãœãŒã·ã£ã«æ¥ç¶ãå°ããªã³ãã¥ããã£ãµãŒããŒã«ã¯ååšããªãããšã§ãã
èšãæããã°ããã®æ©èœã¯ãäžå åãããç§å¯äž»çŸ©ã®äººçš®å·®å¥äž»çŸ©è ïŒ2019/2020çŸåšãäžèšãåç §ïŒã®äŒæ¥ãµãŒããŒããç¬ç«ãããµãŒããŒéã§åŠè¡çãªãšãã§ã¡ã©ãä¿åããããã«å¿ èŠã§ãã
3. How they want to use this feature?
ïŒäž»ã«èªç±ãœãããŠã§ã¢ã®ïŒãœãããŠã§ã¢éçºè ã®ãªãŒãã³ã³ãã¥ããã£éã®ãœãããŠã§ã¢éçºã«ç¹ã«çŠç¹ãåœãŠããœãŒã·ã£ã«ãããã¯ãŒãã³ã°ã®å Žåã
äžèšã®è³ªåã«å¯Ÿãã倧éã®ãã£ãŒãããã¯ãåãåã£ãããããã®ã¹ã¬ãããããã¯ãããšãããã«åãçµã人ã¯èª°ã§ãã解æã§ãããã®æ å ±ãå ¥æã§ããŸãã
æãåèã«ãªãã³ã¡ã³ã
ãã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒã¯ãªããžããªãæã€ããšãã§ããŸããããŠãŒã¶ãŒã®ã€ã³ã¹ã¿ã³ã¹ã§ãã¹ããããŸãã
ã€ãŸãããã§ãã¬ãŒã·ã§ã³ãŠãŒã¶ãŒã ãã§ãªãããã§ãã¬ãŒã·ã§ã³ãããžã§ã¯ãïŒãªããžããªãåé¡ãPRãªã©ïŒããããŸãã ããããããã¯ãã®åé¡ã®ç¯å²å€ã§ãã
ç§ã®ããã«ãããªãŒããã³ãªãŒãã³ãœãŒã¹ãœãããŠã§ã¢ã®éçºãäžå åãããäžå åãããéããªãŒãµãŒãã¹ã«éäžãããšããèãã奜ãŸãªã人ã ã ïŒGitHubïŒ
GiteaãGitLabã®ãããªç¡æã®ä»£æ¿æ段ããããŸããããããã®ã€ã³ã¹ã¿ã³ã¹ã¯äºãã«åé¢ãããŠããããã䜿çšäžã®æ¬ ç¹ããããŸãã ïŒãããŠããããã¯ãŒã¯å¹æã®åœ±é¿ãåããŸããïŒ
ããšãã°DebianGitLabã§ã¢ã«ãŠã³ããäœæããæ欲ããã£ããšããŠããããã¯ãã®ã€ã³ã¹ã¿ã³ã¹ã«éå®ãããŸãã
ææªã®å Žåãåãããžã§ã¯ãã«ã¯ç¬èªã®ã€ã³ã¹ã¿ã³ã¹ãããã確èªããã¢ã«ãŠã³ããéåžžã«å€ããããŸãã ïŒã¯ããé»åã¡ãŒã«éç¥ããããŸãããWebã§äœããå¿ èŠã§ããããã§ãªããã°ãGit + MLã§ãååã§ããïŒ
ãã§ãã¬ãŒã·ã§ã³ã³ã©ãã¬ãŒã·ã§ã³ã®å ŽåãGitHubã®ãããã¯ãŒã¯å¹æãå£ããŸãã
ããŒã ã€ã³ã¹ã¿ã³ã¹ã«1ã€ã®ã¢ã«ãŠã³ããããããã§ãã¬ãŒã·ã§ã³ããµããŒãããä»»æã®ãããžã§ã¯ãïŒ ForgeFedãªã©ïŒãšå ±åäœæ¥ã§ããŸãã