From 211f0c32d21f6afe708c4fb37615ec23da2d2d7b Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Wed, 29 Dec 2021 23:57:30 +0100 Subject: [PATCH 1/6] Removed unused endpoint. (#18127) --- routers/web/user/home.go | 14 -------------- routers/web/web.go | 1 - 2 files changed, 15 deletions(-) diff --git a/routers/web/user/home.go b/routers/web/user/home.go index 8bbc6dd0c369..367cf5ca0849 100644 --- a/routers/web/user/home.go +++ b/routers/web/user/home.go @@ -769,17 +769,3 @@ func ShowGPGKeys(ctx *context.Context, uid int64) { writer.Close() ctx.PlainTextBytes(http.StatusOK, buf.Bytes()) } - -// Email2User show user page via email -func Email2User(ctx *context.Context) { - u, err := user_model.GetUserByEmail(ctx.FormString("email")) - if err != nil { - if user_model.IsErrUserNotExist(err) { - ctx.NotFound("GetUserByEmail", err) - } else { - ctx.ServerError("GetUserByEmail", err) - } - return - } - ctx.Redirect(u.HomeLink()) -} diff --git a/routers/web/web.go b/routers/web/web.go index 23daeb601f94..486255096dc0 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -376,7 +376,6 @@ func RegisterRoutes(m *web.Route) { m.Post("/activate", user.ActivatePost, reqSignIn) m.Any("/activate_email", user.ActivateEmail) m.Get("/avatar/{username}/{size}", user.AvatarByUserName) - m.Get("/email2user", user.Email2User) m.Get("/recover_account", user.ResetPasswd) m.Post("/recover_account", user.ResetPasswdPost) m.Get("/forgot_password", user.ForgotPasswd) From ccb79785384254881c152b3b4ef00c3c262937d6 Mon Sep 17 00:00:00 2001 From: GiteaBot Date: Thu, 30 Dec 2021 00:28:34 +0000 Subject: [PATCH 2/6] [skip ci] Updated translations via Crowdin --- options/locale/locale_cs-CZ.ini | 3 --- options/locale/locale_de-DE.ini | 3 --- options/locale/locale_el-GR.ini | 3 --- options/locale/locale_es-ES.ini | 3 --- options/locale/locale_fa-IR.ini | 2 -- options/locale/locale_fi-FI.ini | 1 - options/locale/locale_fr-FR.ini | 3 --- options/locale/locale_hu-HU.ini | 2 -- options/locale/locale_it-IT.ini | 2 -- options/locale/locale_ja-JP.ini | 3 --- options/locale/locale_ko-KR.ini | 1 - options/locale/locale_lv-LV.ini | 3 --- options/locale/locale_nl-NL.ini | 2 -- options/locale/locale_pl-PL.ini | 2 -- options/locale/locale_pt-BR.ini | 3 --- options/locale/locale_pt-PT.ini | 4 +++- options/locale/locale_ru-RU.ini | 3 --- options/locale/locale_sv-SE.ini | 2 -- options/locale/locale_tr-TR.ini | 3 --- options/locale/locale_uk-UA.ini | 2 -- options/locale/locale_zh-CN.ini | 3 --- options/locale/locale_zh-TW.ini | 8 +++++--- 22 files changed, 8 insertions(+), 53 deletions(-) diff --git a/options/locale/locale_cs-CZ.ini b/options/locale/locale_cs-CZ.ini index 296fb3c9bd7e..ee9b8c8ec15e 100644 --- a/options/locale/locale_cs-CZ.ini +++ b/options/locale/locale_cs-CZ.ini @@ -99,10 +99,7 @@ error404=Stránka, kterou se snažíte zobrazit, buď neexistujeGitHub a v případě potřeby otevřete nový problém. missing_csrf=Špatný požadavek: Neexistuje CSRF token -invalid_csrf=Špatný požadavek: Neplatný CSRF token [startpage] app_desc=Snadno přístupný vlastní Git diff --git a/options/locale/locale_de-DE.ini b/options/locale/locale_de-DE.ini index f54270c552e0..0f71a2545f7d 100644 --- a/options/locale/locale_de-DE.ini +++ b/options/locale/locale_de-DE.ini @@ -104,10 +104,7 @@ error404=Die Seite, die du gerade versuchst aufzurufen, existiert entwed never=Niemals [error] -occurred=Ein Fehler ist aufgetreten -report_message=Wenn du dir sicher bist, dass dies ein Gitea-Fehler ist, suche bitte auf GitHub nach diesem Fehler und erstelle gegebenenfalls einen neuen Bugreport. missing_csrf=Fehlerhafte Anfrage: Kein CSRF Token verfügbar -invalid_csrf=Fehlerhafte Anfrage: Ungültiger CSRF Token [startpage] app_desc=Ein einfacher, selbst gehosteter Git-Service diff --git a/options/locale/locale_el-GR.ini b/options/locale/locale_el-GR.ini index 51783cac13a9..2c210e1e72d6 100644 --- a/options/locale/locale_el-GR.ini +++ b/options/locale/locale_el-GR.ini @@ -104,10 +104,7 @@ error404=Η σελίδα που προσπαθείτε να φτάσετε εί never=Ποτέ [error] -occurred=Παρουσιάστηκε ένα σφάλμα -report_message=Αν είστε σίγουροι ότι πρόκειται για σφάλμα Gitea, παρακαλούμε αναζητήστε το ζήτημα στο GitHub και ανοίξτε νέο ζήτημα εάν είναι απαραίτητο. missing_csrf=Bad Request: δεν υπάρχει διακριτικό CSRF -invalid_csrf=Bad Request: Άκυρο διακριτικό CSRF [startpage] app_desc=Μια ανώδυνη, αυτο-φιλοξενούμενη υπηρεσία Git diff --git a/options/locale/locale_es-ES.ini b/options/locale/locale_es-ES.ini index 48ad3f61d6df..0d2608e761fd 100644 --- a/options/locale/locale_es-ES.ini +++ b/options/locale/locale_es-ES.ini @@ -104,10 +104,7 @@ error404=La página a la que está intentando acceder o no existeGitHub y abre un nuevo problema si es necesario. missing_csrf=Solicitud incorrecta: sin token CSRF -invalid_csrf=Solicitud incorrecta: el token CSRF no es válido [startpage] app_desc=Un servicio de Git autoalojado y sin complicaciones diff --git a/options/locale/locale_fa-IR.ini b/options/locale/locale_fa-IR.ini index 04c16a012d57..b2ca58a6dad0 100644 --- a/options/locale/locale_fa-IR.ini +++ b/options/locale/locale_fa-IR.ini @@ -90,8 +90,6 @@ error404=صفحه موردنظر شما یا وجود نداردGitHub مشکل را جستجو کنید و در صورت نیاز، یک موضوع جدید باز کنید. [startpage] app_desc=یک سرویس گیت بی‌درد سر و راحت diff --git a/options/locale/locale_fi-FI.ini b/options/locale/locale_fi-FI.ini index 2300488113c6..2ece74d6b3e3 100644 --- a/options/locale/locale_fi-FI.ini +++ b/options/locale/locale_fi-FI.ini @@ -86,7 +86,6 @@ error404=Sivu, jota yrität nähdä, joko ei löydy tai n'existe pas ou < never=Jamais [error] -occurred=Une erreur est survenue -report_message=Si vous êtes sûr qu'il s'agit d'un bug de Gitea, cherchez s’il existe un ticket sur GitHub et ouvrez-en un nouveau si nécessaire. missing_csrf=Requête incorrecte: aucun jeton CSRF présent -invalid_csrf=Requête incorrecte: jeton CSRF invalide [startpage] app_desc=Un service Git auto-hébergé sans prise de tête diff --git a/options/locale/locale_hu-HU.ini b/options/locale/locale_hu-HU.ini index 10a796a71d29..505c13ea4a6d 100644 --- a/options/locale/locale_hu-HU.ini +++ b/options/locale/locale_hu-HU.ini @@ -93,8 +93,6 @@ error404=Az elérni kívánt oldal vagy nem létezik, vagy GitHub-on és hozzon létre új hibajelentést, ha szükséges. [startpage] app_desc=Fájdalommentes, saját gépre telepíthető Git szolgáltatás diff --git a/options/locale/locale_it-IT.ini b/options/locale/locale_it-IT.ini index d9ffc44e4b12..9a7d8c6c6fe9 100644 --- a/options/locale/locale_it-IT.ini +++ b/options/locale/locale_it-IT.ini @@ -96,8 +96,6 @@ error404=La pagina che stai cercando di raggiungere non esiste [error] -occurred=Si è verificato un errore -report_message=Se sei sicuro che sia un bug di Gitea, cerca il problema su GitHub e apri una nuova segnalazione se necessario. [startpage] app_desc=Un servizio auto-ospitato per Git pronto all'uso diff --git a/options/locale/locale_ja-JP.ini b/options/locale/locale_ja-JP.ini index 17d7993feea3..f7b92ffcbbc8 100644 --- a/options/locale/locale_ja-JP.ini +++ b/options/locale/locale_ja-JP.ini @@ -104,10 +104,7 @@ error404=アクセスしようとしたページは存在しないGitHubでIssueを検索して、見つからなければ新しいIssueを作成してください。 missing_csrf=不正なリクエスト: CSRFトークンが不明です -invalid_csrf=不正なリクエスト: CSRFトークンが無効です [startpage] app_desc=自分で立てる、超簡単 Git サービス diff --git a/options/locale/locale_ko-KR.ini b/options/locale/locale_ko-KR.ini index 8ed83135629c..45d6dfdfb46b 100644 --- a/options/locale/locale_ko-KR.ini +++ b/options/locale/locale_ko-KR.ini @@ -87,7 +87,6 @@ loading=불러오는 중... [error] -occurred=오류가 발생했습니다 [startpage] app_desc=편리한 설치형 Git 서비스 diff --git a/options/locale/locale_lv-LV.ini b/options/locale/locale_lv-LV.ini index 86d808771b3b..5e26da7d9b9f 100644 --- a/options/locale/locale_lv-LV.ini +++ b/options/locale/locale_lv-LV.ini @@ -99,10 +99,7 @@ error404=Lapa, ko vēlaties atvērt, neeksistē vai arī Gitea problēmās pārliecinieties, ka lietojat jaunāko Gitea versiju un par šādu kļūdu jau nav ziņots. missing_csrf=Kļūdains pieprasījums: netika saņemts drošības talons -invalid_csrf=Kļūdains pieprasījums: iesūtīts kļūdains drošības talons [startpage] app_desc=Viegli uzstādāms Git serviss diff --git a/options/locale/locale_nl-NL.ini b/options/locale/locale_nl-NL.ini index 41f4c6b26bc8..04efb7a5e6d1 100644 --- a/options/locale/locale_nl-NL.ini +++ b/options/locale/locale_nl-NL.ini @@ -103,8 +103,6 @@ error404=De pagina die u probeert te bereiken bestaat niet of < never=Nooit [error] -occurred=Er is een fout opgetreden -report_message=Als je zeker weet dat dit een Gitea bug is, zoek dan naar een issue op GitHub en open zo nodig een nieuw issue. missing_csrf=Foutief verzoek: geen CSRF-token aanwezig [startpage] diff --git a/options/locale/locale_pl-PL.ini b/options/locale/locale_pl-PL.ini index 995a49be1d5f..97124968d791 100644 --- a/options/locale/locale_pl-PL.ini +++ b/options/locale/locale_pl-PL.ini @@ -90,8 +90,6 @@ error404=Strona, do której próbujesz dotrzeć nie istnieje lu [error] -occurred=Wystąpił błąd -report_message=Jeśli jesteś pewien, że jest to błąd w Gitea, poszukaj problemu na GitHub i w razie potrzeby otwórz nowe zgłoszenie. [startpage] app_desc=Bezbolesna usługa Git na własnym serwerze diff --git a/options/locale/locale_pt-BR.ini b/options/locale/locale_pt-BR.ini index da532dabc3d4..da16b8a6990f 100644 --- a/options/locale/locale_pt-BR.ini +++ b/options/locale/locale_pt-BR.ini @@ -104,10 +104,7 @@ error404=A página que você está tentando acessar não existe never=Nunca [error] -occurred=Ocorreu um erro -report_message=Se você tem certeza de que se trata de um bug do Gitea, por favor, procure a issue no GitHub e abra novas issues se necessário. missing_csrf=Pedido inválido: não tem token CSRF presente -invalid_csrf=Pedido inválido: token CSRF inválido [startpage] app_desc=Um serviço de hospedagem Git amigável diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini index faefe77eaec7..62a908182109 100644 --- a/options/locale/locale_pt-PT.ini +++ b/options/locale/locale_pt-PT.ini @@ -105,9 +105,11 @@ never=Nunca [error] occurred=Ocorreu um erro -report_message=Se tiver certeza de que se trata de um erro do Gitea, por favor, procure a questão no GitHub e abra uma nova questão, se necessário. +report_message=Se tiver certeza de que se trata de um erro do Gitea, procure, por favor, questões relacionadas no GitHub ou abra uma nova questão, se necessário. missing_csrf=Pedido inválido: não há código CSRF invalid_csrf=Pedido inválido: código CSRF inválido +not_found=Não foi possível encontrar o destino. +network_error=Erro de rede [startpage] app_desc=Um serviço Git auto-hospedado e fácil de usar diff --git a/options/locale/locale_ru-RU.ini b/options/locale/locale_ru-RU.ini index a9af5ae46364..91dbc517d69a 100644 --- a/options/locale/locale_ru-RU.ini +++ b/options/locale/locale_ru-RU.ini @@ -104,10 +104,7 @@ error404=Страница, которую вы пытаетесь открыть never=Никогда [error] -occurred=Произошла ошибка -report_message=Если вы уверены, что это ошибка Gitea, пожалуйста, проверьте наличие существующей проблемы на GitHub и откройте новую при необходимости. missing_csrf=Некорректный запрос: CSRF токен отсутствует -invalid_csrf=Неверный запрос: неверный CSRF токен [startpage] app_desc=Удобный сервис собственного хостинга репозиториев Git diff --git a/options/locale/locale_sv-SE.ini b/options/locale/locale_sv-SE.ini index 31158791cf9c..3439ff208310 100644 --- a/options/locale/locale_sv-SE.ini +++ b/options/locale/locale_sv-SE.ini @@ -92,8 +92,6 @@ error404=Sidan du försöker nå finns inte eller så h [error] -occurred=Ett fel har inträffat -report_message=Om du är säker på att detta är en Gitea bugg, vänligen sök efter ärende på GitHub och öppna nytt ärende om det behövs. [startpage] app_desc=En smidig, självhostad Git-tjänst diff --git a/options/locale/locale_tr-TR.ini b/options/locale/locale_tr-TR.ini index 0947e9426633..b63727fc3a0c 100644 --- a/options/locale/locale_tr-TR.ini +++ b/options/locale/locale_tr-TR.ini @@ -104,10 +104,7 @@ error404=Ulaşmaya çalıştığınız sayfa mevcut değil veya never=Asla [error] -occurred=Bir hata oluştu -report_message=Bunun bir Gitea hatası olduğundan eminseniz, lütfen GitHub 'da sorunu arayın ve gerekirse yeni bir sorun açın. missing_csrf=Hatalı İstek: CSRF anahtarı yok -invalid_csrf=Hatalı İstek: Geçersiz CSRF anahtarı [startpage] app_desc=Zahmetsiz, kendi sunucunuzda barındırabileceğiniz Git servisi diff --git a/options/locale/locale_uk-UA.ini b/options/locale/locale_uk-UA.ini index 4e6316b00037..11b23055de43 100644 --- a/options/locale/locale_uk-UA.ini +++ b/options/locale/locale_uk-UA.ini @@ -99,8 +99,6 @@ error404=Сторінка, до якої ви намагаєтеся зверн never=Ніколи [error] -occurred=Сталася помилка -report_message=Якщо ви впевнені, що це помилка Gitea, будь ласка, спробуйте відшукати відповідну проблему на GitHub та за відсутності створіть нову. [startpage] app_desc=Зручний власний сервіс хостингу репозиторіїв Git diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini index 13eb2d444cde..ff25560f9053 100644 --- a/options/locale/locale_zh-CN.ini +++ b/options/locale/locale_zh-CN.ini @@ -104,10 +104,7 @@ error404=您正尝试访问的页面 不存在您 never=从不 [error] -occurred=发生错误 -report_message=如果您确定这是一个 Gitea bug,请在 GitHub 上搜索问题,并在必要时打开新问题。 missing_csrf=错误的请求:没有 CSRF 令牌 -invalid_csrf=错误的请求:无效的 CSRF 令牌 [startpage] app_desc=一款极易搭建的自助 Git 服务 diff --git a/options/locale/locale_zh-TW.ini b/options/locale/locale_zh-TW.ini index 9b77b5395014..8f49ab4e75b6 100644 --- a/options/locale/locale_zh-TW.ini +++ b/options/locale/locale_zh-TW.ini @@ -105,9 +105,11 @@ never=從來沒有 [error] occurred=發生錯誤 -report_message=如果你確定這是一個 Gitea 的 bug,請去 GitHub 搜尋相關的問題,如果有需要你也可以開一個新的問題 -missing_csrf=Bad Request: no CSRF token present -invalid_csrf=Bad Request: Invalid CSRF token +report_message=如果您確定這是一個 Gitea 的 bug,請到 GitHub 搜尋相關的問題,如果有需要您也可以建立新問題。 +missing_csrf=錯誤的請求:未提供 CSRF token +invalid_csrf=錯誤的請求:無效的 CSRF token +not_found=找不到目標。 +network_error=網路錯誤 [startpage] app_desc=一套極易架設的 Git 服務 From 658a636afe045d1ccf909ebf09ea6b1122e310f5 Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Thu, 30 Dec 2021 04:56:12 +0100 Subject: [PATCH 3/6] Removed unused method. (#18129) Co-authored-by: wxiaoguang --- routers/web/repo/projects.go | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/routers/web/repo/projects.go b/routers/web/repo/projects.go index 88f46aa70b7f..f6be8add0b04 100644 --- a/routers/web/repo/projects.go +++ b/routers/web/repo/projects.go @@ -653,39 +653,3 @@ func CreateProject(ctx *context.Context) { ctx.HTML(http.StatusOK, tplGenericProjectsNew) } - -// CreateProjectPost creates an individual and/or organization project -func CreateProjectPost(ctx *context.Context, form forms.UserCreateProjectForm) { - - user := checkContextUser(ctx, form.UID) - if ctx.Written() { - return - } - - ctx.Data["ContextUser"] = user - - if ctx.HasError() { - ctx.Data["CanWriteProjects"] = ctx.Repo.Permission.CanWrite(unit.TypeProjects) - ctx.HTML(http.StatusOK, tplGenericProjectsNew) - return - } - - var projectType = models.ProjectTypeIndividual - if user.IsOrganization() { - projectType = models.ProjectTypeOrganization - } - - if err := models.NewProject(&models.Project{ - Title: form.Title, - Description: form.Content, - CreatorID: user.ID, - BoardType: form.BoardType, - Type: projectType, - }); err != nil { - ctx.ServerError("NewProject", err) - return - } - - ctx.Flash.Success(ctx.Tr("repo.projects.create_success", form.Title)) - ctx.Redirect(setting.AppSubURL + "/") -} From e0b41f8c374181be7387a1399813e849ec4590b9 Mon Sep 17 00:00:00 2001 From: Tony <1462668901@qq.com> Date: Thu, 30 Dec 2021 12:28:56 +0800 Subject: [PATCH 4/6] docs: add various ways to install from package (#18120) zh-cn Co-authored-by: Lunny Xiao Co-authored-by: wxiaoguang --- .../doc/installation/from-package.zh-cn.md | 85 +++++++++++++++++-- 1 file changed, 78 insertions(+), 7 deletions(-) diff --git a/docs/content/doc/installation/from-package.zh-cn.md b/docs/content/doc/installation/from-package.zh-cn.md index dc5a283bbc90..7faf2a88b144 100644 --- a/docs/content/doc/installation/from-package.zh-cn.md +++ b/docs/content/doc/installation/from-package.zh-cn.md @@ -1,6 +1,6 @@ --- date: "2016-12-01T16:00:00+02:00" -title: "选择包安装" +title: "使用包管理器安装" slug: "install-from-package" weight: 10 toc: false @@ -8,30 +8,101 @@ draft: false menu: sidebar: parent: "installation" - name: "选择包安装" + name: "使用包管理器安装" weight: 20 identifier: "install-from-package" --- -# 使用包安装 +# 使用包管理器安装 -## Linux +**目录** -目前还没有对应的Linux安装包发布,如果我们发布了,我们将更新本页面。当前你可以查看 [从二进制安装]({{< relref "from-binary.zh-cn.md" >}})。 +{{< toc >}} + +## Alpine Linux + +Gitea 已经包含在 Alpine Linux 的[社区存储库](https://pkgs.alpinelinux.org/packages?name=gitea&branch=edge)中,版本与 Gitea 官方保持同步。 + +```sh +apk add gitea +``` + +## Arch Linux + +Gitea 已经在滚动发布发行版的官方[社区存储库](https://www.archlinux.org/packages/community/x86_64/gitea/)中,版本与 Gitea 官方保持同步。 + +```sh +pacman -S gitea +``` + +## Arch Linux ARM + +官方支持 [aarch64](https://archlinuxarm.org/packages/aarch64/gitea), [armv7h](https://archlinuxarm.org/packages/armv7h/gitea) 和 [armv6h](https://archlinuxarm.org/packages/armv6h/gitea) 架构。 + +```sh +pacman -S gitea +``` + +## Canonical Snap + +目前 Gitea 已在 Snap Store 中发布,名称为 [gitea](https://snapcraft.io/gitea)。 + +```sh +snap install gitea +``` + +## SUSE/openSUSE + +OpenSUSE 构建服务为 [openSUSE 和 SLE](https://software.opensuse.org/download/package?package=gitea&project=devel%3Atools%3Ascm) +提供包,你可以在开发软件配置管理存储库中找到它们。 ## Windows -目前还没有对应的Windows安装包发布,如果我们发布了,我们将更新本页面。我们计划使用 `MSI` 安装器或者 [Chocolatey](https://chocolatey.org/)来制作安装包。当前你可以查看 [从二进制安装]({{< relref "from-binary.zh-cn.md" >}})。 +目前你可以通过 [Chocolatey](https://chocolatey.org/) 来安装 [Gitea](https://chocolatey.org/packages/gitea)。 + +```sh +choco install gitea +``` + +你也可以 [从二进制安装]({{< relref "from-binary.zh-cn.md" >}}) 。 ## macOS -macOS 平台下当前我们仅支持通过 `brew` 来安装。如果您没有安装 [Homebrew](http://brew.sh/),你也可以查看 [从二进制安装]({{< relref "from-binary.zh-cn.md" >}})。在你安装了 `brew` 之后, 你可以执行以下命令: +macOS 平台下当前我们仅支持通过 `brew` 来安装。如果你没有安装 [Homebrew](http://brew.sh/),你也可以查看 [从二进制安装]({{< relref "from-binary.zh-cn.md" >}})。在你安装了 `brew` 之后, 你可以执行以下命令: ``` brew tap go-gitea/gitea brew install gitea ``` +## FreeBSD + +可以使用 Gitea 的 FreeBSD port `www/gitea`。 请安装预构建的二进制包: + +``` +pkg install gitea +``` + +对于最新版本,或使用自定义选项构建 port,请 +[从 port 安装](https://www.freebsd.org/doc/handbook/ports-using.html): + +``` +su - +cd /usr/ports/www/gitea +make install clean +``` + +该 port 使用标准的 FreeBSD 文件系统布局:配置文件在 `/usr/local/etc/gitea` 目录中, +模板、选项、插件和主题在 `/usr/local/share/gitea` 目录中,启动脚本在 `/usr/local/etc/rc.d/gitea` 目录中。 + +要使 Gitea 作为服务运行,请运行 `sysrc gitea_enable=YES` 并使用 `service gitea start` 命令启动它。 + +## 第三方 + +如果这里没有找到你喜欢的包管理器,可以使用 Gitea 第三方软件包。这里有一个完整的列表: [awesome-gitea](https://gitea.com/gitea/awesome-gitea/src/branch/master/README.md#user-content-packages)。 + +如果你知道其他 Gitea 第三方软件包,请发送 PR 来添加它。 + ## 需要帮助? 如果从本页中没有找到你需要的内容,请访问 [帮助页面]({{< relref "seek-help.zh-cn.md" >}}) From 626b10794fbc8b834883d96640767fa09b0a499d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Thu, 30 Dec 2021 13:03:40 +0800 Subject: [PATCH 5/6] Fix performance regression when user has many organization (#18125) --- models/repo.go | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/models/repo.go b/models/repo.go index 897ceeede979..1fc8bd207b52 100644 --- a/models/repo.go +++ b/models/repo.go @@ -294,13 +294,27 @@ func CanUserForkRepo(user *user_model.User, repo *repo_model.Repository) (bool, return false, nil } +// FindUserOrgForks returns the forked repositories for one user from a repository +func FindUserOrgForks(repoID, userID int64) ([]*repo_model.Repository, error) { + var cond builder.Cond = builder.And( + builder.Eq{"fork_id": repoID}, + builder.In("owner_id", + builder.Select("org_id"). + From("org_user"). + Where(builder.Eq{"uid": userID}), + ), + ) + + var repos []*repo_model.Repository + return repos, db.GetEngine(db.DefaultContext).Table("repository").Where(cond).Find(&repos) +} + // GetForksByUserAndOrgs return forked repos of the user and owned orgs func GetForksByUserAndOrgs(user *user_model.User, repo *repo_model.Repository) ([]*repo_model.Repository, error) { var repoList []*repo_model.Repository if user == nil { return repoList, nil } - var forkedRepo *repo_model.Repository forkedRepo, err := repo_model.GetUserFork(repo.ID, user.ID) if err != nil { return repoList, err @@ -308,19 +322,11 @@ func GetForksByUserAndOrgs(user *user_model.User, repo *repo_model.Repository) ( if forkedRepo != nil { repoList = append(repoList, forkedRepo) } - canCreateRepos, err := GetOrgsCanCreateRepoByUserID(user.ID) + orgForks, err := FindUserOrgForks(repo.ID, user.ID) if err != nil { - return repoList, err - } - for _, org := range canCreateRepos { - forkedRepo, err := repo_model.GetUserFork(repo.ID, org.ID) - if err != nil { - return repoList, err - } - if forkedRepo != nil { - repoList = append(repoList, forkedRepo) - } + return nil, err } + repoList = append(repoList, orgForks...) return repoList, nil } From 67d7ad681a1c66d2e08e50d16a6ea2507a0cb0ec Mon Sep 17 00:00:00 2001 From: KN4CK3R Date: Thu, 30 Dec 2021 07:44:42 +0100 Subject: [PATCH 6/6] Fix wrong redirect on org labels (#18128) --- routers/web/org/org_labels.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/org/org_labels.go b/routers/web/org/org_labels.go index 7a8aa184b2ba..9cc9a92507fb 100644 --- a/routers/web/org/org_labels.go +++ b/routers/web/org/org_labels.go @@ -96,7 +96,7 @@ func DeleteLabel(ctx *context.Context) { func InitializeLabels(ctx *context.Context) { form := web.GetForm(ctx).(*forms.InitializeLabelsForm) if ctx.HasError() { - ctx.Redirect(ctx.Repo.RepoLink + "/labels") + ctx.Redirect(ctx.Org.OrgLink + "/labels") return }