mirror of
https://github.com/go-gitea/gitea
synced 2024-12-22 02:37:54 +01:00
Merge branch 'main' into main
This commit is contained in:
commit
0fa37df933
8
Makefile
8
Makefile
@ -26,17 +26,17 @@ COMMA := ,
|
|||||||
XGO_VERSION := go-1.23.x
|
XGO_VERSION := go-1.23.x
|
||||||
|
|
||||||
AIR_PACKAGE ?= github.com/air-verse/air@v1
|
AIR_PACKAGE ?= github.com/air-verse/air@v1
|
||||||
EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-checker/cmd/editorconfig-checker@2.7.0
|
EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-checker/v3/cmd/editorconfig-checker@v3.0.3
|
||||||
GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.7.0
|
GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.7.0
|
||||||
GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.2
|
GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.62.2
|
||||||
GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.11
|
GXZ_PACKAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.12
|
||||||
MISSPELL_PACKAGE ?= github.com/golangci/misspell/cmd/misspell@v0.5.1
|
MISSPELL_PACKAGE ?= github.com/golangci/misspell/cmd/misspell@v0.6.0
|
||||||
SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.31.0
|
SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.31.0
|
||||||
XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest
|
XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest
|
||||||
GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1
|
GO_LICENSES_PACKAGE ?= github.com/google/go-licenses@v1
|
||||||
GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1
|
GOVULNCHECK_PACKAGE ?= golang.org/x/vuln/cmd/govulncheck@v1
|
||||||
ACTIONLINT_PACKAGE ?= github.com/rhysd/actionlint/cmd/actionlint@v1
|
ACTIONLINT_PACKAGE ?= github.com/rhysd/actionlint/cmd/actionlint@v1
|
||||||
GOPLS_PACKAGE ?= golang.org/x/tools/gopls@v0.15.3
|
GOPLS_PACKAGE ?= golang.org/x/tools/gopls@v0.17.0
|
||||||
|
|
||||||
DOCKER_IMAGE ?= gitea/gitea
|
DOCKER_IMAGE ?= gitea/gitea
|
||||||
DOCKER_TAG ?= latest
|
DOCKER_TAG ?= latest
|
||||||
|
@ -24,7 +24,7 @@ type GlobalVarsType struct {
|
|||||||
LinkRegex *regexp.Regexp // fast matching a URL link, no any extra validation.
|
LinkRegex *regexp.Regexp // fast matching a URL link, no any extra validation.
|
||||||
}
|
}
|
||||||
|
|
||||||
var GlobalVars = sync.OnceValue[*GlobalVarsType](func() *GlobalVarsType {
|
var GlobalVars = sync.OnceValue(func() *GlobalVarsType {
|
||||||
v := &GlobalVarsType{}
|
v := &GlobalVarsType{}
|
||||||
v.wwwURLRegxp = regexp.MustCompile(`^www\.[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}((?:/|[#?])[-a-zA-Z0-9@:%_\+.~#!?&//=\(\);,'">\^{}\[\]` + "`" + `]*)?`)
|
v.wwwURLRegxp = regexp.MustCompile(`^www\.[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}((?:/|[#?])[-a-zA-Z0-9@:%_\+.~#!?&//=\(\);,'">\^{}\[\]` + "`" + `]*)?`)
|
||||||
v.LinkRegex, _ = xurls.StrictMatchingScheme("https?://")
|
v.LinkRegex, _ = xurls.StrictMatchingScheme("https?://")
|
||||||
|
@ -42,7 +42,7 @@ type globalVarsType struct {
|
|||||||
nulCleaner *strings.Replacer
|
nulCleaner *strings.Replacer
|
||||||
}
|
}
|
||||||
|
|
||||||
var globalVars = sync.OnceValue[*globalVarsType](func() *globalVarsType {
|
var globalVars = sync.OnceValue(func() *globalVarsType {
|
||||||
v := &globalVarsType{}
|
v := &globalVarsType{}
|
||||||
// NOTE: All below regex matching do not perform any extra validation.
|
// NOTE: All below regex matching do not perform any extra validation.
|
||||||
// Thus a link is produced even if the linked entity does not exist.
|
// Thus a link is produced even if the linked entity does not exist.
|
||||||
|
@ -17,7 +17,7 @@ import (
|
|||||||
"golang.org/x/net/html"
|
"golang.org/x/net/html"
|
||||||
)
|
)
|
||||||
|
|
||||||
var reAttrClass = sync.OnceValue[*regexp.Regexp](func() *regexp.Regexp {
|
var reAttrClass = sync.OnceValue(func() *regexp.Regexp {
|
||||||
// TODO: it isn't a problem at the moment because our HTML contents are always well constructed
|
// TODO: it isn't a problem at the moment because our HTML contents are always well constructed
|
||||||
return regexp.MustCompile(`(<[^>]+)\s+class="([^"]+)"([^>]*>)`)
|
return regexp.MustCompile(`(<[^>]+)\s+class="([^"]+)"([^>]*>)`)
|
||||||
})
|
})
|
||||||
|
@ -112,7 +112,7 @@ func (g *ASTTransformer) Transform(node *ast.Document, reader text.Reader, pc pa
|
|||||||
}
|
}
|
||||||
|
|
||||||
// it is copied from old code, which is quite doubtful whether it is correct
|
// it is copied from old code, which is quite doubtful whether it is correct
|
||||||
var reValidIconName = sync.OnceValue[*regexp.Regexp](func() *regexp.Regexp {
|
var reValidIconName = sync.OnceValue(func() *regexp.Regexp {
|
||||||
return regexp.MustCompile(`^[-\w]+$`) // old: regexp.MustCompile("^[a-z ]+$")
|
return regexp.MustCompile(`^[-\w]+$`) // old: regexp.MustCompile("^[a-z ]+$")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ type timeStrGlobalVarsType struct {
|
|||||||
// In the future, it could be some configurable options to help users
|
// In the future, it could be some configurable options to help users
|
||||||
// to convert the working time to different units.
|
// to convert the working time to different units.
|
||||||
|
|
||||||
var timeStrGlobalVars = sync.OnceValue[*timeStrGlobalVarsType](func() *timeStrGlobalVarsType {
|
var timeStrGlobalVars = sync.OnceValue(func() *timeStrGlobalVarsType {
|
||||||
v := &timeStrGlobalVarsType{}
|
v := &timeStrGlobalVarsType{}
|
||||||
v.re = regexp.MustCompile(`(?i)(\d+)\s*([hms])`)
|
v.re = regexp.MustCompile(`(?i)(\d+)\s*([hms])`)
|
||||||
v.units = []struct {
|
v.units = []struct {
|
||||||
|
@ -242,10 +242,10 @@ func TestReserveLineBreakForTextarea(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestOptionalArg(t *testing.T) {
|
func TestOptionalArg(t *testing.T) {
|
||||||
foo := func(other any, optArg ...int) int {
|
foo := func(_ any, optArg ...int) int {
|
||||||
return OptionalArg(optArg)
|
return OptionalArg(optArg)
|
||||||
}
|
}
|
||||||
bar := func(other any, optArg ...int) int {
|
bar := func(_ any, optArg ...int) int {
|
||||||
return OptionalArg(optArg, 42)
|
return OptionalArg(optArg, 42)
|
||||||
}
|
}
|
||||||
assert.Equal(t, 0, foo(nil))
|
assert.Equal(t, 0, foo(nil))
|
||||||
|
@ -1669,12 +1669,25 @@ issues.delete.title=このイシューを削除しますか?
|
|||||||
issues.delete.text=本当にこのイシューを削除しますか? (これはすべてのコンテンツを完全に削除します。 保存しておきたい場合は、代わりにクローズすることを検討してください)
|
issues.delete.text=本当にこのイシューを削除しますか? (これはすべてのコンテンツを完全に削除します。 保存しておきたい場合は、代わりにクローズすることを検討してください)
|
||||||
|
|
||||||
issues.tracker=タイムトラッカー
|
issues.tracker=タイムトラッカー
|
||||||
|
issues.timetracker_timer_start=タイマー開始
|
||||||
|
issues.timetracker_timer_stop=タイマー終了
|
||||||
|
issues.timetracker_timer_discard=タイマー破棄
|
||||||
|
issues.timetracker_timer_manually_add=時間を追加
|
||||||
|
|
||||||
|
issues.time_estimate_set=見積時間を設定
|
||||||
|
issues.time_estimate_display=見積時間: %s
|
||||||
|
issues.change_time_estimate_at=が見積時間を <b>%s</b> に変更 %s
|
||||||
|
issues.remove_time_estimate_at=が見積時間を削除 %s
|
||||||
|
issues.time_estimate_invalid=見積時間のフォーマットが不正です
|
||||||
|
issues.start_tracking_history=が作業を開始 %s
|
||||||
issues.tracker_auto_close=タイマーは、このイシューがクローズされると自動的に終了します
|
issues.tracker_auto_close=タイマーは、このイシューがクローズされると自動的に終了します
|
||||||
issues.tracking_already_started=`<a href="%s">別のイシュー</a>で既にタイムトラッキングを開始しています!`
|
issues.tracking_already_started=`<a href="%s">別のイシュー</a>で既にタイムトラッキングを開始しています!`
|
||||||
|
issues.stop_tracking_history=が <b>%s</b> の作業を終了 %s
|
||||||
issues.cancel_tracking_history=`がタイムトラッキングを中止 %s`
|
issues.cancel_tracking_history=`がタイムトラッキングを中止 %s`
|
||||||
issues.del_time=このタイムログを削除
|
issues.del_time=このタイムログを削除
|
||||||
|
issues.add_time_history=が作業時間 <b>%s</b> を追加 %s
|
||||||
issues.del_time_history=`が作業時間を削除 %s`
|
issues.del_time_history=`が作業時間を削除 %s`
|
||||||
|
issues.add_time_manually=時間の手入力
|
||||||
issues.add_time_hours=時間
|
issues.add_time_hours=時間
|
||||||
issues.add_time_minutes=分
|
issues.add_time_minutes=分
|
||||||
issues.add_time_sum_to_small=時間が入力されていません。
|
issues.add_time_sum_to_small=時間が入力されていません。
|
||||||
@ -1694,15 +1707,15 @@ issues.due_date_form_add=期日の追加
|
|||||||
issues.due_date_form_edit=変更
|
issues.due_date_form_edit=変更
|
||||||
issues.due_date_form_remove=削除
|
issues.due_date_form_remove=削除
|
||||||
issues.due_date_not_writer=イシューの期日を変更するには、リポジトリへの書き込み権限が必要です。
|
issues.due_date_not_writer=イシューの期日を変更するには、リポジトリへの書き込み権限が必要です。
|
||||||
issues.due_date_not_set=期日は未設定です。
|
issues.due_date_not_set=期日は設定されていません。
|
||||||
issues.due_date_added=が期日 %s を追加 %s
|
issues.due_date_added=が期日 %s を追加 %s
|
||||||
issues.due_date_modified=が期日を %[2]s から %[1]s に変更 %[3]s
|
issues.due_date_modified=が期日を %[2]s から %[1]s に変更 %[3]s
|
||||||
issues.due_date_remove=が期日 %s を削除 %s
|
issues.due_date_remove=が期日 %s を削除 %s
|
||||||
issues.due_date_overdue=期日は過ぎています
|
issues.due_date_overdue=期日は過ぎています
|
||||||
issues.due_date_invalid=期日が正しくないか範囲を超えています。 'yyyy-mm-dd' の形式で入力してください。
|
issues.due_date_invalid=期日が正しくないか範囲を超えています。 'yyyy-mm-dd' の形式で入力してください。
|
||||||
issues.dependency.title=依存関係
|
issues.dependency.title=依存関係
|
||||||
issues.dependency.issue_no_dependencies=依存関係が設定されていません。
|
issues.dependency.issue_no_dependencies=依存関係は設定されていません。
|
||||||
issues.dependency.pr_no_dependencies=依存関係が設定されていません。
|
issues.dependency.pr_no_dependencies=依存関係は設定されていません。
|
||||||
issues.dependency.no_permission_1=%d 個の依存関係への読み取り権限がありません
|
issues.dependency.no_permission_1=%d 個の依存関係への読み取り権限がありません
|
||||||
issues.dependency.no_permission_n=%d 個の依存関係への読み取り権限がありません
|
issues.dependency.no_permission_n=%d 個の依存関係への読み取り権限がありません
|
||||||
issues.dependency.no_permission.can_remove=この依存関係への読み取り権限はありませんが、この依存関係は削除できます
|
issues.dependency.no_permission.can_remove=この依存関係への読み取り権限はありませんが、この依存関係は削除できます
|
||||||
|
2134
package-lock.json
generated
2134
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
32
package.json
32
package.json
@ -12,7 +12,7 @@
|
|||||||
"@github/relative-time-element": "4.4.4",
|
"@github/relative-time-element": "4.4.4",
|
||||||
"@github/text-expander-element": "2.8.0",
|
"@github/text-expander-element": "2.8.0",
|
||||||
"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
|
"@mcaptcha/vanilla-glue": "0.1.0-alpha-3",
|
||||||
"@primer/octicons": "19.13.0",
|
"@primer/octicons": "19.14.0",
|
||||||
"@silverwind/vue3-calendar-heatmap": "2.0.6",
|
"@silverwind/vue3-calendar-heatmap": "2.0.6",
|
||||||
"add-asset-webpack-plugin": "3.0.0",
|
"add-asset-webpack-plugin": "3.0.0",
|
||||||
"ansi_up": "6.0.2",
|
"ansi_up": "6.0.2",
|
||||||
@ -32,12 +32,12 @@
|
|||||||
"htmx.org": "2.0.4",
|
"htmx.org": "2.0.4",
|
||||||
"idiomorph": "0.3.0",
|
"idiomorph": "0.3.0",
|
||||||
"jquery": "3.7.1",
|
"jquery": "3.7.1",
|
||||||
"katex": "0.16.11",
|
"katex": "0.16.18",
|
||||||
"license-checker-webpack-plugin": "0.2.1",
|
"license-checker-webpack-plugin": "0.2.1",
|
||||||
"mermaid": "11.4.1",
|
"mermaid": "11.4.1",
|
||||||
"mini-css-extract-plugin": "2.9.2",
|
"mini-css-extract-plugin": "2.9.2",
|
||||||
"minimatch": "10.0.1",
|
"minimatch": "10.0.1",
|
||||||
"monaco-editor": "0.52.0",
|
"monaco-editor": "0.52.2",
|
||||||
"monaco-editor-webpack-plugin": "7.1.0",
|
"monaco-editor-webpack-plugin": "7.1.0",
|
||||||
"pdfobject": "2.3.0",
|
"pdfobject": "2.3.0",
|
||||||
"perfect-debounce": "1.0.0",
|
"perfect-debounce": "1.0.0",
|
||||||
@ -46,7 +46,7 @@
|
|||||||
"postcss-nesting": "13.0.1",
|
"postcss-nesting": "13.0.1",
|
||||||
"sortablejs": "1.15.6",
|
"sortablejs": "1.15.6",
|
||||||
"swagger-ui-dist": "5.18.2",
|
"swagger-ui-dist": "5.18.2",
|
||||||
"tailwindcss": "3.4.16",
|
"tailwindcss": "3.4.17",
|
||||||
"throttle-debounce": "5.0.2",
|
"throttle-debounce": "5.0.2",
|
||||||
"tinycolor2": "1.6.0",
|
"tinycolor2": "1.6.0",
|
||||||
"tippy.js": "6.3.7",
|
"tippy.js": "6.3.7",
|
||||||
@ -59,16 +59,16 @@
|
|||||||
"vue-bar-graph": "2.2.0",
|
"vue-bar-graph": "2.2.0",
|
||||||
"vue-chartjs": "5.3.2",
|
"vue-chartjs": "5.3.2",
|
||||||
"vue-loader": "17.4.2",
|
"vue-loader": "17.4.2",
|
||||||
"webpack": "5.97.0",
|
"webpack": "5.97.1",
|
||||||
"webpack-cli": "5.1.4",
|
"webpack-cli": "5.1.4",
|
||||||
"wrap-ansi": "9.0.0"
|
"wrap-ansi": "9.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
|
"@eslint-community/eslint-plugin-eslint-comments": "4.4.1",
|
||||||
"@playwright/test": "1.49.0",
|
"@playwright/test": "1.49.1",
|
||||||
"@silverwind/vue-tsc": "2.1.13",
|
"@silverwind/vue-tsc": "2.1.13",
|
||||||
"@stoplight/spectral-cli": "6.14.2",
|
"@stoplight/spectral-cli": "6.14.2",
|
||||||
"@stylistic/eslint-plugin-js": "2.11.0",
|
"@stylistic/eslint-plugin-js": "2.12.1",
|
||||||
"@stylistic/stylelint-plugin": "3.1.1",
|
"@stylistic/stylelint-plugin": "3.1.1",
|
||||||
"@types/dropzone": "5.7.9",
|
"@types/dropzone": "5.7.9",
|
||||||
"@types/jquery": "3.5.32",
|
"@types/jquery": "3.5.32",
|
||||||
@ -80,19 +80,19 @@
|
|||||||
"@types/throttle-debounce": "5.0.2",
|
"@types/throttle-debounce": "5.0.2",
|
||||||
"@types/tinycolor2": "1.4.6",
|
"@types/tinycolor2": "1.4.6",
|
||||||
"@types/toastify-js": "1.12.3",
|
"@types/toastify-js": "1.12.3",
|
||||||
"@typescript-eslint/eslint-plugin": "8.17.0",
|
"@typescript-eslint/eslint-plugin": "8.18.1",
|
||||||
"@typescript-eslint/parser": "8.17.0",
|
"@typescript-eslint/parser": "8.18.1",
|
||||||
"@vitejs/plugin-vue": "5.2.1",
|
"@vitejs/plugin-vue": "5.2.1",
|
||||||
"eslint": "8.57.0",
|
"eslint": "8.57.0",
|
||||||
"eslint-import-resolver-typescript": "3.7.0",
|
"eslint-import-resolver-typescript": "3.7.0",
|
||||||
"eslint-plugin-array-func": "4.0.0",
|
"eslint-plugin-array-func": "4.0.0",
|
||||||
"eslint-plugin-github": "5.1.3",
|
"eslint-plugin-github": "5.1.4",
|
||||||
"eslint-plugin-import-x": "4.5.0",
|
"eslint-plugin-import-x": "4.6.1",
|
||||||
"eslint-plugin-no-jquery": "3.1.0",
|
"eslint-plugin-no-jquery": "3.1.0",
|
||||||
"eslint-plugin-no-use-extend-native": "0.5.0",
|
"eslint-plugin-no-use-extend-native": "0.5.0",
|
||||||
"eslint-plugin-playwright": "2.1.0",
|
"eslint-plugin-playwright": "2.1.0",
|
||||||
"eslint-plugin-regexp": "2.7.0",
|
"eslint-plugin-regexp": "2.7.0",
|
||||||
"eslint-plugin-sonarjs": "2.0.4",
|
"eslint-plugin-sonarjs": "3.0.1",
|
||||||
"eslint-plugin-unicorn": "56.0.1",
|
"eslint-plugin-unicorn": "56.0.1",
|
||||||
"eslint-plugin-vitest": "0.4.1",
|
"eslint-plugin-vitest": "0.4.1",
|
||||||
"eslint-plugin-vitest-globals": "1.5.0",
|
"eslint-plugin-vitest-globals": "1.5.0",
|
||||||
@ -101,15 +101,15 @@
|
|||||||
"eslint-plugin-wc": "2.2.0",
|
"eslint-plugin-wc": "2.2.0",
|
||||||
"happy-dom": "15.11.7",
|
"happy-dom": "15.11.7",
|
||||||
"markdownlint-cli": "0.43.0",
|
"markdownlint-cli": "0.43.0",
|
||||||
"nolyfill": "1.0.42",
|
"nolyfill": "1.0.43",
|
||||||
"postcss-html": "1.7.0",
|
"postcss-html": "1.7.0",
|
||||||
"stylelint": "16.11.0",
|
"stylelint": "16.12.0",
|
||||||
"stylelint-declaration-block-no-ignored-properties": "2.8.0",
|
"stylelint-declaration-block-no-ignored-properties": "2.8.0",
|
||||||
"stylelint-declaration-strict-value": "1.10.6",
|
"stylelint-declaration-strict-value": "1.10.6",
|
||||||
"stylelint-value-no-unknown-custom-properties": "6.0.1",
|
"stylelint-value-no-unknown-custom-properties": "6.0.1",
|
||||||
"svgo": "3.3.2",
|
"svgo": "3.3.2",
|
||||||
"type-fest": "4.30.0",
|
"type-fest": "4.30.2",
|
||||||
"updates": "16.4.0",
|
"updates": "16.4.1",
|
||||||
"vite-string-plugin": "1.3.4",
|
"vite-string-plugin": "1.3.4",
|
||||||
"vitest": "2.1.8"
|
"vitest": "2.1.8"
|
||||||
},
|
},
|
||||||
|
@ -701,9 +701,6 @@ func viewPullFiles(ctx *context.Context, specifiedStartCommit, specifiedEndCommi
|
|||||||
|
|
||||||
if ctx.Written() {
|
if ctx.Written() {
|
||||||
return
|
return
|
||||||
} else if prInfo == nil {
|
|
||||||
ctx.NotFound("ViewPullFiles", nil)
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
|
|
||||||
headCommitID, err := gitRepo.GetRefCommitID(pull.GetGitRefName())
|
headCommitID, err := gitRepo.GetRefCommitID(pull.GetGitRefName())
|
||||||
|
Loading…
Reference in New Issue
Block a user