From 44cc684a506389d5b4c890014c75c5d04d74c52b Mon Sep 17 00:00:00 2001
From: Lunny Xiao <xiaolunwen@gmail.com>
Date: Thu, 3 Nov 2022 00:19:50 +0000
Subject: [PATCH 1/3] [skip ci] Updated translations via Crowdin

---
 options/locale/locale_cs-CZ.ini | 15 +++++++++++++++
 options/locale/locale_pt-PT.ini |  2 ++
 options/locale/locale_zh-CN.ini |  2 ++
 3 files changed, 19 insertions(+)

diff --git a/options/locale/locale_cs-CZ.ini b/options/locale/locale_cs-CZ.ini
index a89e441f75..709a71a13a 100644
--- a/options/locale/locale_cs-CZ.ini
+++ b/options/locale/locale_cs-CZ.ini
@@ -107,6 +107,8 @@ never=Nikdy
 rss_feed=RSS kanál
 
 [filter]
+string.asc=A – Z
+string.desc=Z – A
 
 [error]
 occurred=Došlo k chybě
@@ -236,6 +238,8 @@ no_reply_address=Skrytá e-mailová doména
 no_reply_address_helper=Název domény pro uživatele se skrytou e-mailovou adresou. Příklad: Pokud je název skryté e-mailové domény nastaven na „noreply.example.org“, uživatelské jméno „joe“ bude zaznamenáno v Gitu jako „joe@noreply.example.org“.
 password_algorithm=Hash algoritmus hesla
 password_algorithm_helper=Nastavte algoritmus hashování hesla. Algoritmy mají odlišné požadavky a sílu. `argon2` používá mnoho paměti a může být nevhodný pro malé systémy.
+enable_update_checker=Povolit kontrolu aktualizací
+enable_update_checker_helper=Kontroluje vydání nových verzí pravidelně připojením ke gitea.io.
 
 [home]
 uname_holder=Uživatelské jméno nebo e-mailová adresa
@@ -414,6 +418,10 @@ repo.transfer.body=Chcete-li ji přijmout nebo odmítnout, navštivte %s nebo ji
 repo.collaborator.added.subject=%s vás přidal do %s
 repo.collaborator.added.text=Byl jste přidán jako spolupracovník repozitáře:
 
+team_invite.subject=%[1]s vás pozval/a, abyste se připojili k organizaci %[2]s
+team_invite.text_1=%[1]s vás pozval/a do týmu %[2]s v organizaci %[3]s.
+team_invite.text_2=Pro připojení k týmu klikněte na následující odkaz:
+team_invite.text_3=Poznámka: Tato pozvánka byla určena pro %[1]s. Pokud jste neočekávali tuto pozvánku, můžete tento e-mail ignorovat.
 
 [modal]
 yes=Ano
@@ -490,6 +498,7 @@ user_not_exist=Tento uživatel neexistuje.
 team_not_exist=Tento tým neexistuje.
 last_org_owner=Nemůžete odstranit posledního uživatele z týmu „vlastníci“. Musí existovat alespoň jeden vlastník pro organizaci.
 cannot_add_org_to_team=Organizace nemůže být přidána jako člen týmu.
+duplicate_invite_to_team=Uživatel byl již pozván jako člen týmu.
 
 invalid_ssh_key=Nelze ověřit váš SSH klíč: %s
 invalid_gpg_key=Nelze ověřit váš GPG klíč: %s
@@ -742,6 +751,7 @@ create_oauth2_application_button=Vytvořit aplikaci
 create_oauth2_application_success=Úspěšně jste vytvořili novou OAuth2 aplikaci.
 update_oauth2_application_success=Úspěšně jste aktualizovali OAuth2 aplikaci.
 oauth2_application_name=Název aplikace
+oauth2_confidential_client=Důvěrný klient. Vyberte aplikace, které zachovávají důvěrnosti v utajení, jako jsou webové aplikace. Nevybírejte pro nativní aplikace včetně stolních a mobilních aplikací.
 oauth2_redirect_uri=URI přesměrování
 save_application=Uložit
 oauth2_client_id=ID klienta
@@ -2402,6 +2412,8 @@ teams.members=Členové týmu
 teams.update_settings=Upravit nastavení
 teams.delete_team=Smazat tým
 teams.add_team_member=Přidat člena týmu
