]> source.dussan.org Git - gitea.git/log
gitea.git
2 days agoFix PR diff review form submit (#32596)
wxiaoguang [Thu, 21 Nov 2024 14:09:16 +0000 (22:09 +0800)]
Fix PR diff review form submit (#32596)

Fix #31622, there is a longstanding bug in #19612,
it doesn't handle submit event, correctly.

2 days agoFix some typescript issues (#32586)
silverwind [Thu, 21 Nov 2024 13:57:42 +0000 (14:57 +0100)]
Fix some typescript issues (#32586)

Fixes around 30 or so typescript errors. No runtime changes.

3 days agoFix GetInactiveUsers (#32540)
Lunny Xiao [Thu, 21 Nov 2024 04:55:32 +0000 (20:55 -0800)]
Fix GetInactiveUsers (#32540)

Fix #31480

3 days agodisable gravatar in test (#32529)
Rowan Bohde [Thu, 21 Nov 2024 04:30:48 +0000 (22:30 -0600)]
disable gravatar in test (#32529)

When running e2e tests on flaky networks, gravatar can cause a timeout
and test failures. Turn off, and populate avatars on e2e test suite run
to make them reliable.

3 days agoAdd 'Copy path' button to file view (#32584)
silverwind [Thu, 21 Nov 2024 04:03:17 +0000 (05:03 +0100)]
Add 'Copy path' button to file view (#32584)

Also adds a tooltip which is replicated to the same button in the diff
box. Fixes: https://github.com/go-gitea/gitea/issues/32583

3 days agoImprove issue sidebar UI (#32587)
wxiaoguang [Thu, 21 Nov 2024 03:31:54 +0000 (11:31 +0800)]
Improve issue sidebar UI (#32587)

1. remove duplicate dividers
2. align reviewer items
3. merge & remove unused CSS styles

Before:

<details>

![image](https://github.com/user-attachments/assets/1b3121ee-b5fa-4fe9-b0f2-344d96dc5fbc)

![image](https://github.com/user-attachments/assets/ba8b97e6-114d-488c-adee-48f6c7a3b580)

</details>

After:

<details>

![image](https://github.com/user-attachments/assets/978eab3e-a5d7-4b68-90ce-079b61994d25)

![image](https://github.com/user-attachments/assets/a8b58a27-dd05-4c8d-be60-816439ce77c6)

![image](https://github.com/user-attachments/assets/b7e6a16c-bf98-4465-a805-9f4a642d366e)

</details>

3 days agoSupplement and Improvement for #32558 (#32585)
Kerwin Bryant [Thu, 21 Nov 2024 02:42:37 +0000 (10:42 +0800)]
Supplement and Improvement for #32558 (#32585)

Thank you for @wxiaoguang's reminders and suggestions:
https://github.com/go-gitea/gitea/pull/32558#discussion_r1849972913

3 days agomake search box in issue sidebar dropdown list always show when scrolling (#32576)
a1012112796 [Thu, 21 Nov 2024 01:23:50 +0000 (09:23 +0800)]
make search box in issue sidebar dropdown list always show when scrolling (#32576)

as title, replace #31597 after #32460

---------

Signed-off-by: a1012112796 <1012112796@qq.com>
3 days agoFix submodule parsing (#32571)
Lunny Xiao [Wed, 20 Nov 2024 19:26:12 +0000 (11:26 -0800)]
Fix submodule parsing (#32571)

Fix #32568, parse `.gitmodules` correctly

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
3 days agoallow the actions user to login via the jwt token (#32527)
Rowan Bohde [Wed, 20 Nov 2024 15:24:09 +0000 (09:24 -0600)]
allow the actions user to login via the jwt token (#32527)

We have some actions that leverage the Gitea API that began receiving
401 errors, with a message that the user was not found. These actions
use the `ACTIONS_RUNTIME_TOKEN` env var in the actions job to
authenticate with the Gitea API. The format of this env var in actions
jobs changed with go-gitea/gitea/pull/28885 to be a JWT (with a
corresponding update to `act_runner`) Since it was a JWT, the OAuth
parsing logic attempted to parse it as an OAuth token, and would return
user not found, instead of falling back to look up the running task and
assigning it to the actions user.

Make ACTIONS_RUNTIME_TOKEN in action runners could be used,
attempting to parse Oauth JWTs. The code to parse potential old
`ACTION_RUNTIME_TOKEN` was kept in case someone is running an older
version of act_runner that doesn't support the Actions JWT.

3 days agoSupport HTTP POST requests to `/userinfo`, aligning to OpenID Core specification...
Marcell Mars [Wed, 20 Nov 2024 14:22:48 +0000 (15:22 +0100)]
Support HTTP POST requests to `/userinfo`, aligning to OpenID Core specification (#32578)

This PR adds support for the HTTP POST requests to `/userinfo` endpoint.
While the OpenID Core specification says both are supported and
recommends using HTTP GET.

ref: https://openid.net/specs/openid-connect-core-1_0.html#UserInfo

4 days agoRemove duplicate empty repo check in delete branch API (#32569)
Kemal Zebari [Wed, 20 Nov 2024 01:05:06 +0000 (17:05 -0800)]
Remove duplicate empty repo check in delete branch API (#32569)

Found while working on #32433.

This branch will never be executed because we have would have already
made the same check a couple lines above.

4 days agoOptimize installation-page experience (#32558)
Kerwin Bryant [Wed, 20 Nov 2024 00:39:57 +0000 (08:39 +0800)]
Optimize installation-page experience (#32558)

![3000-gogitea-gitea-kiagpwhqbx1 ws-us116 gitpod io_
(1)](https://github.com/user-attachments/assets/7f9ff835-7122-420e-83a9-218a1b9c7030)
Highlight the path of the configuration file with a label-style emphasis
and provide a quick copy button.

4 days agoRemove unnecessary code (#32560)
Lunny Xiao [Tue, 19 Nov 2024 16:21:13 +0000 (08:21 -0800)]
Remove unnecessary code (#32560)

PushMirrors only be used in the repository setting page. So it should
not be loaded on every repository page.

5 days agoFix a compilation error in the Gitpod environment (#32559)
Kerwin Bryant [Tue, 19 Nov 2024 06:57:55 +0000 (14:57 +0800)]
Fix a compilation error in the Gitpod environment (#32559)

When opening the latest code in **Gitpod** and running `make
lint-backend`, the following error occurs:
```bash
gitpod /workspace/gitea (main) $ make lint-backend
go run github.com/golangci/golangci-lint/cmd/golangci-lint@v1.60.3 run
# internal/profilerecord
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/goarch
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# unicode/utf8
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/coverage/rtcov
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/byteorder
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# cmp
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/itoa
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/race
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/goos
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/unsafeheader
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# unicode
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/godebugs
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/asan
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# math/bits
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/goexperiment
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/msan
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/runtime/atomic
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# sync/atomic
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/runtime/syscall
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# crypto/internal/alias
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# encoding
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# log/internal
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# vendor/golang.org/x/crypto/cryptobyte/asn1
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/golangci/golangci-lint/pkg/exitcodes
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/cpu
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# unicode/utf16
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# container/list
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# crypto/subtle
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/goversion
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# golang.org/x/exp/maps
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/ccojocar/zxcvbn-go/match
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# golang.org/x/exp/constraints
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# golang.org/x/tools/internal/packagesinternal
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/quasilyte/go-ruleguard/dsl/types
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# vendor/golang.org/x/crypto/internal/alias
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/nettrace
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/google/go-cmp/cmp/internal/flags
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/gobwas/glob/util/runes
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# internal/platform
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# crypto/internal/boring/sig
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/quasilyte/gogrep/internal/stdinfo
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/daixiang0/gci/pkg/utils
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/quasilyte/stdinfo
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/Antonboom/testifylint/internal/testify
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# hash/maphash
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# github.com/nunnatsa/ginkgolinter/version
compile: version "go1.23.1" does not match go tool version "go1.22.9"
# google.golang.org/protobuf/internal/flags
compile: version "go1.23.1" does not match go tool version "go1.22.9"
make: *** [Makefile:413: lint-go] Error 1
```

6 days agoUse user.FullName in Oauth2 id_token response (#32542)
Baltazár Radics [Mon, 18 Nov 2024 11:24:17 +0000 (12:24 +0100)]
Use user.FullName in Oauth2 id_token response (#32542)

This makes `/login/oauth/authorize` behave the same way as the
`/login/oauth/userinfo` endpoint.

6 days agoFix some places which doesn't repsect org full name setting (#32243)
Lunny Xiao [Mon, 18 Nov 2024 06:24:49 +0000 (22:24 -0800)]
Fix some places which doesn't repsect org full name setting (#32243)

Partially fix #31345

6 days agoRefactor push mirror find and add check for updating push mirror (#32539)
Lunny Xiao [Mon, 18 Nov 2024 05:59:04 +0000 (21:59 -0800)]
Refactor push mirror find and add check for updating push mirror (#32539)

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
6 days agoRefactor markup render system (#32533)
wxiaoguang [Mon, 18 Nov 2024 05:25:42 +0000 (13:25 +0800)]
Refactor markup render system (#32533)

Remove unmaintainable sanitizer rules. No need to add special "class"
regexp rules anymore, use RenderInternal.SafeAttr instead, more details
(and examples) are in the tests

6 days agoRefactor find forks and fix possible bugs that weak permissions check (#32528)
Lunny Xiao [Mon, 18 Nov 2024 03:06:25 +0000 (19:06 -0800)]
Refactor find forks and fix possible bugs that weak permissions check (#32528)

- Move models/GetForks to services/FindForks
- Add doer as a parameter of FindForks to check permissions
- Slight performance optimization for get forks API with batch loading
of repository units
- Add tests for forking repository to organizations

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
6 days agoUse better name for userinfo structure (#32544)
Lunny Xiao [Mon, 18 Nov 2024 02:41:59 +0000 (18:41 -0800)]
Use better name for userinfo structure (#32544)

7 days agoFix basic auth with webauthn (#32531)
Lunny Xiao [Sat, 16 Nov 2024 17:52:16 +0000 (09:52 -0800)]
Fix basic auth with webauthn (#32531)

8 days agoFix and refactor markdown rendering (#32522)
wxiaoguang [Sat, 16 Nov 2024 08:41:44 +0000 (16:41 +0800)]
Fix and refactor markdown rendering (#32522)

8 days agoFix large image overflow in comment page (#31740)
charles [Fri, 15 Nov 2024 18:34:54 +0000 (02:34 +0800)]
Fix large image overflow in comment page (#31740)

Close #31709

52px is calculate by avatar size in
templates\repo\issue\view_content\comments.tmpl
```html
<img src="{{.Poster.AvatarLink $.Context}}" width="40" height="40">
```
+
```css
.ui.comments .comment > .avatar ~ .content {
  margin-left: 12px;
}
```

![圖片](https://github.com/user-attachments/assets/bf15f4d4-1574-46f6-9f5e-1fbdbf1a98b0)

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
8 days agoImprove testing and try to fix MySQL hanging (#32515)
wxiaoguang [Fri, 15 Nov 2024 15:45:07 +0000 (23:45 +0800)]
Improve testing and try to fix MySQL hanging (#32515)

By some CI fine tunes (`run tests`), SQLite & MSSQL could complete
in about 12~13 minutes (before > 14), MySQL could complete in 18 minutes
(before: about 23 or even > 30)

Major changes:

1. use tmpfs for MySQL storage
1. run `make test-mysql` instead of `make integration-test-coverage`
because the code coverage is not really used at the moment.
1. refactor testlogger to make it more reliable and be able to report
stuck stacktrace
1. do not requeue failed items when a queue is being flushed (failed
items would keep failing and make flush uncompleted)
1. reduce the file sizes for testing
1. use math ChaCha20 random data instead of crypot/rand (for testing
purpose only)
1. no need to `DeleteRepository` in `TestLinguist`
1. other related refactoring to make code easier to maintain

9 days agoFix `recentupdate` sorting bugs (#32505)
Zettat123 [Fri, 15 Nov 2024 04:36:22 +0000 (12:36 +0800)]
Fix `recentupdate` sorting bugs (#32505)

Fix #32499

- Add the missing `recentupdate` to `OrderByFlatMap`
- Assign default value(`recentupdate`) to `EXPLORE_PAGING_DEFAULT_SORT`

9 days agoRemove transaction for archive download (#32186)
Lunny Xiao [Fri, 15 Nov 2024 04:04:20 +0000 (20:04 -0800)]
Remove transaction for archive download (#32186)

Since there is a status column in the database, the transaction is
unnecessary when downloading an archive. The transaction is blocking
database operations, especially with SQLite.

Replace #27563

9 days agoFix oauth2 error handle not return immediately (#32514)
Lunny Xiao [Fri, 15 Nov 2024 02:13:01 +0000 (18:13 -0800)]
Fix oauth2 error handle not return immediately (#32514)

9 days agoFix incorrect project page CSS class (#32510)
wxiaoguang [Fri, 15 Nov 2024 01:30:26 +0000 (09:30 +0800)]
Fix incorrect project page CSS class (#32510)

Otherwise milestone JS would run on this page and cause errors

9 days agoAdd avif image file support (#32508)
wxiaoguang [Fri, 15 Nov 2024 00:55:50 +0000 (08:55 +0800)]
Add avif image file support (#32508)

Most modern browsers support it now

` Update ALLOWED_TYPES #96 ` https://gitea.com/gitea/docs/pulls/96

---------

Co-authored-by: silverwind <me@silverwind.io>
9 days agoReduce integration test overhead (#32475)
Rowan Bohde [Thu, 14 Nov 2024 19:28:46 +0000 (13:28 -0600)]
Reduce integration test overhead (#32475)

In profiling integration tests, I found a couple places where per-test
overhead could be reduced:

* Avoiding disk IO by synchronizing instead of deleting & copying test
Git repository data. This saves ~100ms per test on my machine
* When flushing queues in `PrintCurrentTest`, invoke `FlushWithContext`
in a parallel.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
9 days agoRemove jQuery import from some files (#32512)
wxiaoguang [Thu, 14 Nov 2024 18:48:41 +0000 (02:48 +0800)]
Remove jQuery import from some files (#32512)

Many files do not directly depend on jQuery now.

To clarify the usage: use `fomanticQuery` to operate Fomantic
components.

Then developers could focus on removing the remaining jQuery usages by
searching `import $` globally.

21 files now:

```
./components/RepoBranchTagSelector.vue:3:import $ from 'jquery';
./features/admin/common.ts:1:import $ from 'jquery';
./features/admin/emails.ts:1:import $ from 'jquery';
./features/common-button.ts:1:import $ from 'jquery';
./features/comp/ComboMarkdownEditor.ts:3:import $ from 'jquery'; (I am working on it, there will be a new PR)
./features/comp/LabelEdit.ts:1:import $ from 'jquery';
./features/notification.ts:1:import $ from 'jquery';
./features/org-team.ts:1:import $ from 'jquery';
./features/repo-code.ts:1:import $ from 'jquery';
./features/repo-common.ts:1:import $ from 'jquery';
./features/repo-diff.ts:1:import $ from 'jquery';
./features/repo-editor.ts:1:import $ from 'jquery';
./features/repo-issue-content.ts:1:import $ from 'jquery';
./features/repo-issue-list.ts:1:import $ from 'jquery';
./features/repo-issue-sidebar.ts:1:import $ from 'jquery';
./features/repo-issue.ts:1:import $ from 'jquery';
./features/repo-legacy.ts:1:import $ from 'jquery';
./features/repo-new.ts:1:import $ from 'jquery';
./features/repo-projects.ts:1:import $ from 'jquery';
./features/repo-settings.ts:1:import $ from 'jquery';
./features/repo-template.ts:1:import $ from 'jquery';
```

10 days agoTrim title before insert/update to database to match the size requirements of databas...
Lunny Xiao [Thu, 14 Nov 2024 07:19:14 +0000 (23:19 -0800)]
Trim title before insert/update to database to match the size requirements of database (#32498)

Fix #32489

10 days agoReimplement GetUserOrgsList to make it simple and clear (#32486)
Lunny Xiao [Thu, 14 Nov 2024 05:31:47 +0000 (21:31 -0800)]
Reimplement GetUserOrgsList to make it simple and clear (#32486)

Reimplement GetUserOrgsList and also move some functions and test to
org_list file.

---------

Co-authored-by: Zettat123 <zettat123@gmail.com>
10 days agoRefactor render system (#32492)
wxiaoguang [Thu, 14 Nov 2024 05:02:11 +0000 (13:02 +0800)]
Refactor render system (#32492)

There were too many patches to the Render system, it's really difficult
to make further improvements.

This PR clears the legacy problems and fix TODOs.

1. Rename `RenderContext.Type` to `RenderContext.MarkupType` to clarify
its usage.
2. Use `ContentMode` to replace `meta["mode"]` and `IsWiki`, to clarify
the rendering behaviors.
3. Use "wiki" mode instead of "mode=gfm + wiki=true"
4. Merge `renderByType` and `renderByFile`
5. Add more comments

----

The problem of "mode=document": in many cases it is not set, so many
non-comment places use comment's hard line break incorrectly

10 days agoFix nil panic if repo doesn't exist (#32501)
wxiaoguang [Thu, 14 Nov 2024 04:17:58 +0000 (12:17 +0800)]
Fix nil panic if repo doesn't exist (#32501)

fix  #32496

10 days agoBump CI,Flake and Snap to Node 22 (#32487)
silverwind [Wed, 13 Nov 2024 21:39:55 +0000 (22:39 +0100)]
Bump CI,Flake and Snap to Node 22 (#32487)

Node 22 is LTS since 2024-10-29. Updated it everywhere.

---------

Co-authored-by: techknowlogick <techknowlogick@gitea.com>
10 days agoPerf: add extra index to notification table (#32395)
BoYanZh [Wed, 13 Nov 2024 18:17:54 +0000 (13:17 -0500)]
Perf: add extra index to notification table (#32395)

Index SQL: `CREATE INDEX u_s_uu ON notification(user_id, status,
updated_unix);`

The naming follows `action.go` in the same dir.

I am unsure which version I should add SQL to the migration folder, so I
have not modified it.

Fix #32390

11 days agoFix LFS route mock, realm, middleware names (#32488)
wxiaoguang [Wed, 13 Nov 2024 08:58:09 +0000 (16:58 +0800)]
Fix LFS route mock, realm, middleware names (#32488)

1. move "internal-lfs" route mock to "common-lfs"
2. fine tune tests
3. fix "realm" strings, according to RFC:
https://datatracker.ietf.org/doc/html/rfc2617:
    * realm       = "realm" "=" realm-value
    * realm-value = quoted-string
4. clarify some names of the middlewares, rename `ignXxx` to `optXxx` to
match `reqXxx`, and rename ambiguous `requireSignIn` to `reqGitSignIn`

11 days agoDisable Oauth check if oauth disabled (#32368)
Lunny Xiao [Tue, 12 Nov 2024 21:33:35 +0000 (13:33 -0800)]
Disable Oauth check if oauth disabled (#32368)

Fix #32367

---------

Co-authored-by: Giteabot <teabot@gitea.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
11 days agoUpdate JS and PY dependencies (#32482)
silverwind [Tue, 12 Nov 2024 21:03:22 +0000 (22:03 +0100)]
Update JS and PY dependencies (#32482)

Result of `make update-js update-py`.

Fixes: https://github.com/go-gitea/gitea/security/dependabot/80
Fixes: https://github.com/go-gitea/gitea/security/dependabot/81
Tested build and swagger ui.

11 days agoUpdate `github.com/meilisearch/meilisearch-go` (#32484)
silverwind [Tue, 12 Nov 2024 20:55:01 +0000 (21:55 +0100)]
Update `github.com/meilisearch/meilisearch-go` (#32484)

Result of `go get -u github.com/meilisearch/meilisearch-go && make
tidy`.

Fixes: https://github.com/go-gitea/gitea/security/dependabot/78
12 days agoFix test fixtures for user2/lfs.git (#32477)
wxiaoguang [Tue, 12 Nov 2024 05:41:22 +0000 (13:41 +0800)]
Fix test fixtures for user2/lfs.git (#32477)

12 days agoLimit org member view of restricted users (#32211)
6543 [Tue, 12 Nov 2024 03:44:24 +0000 (04:44 +0100)]
Limit org member view of restricted users (#32211)

currently restricted users can only see the repos of teams in orgs they
are part at.
they also should only see the users that are also part at the same team.

---
*Sponsored by Kithara Software GmbH*

12 days agocargo registry - respect renamed dependencies (#32430)
Albin Hedman [Tue, 12 Nov 2024 02:57:30 +0000 (03:57 +0100)]
cargo registry - respect renamed dependencies (#32430)

rust allows renaming dependencies such as when depending on multiple
versions of the same package. This is not supported by gitea as
discovered in #31500 . This PR tries to address that.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
12 days agoRefactor LFS SSH and internal routers (#32473)
wxiaoguang [Tue, 12 Nov 2024 02:38:22 +0000 (10:38 +0800)]
Refactor LFS SSH and internal routers (#32473)

Gitea instance keeps reporting a lot of errors like "LFS SSH transfer connection denied, pure SSH protocol is disabled". When starting debugging the problem, there are more problems found. Try to address most of them:

* avoid unnecessary server side error logs (change `fail()` to not log them)
* figure out the broken tests/user2/lfs.git (added comments)
* avoid `migratePushMirrors` failure when a repository doesn't exist (ignore them)
* avoid "Authorization" (internal&lfs) header conflicts, remove the tricky "swapAuth" and use "X-Gitea-Internal-Auth"
* make internal token comparing constant time (it wasn't a serous problem because in a real world it's nearly impossible to timing-attack the token, but good to fix and backport)
* avoid duplicate routers (introduce AddOwnerRepoGitLFSRoutes)
* avoid "internal (private)" routes using session/web context (they should use private context)
* fix incorrect "path" usages (use "filepath")
* fix incorrect mocked route point handling (need to check func nil correctly)
* split some tests from "git general tests" to "git misc tests" (to keep "git_general_test.go" simple)

Still no correct result for Git LFS SSH tests. So the code is kept there
(`tests/integration/git_lfs_ssh_test.go`) and a FIXME explains the details.

13 days agoFix a number of typescript issues (#32459)
silverwind [Mon, 11 Nov 2024 11:13:57 +0000 (12:13 +0100)]
Fix a number of typescript issues (#32459)

Fixes 69 typescript errors found in the `admin` and `markup` folders.

---------

Co-authored-by: Giteabot <teabot@gitea.io>
13 days agoHarden runner updateTask and updateLog api (#32462)
ChristopherHX [Mon, 11 Nov 2024 04:58:37 +0000 (05:58 +0100)]
Harden runner updateTask and updateLog api (#32462)

Per proposal https://github.com/go-gitea/gitea/issues/32461

13 days agoMove some functions from issue.go to standalone files (#32468)
Lunny Xiao [Mon, 11 Nov 2024 04:28:54 +0000 (20:28 -0800)]
Move some functions from issue.go to standalone files (#32468)

Just functions move, no code change.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
13 days agoCalculate `PublicOnly` for org membership only once (#32234)
6543 [Mon, 11 Nov 2024 00:38:30 +0000 (01:38 +0100)]
Calculate `PublicOnly` for org membership only once (#32234)

Refactoring of #32211

this move the PublicOnly() filter calcuation next to the DB querys and
let it be decided by the Doer

---
*Sponsored by Kithara Software GmbH*

13 days agoAdd `DEFAULT_MIRROR_REPO_UNITS` and `DEFAULT_TEMPLATE_REPO_UNITS` options (#32416)
Zettat123 [Mon, 11 Nov 2024 00:11:00 +0000 (08:11 +0800)]
Add `DEFAULT_MIRROR_REPO_UNITS` and `DEFAULT_TEMPLATE_REPO_UNITS` options (#32416)

Resolve #30350

The action unit of mirrors and templates should be disabled by default.
This PR adds `DEFAULT_MIRROR_REPO_UNITS` and
`DEFAULT_TEMPLATE_REPO_UNITS` options to allow users to specify default
units for mirrors and templates.

Thanks to @lng2020 for the
[idea](https://github.com/go-gitea/gitea/issues/30350#issuecomment-2053942243)

13 days agoAdd a doctor check to disable the "Actions" unit for mirrors (#32424)
Zettat123 [Sun, 10 Nov 2024 23:37:24 +0000 (07:37 +0800)]
Add a doctor check to disable the "Actions" unit for mirrors (#32424)

Resolve #32232

Users can disable the "Actions" unit for all mirror repos by running
```
gitea doctor check --run  disable-mirror-actions-unit --fix
```

13 days agoRefactor sidebar assignee&milestone&project selectors (#32465)
wxiaoguang [Sun, 10 Nov 2024 20:07:54 +0000 (04:07 +0800)]
Refactor sidebar assignee&milestone&project selectors (#32465)

Follow #32460

Now the code could be much clearer than before and easier to maintain. A
lot of legacy code is removed.

Manually tested.

This PR is large enough, that fine tunes could be deferred to the future if
there is no bug found or design problem.

Screenshots:

<details>

![image](https://github.com/user-attachments/assets/35f4ab7b-1bc0-4bad-a73c-a4569328303c)

</details>

2 weeks agoRefactor sidebar label selector (#32460)
wxiaoguang [Sun, 10 Nov 2024 08:26:42 +0000 (16:26 +0800)]
Refactor sidebar label selector (#32460)

Introduce `issueSidebarLabelsData` to handle all sidebar labels related data.

2 weeks agoFix mermaid diagram height when initially hidden (#32457)
silverwind [Sat, 9 Nov 2024 18:03:55 +0000 (19:03 +0100)]
Fix mermaid diagram height when initially hidden (#32457)

In a hidden iframe, `document.body.clientHeight` is not reliable. Use
`IntersectionObserver` to detect the visibility change and update the
height there.

Fixes: https://github.com/go-gitea/gitea/issues/32392
<img width="885" alt="image"
src="https://github.com/user-attachments/assets/a95ef6aa-27e7-443f-9d06-400ef27919ae">

2 weeks agoAdd reviewers selection to new pull request (#32403)
Calvin K [Sat, 9 Nov 2024 04:48:31 +0000 (12:48 +0800)]
Add reviewers selection to new pull request (#32403)

Users could add reviewers when creating new PRs.

---------

Co-authored-by: splitt3r <splitt3r@users.noreply.github.com>
Co-authored-by: Sebastian Sauer <sauer.sebastian@gmail.com>
Co-authored-by: bb-ben <70356237+bboerben@users.noreply.github.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 weeks agoFix issue sidebar (#32455)
wxiaoguang [Fri, 8 Nov 2024 17:55:32 +0000 (01:55 +0800)]
Fix issue sidebar (#32455)

Fix #32453

Major changes:

* revert the `<div class="divider"></div>` in
`templates/repo/issue/branch_selector_field.tmpl` (it was removed by
mistake in ##32444)
* remove incorrect `<div class="inline field">` in
`templates/repo/issue/sidebar/allow_maintainer_edit.tmpl`
* use `gt-ellipsis` to replace the "title" class in the dependency list,
then `.repository .issue-content-right .ui.list .title` could be removed
* remove the "relaxed" from dependency list, then there is no padding,
then `.repository .issue-content-right .ui.list .dependency` could be
removed (`white-space` doesn't have effect either because there is
`gt-ellipsis`)
* remove dead code `.repository .issue-content-right #deadlineForm input
`

The fixed UI should be the same as before.

2 weeks agoRefactor language menu and dom utils (#32450)
wxiaoguang [Fri, 8 Nov 2024 06:04:24 +0000 (14:04 +0800)]
Refactor language menu and dom utils (#32450)

1. Make `queryElem*` functions could correctly handle TS types
2. Remove some legacy jQuery $ calls (introduce fomanticQuery for Fomantic UI only)
3. Fix some TS typing problems

2 weeks agoFix broken releases when re-pushing tags (#32435)
Zettat123 [Fri, 8 Nov 2024 02:53:06 +0000 (10:53 +0800)]
Fix broken releases when re-pushing tags (#32435)

Fix #32427

2 weeks agoRefactor issue page info (#32445)
wxiaoguang [Fri, 8 Nov 2024 02:21:13 +0000 (10:21 +0800)]
Refactor issue page info (#32445)

Fix a longstanding TODO since 2021 (#14826) / 2018 (#2531)

2 weeks agoSplit issue sidebar into small templates (#32444)
wxiaoguang [Fri, 8 Nov 2024 01:44:20 +0000 (09:44 +0800)]
Split issue sidebar into small templates (#32444)

Only move code

2 weeks agoOnly provide the commit summary for Discord webhook push events (#32432)
Kemal Zebari [Thu, 7 Nov 2024 19:56:53 +0000 (11:56 -0800)]
Only provide the commit summary for Discord webhook push events (#32432)

Resolves #32371.

#31970 should have just showed the commit summary, but
`strings.SplitN()` was misused such that we did not perform any
splitting at all and just used the message. This was not caught in the
unit test made in that PR since the test commit summary was > 50 (which
truncated away the commit description).

This snapshot resolves this and adds another unit test to ensure that we
only show the commit summary.

2 weeks agoAdd new event commit status creation and webhook implementation (#27151)
Lunny Xiao [Thu, 7 Nov 2024 06:41:49 +0000 (22:41 -0800)]
Add new event commit status creation and webhook implementation (#27151)

This PR introduces a new event which is similar as Github's. When a new
commit status submitted, the event will be trigged. That means, now we
can receive all feedback from CI/CD system in webhooks or other notify
systems.

ref:
https://docs.github.com/en/webhooks/webhook-events-and-payloads#status

Fix #20749

2 weeks agoSupport quote selected comments to reply (#32431)
wxiaoguang [Thu, 7 Nov 2024 03:57:07 +0000 (11:57 +0800)]
Support quote selected comments to reply (#32431)

Many existing tests were quite hacky, these could be improved later.

<details>

![image](https://github.com/user-attachments/assets/93aebb4f-9de5-4cb8-910b-50c64cbcd25a)

</details>

2 weeks agoMove AddCollabrator and CreateRepositoryByExample to service layer (#32419)
Lunny Xiao [Thu, 7 Nov 2024 03:28:11 +0000 (19:28 -0800)]
Move AddCollabrator and CreateRepositoryByExample to service layer (#32419)

- [x] Move `CreateRepositoryByExample` to service layer
- [x] Move `AddCollabrator` to service layer
- [x] Add a new parameter for `AddCollabrator` so that changing mode
immediately after that will become unnecessary.

2 weeks agoAdd new index for action to resolve the performance problem (#32333)
Lunny Xiao [Wed, 6 Nov 2024 22:04:48 +0000 (14:04 -0800)]
Add new index for action to resolve the performance problem (#32333)

Fix #32224

2 weeks agoInclude file extension checks in attachment API (#32151)
Kemal Zebari [Wed, 6 Nov 2024 21:34:32 +0000 (13:34 -0800)]
Include file extension checks in attachment API (#32151)

From testing, I found that issue posters and users with repository write
access are able to edit attachment names in a way that circumvents the
instance-level file extension restrictions using the edit attachment
APIs. This snapshot adds checks for these endpoints.

2 weeks agoUpdated tokenizer to better matching when search for code snippets (#32261)
Bruno Sofiato [Wed, 6 Nov 2024 20:51:20 +0000 (17:51 -0300)]
Updated tokenizer to better matching when search for code snippets (#32261)

This PR improves the accuracy of Gitea's code search.

Currently, Gitea does not consider statements such as
`onsole.log("hello")` as hits when the user searches for `log`. The
culprit is how both ES and Bleve are tokenizing the file contents (in
both cases, `console.log` is a whole token).

In ES' case, we changed the tokenizer to
[simple_pattern_split](https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-simplepatternsplit-tokenizer.html#:~:text=The%20simple_pattern_split%20tokenizer%20uses%20a,the%20tokenization%20is%20generally%20faster.).
In such a case, tokens are words formed by digits and letters. In
Bleve's case, it employs a
[letter](https://blevesearch.com/docs/Tokenizers/) tokenizer.

Resolves #32220

---------

Signed-off-by: Bruno Sofiato <bruno.sofiato@gmail.com>
2 weeks agoCorrectly query the primary button in a form (#32438)
wxiaoguang [Wed, 6 Nov 2024 20:21:53 +0000 (04:21 +0800)]
Correctly query the primary button in a form (#32438)

The "primary button" is used at many places, but sometimes they might
conflict (due to button switch, hidden panel, dropdown menu, etc).

Sometimes we could add a special CSS class for the buttons, but
sometimes not (see the comment of QuickSubmit)

This PR introduces `querySingleVisibleElem` to help to get the correct
primary button (the only visible one), and prevent from querying the
wrong buttons.

Fix #32437

---------

Co-authored-by: silverwind <me@silverwind.io>
2 weeks agoUse 8 as default value for git lfs concurrency (#32421)
wxiaoguang [Tue, 5 Nov 2024 13:10:57 +0000 (21:10 +0800)]
Use 8 as default value for git lfs concurrency (#32421)

2 weeks agoFix milestone deadline and date related problems (#32339)
Lunny Xiao [Tue, 5 Nov 2024 07:46:40 +0000 (23:46 -0800)]
Fix milestone deadline and date related problems (#32339)

Use zero instead of 9999-12-31 for deadline
Fix #32291

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
2 weeks agoOnly query team tables if repository is under org when getting assignees (#32414)
Lunny Xiao [Tue, 5 Nov 2024 07:13:52 +0000 (23:13 -0800)]
Only query team tables if repository is under org when getting assignees (#32414)

It's unnecessary to query the team table if the repository is not under
organization when getting assignees.

2 weeks agoRefactor RepoRefByType (#32413)
wxiaoguang [Tue, 5 Nov 2024 06:35:54 +0000 (14:35 +0800)]
Refactor RepoRefByType (#32413)

1. clarify the "filepath" could(should) contain "{ref}"
2. remove unclear RepoRefLegacy and RepoRefAny, use RepoRefUnknown to guess
3. by the way, avoid using AppURL

2 weeks agoRefactor template ctx and render utils (#32422)
wxiaoguang [Tue, 5 Nov 2024 06:04:26 +0000 (14:04 +0800)]
Refactor template ctx and render utils (#32422)

Clean up the templates

2 weeks agoRefactor DateUtils and merge TimeSince (#32409)
wxiaoguang [Mon, 4 Nov 2024 11:30:00 +0000 (19:30 +0800)]
Refactor DateUtils and merge TimeSince (#32409)

Follow #32383 and #32402

2 weeks agoRefactor markup package (#32399)
wxiaoguang [Mon, 4 Nov 2024 10:59:50 +0000 (18:59 +0800)]
Refactor markup package (#32399)

To make the markup package easier to maintain:
1. Split some go files into small files
2. Use a shared util.NopCloser, remove duplicate code
3. Remove unused functions

2 weeks agoAdd some handy markdown editor features (#32400)
wxiaoguang [Mon, 4 Nov 2024 10:14:36 +0000 (18:14 +0800)]
Add some handy markdown editor features (#32400)

There were some missing features from EasyMDE:

1. H1 - H3 style
2. Auto add task list
3. Insert a table

And added some tests

2 weeks agoMake LFS http_client parallel within a batch. (#32369)
Royce Remer [Mon, 4 Nov 2024 04:49:08 +0000 (20:49 -0800)]
Make LFS http_client parallel within a batch. (#32369)

Signed-off-by: Royce Remer <royceremer@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
3 weeks agoRefactor repo legacy (#32404)
wxiaoguang [Sun, 3 Nov 2024 11:00:12 +0000 (19:00 +0800)]
Refactor repo legacy (#32404)

Only move code, no unnecessary logic change. (There are many problems in
old code, but changing them is not in this PR's scope)

Co-authored-by: Giteabot <teabot@gitea.io>
3 weeks agoReplace DateTime with proper functions (#32402)
wxiaoguang [Sat, 2 Nov 2024 21:04:53 +0000 (05:04 +0800)]
Replace DateTime with proper functions (#32402)

Follow #32383

This PR cleans up the "Deadline" usages in templates, make them call
`ParseLegacy` first to get a `Time` struct then display by `DateUtils`.

Now it should be pretty clear how "deadline string" works, it makes it
possible to do further refactoring and correcting.

3 weeks agoFix git error handling (#32401)
wxiaoguang [Sat, 2 Nov 2024 11:20:22 +0000 (19:20 +0800)]
Fix git error handling (#32401)

3 weeks agoFix created_unix for mirroring (#32342)
Lunny Xiao [Sat, 2 Nov 2024 06:11:38 +0000 (23:11 -0700)]
Fix created_unix for mirroring (#32342)

Fix #32233

3 weeks agoReplace DateTime with DateUtils (#32383)
wxiaoguang [Sat, 2 Nov 2024 04:08:28 +0000 (12:08 +0800)]
Replace DateTime with DateUtils (#32383)

3 weeks agoimprove performance of diffs (#32393)
Rowan Bohde [Sat, 2 Nov 2024 03:29:37 +0000 (22:29 -0500)]
improve performance of diffs (#32393)

This has two major changes that significantly reduce the amount of work
done for large diffs:

* Kill a running git process when reaching the maximum number of files
in a diff, preventing it from processing the entire diff.
* When loading a diff with the URL param `file-only=true`, skip loading
stats. This speeds up loading both hidden files of a diff and sections
of a diff when clicking the "Show More" button.

A couple of minor things from profiling are also included:

* Reuse existing repo in `PrepareViewPullInfo` if head and base are the
same.

The performance impact is going to depend heavily on the individual diff
and the hardware it runs on, but when testing locally on a diff changing
100k+ lines over hundreds of files, I'm seeing a roughly 75% reduction
in time to load the result of "Show More"

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
3 weeks agoRefactor tests to prevent from unnecessary preparations (#32398)
wxiaoguang [Fri, 1 Nov 2024 15:18:29 +0000 (23:18 +0800)]
Refactor tests to prevent from unnecessary preparations (#32398)

3 weeks agoAdd artifacts test fixture (#30300)
Kyle D. [Fri, 1 Nov 2024 02:29:54 +0000 (22:29 -0400)]
Add artifacts test fixture (#30300)

Closes https://github.com/go-gitea/gitea/issues/30296

- Adds a DB fixture for actions artifacts
- Adds artifacts test files
- Clears artifacts test files between each run
- Note: I initially initialized the artifacts only for artifacts tests,
but because the files are small it only takes ~8ms, so I changed it to
always run in test setup for simplicity
- Fix some otherwise flaky tests by making them not depend on previous
tests

3 weeks agoFix `missing signature key` error when pulling Docker images with `SERVE_DIRECT`...
Zettat123 [Thu, 31 Oct 2024 15:28:25 +0000 (23:28 +0800)]
Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled (#32365)

Fix #28121

I did some tests and found that the `missing signature key` error is
caused by an incorrect `Content-Type` header. Gitea correctly sets the
`Content-Type` header when serving files.

https://github.com/go-gitea/gitea/blob/348d1d0f322ca57c459acd902f54821d687ca804/routers/api/packages/container/container.go#L712-L717
However, when `SERVE_DIRECT` is enabled, the `Content-Type` header may
be set to an incorrect value by the storage service. To fix this issue,
we can use query parameters to override response header values.

https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html
<img width="600px"
src="https://github.com/user-attachments/assets/f2ff90f0-f1df-46f9-9680-b8120222c555"
/>

In this PR, I introduced a new parameter to the `URL` method to support
additional parameters.

```
URL(path, name string, reqParams url.Values) (*url.URL, error)
```

---

Most S3-like services support specifying the content type when storing
objects. However, Gitea always use `application/octet-stream`.
Therefore, I believe we also need to improve the `Save` method to
support storing objects with the correct content type.

https://github.com/go-gitea/gitea/blob/b7fb20e73e63b8edc9b90c52073e248bef428fcc/modules/storage/minio.go#L214-L221

3 weeks agoFix a number of typescript issues (#32308)
silverwind [Thu, 31 Oct 2024 14:57:40 +0000 (15:57 +0100)]
Fix a number of typescript issues (#32308)

- Prefer
[window.location.assign](https://developer.mozilla.org/en-US/docs/Web/API/Location/assign)
over assigning to
[window.location](https://developer.mozilla.org/en-US/docs/Web/API/Window/location)
which typescript does not like. This works in all browsers including
PaleMoon.
- Fix all typescript issues in `web_src/js/webcomponents`, no behaviour
changes.
- ~~Workaround bug in `@typescript-eslint/no-unnecessary-type-assertion`
rule.~~
- Omit vendored file from type checks.
- `tsc` error count is reduce by 53 with these changes.

3 weeks agoUpdate go dependencies (#32389)
wxiaoguang [Thu, 31 Oct 2024 12:05:54 +0000 (20:05 +0800)]
Update go dependencies (#32389)

3 weeks agoUpdate JS and PY dependencies (#32388)
silverwind [Thu, 31 Oct 2024 04:19:15 +0000 (05:19 +0100)]
Update JS and PY dependencies (#32388)

- Update all JS dependencies excluding stylelint (because of
https://github.com/AndyOGo/stylelint-declaration-strict-value/issues/379).
- Update all PY dependencies.
- Replace `eslint-plugin-deprecation` with
`@typescript-eslint/no-deprecated` rule.
- Enabled `unicorn/prefer-math-min-max` and autofixed issues.
- Tested all dependencies.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
3 weeks agoFix suggestions for issues (#32380)
wxiaoguang [Wed, 30 Oct 2024 20:06:36 +0000 (04:06 +0800)]
Fix suggestions for issues (#32380)

3 weeks agorefactor: remove redundant err declarations (#32381)
Oleksandr Redko [Wed, 30 Oct 2024 19:36:24 +0000 (21:36 +0200)]
refactor: remove redundant err declarations (#32381)

3 weeks agoFix the missing menu in organization project view page (#32313)
yp05327 [Wed, 30 Oct 2024 19:05:40 +0000 (04:05 +0900)]
Fix the missing menu in organization project view page (#32313)

#29248 didn't modify the view page.
The class name is not good enough, so this is a quick fix.

Before:
org:

![image](https://github.com/user-attachments/assets/3e26502d-66b4-4043-ab03-003ba7391487)
user:

![image](https://github.com/user-attachments/assets/9b22b90c-d63c-4228-acad-4d9fb20590ac)

After:
org:

![image](https://github.com/user-attachments/assets/21bf98a7-8a5b-4dc6-950a-88f529e36450)
user: (no change)

![image](https://github.com/user-attachments/assets/fea0dcae-3625-44e8-bb9e-4c3733da8764)

Co-authored-by: Giteabot <teabot@gitea.io>
3 weeks agoFix toAbsoluteLocaleDate and add more tests (#32387)
wxiaoguang [Wed, 30 Oct 2024 18:36:02 +0000 (02:36 +0800)]
Fix toAbsoluteLocaleDate and add more tests (#32387)

3 weeks agoRespect UI.ExploreDefaultSort setting again (#32357)
6543 [Wed, 30 Oct 2024 12:33:25 +0000 (13:33 +0100)]
Respect UI.ExploreDefaultSort setting again (#32357)

fix regression of https://github.com/go-gitea/gitea/pull/29430

---
*Sponsored by Kithara Software GmbH*

3 weeks agoFix absolute-date (#32375)
wxiaoguang [Wed, 30 Oct 2024 09:50:19 +0000 (17:50 +0800)]
Fix absolute-date (#32375)

3 weeks agoFix undefined errors on Activity page (#32378)
cloudchamb3r [Wed, 30 Oct 2024 06:48:13 +0000 (15:48 +0900)]
Fix undefined errors on Activity page (#32378)

close #32377

Co-authored-by: Giteabot <teabot@gitea.io>
3 weeks agoAdd new [lfs_client].BATCH_SIZE and [server].LFS_MAX_BATCH_SIZE config settings....
Royce Remer [Wed, 30 Oct 2024 05:41:55 +0000 (22:41 -0700)]
Add new [lfs_client].BATCH_SIZE and [server].LFS_MAX_BATCH_SIZE config settings. (#32307)

This contains two backwards-compatible changes:
* in the lfs http_client, the number of lfs oids requested per batch is
loaded from lfs_client#BATCH_SIZE and defaulted to the previous value of
20
* in the lfs server/service, the max number of lfs oids allowed in a
batch api request is loaded from server#LFS_MAX_BATCH_SIZE and defaults
to 'nil' which equates to the previous behavior of 'infinite'

This fixes #32306

---------

Signed-off-by: Royce Remer <royceremer@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
3 weeks agoremove unused call to $.HeadRepo in view_title template (#32317)
Rowan Bohde [Wed, 30 Oct 2024 05:12:48 +0000 (00:12 -0500)]
remove unused call to $.HeadRepo in view_title template (#32317)

This is only populated in
[`ParseCompareInfo`](https://github.com/search?q=repo%3Ago-gitea%2Fgitea%20%20.Data%5B%22HeadRepo%22%5D&type=code)
which is called in two handlers:

*
[`CompareAndPullRequestPost`](https://github.com/go-gitea/gitea/blob/9206fbb55fd28f21720072fce6a36cc22277934c/routers/web/repo/pull.go#L1246)
- a JSON post handler that doesn't render templates
*
[`CompareDiff`](https://github.com/go-gitea/gitea/blob/9206fbb55fd28f21720072fce6a36cc22277934c/routers/web/repo/compare.go#L706)
- which can render `diff/box.tmpl` and `diff/compare.tmpl`

3 weeks agoFix clean tmp dir (#32360)
Lunny Xiao [Tue, 29 Oct 2024 16:27:03 +0000 (09:27 -0700)]
Fix clean tmp dir (#32360)

Try to fix #31792

Credit to @jeroenlaylo
Copied from
https://github.com/go-gitea/gitea/issues/31792#issuecomment-2311920520

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>