Skip to content

Commit 6dce37d

Browse files
committed
Merge remote-tracking branch 'giteaofficial/main'
* giteaofficial/main: [skip ci] Updated translations via Crowdin [skip ci] Updated translations via Crowdin Remove html tags from create tag and branch translation (go-gitea#31973) Replace v-html with v-text in search inputbox (go-gitea#31966) [skip ci] Updated translations via Crowdin [skip ci] Updated translations via Crowdin Improve get feed with pagination (go-gitea#31821) Remove urls from translations (go-gitea#31950) Prevent update pull refs manually and will not affect other refs update (go-gitea#31931) [skip ci] Updated translations via Crowdin nix wording nit in todo code comment Fix 500 error when `state` params is set when editing issue/PR by API (go-gitea#31880) Fix sort order for organization home and user profile page (go-gitea#31921) Improve textarea paste (go-gitea#31948) Fix index too many file names bug (go-gitea#31903) [skip ci] Updated translations via Crowdin Move web globals to `web_src/js/globals.d.ts` (go-gitea#31943)
2 parents c4c1706 + 74b1c58 commit 6dce37d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+274
-985
lines changed

cmd/hook.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,8 +290,22 @@ Gitea or set your environment appropriately.`, "")
290290
return nil
291291
}
292292

293+
// runHookUpdate avoid to do heavy operations on update hook because it will be
294+
// invoked for every ref update which does not like pre-receive and post-receive
293295
func runHookUpdate(c *cli.Context) error {
296+
if isInternal, _ := strconv.ParseBool(os.Getenv(repo_module.EnvIsInternal)); isInternal {
297+
return nil
298+
}
299+
294300
// Update is empty and is kept only for backwards compatibility
301+
if len(os.Args) < 3 {
302+
return nil
303+
}
304+
refName := git.RefName(os.Args[len(os.Args)-3])
305+
if refName.IsPull() {
306+
// ignore update to refs/pull/xxx/head, so we don't need to output any information
307+
os.Exit(1)
308+
}
295309
return nil
296310
}
297311

models/activities/action.go

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -450,17 +450,46 @@ func GetFeeds(ctx context.Context, opts GetFeedsOptions) (ActionList, int64, err
450450
return nil, 0, err
451451
}
452452

453-
sess := db.GetEngine(ctx).Where(cond).
454-
Select("`action`.*"). // this line will avoid select other joined table's columns
455-
Join("INNER", "repository", "`repository`.id = `action`.repo_id")
453+
actions := make([]*Action, 0, opts.PageSize)
454+
var count int64
456455

457-
opts.SetDefaultValues()
458-
sess = db.SetSessionPagination(sess, &opts)
456+
if opts.Page < 10 { // TODO: why it's 10 but other values? It's an experience value.
457+
sess := db.GetEngine(ctx).Where(cond).
458+
Select("`action`.*"). // this line will avoid select other joined table's columns
459+
Join("INNER", "repository", "`repository`.id = `action`.repo_id")
459460

460-
actions := make([]*Action, 0, opts.PageSize)
461-
count, err := sess.Desc("`action`.created_unix").FindAndCount(&actions)
462-
if err != nil {
463-
return nil, 0, fmt.Errorf("FindAndCount: %w", err)
461+
opts.SetDefaultValues()
462+
sess = db.SetSessionPagination(sess, &opts)
463+
464+
count, err = sess.Desc("`action`.created_unix").FindAndCount(&actions)
465+
if err != nil {
466+
return nil, 0, fmt.Errorf("FindAndCount: %w", err)
467+
}
468+
} else {
469+
// First, only query which IDs are necessary, and only then query all actions to speed up the overall query
470+
sess := db.GetEngine(ctx).Where(cond).
471+
Select("`action`.id").
472+
Join("INNER", "repository", "`repository`.id = `action`.repo_id")
473+
474+
opts.SetDefaultValues()
475+
sess = db.SetSessionPagination(sess, &opts)
476+
477+
actionIDs := make([]int64, 0, opts.PageSize)
478+
if err := sess.Table("action").Desc("`action`.created_unix").Find(&actionIDs); err != nil {
479+
return nil, 0, fmt.Errorf("Find(actionsIDs): %w", err)
480+
}
481+
482+
count, err = db.GetEngine(ctx).Where(cond).
483+
Table("action").
484+
Cols("`action`.id").
485+
Join("INNER", "repository", "`repository`.id = `action`.repo_id").Count()
486+
if err != nil {
487+
return nil, 0, fmt.Errorf("Count: %w", err)
488+
}
489+
490+
if err := db.GetEngine(ctx).In("`action`.id", actionIDs).Desc("`action`.created_unix").Find(&actions); err != nil {
491+
return nil, 0, fmt.Errorf("Find: %w", err)
492+
}
464493
}
465494

466495
if err := ActionList(actions).LoadAttributes(ctx); err != nil {

modules/indexer/code/git.go

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,24 @@ func nonGenesisChanges(ctx context.Context, repo *repo_model.Repository, revisio
113113
var changes internal.RepoChanges
114114
var err error
115115
updatedFilenames := make([]string, 0, 10)
116-
for _, line := range strings.Split(stdout, "\n") {
116+
117+
updateChanges := func() error {
118+
cmd := git.NewCommand(ctx, "ls-tree", "--full-tree", "-l").AddDynamicArguments(revision).
119+
AddDashesAndList(updatedFilenames...)
120+
lsTreeStdout, _, err := cmd.RunStdBytes(&git.RunOpts{Dir: repo.RepoPath()})
121+
if err != nil {
122+
return err
123+
}
124+
125+
updates, err1 := parseGitLsTreeOutput(lsTreeStdout)
126+
if err1 != nil {
127+
return err1
128+
}
129+
changes.Updates = append(changes.Updates, updates...)
130+
return nil
131+
}
132+
lines := strings.Split(stdout, "\n")
133+
for _, line := range lines {
117134
line = strings.TrimSpace(line)
118135
if len(line) == 0 {
119136
continue
@@ -161,15 +178,22 @@ func nonGenesisChanges(ctx context.Context, repo *repo_model.Repository, revisio
161178
default:
162179
log.Warn("Unrecognized status: %c (line=%s)", status, line)
163180
}
181+
182+
// According to https://learn.microsoft.com/en-us/troubleshoot/windows-client/shell-experience/command-line-string-limitation#more-information
183+
// the command line length should less than 8191 characters, assume filepath is 256, then 8191/256 = 31, so we use 30
184+
if len(updatedFilenames) >= 30 {
185+
if err := updateChanges(); err != nil {
186+
return nil, err
187+
}
188+
updatedFilenames = updatedFilenames[0:0]
189+
}
164190
}
165191

166-
cmd := git.NewCommand(ctx, "ls-tree", "--full-tree", "-l").AddDynamicArguments(revision).
167-
AddDashesAndList(updatedFilenames...)
168-
lsTreeStdout, _, err := cmd.RunStdBytes(&git.RunOpts{Dir: repo.RepoPath()})
169-
if err != nil {
170-
return nil, err
192+
if len(updatedFilenames) > 0 {
193+
if err := updateChanges(); err != nil {
194+
return nil, err
195+
}
171196
}
172197

173-
changes.Updates, err = parseGitLsTreeOutput(lsTreeStdout)
174198
return &changes, err
175199
}

options/locale/locale_cs-CZ.ini

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,6 @@ string.desc=Z – A
218218

219219
[error]
220220
occurred=Došlo k chybě
221-
report_message=Pokud jste si jisti, že se jedná o chybu Gitea, prosím vyhledejte problém na <a href="https://github.com/go-gitea/gitea/issues" target="_blank">GitHub</a> a v případě potřeby založte nový problém.
222221
missing_csrf=Špatný požadavek: Neexistuje CSRF token
223222
invalid_csrf=Špatný požadavek: Neplatný CSRF token
224223
not_found=Cíl nebyl nalezen.
@@ -227,13 +226,10 @@ network_error=Chyba sítě
227226
[startpage]
228227
app_desc=Snadno přístupný vlastní Git
229228
install=Jednoduchá na instalaci
230-
install_desc=Jednoduše <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.com/installation/install-from-binary">spusťte jako binární program</a> pro vaši platformu, nasaďte jej pomocí <a target="_blank" rel="noopener noreferrer" href="https://github.com/go-gitea/gitea/tree/master/docker">Docker</a>, nebo jej stáhněte jako <a target="_blank" rel="noopener noreferrer" href="https://docs.gitea.com/installation/install-from-package">balíček</a>.
231229
platform=Multiplatformní
232-
platform_desc=Gitea běží všude, kde <a target="_blank" rel="noopener noreferrer" href="https://go.dev/">Go</a> může kompilovat: Windows, macOS, Linux, ARM, atd. Vyberte si ten, který milujete!
233230
lightweight=Lehká
234231
lightweight_desc=Gitea má minimální požadavky a může běžet na Raspberry Pi. Šetřete energii vašeho stroje!
235232
license=Open Source
236-
license_desc=Vše je na <a target="_blank" rel="noopener noreferrer" href="https://code.gitea.io/gitea">code.gitea.io/gitea</a>! Připojte se tím, že <a target="_blank" rel="noopener noreferrer" href="https://github.com/go-gitea/gitea">přispějete</a> a uděláte tento projekt ještě lepší. Nestyďte se být přispěvatel!
237233

238234
[install]
239235
install=Instalace
@@ -452,7 +448,6 @@ authorize_title=Autorizovat „%s“ pro přístup k vašemu účtu?
452448
authorization_failed=Autorizace selhala
453449
authorization_failed_desc=Autorizace selhala, protože jsme detekovali neplatný požadavek. Kontaktujte prosím správce aplikace, kterou jste se pokoušeli autorizovat.
454450
sspi_auth_failed=SSPI autentizace selhala
455-
password_pwned=Heslo, které jste zvolili, je na <a target="_blank" rel="noopener noreferrer" href="https://haveibeenpwned.com/Passwords">seznamu odcizených hesel</a>, která byla dříve odhalena při narušení veřejných dat. Zkuste to prosím znovu s jiným heslem.
456451
password_pwned_err=Nelze dokončit požadavek na HaveIBeenPwned
457452
last_admin=Nelze odstranit posledního správce. Musí existovat alespoň jeden správce.
458453

@@ -941,7 +936,6 @@ then_enter_passcode=A zadejte přístupový kód zobrazený ve vaší aplikaci:
941936
passcode_invalid=Přístupový kód není platný. Zkuste to znovu.
942937
twofa_failed_get_secret=Nepodařilo se získat tajemství.
943938

944-
webauthn_desc=Bezpečnostní klíče jsou hardwarová zařízení obsahující kryptografické klíče. Mohou být použity pro dvoufaktorové ověřování. Bezpečnostní klíče musí podporovat <a rel="noreferrer" target="_blank" href="https://w3c.github.io/webauthn/#webauthn-authenticator">WebAuthn Authenticator</a> standard.
945939
webauthn_register_key=Přidat bezpečnostní klíč
946940
webauthn_nickname=Přezdívka
947941
webauthn_delete_key=Odstranit bezpečnostní klíč
@@ -2297,7 +2291,6 @@ settings.event_pull_request_merge=Sloučení pull requestu
22972291
settings.event_package=Balíček
22982292
settings.event_package_desc=Balíček vytvořen nebo odstraněn v repozitáři.
22992293
settings.branch_filter=Filtr větví
2300-
settings.branch_filter_desc=Povolené větve pro události nahrání, vytvoření větve a smazání větve jsou určeny pomocí zástupného vzoru. Pokud je prázdný nebo <code>*</code>, všechny události jsou ohlášeny. Podívejte se na dokumentaci syntaxe na <a href="https://pkg.go.dev/github.com/gobwas/glob#Compile">github.com/gobwas/glob</a>. Příklady: <code>master</code>, <code>{master,release*}</code>.
23012294
settings.authorization_header=Autorizační hlavička
23022295
settings.authorization_header_desc=Pokud vyplněno, bude připojeno k požadavkům jako autorizační hlavička. Příklady: %s.
23032296
settings.active=Aktivní
@@ -2372,12 +2365,9 @@ settings.ignore_stale_approvals_desc=Nezapočítávejte schválení, která byla
23722365
settings.require_signed_commits=Vyžadovat podepsané revize
23732366
settings.require_signed_commits_desc=Odmítnout nahrání do této větve pokud nejsou podepsaná nebo jsou neověřitelná.
23742367
settings.protect_branch_name_pattern=Vzor jména chráněných větví
2375-
settings.protect_branch_name_pattern_desc=Vzory jmen chráněných větví. Pro vzorovou syntaxi viz <a href="https://github.com/gobwas/glob">dokumentace</a>. Příklady: main, release/**
23762368
settings.protect_patterns=Vzory
23772369
settings.protect_protected_file_patterns=Vzory chráněných souborů (oddělené středníkem „;“):
2378-
settings.protect_protected_file_patterns_desc=Chráněné soubory, které nemají povoleno být měněny přímo, i když uživatel má právo přidávat, upravovat nebo mazat soubory v této větvi. Více vzorů lze oddělit pomocí středníku („;“). Podívejte se na <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>github.com/gobwas/glob</a> dokumentaci pro syntaxi vzoru. Příklady: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
23792370
settings.protect_unprotected_file_patterns=Vzory nechráněných souborů (oddělené středníkem „;“):
2380-
settings.protect_unprotected_file_patterns_desc=Nechráněné soubory, které je možné měnit přímo, pokud má uživatel právo zápisu, čímž se obejde omezení push. Více vzorů lze oddělit pomocí středníku („;“). Podívejte se na <a href='https://pkg.go.dev/github.com/gobwas/glob#Compile'>github.com/gobwas/glob</a> dokumentaci pro syntaxi vzoru. Příklady: <code>.drone.yml</code>, <code>/docs/**/*.txt</code>.
23812371
settings.add_protected_branch=Zapnout ochranu
23822372
settings.delete_protected_branch=Vypnout ochranu
23832373
settings.update_protect_branch_success=Ochrana větví pro větev „%s“ byla aktualizována.
@@ -2407,7 +2397,6 @@ settings.tags.protection.allowed.teams=Povolené týmy
24072397
settings.tags.protection.allowed.noone=Nikdo
24082398
settings.tags.protection.create=Chránit značku
24092399
settings.tags.protection.none=Neexistují žádné chráněné značky.
2410-
settings.tags.protection.pattern.description=Můžete použít jediné jméno nebo vzor glob nebo regulární výraz, který bude odpovídat více značek. Přečtěte si více v <a target="_blank" rel="noopener" href="https://docs.gitea.com/usage/protected-tags">průvodci chráněnými značkami</a>.
24112400
settings.bot_token=Token pro robota
24122401
settings.chat_id=ID chatu
24132402
settings.thread_id=ID vlákna
@@ -2575,7 +2564,7 @@ branch.delete_desc=Smazání větve je trvalé. Přestože zrušená větev mů
25752564
branch.deletion_success=Větev „%s“ byla smazána.
25762565
branch.deletion_failed=Nepodařilo se odstranit větev „%s“.
25772566
branch.delete_branch_has_new_commits=Větev „%s“ nemůže být smazána, protože byly přidány nové commity po sloučení.
2578-
branch.create_branch=Vytvořit větev <strong>%s</strong>
2567+
branch.create_branch=Vytvořit větev %s
25792568
branch.create_from=z „%s“
25802569
branch.create_success=Větev „%s“ byla vytvořena.
25812570
branch.branch_already_exists=Větev „%s“ již existuje v tomto repozitáři.
@@ -2601,7 +2590,7 @@ branch.new_branch=Vytvořit novou větev
26012590
branch.new_branch_from=Vytvořit novou větev z „%s“
26022591
branch.renamed=Větev %s byla přejmenována na %s.
26032592

2604-
tag.create_tag=Vytvořit značku <strong>%s</strong>
2593+
tag.create_tag=Vytvořit značku %s
26052594
tag.create_tag_operation=Vytvořit značku
26062595
tag.confirm_create_tag=Vytvořit značku
26072596
tag.create_tag_from=Vytvořit novou značku z „%s“
@@ -2774,7 +2763,6 @@ last_page=Poslední
27742763
total=Celkem: %d
27752764
settings=Nastavení správce
27762765

2777-
dashboard.new_version_hint=Gitea %s je nyní k dispozici, právě u vás běži %s. Podívej se na <a target="_blank" rel="noreferrer" href="https://blog.gitea.io">blogu</a> pro více informací.
27782766
dashboard.statistic=Souhrn
27792767
dashboard.maintenance_operations=Operace údržby
27802768
dashboard.system_status=Status systému
@@ -2955,12 +2943,10 @@ packages.size=Velikost
29552943
packages.published=Publikováno
29562944

29572945
defaulthooks=Výchozí webové háčky
2958-
defaulthooks.desc=Webové háčky automaticky vytvářejí HTTP POST dotazy na server při určitých Gitea událostech. Webové háčky definované zde jsou výchozí a budou zkopírovány do všech nových repozitářů. Přečtěte si více v <a target="_blank" rel="noopener" href="https://docs.gitea.io/en-us/webhooks/">průvodci webovými háčky</a>.
29592946
defaulthooks.add_webhook=Přidat výchozí webový háček
29602947
defaulthooks.update_webhook=Aktualizovat výchozí webový háček
29612948

29622949
systemhooks=Systémové webové háčky
2963-
systemhooks.desc=Webové háčky automaticky vytvářejí HTTP POST dotazy na server při určitých Gitea událostech. Webové háčky definované zde budou vykonány na všech repozitářích systému, proto prosím zvažte jakékoli důsledky, které to může mít na výkon. Přečtěte si více v <a target="_blank" rel="noopener" href="https://docs.gitea.io/en-us/webhooks/">průvodci webovými háčky</a>.
29642950
systemhooks.add_webhook=Přidat systémový webový háček
29652951
systemhooks.update_webhook=Aktualizovat systémový webový háček
29662952

@@ -3055,18 +3041,8 @@ auths.tips=Tipy
30553041
auths.tips.oauth2.general=Ověřování OAuth2
30563042
auths.tips.oauth2.general.tip=Při registraci nové OAuth2 autentizace by URL callbacku/přesměrování měla být:
30573043
auths.tip.oauth2_provider=Poskytovatel OAuth2
3058-
auths.tip.bitbucket=Vytvořte nového OAuth konzumenta na https://bitbucket.org/account/user/{vase-uzivatelske-jmeno}/oauth-consumers/new a přidejte oprávnění „Account“ - „Read“
30593044
auths.tip.nextcloud=Zaregistrujte nového OAuth konzumenta na vaší instanci pomocí následujícího menu „Nastavení -> Zabezpečení -> OAuth 2.0 klient“
3060-
auths.tip.dropbox=Vytvořte novou aplikaci na https://www.dropbox.com/developers/apps
3061-
auths.tip.facebook=Registrujte novou aplikaci na https://developers.facebook.com/apps a přidejte produkt „Facebook Login“
3062-
auths.tip.github=Registrujte novou OAuth aplikaci na https://github.com/settings/applications/new
3063-
auths.tip.gitlab_new=Zaregistrujte novou aplikaci na https://gitlab.com/-/profile/applications
3064-
auths.tip.google_plus=Získejte klientské pověření OAuth2 z Google API konzole na https://console.developers.google.com/
30653045
auths.tip.openid_connect=Použijte OpenID Connect URL pro objevování spojení „https://{server}/.well-known/openid-configuration“ k nastavení koncových bodů
3066-
auths.tip.twitter=Jděte na https://dev.twitter.com/apps, vytvořte aplikaci a ujistěte se, že volba „Allow this application to be used to Sign in with Twitter“ je povolená
3067-
auths.tip.discord=Registrujte novou aplikaci na https://discordapp.com/developers/applications/me
3068-
auths.tip.gitea=Registrovat novou Oauth2 aplikaci. Návod naleznete na https://docs.gitea.com/development/oauth2-provider
3069-
auths.tip.yandex=Vytvořte novou aplikaci na https://oauth.yandex.com/client/new. Vyberte následující oprávnění z „Yandex.Passport API“ sekce: „Přístup k e-mailové adrese“, „Přístup k uživatelskému avataru“ a „Přístup k uživatelskému jménu, jménu a příjmení, pohlaví“
30703046
auths.tip.mastodon=Vložte vlastní URL instance pro mastodon, kterou se chcete autentizovat (nebo použijte výchozí)
30713047
auths.edit=Upravit zdroj ověřování
30723048
auths.activated=Tento zdroj ověřování je aktivován

0 commit comments

Comments
 (0)