+teams.invite_team_member=Pozvat do %s
+teams.invite_team_member.list=Čekající pozvánky
 teams.delete_team_title=Smazat tým
 teams.delete_team_desc=Smazání týmu zruší přístup jeho členům. Pokračovat?
 teams.delete_team_success=Tým byl odstraněn.
@@ -2426,6 +2438,9 @@ teams.all_repositories_helper=Tým má přístup ke všem repositářům. Výbě
 teams.all_repositories_read_permission_desc=Tomuto týmu je udělen přístup pro <strong>Čtení</strong> <strong>všech repozitářů</strong>: členové mohou prohlížet a klonovat repozitáře.
 teams.all_repositories_write_permission_desc=Tomuto týmu je udělen přístup pro <strong>Zápis</strong> do <strong>všech repozitářů</strong>: členové mohou prohlížet a nahrávat do repozitářů.
 teams.all_repositories_admin_permission_desc=Tomuto týmu je udělen <strong>Administrátorský</strong> přístup do <strong>všech repozitářů</strong>: členové mohou prohlížet, nahrávat a přidávat spolupracovníky do repozitářů.
+teams.invite.title=Byli jste pozváni do týmu <strong>%s</strong> v organizaci <strong>%s</strong>.
+teams.invite.by=Pozvání od %s
+teams.invite.description=Pro připojení k týmu klikněte na tlačítko níže.
 
 [admin]
 dashboard=Přehled
diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini
index e16f06abfd..9c38a1727a 100644
--- a/options/locale/locale_pt-PT.ini
+++ b/options/locale/locale_pt-PT.ini
@@ -238,6 +238,8 @@ no_reply_address=Domínio dos emails ocultos
 no_reply_address_helper=Nome de domínio para utilizadores com um endereço de email oculto. Por exemplo, o nome de utilizador 'silva' será registado no Git como 'silva@semresposta.exemplo.org' se o domínio de email oculto estiver definido como 'semresposta.exemplo.org'.
 password_algorithm=Algoritmo de Hash da Senha
 password_algorithm_helper=Definir o algoritmo de hash da senha. Os algoritmos têm requisitos e resistência distintos. `argon2`, embora tenha boas características, usa muita memória e pode ser inapropriado para sistemas pequenos.
+enable_update_checker=Habilitar verificador de novidades
+enable_update_checker_helper=Verifica, periodicamente, se foi lançada alguma versão nova, fazendo uma ligação ao gitea.io.
 
 [home]
 uname_holder=Nome de utilizador ou endereço de email
diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini
index b00400477e..ee6f686a85 100644
--- a/options/locale/locale_zh-CN.ini
+++ b/options/locale/locale_zh-CN.ini
@@ -238,6 +238,8 @@ no_reply_address=隐藏电子邮件
 no_reply_address_helper=具有隐藏电子邮件地址的用户的域名。例如, 用户名 "joe" 将以 "joe@noreply.example.org" 的身份登录到 Git 中. 如果隐藏的电子邮件域设置为 "noreply.example.org"。
 password_algorithm=密码哈希算法
 password_algorithm_helper=设置密码哈希算法。 算法具有不同的要求和强度。 具有良好特性的`argon2`却会占用大量内存,可能不适用于小型系统。
+enable_update_checker=启用更新检查
+enable_update_checker_helper=通过连接到 gitea.io 定期检查新版本发布。
 
 [home]
 uname_holder=用户名或邮箱

