diff --git a/.forgejo/testdata/build-release/Dockerfile b/.forgejo/testdata/build-release/Dockerfile
index d10564359e..09cce06c47 100644
--- a/.forgejo/testdata/build-release/Dockerfile
+++ b/.forgejo/testdata/build-release/Dockerfile
@@ -1,4 +1,4 @@
-FROM data.forgejo.org/oci/alpine:3.21
+FROM data.forgejo.org/oci/alpine:3.22
ARG RELEASE_VERSION=unkown
LABEL maintainer="contact@forgejo.org" \
org.opencontainers.image.version="${RELEASE_VERSION}"
diff --git a/Dockerfile b/Dockerfile
index 397e97acb1..322e2c61a2 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,6 +1,6 @@
FROM --platform=$BUILDPLATFORM data.forgejo.org/oci/xx AS xx
-FROM --platform=$BUILDPLATFORM data.forgejo.org/oci/golang:1.24-alpine3.21 AS build-env
+FROM --platform=$BUILDPLATFORM data.forgejo.org/oci/golang:1.24-alpine3.22 AS build-env
ARG GOPROXY
ENV GOPROXY=${GOPROXY:-https://proxy.golang.org,direct}
@@ -51,7 +51,7 @@ RUN chmod 755 /tmp/local/usr/bin/entrypoint \
/go/src/forgejo.org/environment-to-ini
RUN chmod 644 /go/src/forgejo.org/contrib/autocompletion/bash_autocomplete
-FROM data.forgejo.org/oci/alpine:3.21
+FROM data.forgejo.org/oci/alpine:3.22
ARG RELEASE_VERSION
LABEL maintainer="contact@forgejo.org" \
org.opencontainers.image.authors="Forgejo" \
diff --git a/Dockerfile.rootless b/Dockerfile.rootless
index 9ee71f64e0..6a3abaa4b9 100644
--- a/Dockerfile.rootless
+++ b/Dockerfile.rootless
@@ -1,6 +1,6 @@
FROM --platform=$BUILDPLATFORM data.forgejo.org/oci/xx AS xx
-FROM --platform=$BUILDPLATFORM data.forgejo.org/oci/golang:1.24-alpine3.21 AS build-env
+FROM --platform=$BUILDPLATFORM data.forgejo.org/oci/golang:1.24-alpine3.22 AS build-env
ARG GOPROXY
ENV GOPROXY=${GOPROXY:-https://proxy.golang.org,direct}
@@ -49,7 +49,7 @@ RUN chmod 755 /tmp/local/usr/local/bin/docker-entrypoint.sh \
/go/src/forgejo.org/environment-to-ini
RUN chmod 644 /go/src/forgejo.org/contrib/autocompletion/bash_autocomplete
-FROM data.forgejo.org/oci/alpine:3.21
+FROM data.forgejo.org/oci/alpine:3.22
ARG RELEASE_VERSION
LABEL maintainer="contact@forgejo.org" \
org.opencontainers.image.authors="Forgejo" \
diff --git a/eslint.config.mjs b/eslint.config.mjs
index 5737bed623..28cfa80089 100644
--- a/eslint.config.mjs
+++ b/eslint.config.mjs
@@ -1,5 +1,5 @@
import eslintCommunityEslintPluginEslintComments from '@eslint-community/eslint-plugin-eslint-comments';
-import stylisticEslintPluginJs from '@stylistic/eslint-plugin-js';
+import stylisticEslintPlugin from '@stylistic/eslint-plugin';
import vitest from '@vitest/eslint-plugin';
import arrayFunc from 'eslint-plugin-array-func';
import eslintPluginImportX from 'eslint-plugin-import-x';
@@ -26,7 +26,7 @@ export default tseslint.config(
{
plugins: {
'@eslint-community/eslint-comments': eslintCommunityEslintPluginEslintComments,
- '@stylistic/js': stylisticEslintPluginJs,
+ '@stylistic': stylisticEslintPlugin,
'@vitest': vitest,
'array-func': arrayFunc,
'no-jquery': noJquery,
@@ -69,62 +69,62 @@ export default tseslint.config(
'@eslint-community/eslint-comments/no-unused-enable': [2],
'@eslint-community/eslint-comments/no-use': [0],
'@eslint-community/eslint-comments/require-description': [0],
- '@stylistic/js/array-bracket-newline': [0],
- '@stylistic/js/array-bracket-spacing': [2, 'never'],
- '@stylistic/js/array-element-newline': [0],
- '@stylistic/js/arrow-parens': [2, 'always'],
+ '@stylistic/array-bracket-newline': [0],
+ '@stylistic/array-bracket-spacing': [2, 'never'],
+ '@stylistic/array-element-newline': [0],
+ '@stylistic/arrow-parens': [2, 'always'],
- '@stylistic/js/arrow-spacing': [2, {
+ '@stylistic/arrow-spacing': [2, {
before: true,
after: true,
}],
- '@stylistic/js/block-spacing': [0],
+ '@stylistic/block-spacing': [0],
- '@stylistic/js/brace-style': [2, '1tbs', {
+ '@stylistic/brace-style': [2, '1tbs', {
allowSingleLine: true,
}],
- '@stylistic/js/comma-dangle': [2, 'always-multiline'],
+ '@stylistic/comma-dangle': [2, 'always-multiline'],
- '@stylistic/js/comma-spacing': [2, {
+ '@stylistic/comma-spacing': [2, {
before: false,
after: true,
}],
- '@stylistic/js/comma-style': [2, 'last'],
- '@stylistic/js/computed-property-spacing': [2, 'never'],
- '@stylistic/js/dot-location': [2, 'property'],
- '@stylistic/js/eol-last': [2],
- '@stylistic/js/function-call-spacing': [2, 'never'],
- '@stylistic/js/function-call-argument-newline': [0],
- '@stylistic/js/function-paren-newline': [0],
- '@stylistic/js/generator-star-spacing': [0],
- '@stylistic/js/implicit-arrow-linebreak': [0],
+ '@stylistic/comma-style': [2, 'last'],
+ '@stylistic/computed-property-spacing': [2, 'never'],
+ '@stylistic/dot-location': [2, 'property'],
+ '@stylistic/eol-last': [2],
+ '@stylistic/function-call-spacing': [2, 'never'],
+ '@stylistic/function-call-argument-newline': [0],
+ '@stylistic/function-paren-newline': [0],
+ '@stylistic/generator-star-spacing': [0],
+ '@stylistic/implicit-arrow-linebreak': [0],
- '@stylistic/js/indent': [2, 2, {
+ '@stylistic/indent': [2, 2, {
ignoreComments: true,
SwitchCase: 1,
}],
- '@stylistic/js/key-spacing': [2],
- '@stylistic/js/keyword-spacing': [2],
- '@stylistic/js/linebreak-style': [2, 'unix'],
- '@stylistic/js/lines-around-comment': [0],
- '@stylistic/js/lines-between-class-members': [0],
- '@stylistic/js/max-len': [0],
- '@stylistic/js/max-statements-per-line': [0],
- '@stylistic/js/multiline-ternary': [0],
- '@stylistic/js/new-parens': [2],
- '@stylistic/js/newline-per-chained-call': [0],
- '@stylistic/js/no-confusing-arrow': [0],
- '@stylistic/js/no-extra-parens': [0],
- '@stylistic/js/no-extra-semi': [2],
- '@stylistic/js/no-floating-decimal': [0],
- '@stylistic/js/no-mixed-operators': [0],
- '@stylistic/js/no-mixed-spaces-and-tabs': [2],
+ '@stylistic/key-spacing': [2],
+ '@stylistic/keyword-spacing': [2],
+ '@stylistic/linebreak-style': [2, 'unix'],
+ '@stylistic/lines-around-comment': [0],
+ '@stylistic/lines-between-class-members': [0],
+ '@stylistic/max-len': [0],
+ '@stylistic/max-statements-per-line': [0],
+ '@stylistic/multiline-ternary': [0],
+ '@stylistic/new-parens': [2],
+ '@stylistic/newline-per-chained-call': [0],
+ '@stylistic/no-confusing-arrow': [0],
+ '@stylistic/no-extra-parens': [0],
+ '@stylistic/no-extra-semi': [2],
+ '@stylistic/no-floating-decimal': [0],
+ '@stylistic/no-mixed-operators': [0],
+ '@stylistic/no-mixed-spaces-and-tabs': [2],
- '@stylistic/js/no-multi-spaces': [2, {
+ '@stylistic/no-multi-spaces': [2, {
ignoreEOLComments: true,
exceptions: {
@@ -132,60 +132,60 @@ export default tseslint.config(
},
}],
- '@stylistic/js/no-multiple-empty-lines': [2, {
+ '@stylistic/no-multiple-empty-lines': [2, {
max: 1,
maxEOF: 0,
maxBOF: 0,
}],
- '@stylistic/js/no-tabs': [2],
- '@stylistic/js/no-trailing-spaces': [2],
- '@stylistic/js/no-whitespace-before-property': [2],
- '@stylistic/js/nonblock-statement-body-position': [2],
- '@stylistic/js/object-curly-newline': [0],
- '@stylistic/js/object-curly-spacing': [2, 'never'],
- '@stylistic/js/object-property-newline': [0],
- '@stylistic/js/one-var-declaration-per-line': [0],
- '@stylistic/js/operator-linebreak': [2, 'after'],
- '@stylistic/js/padded-blocks': [2, 'never'],
- '@stylistic/js/padding-line-between-statements': [0],
- '@stylistic/js/quote-props': [0],
+ '@stylistic/no-tabs': [2],
+ '@stylistic/no-trailing-spaces': [2],
+ '@stylistic/no-whitespace-before-property': [2],
+ '@stylistic/nonblock-statement-body-position': [2],
+ '@stylistic/object-curly-newline': [0],
+ '@stylistic/object-curly-spacing': [2, 'never'],
+ '@stylistic/object-property-newline': [0],
+ '@stylistic/one-var-declaration-per-line': [0],
+ '@stylistic/operator-linebreak': [2, 'after'],
+ '@stylistic/padded-blocks': [2, 'never'],
+ '@stylistic/padding-line-between-statements': [0],
+ '@stylistic/quote-props': [0],
- '@stylistic/js/quotes': [2, 'single', {
+ '@stylistic/quotes': [2, 'single', {
avoidEscape: true,
allowTemplateLiterals: true,
}],
- '@stylistic/js/rest-spread-spacing': [2, 'never'],
+ '@stylistic/rest-spread-spacing': [2, 'never'],
- '@stylistic/js/semi': [2, 'always', {
+ '@stylistic/semi': [2, 'always', {
omitLastInOneLineBlock: true,
}],
- '@stylistic/js/semi-spacing': [2, {
+ '@stylistic/semi-spacing': [2, {
before: false,
after: true,
}],
- '@stylistic/js/semi-style': [2, 'last'],
- '@stylistic/js/space-before-blocks': [2, 'always'],
+ '@stylistic/semi-style': [2, 'last'],
+ '@stylistic/space-before-blocks': [2, 'always'],
- '@stylistic/js/space-before-function-paren': [2, {
+ '@stylistic/space-before-function-paren': [2, {
anonymous: 'ignore',
named: 'never',
asyncArrow: 'always',
}],
- '@stylistic/js/space-in-parens': [2, 'never'],
- '@stylistic/js/space-infix-ops': [2],
- '@stylistic/js/space-unary-ops': [2],
- '@stylistic/js/spaced-comment': [2, 'always'],
- '@stylistic/js/switch-colon-spacing': [2],
- '@stylistic/js/template-curly-spacing': [2, 'never'],
- '@stylistic/js/template-tag-spacing': [2, 'never'],
- '@stylistic/js/wrap-iife': [2, 'inside'],
- '@stylistic/js/wrap-regex': [0],
- '@stylistic/js/yield-star-spacing': [2, 'after'],
+ '@stylistic/space-in-parens': [2, 'never'],
+ '@stylistic/space-infix-ops': [2],
+ '@stylistic/space-unary-ops': [2],
+ '@stylistic/spaced-comment': [2, 'always'],
+ '@stylistic/switch-colon-spacing': [2],
+ '@stylistic/template-curly-spacing': [2, 'never'],
+ '@stylistic/template-tag-spacing': [2, 'never'],
+ '@stylistic/wrap-iife': [2, 'inside'],
+ '@stylistic/wrap-regex': [0],
+ '@stylistic/yield-star-spacing': [2, 'after'],
'accessor-pairs': [2],
'array-callback-return': [2, {
diff --git a/go.mod b/go.mod
index b993bcbe3b..87755b206a 100644
--- a/go.mod
+++ b/go.mod
@@ -76,7 +76,7 @@ require (
github.com/meilisearch/meilisearch-go v0.31.0
github.com/mholt/archiver/v3 v3.5.1
github.com/microcosm-cc/bluemonday v1.0.27
- github.com/minio/minio-go/v7 v7.0.93
+ github.com/minio/minio-go/v7 v7.0.94
github.com/msteinert/pam/v2 v2.1.0
github.com/nektos/act v0.2.52
github.com/niklasfasching/go-org v1.8.0
@@ -242,7 +242,7 @@ require (
replace github.com/hashicorp/go-version => github.com/6543/go-version v1.3.1
-replace github.com/nektos/act => code.forgejo.org/forgejo/act v1.26.0
+replace github.com/nektos/act => code.forgejo.org/forgejo/act v1.28.0
replace github.com/mholt/archiver/v3 => code.forgejo.org/forgejo/archiver/v3 v3.5.1
diff --git a/go.sum b/go.sum
index d6c7b2c6a5..54710930e8 100644
--- a/go.sum
+++ b/go.sum
@@ -4,8 +4,8 @@ code.forgejo.org/f3/gof3/v3 v3.11.0 h1:f/xToKwqTgxG6PYxvewywjDQyCcyHEEJ6sZqUitFs
code.forgejo.org/f3/gof3/v3 v3.11.0/go.mod h1:4FaRUNSQGBiD1M0DuB0yNv+Z2wMtlOeckgygHSSq4KQ=
code.forgejo.org/forgejo-contrib/go-libravatar v0.0.0-20191008002943-06d1c002b251 h1:HTZl3CBk3ABNYtFI6TPLvJgGKFIhKT5CBk0sbOtkDKU=
code.forgejo.org/forgejo-contrib/go-libravatar v0.0.0-20191008002943-06d1c002b251/go.mod h1:PphB88CPbx601QrWPMZATeorACeVmQlyv3u+uUMbSaM=
-code.forgejo.org/forgejo/act v1.26.0 h1:6mTmoaw7d/WpYiw/Pw6AaypxFdgJog5OFi/PMEgEbxs=
-code.forgejo.org/forgejo/act v1.26.0/go.mod h1:HFDFrXPrqfM9aH2RCnMiBdo/3ThxDmZjp58InPjGOfo=
+code.forgejo.org/forgejo/act v1.28.0 h1:96njNC7C1YNyjWq5OWvLZMF/nw0PMthzIA8Nwbnn7jo=
+code.forgejo.org/forgejo/act v1.28.0/go.mod h1:dFuiwAmD5vyrzecysHB2kL/GM3wRpoVPl+WdbCTC8Bs=
code.forgejo.org/forgejo/archiver/v3 v3.5.1 h1:UmmbA7D5550uf71SQjarmrn6yKwOGxtEjb3jaYYtmSE=
code.forgejo.org/forgejo/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4=
code.forgejo.org/forgejo/go-rpmutils v1.0.0 h1:RZGGeKt70p/WaIEL97pyT6uiiEIoN8/aLmS5Z6WmX0M=
@@ -411,8 +411,8 @@ github.com/minio/crc64nvme v1.0.1 h1:DHQPrYPdqK7jQG/Ls5CTBZWeex/2FMS3G5XGkycuFrY
github.com/minio/crc64nvme v1.0.1/go.mod h1:eVfm2fAzLlxMdUGc0EEBGSMmPwmXD5XiNRpnu9J3bvg=
github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34=
github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM=
-github.com/minio/minio-go/v7 v7.0.93 h1:lAB4QJp8Nq3vDMOU0eKgMuyBiEGMNlXQ5Glc8qAxqSU=
-github.com/minio/minio-go/v7 v7.0.93/go.mod h1:71t2CqDt3ThzESgZUlU1rBN54mksGGlkLcFgguDnnAc=
+github.com/minio/minio-go/v7 v7.0.94 h1:1ZoksIKPyaSt64AVOyaQvhDOgVC3MfZsWM6mZXRUGtM=
+github.com/minio/minio-go/v7 v7.0.94/go.mod h1:71t2CqDt3ThzESgZUlU1rBN54mksGGlkLcFgguDnnAc=
github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
diff --git a/modules/actions/workflows.go b/modules/actions/workflows.go
index daf453fb47..7ae4557ed6 100644
--- a/modules/actions/workflows.go
+++ b/modules/actions/workflows.go
@@ -323,6 +323,10 @@ func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobpa
matchTimes++
}
case "paths":
+ if refName.IsTag() {
+ matchTimes++
+ break
+ }
filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
if err != nil {
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
@@ -336,6 +340,10 @@ func matchPushEvent(commit *git.Commit, pushPayload *api.PushPayload, evt *jobpa
}
}
case "paths-ignore":
+ if refName.IsTag() {
+ matchTimes++
+ break
+ }
filesChanged, err := commit.GetFilesChangedSinceCommit(pushPayload.Before)
if err != nil {
log.Error("GetFilesChangedSinceCommit [commit_sha1: %s]: %v", commit.ID.String(), err)
diff --git a/modules/actions/workflows_test.go b/modules/actions/workflows_test.go
index b85ed7fd56..9068ce31c3 100644
--- a/modules/actions/workflows_test.go
+++ b/modules/actions/workflows_test.go
@@ -150,6 +150,24 @@ func TestDetectMatched(t *testing.T) {
yamlOn: "on: workflow_dispatch",
expected: true,
},
+ {
+ desc: "push to tag matches workflow with paths condition (should skip paths check)",
+ triggeredEvent: webhook_module.HookEventPush,
+ payload: &api.PushPayload{
+ Ref: "refs/tags/v1.0.0",
+ Before: "0000000",
+ Commits: []*api.PayloadCommit{
+ {
+ ID: "abcdef123456",
+ Added: []string{"src/main.go"},
+ Message: "Release v1.0.0",
+ },
+ },
+ },
+ commit: nil,
+ yamlOn: "on:\n push:\n paths:\n - src/**",
+ expected: true,
+ },
}
for _, tc := range testCases {
diff --git a/modules/util/truncate.go b/modules/util/truncate.go
index f2edbdc673..7207a89177 100644
--- a/modules/util/truncate.go
+++ b/modules/util/truncate.go
@@ -54,3 +54,12 @@ func SplitTrimSpace(input, sep string) []string {
return stringList
}
+
+// TruncateRunes returns a truncated string with given rune limit,
+// it returns input string if its rune length doesn't exceed the limit.
+func TruncateRunes(str string, limit int) string {
+ if utf8.RuneCountInString(str) < limit {
+ return str
+ }
+ return string([]rune(str)[:limit])
+}
diff --git a/modules/util/truncate_test.go b/modules/util/truncate_test.go
index dfe1230fd4..8187b13eb2 100644
--- a/modules/util/truncate_test.go
+++ b/modules/util/truncate_test.go
@@ -44,3 +44,18 @@ func TestSplitString(t *testing.T) {
}
test(tc, SplitStringAtByteN)
}
+
+func TestTruncateRunes(t *testing.T) {
+ assert.Empty(t, TruncateRunes("", 0))
+ assert.Empty(t, TruncateRunes("", 1))
+
+ assert.Empty(t, TruncateRunes("ab", 0))
+ assert.Equal(t, "a", TruncateRunes("ab", 1))
+ assert.Equal(t, "ab", TruncateRunes("ab", 2))
+ assert.Equal(t, "ab", TruncateRunes("ab", 3))
+
+ assert.Empty(t, TruncateRunes("测试", 0))
+ assert.Equal(t, "测", TruncateRunes("测试", 1))
+ assert.Equal(t, "测试", TruncateRunes("测试", 2))
+ assert.Equal(t, "测试", TruncateRunes("测试", 3))
+}
diff --git a/options/locale/locale_cs-CZ.ini b/options/locale/locale_cs-CZ.ini
index 5f25cdea43..9448dd8e7e 100644
--- a/options/locale/locale_cs-CZ.ini
+++ b/options/locale/locale_cs-CZ.ini
@@ -2922,6 +2922,7 @@ settings.event_action_success = Úspěch
settings.event_action_success_desc = Běh akce byl úspěšný.
settings.event_header_action = Události běhu akce
settings.event_action_recover_desc = Běh akce byl úspěšný, předchozí běh akce ve stejném workflow selhal.
+issues.filter_type.all_pull_requests = Všechny žádosti o sloučení
[graphs]
component_loading_info = Tohle může chvíli trvat…
diff --git a/options/locale/locale_da.ini b/options/locale/locale_da.ini
index 6ec3a10e28..ea22f49e77 100644
--- a/options/locale/locale_da.ini
+++ b/options/locale/locale_da.ini
@@ -2735,6 +2735,7 @@ settings.event_action_success = Success
settings.event_action_recover_desc = Handlingskørsel lykkedes efter at den sidste handlingskørsel i samme arbejdsgang mislykkedes.
settings.event_action_failure_desc = Handlingskørsel sluttede som en fejl.
settings.event_action_recover = Gendan
+issues.filter_type.all_pull_requests = Alle pull-anmodninger
[notification]
watching = Overvåger
diff --git a/options/locale/locale_de-DE.ini b/options/locale/locale_de-DE.ini
index 4b2e215107..829912b3cc 100644
--- a/options/locale/locale_de-DE.ini
+++ b/options/locale/locale_de-DE.ini
@@ -2924,6 +2924,7 @@ settings.event_action_success = Erfolg
settings.event_header_action = Action-Run-Ereignisse
settings.event_action_recover_desc = Action-Run war erfolgreich, nachdem der letzte Action-Run im selben Arbeitsablauf fehlgeschlagen ist.
settings.event_action_recover = Wiederherstellen
+issues.filter_type.all_pull_requests = Alle Pull-Requests
[graphs]
component_loading_failed = Konnte %s nicht laden
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index 7479ab80af..101591d5a9 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -1628,6 +1628,7 @@ issues.filter_poster = Author
issues.filter_poster_no_select = All authors
issues.filter_type = Type
issues.filter_type.all_issues = All issues
+issues.filter_type.all_pull_requests = All pull requests
issues.filter_type.assigned_to_you = Assigned to you
issues.filter_type.created_by_you = Created by you
issues.filter_type.mentioning_you = Mentioning you
diff --git a/options/locale/locale_fil.ini b/options/locale/locale_fil.ini
index 1dbfb588f0..7d1405f633 100644
--- a/options/locale/locale_fil.ini
+++ b/options/locale/locale_fil.ini
@@ -1500,7 +1500,7 @@ issues.content_history.created = ginawa
editor.patching = Pina-patch:
editor.fail_to_apply_patch = Hindi malapat ang patch na "%s"
settings.danger_zone = Mapanganib na lugar
-issues.closed_at = `isinara ang isyung %[2]s`
+issues.closed_at = `isinara ang isyung ito %[2]s`
settings.collaboration.admin = Tagapangasiwa
settings.admin_settings = Mga setting ng tagapangasiwa
issues.start_tracking_history = `sinimulan ang trabaho %s`
@@ -2777,6 +2777,9 @@ settings.event_header_action = Mga event sa run ng aksyon
settings.event_action_failure = Pagkabigo
settings.event_action_failure_desc = Natapos ang action run bilang pagkabigo.
settings.event_action_recover = I-recover
+settings.event_action_success = Matagumpay
+settings.event_action_success_desc = Matagumpay na natapos ang Action Run.
+settings.event_action_recover_desc = Matagumpay na natapos ang Action Run pagkatapos na nabigo ang huling Action Run sa katulad na workflow.
[search]
commit_kind = Maghanap ng mga commit…
diff --git a/options/locale/locale_fr-FR.ini b/options/locale/locale_fr-FR.ini
index 9ba91fc3a9..3fcfda18bd 100644
--- a/options/locale/locale_fr-FR.ini
+++ b/options/locale/locale_fr-FR.ini
@@ -2920,6 +2920,7 @@ settings.event_header_action = Événements d'exécution d'action
settings.event_action_success_desc = L'exécution de l'action a réussi.
settings.event_action_failure_desc = L'exécution de l'action a échoué.
settings.event_action_recover_desc = L'exécution de l'action a réussi après l'échec de la dernière exécution de l'action dans le même workflow.
+issues.filter_type.all_pull_requests = Toutes les demandes d'ajout
[graphs]
component_loading = Chargement %s…
diff --git a/options/locale/locale_lv-LV.ini b/options/locale/locale_lv-LV.ini
index b53c0faa9b..789871f3c3 100644
--- a/options/locale/locale_lv-LV.ini
+++ b/options/locale/locale_lv-LV.ini
@@ -2920,6 +2920,7 @@ settings.event_action_recover = Atgūt
settings.event_action_recover_desc = Darbības izpilde bija sekmīga pēc kļūmes iepriekšējā darbības izpildē tajā pašā darbplūsmā.
settings.event_action_success = Sekmīgi
settings.event_action_success_desc = Darbības izpilde bija sekmīga.
+issues.filter_type.all_pull_requests = Visi izmaiņu pieprasījumi
[graphs]
component_loading=Ielādē %s…
diff --git a/options/locale/locale_nds.ini b/options/locale/locale_nds.ini
index 2175e11b02..57985942ed 100644
--- a/options/locale/locale_nds.ini
+++ b/options/locale/locale_nds.ini
@@ -2621,6 +2621,7 @@ settings.event_action_recover = Verhaalt
settings.event_header_action = Aktioons-Loop-Vörfallen
settings.event_action_failure_desc = Aktioons-Loop is as fehlslagen ennt.
settings.event_action_recover_desc = Aktioons-Loop is daankregen worden, nadeem de leste Aktioons-Loop in de sülven Warkwies fehlslagen is.
+issues.filter_type.all_pull_requests = All Haalvörslagen
[repo.permissions]
code.read = Lesen: De Quelltext vun deesem Repositorium ankieken un klonen.
diff --git a/options/locale/locale_ru-RU.ini b/options/locale/locale_ru-RU.ini
index bcb62eb23b..9158329978 100644
--- a/options/locale/locale_ru-RU.ini
+++ b/options/locale/locale_ru-RU.ini
@@ -1408,7 +1408,7 @@ editor.fail_to_update_file=Не удалось обновить/создать
editor.fail_to_update_file_summary=Ошибка:
editor.push_rejected_no_message=Изменение отклонено сервером без сообщения. Пожалуйста, проверьте Git-хуки.
editor.push_rejected=Изменение отклонено сервером. Пожалуйста, проверьте Git-хуки.
-editor.push_rejected_summary=Причина отклонения:
+editor.push_rejected_summary=Полная причина отклонения:
editor.add_subdir=Добавить каталог…
editor.unable_to_upload_files=Не удалось загрузить файлы в «%s» из-за ошибки: %v
editor.upload_file_is_locked=Файл «%s» заблокирован %s.
@@ -1545,27 +1545,27 @@ issues.add_labels=добавлены метки %s %s
issues.remove_label=удалил(а) метку %s %s
issues.remove_labels=удалил(а) метки %s %s
issues.add_remove_labels=добавлены метки %s и убраны метки %s %s
-issues.add_milestone_at=`добавлено в этап %s %s`
-issues.add_project_at=`добавлено в проект %s %s`
-issues.change_milestone_at=`изменил(а) целевой этап с %s на %s %s`
-issues.change_project_at=`изменил(а) проект с %s на %s %s`
-issues.remove_milestone_at=`удалил(а) это из этапа %s %s`
-issues.remove_project_at=`удалил(а) это из проекта %s %s`
+issues.add_milestone_at=`добавление в этап %s %s`
+issues.add_project_at=`добавление в проект %s %s`
+issues.change_milestone_at=`этап изменён с %s на %s %s`
+issues.change_project_at=`проект изменён с %s на %s %s`
+issues.remove_milestone_at=`удаление из этапа %s %s`
+issues.remove_project_at=`удаление из проекта %s %s`
issues.deleted_milestone=`(удалено)`
issues.deleted_project=`(удалено)`
-issues.self_assign_at=`назначил(а) на себя %s`
-issues.add_assignee_at=`был(а) назначен(а) %s %s`
-issues.remove_assignee_at=`был снят с назначения %s %s`
-issues.remove_self_assignment=`убрал(а) их назначение %s`
-issues.change_title_at=`изменил(а) заголовок с %s на %s %s`
-issues.change_ref_at=`изменил(а) ссылку с %s на %s %s`
-issues.remove_ref_at=`убрал(а) ссылку %s %s`
-issues.add_ref_at=`добавлена ссылка %s %s`
+issues.self_assign_at=`назначение себя %s`
+issues.add_assignee_at=`назначение %s %s`
+issues.remove_assignee_at=`снятие с назначения %s %s`
+issues.remove_self_assignment=`снято назначение с себя %s`
+issues.change_title_at=`заголовок изменён с %s на %s %s`
+issues.change_ref_at=`изменена ссылка с %s на %s %s`
+issues.remove_ref_at=`убрана ссылка на %s %s`
+issues.add_ref_at=`добавлена ссылка на %s %s`
issues.delete_branch_at=`удалена ветвь %s %s`
-issues.filter_label=Метка
-issues.filter_label_exclude=`Используйте alt
+ click/enter
, чтобы исключить метки`
-issues.filter_label_no_select=Все метки
-issues.filter_label_select_no_label=Нет метки
+issues.filter_label=Метки
+issues.filter_label_exclude=`Исключайте метки с помощью alt
+ лкм/enter
`
+issues.filter_label_no_select=Любые метки
+issues.filter_label_select_no_label=Без меток
issues.filter_milestone=Этап
issues.filter_milestone_all=Все этапы
issues.filter_milestone_none=Нет этапов
@@ -2923,6 +2923,7 @@ settings.event_action_recover = Восстановлен
settings.event_action_recover_desc = После неудачи повторное выполнение рабочего потока было успешно.
settings.event_action_success = Успех
settings.event_action_success_desc = Выполнение завершилось успешно.
+issues.filter_type.all_pull_requests = Все запросы на слияние
[graphs]
component_loading_failed = Не удалось загрузить %s
diff --git a/options/locale/locale_sv-SE.ini b/options/locale/locale_sv-SE.ini
index a4999e9751..541acbf408 100644
--- a/options/locale/locale_sv-SE.ini
+++ b/options/locale/locale_sv-SE.ini
@@ -201,6 +201,9 @@ table_modal.placeholder.content = Innehåll
table_modal.label.rows = Rader
table_modal.label.columns = Kolumner
buttons.switch_to_legacy.tooltip = Använd legacy-redigeraren istället
+link_modal.url = Url
+link_modal.description = Beskrivning
+link_modal.header = Lägg till en länk
[filter]
string.asc = A - Ö
@@ -329,6 +332,7 @@ invalid_app_data_path = Sökvägen för appdata är ogiltig: %v
internal_token_failed = Misslyckades att generera intern token: %v
password_algorithm = Hashalgoritm för lösenord
invalid_password_algorithm = Ogiltig hashalgoritm för lösenord
+env_config_keys_prompt = Följande miljövariabler kommer också att tillämpas på din konfigurationsfil:
[home]
uname_holder=Användarnamn eller e-postadress
@@ -462,6 +466,41 @@ reply = eller svara på detta e-postmeddelande direkt
hi_user_x = Hej %s,
admin.new_user.user_info = Användarinformation
admin.new_user.text = Vänligen klicka här för att hantera denna användare från administratörspanelen.
+admin.new_user.subject = Ny användare %s har just registrerat sig
+totp_disabled.no_2fa = Det finns inga andra 2FA-metoder konfigurerade längre, vilket innebär att det inte längre är nödvändigt att logga in på ditt konto med 2FA.
+removed_security_key.text_1 = Säkerhetsnyckeln ”%[1]s” har just tagits bort från ditt konto.
+repo.transfer.to_you = dig
+repo.transfer.body = För att acceptera eller avvisa det, besök %s eller ignorera det helt enkelt.
+removed_security_key.no_2fa = Det finns inga andra 2FA-metoder konfigurerade längre, vilket innebär att det inte längre är nödvändigt att logga in på ditt konto med 2FA.
+release.note = Notera:
+totp_enrolled.subject = Du har aktiverat TOTP som 2FA-metod
+totp_enrolled.text_1.no_webauthn = Du har just aktiverat TOTP för ditt konto. Det innebär att du måste använda TOTP som 2FA-metod vid alla framtida inloggningar på ditt konto.
+totp_enrolled.text_1.has_webauthn = Du har just aktiverat TOTP för ditt konto. Det innebär att du vid alla framtida inloggningar på ditt konto kan använda TOTP som 2FA-metod eller någon av dina säkerhetsnycklar.
+link_not_working_do_paste = Fungerar inte länken? Prova att kopiera och klistra in den i webbläsarens adressfält.
+primary_mail_change.text_1 = Den primära e-postadressen för ditt konto har just ändrats till %[1]s. Det innebär att denna e-postadress inte längre kommer att ta emot e-postmeddelanden för ditt konto.
+totp_disabled.subject = TOTP har inaktiverats
+totp_disabled.text_1 = Tidsbaserat engångslösenord (TOTP) på ditt konto har just inaktiverats.
+account_security_caution.text_2 = Om detta inte var du, har ditt konto blivit kompromitterat. Kontakta administratören för denna webbplats.
+account_security_caution.text_1 = Om detta var du, kan du tryggt ignorera detta meddelande.
+activate_account.text_2 = Klicka på följande länk för att aktivera ditt konto inom %s:
+activate_email.text = Klicka på följande länk för att verifiera din e-postadress inom %s:
+register_notify.text_3 = Om någon annan har skapat det här kontot åt dig måste du först ställa in ditt lösenord.
+issue.x_mentioned_you = @%s2 nämnde dig:
+repo.collaborator.added.subject = %s har lagt till dig som medarbetare i %s
+repo.collaborator.added.text = Du har lagts till som medarbetare i förrådet:
+team_invite.subject = %[1]s har bjudit in dig att gå med i organisationen %[2]s
+register_notify.text_1 = detta är din registreringsbekräftelse via e-post för %s!
+release.downloads = Hämtningar:
+release.download.zip = Källkod (ZIP)
+release.download.targz = Källkod (TAR.GZ)
+repo.transfer.subject_to = %s vill överföra förrådet ”%s” till %s
+removed_security_key.subject = En säkerhetsnyckel har tagits bort
+issue_assigned.pull = @%[1] har tilldelat dig pull-begäran %[2]s i förrådet %[3]s.
+issue_assigned.issue = @%[1] har tilldelat dig ärendet %[2] i förrådet %[3].
+register_notify.text_2 = Du kan logga in på ditt konto med ditt användarnamn: %s
+reset_password.text = Om detta var du, klicka på följande länk för att återställa ditt konto inom %s:
+issue.action.force_push = %[1]s2 gjorde en force-push av %[2]s från %[3]s till %[4]s.
+repo.transfer.subject_to_you = %s vill överföra förrådet ”%s” till dig
@@ -545,6 +584,12 @@ auth_failed=Autentisering misslyckades: %v
target_branch_not_exist=Målgrenen finns inte.
+org_still_own_repo = Denna organisation äger fortfarande ett eller flera förråd, ta bort eller överför dem först.
+must_use_public_key = Den nyckel du angav är en privat nyckel. Skicka inte upp din privata nyckel någonstans. Använd istället din publika nyckel.
+unable_verify_ssh_key = SSH-nyckeln kan inte verifieras. Kontrollera att den är korrekt.
+still_own_repo = Ditt konto äger ett eller flera förråd, ta bort eller överför dem först.
+still_has_org = Ditt konto är medlem i en eller flera organisationer. Lämna dem först.
+still_own_packages = Ditt konto har ett eller flera paket, ta bort dem först.
[user]
@@ -560,6 +605,13 @@ follow=Följ
unfollow=Sluta följa
user_bio=Biografi
disabled_public_activity=Den här användaren har inaktiverat den publika synligheten av aktiviteten.
+code = Kod
+watched = Övervakade förråd
+unblock = Avblockera
+email_visibility.limited = Din e-postadress är synlig för alla autentiserade användare
+show_on_map = Visa denna plats på en karta
+settings = Användarinställningar
+block = Blockera
[settings]
@@ -760,6 +812,17 @@ email_notifications.submit=Ställ in e-postpreferenser
visibility.public=Offentlig
visibility.private=Privat
change_password = Byt lösenord
+user_block_success = Användaren har blockerats.
+blocked_since = Blockerad sedan %s
+user_unblock_success = Användaren har blivit avblockerad.
+visibility.limited = Begränsad
+visibility.limited_tooltip = Synlig endast för inloggade användare
+visibility.private_tooltip = Synlig endast för medlemmar i organisationer som du har gått med i
+select_permissions = Välj behörigheter
+permission_no_access = Ingen åtkomst
+permission_write = Läs och skriv
+user_block_yourself = Du kan inte blockera dig själv.
+gpg_token_help = Du kan skapa en signatur med hjälp av:
[repo]
owner=Ägare
@@ -1693,6 +1756,21 @@ topic.manage_topics=Hantera ämnen
topic.done=Klar
topic.count_prompt=Du kan inte välja fler än 25 ämnen
settings.enter_repo_name = Ange ägar- och utvecklingskatalog-namnet exakt som det visas:
+release = Utgåva
+commitstatus.success = Lyckades
+visibility_helper = Gör förrådet privat
+download_bundle = Hämta BUNDLE
+download_zip = Hämta ZIP
+download_tar = Hämta TAR.GZ
+repo_desc_helper = Ange kort beskrivning (valfritt)
+all_branches = Alla grenar
+fork_no_valid_owners = Detta förråd kan inte förgrenas eftersom det inte finns några giltiga ägare.
+fork_to_different_account = Förgrena till ett annat konto
+size_format = %[1]s: %[2]s, %[3]s: %[4]s
+already_forked = Du har redan förgrenat %s
+commitstatus.failure = Fel
+ext_issues = Externa fel
+open_with_editor = Öppna med %s
@@ -2255,7 +2333,7 @@ project_kind = Sök projekt...
search = Sök…
type_tooltip = Söktyp
team_kind = Sök lag...
-org_kind = Sök organisationer...
+org_kind = Sök organisationer…
issue_kind = Sök ärenden...
regexp_tooltip = Tolka söktermen som ett reguljärt uttryck
code_search_unavailable = Kodsökning är för närvarande inte tillgänglig. Vänligen kontakta webbplatsadministratören.
diff --git a/options/locale/locale_tr-TR.ini b/options/locale/locale_tr-TR.ini
index 2f749dfd1e..4f51ddcc7e 100644
--- a/options/locale/locale_tr-TR.ini
+++ b/options/locale/locale_tr-TR.ini
@@ -668,6 +668,7 @@ username_error_no_dots = ` sadece alfanumerik karakterler ("0-9","a-z","A-Z"), t
unset_password = Oturum açma kullanıcısı parola belirlemedi.
unsupported_login_type = Oturum açma türü hesap silmeyi desteklemiyor.
+email_domain_is_not_allowed = Kullanıcı e-posta adresi %s alan adı EMAIL_DOMAIN_ALLOWLIST veya EMAIL_DOMAIN_BLOCKLIST ile çelişiyor. Lütfen işleminizin beklendiğinden emin olun.
[user]
change_avatar=Profil resmini değiştir…
@@ -2163,7 +2164,7 @@ settings.pulls.allow_rebase_update=Değişiklik isteği dalının yeniden yapıl
settings.pulls.default_delete_branch_after_merge=Varsayılan olarak birleştirmeden sonra değişiklik isteği dalını sil
settings.pulls.default_allow_edits_from_maintainers=Bakımcıların düzenlemelerine izin ver
settings.releases_desc=Depo Sürümlerini Etkinleştir
-settings.packages_desc=Depo Paket Kütüğünü Etkinleştir
+settings.packages_desc=Depo paket kütüğünü etkinleştir
settings.projects_desc=Depo Projelerini Etkinleştir
settings.actions_desc=Depo İşlemlerini Etkinleştir
settings.admin_settings=Yönetici Ayarları
@@ -3492,7 +3493,7 @@ error.unit_not_allowed=Bu depo bölümüne erişme izniniz yok.
title=Paketler
desc=Depo paketlerini yönet.
empty=Henüz hiçbir paket yok.
-empty.documentation=Paket kütüğü hakkında daha fazla bilgi için, belgeye bakabilirsiniz.
+empty.documentation=Paket deposu hakkında daha fazla bilgi için, belgeye bakabilirsiniz.
empty.repo=Bir paket yüklediniz ama burada gösterilmiyor mu? Paket ayarlarına gidin ve bu depoya bağlantı verin.
registry.documentation=%s kütüğü hakkında daha fazla bilgi için, belgeye bakabilirsiniz.
filter.type=Tür
@@ -3635,9 +3636,9 @@ owner.settings.cleanuprules.remove.days=Şundan eski sürümleri kaldır
owner.settings.cleanuprules.remove.pattern=Eşleşen sürümlari kaldır
owner.settings.cleanuprules.success.update=Temizleme kuralı güncellendi.
owner.settings.cleanuprules.success.delete=Temizleme kuralı silindi.
-owner.settings.chef.title=Chef Kütüğü
+owner.settings.chef.title=Chef deposu
owner.settings.chef.keypair=Anahtar çifti üret
-owner.settings.chef.keypair.description=Chef kütüğünde kimlik doğrulaması için bir anahtar çifti gereklidir. Eğer daha önce bir anahtar çifti ürettiyseniz, yeni bir anahtar çifti üretmek eski anahtar çiftini ıskartaya çıkartacaktır.
+owner.settings.chef.keypair.description=Chef kayıt defterine gönderilen istekler kimlik doğrulama yöntemi olarak kriptografik olarak imzalanmalıdır. Bir anahtar çifti oluştururken, yalnızca genel anahtar Forgejo'da saklanır. Özel anahtar size knife ile kullanılmak üzere sağlanır. Yeni bir anahtar çifti oluşturmak öncekini geçersiz kılar.
npm.dependencies.bundle = Paketlenmiş Bağımlılıklar
rpm.repository.multiple_groups = Bu paket birçok grupta mevcut.
diff --git a/options/locale/locale_uk-UA.ini b/options/locale/locale_uk-UA.ini
index d2d7c58edc..2e536c3d1a 100644
--- a/options/locale/locale_uk-UA.ini
+++ b/options/locale/locale_uk-UA.ini
@@ -2668,6 +2668,7 @@ settings.event_action_success = Успіх
settings.event_action_recover = Відновлено
commitstatus.success = Успіх
commitstatus.failure = Збій
+issues.filter_type.all_pull_requests = Усі запити на злиття
[graphs]
contributors.what = внески
@@ -3231,7 +3232,7 @@ notices.view_detail_header=Переглянути деталі повідомл
notices.select_all=Вибрати все
notices.deselect_all=Скасувати виділення
notices.inverse_selection=Інвертувати виділене
-notices.delete_selected=Видалити обране
+notices.delete_selected=Видалити вибране
notices.delete_all=Видалити всі cповіщення
notices.type=Тип
notices.type_1=Репозиторій
diff --git a/options/locale/locale_vi.ini b/options/locale/locale_vi.ini
index 57e592a209..28577bc3f7 100644
--- a/options/locale/locale_vi.ini
+++ b/options/locale/locale_vi.ini
@@ -9,7 +9,7 @@ sign_up = Đăng ký
link_account = Liên kết tài khoản
register = Đăng ký
version = Phiên bản
-powered_by = Sử dụng %s
+powered_by = Được cung cấp bởi %s
page = Trang
template = Mẫu
language = Ngôn ngữ
@@ -25,7 +25,7 @@ access_token = Mã truy cập
captcha = CAPTCHA
twofa = Xác thực hai lớp
webauthn_insert_key = Cắm khóa bảo mật của bạn vào
-copy_hash = Chép chuỗi băm
+copy_hash = Sao chép chuỗi băm
sign_in_with_provider = Đăng nhập bằng %s
webauthn_press_button = Hãy nhấn nút trên khóa bảo mật…
webauthn_use_twofa = Dùng mã xác thực hai lớp ở trên điện thoại
@@ -36,7 +36,7 @@ webauthn_error_insecure = WebAuthn chỉ hỗ trợ kết nối mã hóa. Nếu
webauthn_error_unable_to_process = Máy chủ không thể xử lý yêu cầu của bạn.
webauthn_error_empty = Bạn phải đặt tên cho khóa này.
webauthn_error_timeout = Hết thời gian đọc khóa mất rồi. Hãy tải lại trang và thử lại.
-copy_type_unsupported = Không chép được
+copy_type_unsupported = Không thể sao chép loại tệp này
repository = Kho mã
organization = Tổ chức
new_fork = Tạo một nhánh mới
@@ -55,17 +55,17 @@ all = Tất cả
sources = Nguồn
forks = Các phân nhánh
activities = Hoạt động
-pull_requests = Yêu cầu thêm mã
+pull_requests = Yêu cầu kéo mã
save = Lưu
-issues =
+issues =Vấn đề
enabled = Bật
disabled = Tắt
-copy = Chép
-copy_generic = Chép vào bộ nhớ tạm
-copy_url = Chép URL
-copy_content = Chép nội dung
-copy_success = Đã chép!
-copy_error = Không chép được
+copy = Sao chép
+copy_generic = Sao chép vào bộ nhớ tạm
+copy_url = Sao chép URL
+copy_content = Sao chép nội dung
+copy_success = Đã sao chép!
+copy_error = Sao chép thất bại
write = Viết
preview = Xem trước
error = Lỗi
@@ -73,7 +73,7 @@ error413 = Bạn đã dùng hết định mức.
go_back = Quay lại
invalid_data = Dữ liệu không hợp lệ: %v
never = Không bao giờ
-unknown = Không biết
+unknown = Không xác định
unpin = Bỏ ghim
pin = Ghim
archived = Đã lưu trữ
@@ -81,6 +81,60 @@ signed_in_as = Đăng nhập bằng
re_type = Xác nhận mật khẩu
webauthn_sign_in = Nhấn nút trên khóa bảo mật, nếu không có nút thì bạn hãy rút ra rồi cắm lại.
new_org.link = Tạo tổ chức
-error404 = Trang bạn đang tìm không tồn tại hoặc bạn không có quyền xem.
+error404 = Trang bạn đang tìm không tồn tại, đã bị xoá hoặc bạn không có quyền để xem nó.
edit = Chỉnh sửa
-filter = Lọc
\ No newline at end of file
+filter = Bộ lọc
+dashboard = Trang quản lý
+logo = Logo
+toc = Mục lục
+user_profile_and_more = Hồ sơ và cài đặt…
+passcode = Mã xác thực
+webauthn_error_duplicated = Khóa bảo mật không được phép cho yêu cầu này. Vui lòng đảm bảo rằng khóa chưa được đăng ký trước đó.
+mirror = Bản sao
+new_mirror = Tạo bản sao mới
+your_starred = Đã đánh sao
+mirrors = Các bản sao
+concept_system_global = Chung
+concept_user_individual = Cá nhân
+show_log_seconds = Hiện giây
+show_full_screen = Toàn màn hình
+download_logs = Tải xuống nhật ký
+confirm_delete_selected = Xác nhận xoá tất cả mục được chọn?
+name = Tên
+filter.clear = Xoá bộ lọc
+filter.not_fork = Không phải phân nhánh
+filter.not_archived = Không bị lưu trữ
+filter.is_archived = Bị lưu trữ
+filter.is_fork = Phân nhánh
+filter.is_mirror = Bản sao
+filter.is_template = Mẫu
+filter.not_template = Không phải mẫu
+filter.public = Công khai
+filter.private = Riêng tư
+twofa_scratch = Mã xác thực 2 lớp dự phòng
+collaborative = Cộng tác
+milestones = Cột mốc
+cancel = Huỷ bỏ
+retry = Thử lại
+rerun = Chạy lại
+rerun_all = Chạy lại tất cả
+ok = Đồng ý
+add = Thêm
+add_all = Thêm tất cả
+remove = Xoá
+remove_all = Xoá tất cả
+remove_label_str = Xoá "%s"
+locked = Bị khoá
+copy_branch = Sao chép tên nhánh
+loading = Đang tải…
+rss_feed = Nguồn RSS
+confirm_delete_artifact = Bạn có chắc muốn xoá "%s" ?
+value = Giá trị
+copy_path = Sao chép đường dẫn
+filter.not_mirror = Không phải bản sao
+show_timestamps = Hiện mốc thời gian
+concept_code_repository = Kho mã
+concept_user_organization = Tổ chức
+
+[search]
+search = Tìm kiếm…
\ No newline at end of file
diff --git a/options/locale_next/locale_cs-CZ.json b/options/locale_next/locale_cs-CZ.json
index 0e3ea260de..97a8536d4f 100644
--- a/options/locale_next/locale_cs-CZ.json
+++ b/options/locale_next/locale_cs-CZ.json
@@ -102,5 +102,8 @@
"editor.textarea.tab_hint": "Řádek je již odsazen. Pro opuštění editoru stiskněte znovu Tab nebo Escape.",
"editor.textarea.shift_tab_hint": "Na tomto řádku není žádné odsazení. Pro opuštění editoru stiskněte znovu Shift + Tab nebo Escape.",
"admin.dashboard.cleanup_offline_runners": "Vymazat offline runnery",
- "settings.visibility.description": "Viditelnost profilu ovlivňuje možnost ostatních přistupovat k vašim veřejným repozitářům. Zjistit více"
+ "settings.visibility.description": "Viditelnost profilu ovlivňuje možnost ostatních přistupovat k vašim veřejným repozitářům. Zjistit více",
+ "avatar.constraints_hint": "Velikost vlastního avataru nesmí překročit %[1]s nebo být větší než %[2]dx%[3]d pixelů",
+ "repo.diff.commit.next-short": "Další",
+ "repo.diff.commit.previous-short": "Předchozí"
}
diff --git a/options/locale_next/locale_da.json b/options/locale_next/locale_da.json
index fe3c25ab2e..8315e06bcc 100644
--- a/options/locale_next/locale_da.json
+++ b/options/locale_next/locale_da.json
@@ -92,5 +92,10 @@
"followers.outgoing.list.self.none": "Du følger ikke nogen.",
"followers.outgoing.list.none": "%s følger ikke nogen.",
"editor.textarea.tab_hint": "Linjen er allerede indrykket. Tryk på Tab igen eller Escape for at forlade editoren.",
- "editor.textarea.shift_tab_hint": "Ingen indrykning på denne linje. Tryk på Shift + Tab igen eller Escape for at forlade editoren."
+ "editor.textarea.shift_tab_hint": "Ingen indrykning på denne linje. Tryk på Shift + Tab igen eller Escape for at forlade editoren.",
+ "admin.dashboard.cleanup_offline_runners": "Ryd op offline runners",
+ "settings.visibility.description": "Profilsynlighed påvirker andres adgang til dine ikke-private depoter. Læs mere",
+ "avatar.constraints_hint": "Brugerdefineret avatar må ikke overstige %[1]s i størrelse eller være større end %[2]dx%[3]d pixels",
+ "repo.diff.commit.next-short": "Næste",
+ "repo.diff.commit.previous-short": "Forrige"
}
diff --git a/options/locale_next/locale_de-DE.json b/options/locale_next/locale_de-DE.json
index 846e85d094..94ab12f180 100644
--- a/options/locale_next/locale_de-DE.json
+++ b/options/locale_next/locale_de-DE.json
@@ -93,5 +93,9 @@
"followers.incoming.list.none": "Niemand folgt diesem Benutzer.",
"editor.textarea.tab_hint": "Zeile bereits eingerückt. Drücke nochmals Tab oder Escape um den Editor zu verlassen.",
"editor.textarea.shift_tab_hint": "Keine Einrückung auf dieser Zeile. Drücke nochmals Shift + Tab oder Escape um den Editor zu verlassen.",
- "admin.dashboard.cleanup_offline_runners": "Aufräumen der offline Runner"
+ "admin.dashboard.cleanup_offline_runners": "Aufräumen der offline Runner",
+ "settings.visibility.description": "Die Profilsichtbarkeit beeinflusst die Möglichkeit anderer, auf deine nicht-privaten Repositorys zuzugreifen. Erfahre mehr",
+ "avatar.constraints_hint": "Individuelles Profilbild darf %[1]s in der Größe nicht überschreiten, und nicht größer als %[2]dx%[3]d Pixel sein",
+ "repo.diff.commit.next-short": "Nächste",
+ "repo.diff.commit.previous-short": "Vorherige"
}
diff --git a/options/locale_next/locale_fr-FR.json b/options/locale_next/locale_fr-FR.json
index 0792804bf2..a9035f0848 100644
--- a/options/locale_next/locale_fr-FR.json
+++ b/options/locale_next/locale_fr-FR.json
@@ -97,5 +97,11 @@
"repo.issue_indexer.title": "Indexeur de problèmes",
"stars.list.none": "Personne n'a mis d'étoiles sur ce dépôt.",
"watch.list.none": "Personne ne consulte ce dépôt.",
- "repo.form.cannot_create": "Tous les espaces dans lesquels vous pouvez créer des dépôts ont atteint la limite de dépôts."
+ "repo.form.cannot_create": "Tous les espaces dans lesquels vous pouvez créer des dépôts ont atteint la limite de dépôts.",
+ "admin.dashboard.cleanup_offline_runners": "Nettoyer les exécuteurs hors ligne",
+ "mail.actions.run_info_trigger": "Déclenché parce que : %[1]s par : %[2]s",
+ "settings.visibility.description": "La visibilité du profil affecte la capacité des autres à accéder à vos dépôts non-privés. Voir plus",
+ "editor.textarea.shift_tab_hint": "Pas d'indentation sur cette ligne. Appuyez sur Maj + Tab une nouvelle fois ou sur Échap pour quitter l'éditeur.",
+ "avatar.constraints_hint": "L'avatar personnalisé ne doit pas dépasser une taille de %[1]s ou être plus grand que %[2]dx%[3]d pixels",
+ "editor.textarea.tab_hint": "Ligne déjà indentée. Appuyez sur Tab une nouvelle fois ou sur Échap pour quitter l'éditeur."
}
diff --git a/options/locale_next/locale_lv-LV.json b/options/locale_next/locale_lv-LV.json
index 6386f2163b..f71cfa227d 100644
--- a/options/locale_next/locale_lv-LV.json
+++ b/options/locale_next/locale_lv-LV.json
@@ -102,5 +102,8 @@
"editor.textarea.tab_hint": "Rinda jau ir ar atkāpi. Spied Tab vēlreiz vai Escape, lai izietu no redaktora!",
"editor.textarea.shift_tab_hint": "Šajā rindā nav atkāpes. Spied Shift + Tab vēlreiz vai Escape, lai izietu no redaktora!",
"admin.dashboard.cleanup_offline_runners": "Notīrīt bezsaistes izpildītājus",
- "settings.visibility.description": "Profila redzamība ietekmē iespēju citiem piekļūt Tavām glabātavām, kas nav privātas. Uzzināt vairāk"
+ "settings.visibility.description": "Profila redzamība ietekmē iespēju citiem piekļūt Tavām glabātavām, kas nav privātas. Uzzināt vairāk",
+ "avatar.constraints_hint": "Pielāgots profila attēls nevar pārsniegt %[1]s vai būt lielāks par %[2]dx%[3]d pikseļiem",
+ "repo.diff.commit.next-short": "Nāk.",
+ "repo.diff.commit.previous-short": "Iepr."
}
diff --git a/options/locale_next/locale_nds.json b/options/locale_next/locale_nds.json
index ba8d66a2da..9a3884a87f 100644
--- a/options/locale_next/locale_nds.json
+++ b/options/locale_next/locale_nds.json
@@ -94,5 +94,8 @@
"editor.textarea.tab_hint": "Rieg al inschuven. Drück weer Tab of Esc, um de Bewarker to verlaten.",
"editor.textarea.shift_tab_hint": "Keen Inschuuv in deeser Rieg. Drück weer Umschalt+Tab of Esc, um de Bewarker to verlaten.",
"admin.dashboard.cleanup_offline_runners": "Nich verbunnen Lopers uprümen",
- "settings.visibility.description": "De Profil-Sichtbaarkeid maakt daar wat an, of un wo anner Lüü diene nich-privaaten Repositoriums ankieken könen. Mehr unnerhören"
+ "settings.visibility.description": "De Profil-Sichtbaarkeid maakt daar wat an, of un wo anner Lüü diene nich-privaaten Repositoriums ankieken könen. Mehr unnerhören",
+ "avatar.constraints_hint": "Dat eegene Kontobill düür nich groter as %[1]s wesen of groter as %[2]d×%[3]d Billtüttels wesen",
+ "repo.diff.commit.next-short": "Anner",
+ "repo.diff.commit.previous-short": "Vörig"
}
diff --git a/options/locale_next/locale_pt-BR.json b/options/locale_next/locale_pt-BR.json
index 909c9339d3..92e140878e 100644
--- a/options/locale_next/locale_pt-BR.json
+++ b/options/locale_next/locale_pt-BR.json
@@ -100,5 +100,8 @@
"stars.list.none": "Ninguém favoritou este repositório.",
"followers.outgoing.list.self.none": "Você não está seguindo ninguém.",
"editor.textarea.tab_hint": "Linha já indentada. Pressione Tab novamente ou Esc para sair do editor.",
- "editor.textarea.shift_tab_hint": "Sem indentação nesta linha. Pressione Shift + Tab novamente ou Esc para sair do editor."
+ "editor.textarea.shift_tab_hint": "Sem indentação nesta linha. Pressione Shift + Tab novamente ou Esc para sair do editor.",
+ "admin.dashboard.cleanup_offline_runners": "Limpar runners desconectados",
+ "avatar.constraints_hint": "Imagem de perfil personalizada não pode exceder %[1]s em tamanho ou ser maior que %[2]dx%[3]d pixels",
+ "settings.visibility.description": "A visibilidade do perfil afeta a habilidade de acessarem seus repositórios não-privados. Saiba mais"
}
diff --git a/options/locale_next/locale_pt-PT.json b/options/locale_next/locale_pt-PT.json
index da27faa2ce..78e6dc4493 100644
--- a/options/locale_next/locale_pt-PT.json
+++ b/options/locale_next/locale_pt-PT.json
@@ -101,5 +101,7 @@
"editor.textarea.tab_hint": "Linha já indentada. Pressione Tab novamente ou Escape para sair do editor.",
"editor.textarea.shift_tab_hint": "Sem indentação nesta linha. Pressione Shift + Tab novamente ou Escape para sair do editor.",
"stars.list.none": "Ninguém juntou este repositório aos favoritos.",
- "admin.dashboard.cleanup_offline_runners": "Limpeza de executores offline"
+ "admin.dashboard.cleanup_offline_runners": "Limpeza de executores offline",
+ "settings.visibility.description": "A visibilidade do perfil afecta a capacidade de outros acederem aos seus repositórios não privados. Ler mais",
+ "avatar.constraints_hint": "O avatar personalizado não pode exceder %[1]s de tamanho ou ser maior do que %[2]dx%[3]d pixéis"
}
diff --git a/options/locale_next/locale_ru-RU.json b/options/locale_next/locale_ru-RU.json
index 6dd2b6fb7e..8992cc6abd 100644
--- a/options/locale_next/locale_ru-RU.json
+++ b/options/locale_next/locale_ru-RU.json
@@ -101,5 +101,9 @@
"moderation.report_abuse_form.header": "Жалоба администрации",
"editor.textarea.tab_hint": "Отступ уже добавлен. Нажмите Tab снова или Escape, чтобы покинуть редактор.",
"editor.textarea.shift_tab_hint": "В строке нет отступов. Нажмите Shift + Tab снова или Escape, чтобы покинуть редактор.",
- "admin.dashboard.cleanup_offline_runners": "Удалить недоступных исполнителей"
+ "admin.dashboard.cleanup_offline_runners": "Удалить недоступных исполнителей",
+ "avatar.constraints_hint": "Изображение профиля не может быть более %[1]s и крупнее %[2]dx%[3]d пикселей",
+ "settings.visibility.description": "Видимость профиля влияет на доступ других до ваших не частных репозиториев. Подробнее",
+ "repo.diff.commit.previous-short": "Предыдущий",
+ "repo.diff.commit.next-short": "Далее"
}
diff --git a/options/locale_next/locale_sv-SE.json b/options/locale_next/locale_sv-SE.json
index 53b25dffcb..9a8762212c 100644
--- a/options/locale_next/locale_sv-SE.json
+++ b/options/locale_next/locale_sv-SE.json
@@ -56,7 +56,7 @@
"mail.actions.successful_run_after_failure": "Arbetsflöde %[1]s återställdes i förrådet %[2]s",
"mail.actions.not_successful_run": "Arbetsflödet %[1]s misslyckades i förrådet %[2]s",
"editor.textarea.shift_tab_hint": "Ingen indragning på den här raden. Tryck på Shift + Tab igen eller Escape för att lämna redigeringsläget.",
- "meta.last_line": "Tack för att du översatte Forgejo! Daniel Nylander heter jag. https://www.danielnylander.se",
+ "meta.last_line": "Daniel Nylander heter jag och har översatt Forgejo. Mer information om mig på https://www.danielnylander.se",
"editor.textarea.tab_hint": "Raden är redan indragen. Tryck på Tab igen eller Escape för att lämna redigeringsläget.",
"home.welcome.no_activity": "Ingen aktivitet",
"home.welcome.activity_hint": "Det finns inget i ditt flöde ännu. Dina åtgärder och aktivitet från förråd som du bevakar kommer att visas här.",
@@ -93,5 +93,7 @@
"moderation.abuse_category": "Kategori",
"moderation.abuse_category.placeholder": "Välj en kategori",
"moderation.abuse_category.spam": "Skräppost",
- "moderation.abuse_category.malware": "Skadlig kod"
+ "moderation.abuse_category.malware": "Skadlig kod",
+ "settings.visibility.description": "Profilens synlighet påverkar andras möjlighet att komma åt dina icke-privata förråd. Läs mer",
+ "avatar.constraints_hint": "Anpassade avatarer får inte vara större än %[1] eller %[2]dx%[3] bildpunkter"
}
diff --git a/options/locale_next/locale_uk-UA.json b/options/locale_next/locale_uk-UA.json
index a00d368f4a..c3bcf5397c 100644
--- a/options/locale_next/locale_uk-UA.json
+++ b/options/locale_next/locale_uk-UA.json
@@ -88,10 +88,10 @@
"moderation.report_abuse_form.details": "Використовуйте цю форму, щоб повідомити про користувачів, які створюють спам-профілі, репозиторії, задачі, коментарі або поводяться неналежним чином.",
"moderation.abuse_category": "Категорія",
"moderation.abuse_category.other_violations": "Інші порушення правил платформи",
- "moderation.reporting_failed": "Не вдалося надіслати нове повідомлення про порушення: %v",
+ "moderation.reporting_failed": "Не вдалося надіслати повідомлення про порушення: %v",
"moderation.report_remarks": "Подробиці",
"moderation.reported_thank_you": "Дякуємо за ваше повідомлення. Адміністрацію поінформовано про нього.",
- "repo.form.cannot_create": "Усі простори, в яких ви можете створювати репозиторії, досягли максимальної кількості репозиторіїв.",
+ "repo.form.cannot_create": "У всіх просторах, де ви можете створювати репозиторії, досягнуто обмеження кількості репозиторіїв.",
"repo.issue_indexer.title": "Індексатор задач",
"followers.incoming.list.self.none": "Ніхто не стежить за вашим профілем.",
"followers.incoming.list.none": "Ніхто не стежить за цим користувачем.",
@@ -102,5 +102,8 @@
"editor.textarea.tab_hint": "У рядку вже є відступ. Натисніть Tab ще раз або Esc, щоб вийти з редактора.",
"editor.textarea.shift_tab_hint": "У цьому рядку немає відступів. Натисніть Shift + Tab ще раз або Esc, щоб вийти з редактора.",
"admin.dashboard.cleanup_offline_runners": "Очистити неактивні раннери",
- "settings.visibility.description": "Видимість профілю впливає на можливість інших користувачів отримати доступ до ваших неприватних репозиторіїв. Дізнатися більше"
+ "settings.visibility.description": "Видимість профілю впливає на можливість інших користувачів отримати доступ до ваших неприватних репозиторіїв. Дізнатися більше",
+ "avatar.constraints_hint": "Розмір користувацького аватара не може перевищувати %[1]s або бути більшим за %[2]d×%[3]d пікселів",
+ "repo.diff.commit.next-short": "Наступний",
+ "repo.diff.commit.previous-short": "Попередній"
}
diff --git a/options/locale_next/locale_zh-CN.json b/options/locale_next/locale_zh-CN.json
index 721e2ad839..e7c1bad81e 100644
--- a/options/locale_next/locale_zh-CN.json
+++ b/options/locale_next/locale_zh-CN.json
@@ -69,5 +69,7 @@
"followers.incoming.list.self.none": "没有人关注你的个人资料。",
"editor.textarea.tab_hint": "此行已缩进。再次按 Tab 或按 Escape 退出编辑器。",
"editor.textarea.shift_tab_hint": "此行无缩进。再次按 Shift + Tab 或按 Escape 退出编辑器。",
- "admin.dashboard.cleanup_offline_runners": "清理离线运行器"
+ "admin.dashboard.cleanup_offline_runners": "清理离线运行器",
+ "settings.visibility.description": "个人资料可见性设置会影响他人对您的非私有仓库的访问。了解更多",
+ "avatar.constraints_hint": "自定义头像大小不得超过 %[1]s,或大于 %[2]d×%[3]d 像素"
}
diff --git a/package-lock.json b/package-lock.json
index 40601d8536..179c0e496c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -64,7 +64,7 @@
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
"@playwright/test": "1.53.0",
"@stoplight/spectral-cli": "6.15.0",
- "@stylistic/eslint-plugin-js": "4.4.1",
+ "@stylistic/eslint-plugin": "4.4.1",
"@stylistic/stylelint-plugin": "3.1.2",
"@vitejs/plugin-vue": "5.2.4",
"@vitest/coverage-v8": "3.2.3",
@@ -84,7 +84,7 @@
"eslint-plugin-vitest-globals": "1.5.0",
"eslint-plugin-vue": "10.2.0",
"eslint-plugin-vue-scoped-css": "2.10.0",
- "eslint-plugin-wc": "2.2.1",
+ "eslint-plugin-wc": "3.0.1",
"globals": "16.1.0",
"happy-dom": "18.0.0",
"license-checker-rseidelsohn": "4.4.2",
@@ -3011,15 +3011,18 @@
"node": "^12.20 || >=14.13"
}
},
- "node_modules/@stylistic/eslint-plugin-js": {
+ "node_modules/@stylistic/eslint-plugin": {
"version": "4.4.1",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin-js/-/eslint-plugin-js-4.4.1.tgz",
- "integrity": "sha512-eLisyHvx7Sel8vcFZOEwDEBGmYsYM1SqDn81BWgmbqEXfXRf8oe6Rwp+ryM/8odNjlxtaaxp0Ihmt86CnLAxKg==",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-4.4.1.tgz",
+ "integrity": "sha512-CEigAk7eOLyHvdgmpZsKFwtiqS2wFwI1fn4j09IU9GmD4euFM4jEBAViWeCqaNLlbX2k2+A/Fq9cje4HQBXuJQ==",
"dev": true,
"license": "MIT",
"dependencies": {
+ "@typescript-eslint/utils": "^8.32.1",
"eslint-visitor-keys": "^4.2.0",
- "espree": "^10.3.0"
+ "espree": "^10.3.0",
+ "estraverse": "^5.3.0",
+ "picomatch": "^4.0.2"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -3028,6 +3031,19 @@
"eslint": ">=9.0.0"
}
},
+ "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
+ "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
"node_modules/@stylistic/stylelint-plugin": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/@stylistic/stylelint-plugin/-/stylelint-plugin-3.1.2.tgz",
@@ -7683,14 +7699,14 @@
}
},
"node_modules/eslint-plugin-wc": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-2.2.1.tgz",
- "integrity": "sha512-KstLqGmyQz088DvFlDYHg0sHih+w2QeulreCi1D1ftr357klO2zqHdG/bbnNMmuQdVFDuNkopNIyNhmG0XCT/g==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-wc/-/eslint-plugin-wc-3.0.1.tgz",
+ "integrity": "sha512-0p1wkSlA2Ue3FA4qW+5LZ+15sy0p1nUyVl1eyBMLq4rtN1LtE9IdI49BXNWMz8N8bM/y7Ulx8SWGAni5f8XO5g==",
"dev": true,
"license": "MIT",
"dependencies": {
"is-valid-element-name": "^1.0.0",
- "js-levenshtein-esm": "^1.2.0"
+ "js-levenshtein-esm": "^2.0.0"
},
"peerDependencies": {
"eslint": ">=8.40.0"
@@ -9692,9 +9708,9 @@
}
},
"node_modules/js-levenshtein-esm": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-1.2.0.tgz",
- "integrity": "sha512-fzreKVq1eD7eGcQr7MtRpQH94f8gIfhdrc7yeih38xh684TNMK9v5aAu2wxfIRMk/GpAJRrzcirMAPIaSDaByQ==",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/js-levenshtein-esm/-/js-levenshtein-esm-2.0.0.tgz",
+ "integrity": "sha512-1n4LEPOL4wRXY8rOQcuA7Iuaphe5xCMayvufCzlLAi+hRsnBRDbSS6XPuV58CBVJxj5D9ApFLyjQ7KzFToyHBw==",
"dev": true,
"license": "MIT"
},
diff --git a/package.json b/package.json
index b4d170fdb9..409edecd95 100644
--- a/package.json
+++ b/package.json
@@ -63,7 +63,7 @@
"@eslint-community/eslint-plugin-eslint-comments": "4.5.0",
"@playwright/test": "1.53.0",
"@stoplight/spectral-cli": "6.15.0",
- "@stylistic/eslint-plugin-js": "4.4.1",
+ "@stylistic/eslint-plugin": "4.4.1",
"@stylistic/stylelint-plugin": "3.1.2",
"@vitejs/plugin-vue": "5.2.4",
"@vitest/coverage-v8": "3.2.3",
@@ -83,7 +83,7 @@
"eslint-plugin-vitest-globals": "1.5.0",
"eslint-plugin-vue": "10.2.0",
"eslint-plugin-vue-scoped-css": "2.10.0",
- "eslint-plugin-wc": "2.2.1",
+ "eslint-plugin-wc": "3.0.1",
"globals": "16.1.0",
"happy-dom": "18.0.0",
"license-checker-rseidelsohn": "4.4.2",
diff --git a/release-notes-published/11.0.2.md b/release-notes-published/11.0.2.md
new file mode 100644
index 0000000000..a1a8549984
--- /dev/null
+++ b/release-notes-published/11.0.2.md
@@ -0,0 +1,33 @@
+
+
+
+
+## Release notes
+
+- Features
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7986) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7991)): feat: make Forgejo Actions server logs less noisy
+- Bug fixes
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/8155) ([backported](https://codeberg.org/forgejo/forgejo/pulls/8167)): fix: do not fail when release or wiki is set in `/repos/migrate` API
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7976) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7985)): fix: ignore expired artifacts for quota calculation
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7979) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7983)): fix: pull request cross references
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7883) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7886)): fix: quote reply in Chromium
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7775) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7779)): fix: make hash pattern more strict
+- Included for completeness but not worth a release note
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/8112) ([backported](https://codeberg.org/forgejo/forgejo/pulls/8120)): fix: remove download attribute from external assets
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/8110): Update bleve to v2.5.2 with changes made in backport of 2.5.0
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/8094) ([backported](https://codeberg.org/forgejo/forgejo/pulls/8095)): fix: show membership of limited orgs
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/8059): Update dependency go to v1.24.3 (v11.0/forgejo)
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/8057): chore: drop unused `@typescript-eslint/parser` package
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/8021) ([backported](https://codeberg.org/forgejo/forgejo/pulls/8022)): chore(cleanup): suppress non actionable XORM warnings
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7987) ([backported](https://codeberg.org/forgejo/forgejo/pulls/8000)): fix: aggregate deleted team as ghost team
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7925) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7937)): fix(ui): center footer links
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7894) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7903)): fix(ui): fix force-push compare line layout
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7884) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7887)): fix: parse `change-id` in the git commit header
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7885): Update module github.com/blevesearch/bleve/v2 to v2.5.1 (v11.0/forgejo) - abandoned
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7746) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7871)): fix(ui): improve force-push compare line layout
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7640) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7869)): fix: Remove "create branch" button on mirrored repos
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7858): Update module github.com/msteinert/pam/v2 to v2.1.0 (v11.0/forgejo)
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7817) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7821)): fix: replace ß with ss in normalizeUserName
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7784) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7786)): fix(api): document `is_system_webhook` field
+ - [PR](https://codeberg.org/forgejo/forgejo/pulls/7773) ([backported](https://codeberg.org/forgejo/forgejo/pulls/7774)): fix: remove artificial delay for PR update
+
diff --git a/routers/web/user/profile.go b/routers/web/user/profile.go
index 8068c1c6bc..58f6d4a5f2 100644
--- a/routers/web/user/profile.go
+++ b/routers/web/user/profile.go
@@ -70,17 +70,6 @@ func userProfile(ctx *context.Context) {
ctx.Data["OpenGraphURL"] = ctx.ContextUser.HTMLURL()
ctx.Data["OpenGraphDescription"] = ctx.ContextUser.Description
- // prepare heatmap data
- if setting.Service.EnableUserHeatmap {
- data, err := activities_model.GetUserHeatmapDataByUser(ctx, ctx.ContextUser, ctx.Doer)
- if err != nil {
- ctx.ServerError("GetUserHeatmapDataByUser", err)
- return
- }
- ctx.Data["HeatmapData"] = data
- ctx.Data["HeatmapTotalContributions"] = activities_model.GetTotalContributionsInHeatmap(data)
- }
-
profileDbRepo, profileGitRepo, profileReadmeBlob, profileClose := shared_user.FindUserProfileReadme(ctx, ctx.Doer)
defer profileClose()
@@ -186,6 +175,17 @@ func prepareUserProfileTabData(ctx *context.Context, showPrivate bool, profileDb
ctx.Data["CardsNoneMsg"] = ctx.Tr("followers.outgoing.list.none", ctx.ContextUser.Name)
}
case "activity":
+ // prepare heatmap data
+ if setting.Service.EnableUserHeatmap {
+ data, err := activities_model.GetUserHeatmapDataByUser(ctx, ctx.ContextUser, ctx.Doer)
+ if err != nil {
+ ctx.ServerError("GetUserHeatmapDataByUser", err)
+ return
+ }
+ ctx.Data["HeatmapData"] = data
+ ctx.Data["HeatmapTotalContributions"] = activities_model.GetTotalContributionsInHeatmap(data)
+ }
+
date := ctx.FormString("date")
pagingNum = setting.UI.FeedPagingNum
items, count, err := activities_model.GetFeeds(ctx, activities_model.GetFeedsOptions{
diff --git a/services/migrations/gitea_uploader.go b/services/migrations/gitea_uploader.go
index 55adad9685..7887dacdb1 100644
--- a/services/migrations/gitea_uploader.go
+++ b/services/migrations/gitea_uploader.go
@@ -766,7 +766,7 @@ func (g *GiteaLocalUploader) newPullRequest(pr *base.PullRequest) (*issues_model
issue := issues_model.Issue{
RepoID: g.repo.ID,
Repo: g.repo,
- Title: prTitle,
+ Title: util.TruncateRunes(prTitle, 255),
Index: pr.Number,
Content: pr.Content,
MilestoneID: milestoneID,
diff --git a/templates/repo/issue/filter_list.tmpl b/templates/repo/issue/filter_list.tmpl
index ae50ac4c46..84ba6e5358 100644
--- a/templates/repo/issue/filter_list.tmpl
+++ b/templates/repo/issue/filter_list.tmpl
@@ -127,7 +127,7 @@
{{svg "octicon-triangle-down" 14 "dropdown icon"}}