diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index 6d583de78b..d4a85157f6 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -434,6 +434,8 @@ var migrations = []Migration{ // v231 -> v232 NewMigration("Add index for hook_task", v1_19.AddIndexForHookTask), // v232 -> v233 + NewMigration("Alter package_version.metadata_json to LONGTEXT", v1_19.AlterPackageVersionMetadataToLongText), + // v233 -> v234 NewMigration("Add package cleanup rule table", v1_19.CreatePackageCleanupRuleTable), } diff --git a/models/migrations/v1_19/v232.go b/models/migrations/v1_19/v232.go index 9d609c58d3..92c9ad84b7 100644 --- a/models/migrations/v1_19/v232.go +++ b/models/migrations/v1_19/v232.go @@ -2,28 +2,25 @@ // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. -package v1_19 //nolint +package v1_19 // nolint import ( - "code.gitea.io/gitea/modules/timeutil" + "code.gitea.io/gitea/modules/setting" "xorm.io/xorm" ) -func CreatePackageCleanupRuleTable(x *xorm.Engine) error { - type PackageCleanupRule struct { - ID int64 `xorm:"pk autoincr"` - Enabled bool `xorm:"INDEX NOT NULL DEFAULT false"` - OwnerID int64 `xorm:"UNIQUE(s) INDEX NOT NULL DEFAULT 0"` - Type string `xorm:"UNIQUE(s) INDEX NOT NULL"` - KeepCount int `xorm:"NOT NULL DEFAULT 0"` - KeepPattern string `xorm:"NOT NULL DEFAULT ''"` - RemoveDays int `xorm:"NOT NULL DEFAULT 0"` - RemovePattern string `xorm:"NOT NULL DEFAULT ''"` - MatchFullName bool `xorm:"NOT NULL DEFAULT false"` - CreatedUnix timeutil.TimeStamp `xorm:"created NOT NULL DEFAULT 0"` - UpdatedUnix timeutil.TimeStamp `xorm:"updated NOT NULL DEFAULT 0"` +func AlterPackageVersionMetadataToLongText(x *xorm.Engine) error { + sess := x.NewSession() + defer sess.Close() + if err := sess.Begin(); err != nil { + return err } - return x.Sync2(new(PackageCleanupRule)) + 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/migrations/v1_19/v233.go b/models/migrations/v1_19/v233.go new file mode 100644 index 0000000000..9d609c58d3 --- /dev/null +++ b/models/migrations/v1_19/v233.go @@ -0,0 +1,29 @@ +// 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/timeutil" + + "xorm.io/xorm" +) + +func CreatePackageCleanupRuleTable(x *xorm.Engine) error { + type PackageCleanupRule struct { + ID int64 `xorm:"pk autoincr"` + Enabled bool `xorm:"INDEX NOT NULL DEFAULT false"` + OwnerID int64 `xorm:"UNIQUE(s) INDEX NOT NULL DEFAULT 0"` + Type string `xorm:"UNIQUE(s) INDEX NOT NULL"` + KeepCount int `xorm:"NOT NULL DEFAULT 0"` + KeepPattern string `xorm:"NOT NULL DEFAULT ''"` + RemoveDays int `xorm:"NOT NULL DEFAULT 0"` + RemovePattern string `xorm:"NOT NULL DEFAULT ''"` + MatchFullName bool `xorm:"NOT NULL DEFAULT false"` + CreatedUnix timeutil.TimeStamp `xorm:"created NOT NULL DEFAULT 0"` + UpdatedUnix timeutil.TimeStamp `xorm:"updated NOT NULL DEFAULT 0"` + } + + return x.Sync2(new(PackageCleanupRule)) +} 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"` } 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 Čtení všech repozitářů: členové mohou prohlížet a klonovat repozitáře. teams.all_repositories_write_permission_desc=Tomuto týmu je udělen přístup pro Zápis do všech repozitářů: členové mohou prohlížet a nahrávat do repozitářů. teams.all_repositories_admin_permission_desc=Tomuto týmu je udělen Administrátorský přístup do všech repozitářů: členové mohou prohlížet, nahrávat a přidávat spolupracovníky do repozitářů. +teams.invite.title=Byli jste pozváni do týmu %s v organizaci %s. +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=用户名或邮箱 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,