From 81ea4f95a0a82506ccc350ead38ec7d290fad3cc Mon Sep 17 00:00:00 2001
From: Chongyi Zheng <harry@harryzheng.com>
Date: Wed, 2 Nov 2022 22:32:52 -0400
Subject: [PATCH 2/3] Handle branch name with prefix in GitHub migration
 (#20357)

GitHub allows releases with target commitish `refs/heads/BRANCH`, which
then causes issues in Gitea after migration. This fix handles cases that
a branch already has a prefix.

Fixes #20317

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
---
 services/migrations/github.go | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/services/migrations/github.go b/services/migrations/github.go
index 016d058865..e5683fb530 100644
--- a/services/migrations/github.go
+++ b/services/migrations/github.go
@@ -15,6 +15,7 @@ import (
 	"strings"
 	"time"
 
+	"code.gitea.io/gitea/modules/git"
 	"code.gitea.io/gitea/modules/log"
 	base "code.gitea.io/gitea/modules/migration"
 	"code.gitea.io/gitea/modules/proxy"
@@ -307,10 +308,14 @@ func (g *GithubDownloaderV3) GetLabels() ([]*base.Label, error) {
 }
 
 func (g *GithubDownloaderV3) convertGithubRelease(rel *github.RepositoryRelease) *base.Release {
+	// GitHub allows commitish to be a reference.
+	// In this case, we need to remove the prefix, i.e. convert "refs/heads/main" to "main".
+	targetCommitish := strings.TrimPrefix(rel.GetTargetCommitish(), git.BranchPrefix)
+
 	r := &base.Release{
 		Name:            rel.GetName(),
 		TagName:         rel.GetTagName(),
-		TargetCommitish: rel.GetTargetCommitish(),
+		TargetCommitish: targetCommitish,
 		Draft:           rel.GetDraft(),
 		Prerelease:      rel.GetPrerelease(),
 		Created:         rel.GetCreatedAt().Time,

From f8f859b8fa1d365c3d2b2f741dce82effa9c03f0 Mon Sep 17 00:00:00 2001
From: KN4CK3R <admin@oldschoolhack.me>
Date: Thu, 3 Nov 2022 08:28:46 +0100
Subject: [PATCH 3/3] Alter package_version.metadata_json to LONGTEXT (#21667)

---
 models/migrations/migrations.go    |  2 ++
 models/migrations/v1_19/v232.go    | 26 ++++++++++++++++++++++++++
 models/packages/package_version.go |  2 +-
 3 files changed, 29 insertions(+), 1 deletion(-)
 create mode 100644 models/migrations/v1_19/v232.go

diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index 9291473f0d..f7f48bee02 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -433,6 +433,8 @@ var migrations = []Migration{
 	NewMigration("Add ConfidentialClient column (default true) to OAuth2Application table", v1_18.AddConfidentialClientColumnToOAuth2ApplicationTable),
 	// v231 -> v232
 	NewMigration("Add index for hook_task", v1_19.AddIndexForHookTask),
+	// v232 -> v233
+	NewMigration("Alter package_version.metadata_json to LONGTEXT", v1_19.AlterPackageVersionMetadataToLongText),
 }
 
 // GetCurrentDBVersion returns the current db version
diff --git a/models/migrations/v1_19/v232.go b/models/migrations/v1_19/v232.go
new file mode 100644
index 0000000000..92c9ad84b7
--- /dev/null
+++ b/models/migrations/v1_19/v232.go
@@ -0,0 +1,26 @@
+// Copyright 2022 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package v1_19 // nolint
+
+import (
+	"code.gitea.io/gitea/modules/setting"
+
+	"xorm.io/xorm"
+)
+
+func AlterPackageVersionMetadataToLongText(x *xorm.Engine) error {
+	sess := x.NewSession()
+	defer sess.Close()
+	if err := sess.Begin(); err != nil {
+		return err
+	}
+
+	if setting.Database.UseMySQL {
+		if _, err := sess.Exec("ALTER TABLE `package_version` MODIFY COLUMN `metadata_json` LONGTEXT"); err != nil {
+			return err
+		}
+	}
+	return sess.Commit()
+}
diff --git a/models/packages/package_version.go b/models/packages/package_version.go
index f9965bcb74..782261c575 100644
--- a/models/packages/package_version.go
+++ b/models/packages/package_version.go
@@ -33,7 +33,7 @@ type PackageVersion struct {
 	LowerVersion  string             `xorm:"UNIQUE(s) INDEX NOT NULL"`
 	CreatedUnix   timeutil.TimeStamp `xorm:"created INDEX NOT NULL"`
 	IsInternal    bool               `xorm:"INDEX NOT NULL DEFAULT false"`
-	MetadataJSON  string             `xorm:"metadata_json TEXT"`
+	MetadataJSON  string             `xorm:"metadata_json LONGTEXT"`
 	DownloadCount int64              `xorm:"NOT NULL DEFAULT 0"`
 }