]> source.dussan.org Git - gitea.git/log
gitea.git
5 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

6 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`

6 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

6 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)

6 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

6 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>
6 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>
6 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';
```

7 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

7 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>
7 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

7 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

7 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>
7 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

8 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`

8 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>
8 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.

8 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
9 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)

9 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*

9 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>
9 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.

10 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>
10 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

10 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>
10 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*

10 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)

10 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
```

10 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>

11 days 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.

11 days 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">

12 days 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>
12 days 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.

13 days 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

13 days 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

13 days 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)

13 days 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

13 days 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>
2 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>
2 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.

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

2 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

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

2 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>
2 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)

2 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

2 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

2 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>
3 weeks agoOptimize branch protection rule loading (#32280)
6543 [Tue, 29 Oct 2024 14:43:47 +0000 (15:43 +0100)]
Optimize branch protection rule loading (#32280)

before if it was nonglob each load would try to glob it and the check
that is not glob ... now we only do that once and no future loading will
trigger it

---
*Sponsored by Kithara Software GmbH*

3 weeks agoSuggestions for issues (#32327)
Anbraten [Tue, 29 Oct 2024 09:20:49 +0000 (10:20 +0100)]
Suggestions for issues (#32327)

closes #16872

3 weeks agoMigrate vue components to setup (#32329)
Anbraten [Mon, 28 Oct 2024 20:15:05 +0000 (21:15 +0100)]
Migrate vue components to setup (#32329)

Migrated a handful Vue components to the `setup` syntax using
composition api as it has better Typescript support and is becoming the
new default in the Vue ecosystem.

- [x] ActionRunStatus.vue
- [x] ActivityHeatmap.vue
- [x] ContextPopup.vue
- [x] DiffFileList.vue
- [x] DiffFileTree.vue
- [x] DiffFileTreeItem.vue
- [x] PullRequestMergeForm.vue
- [x] RepoActivityTopAuthors.vue
- [x] RepoCodeFrequency.vue
- [x] RepoRecentCommits.vue
- [x] ScopedAccessTokenSelector.vue

Left some larger components untouched for now to not go to crazy in this
single PR:
- [ ] DiffCommitSelector.vue
- [ ] RepoActionView.vue
- [ ] RepoContributors.vue
- [ ] DashboardRepoList.vue
- [ ] RepoBranchTagSelector.vue

3 weeks agoFix db engine (#32351)
wxiaoguang [Sun, 27 Oct 2024 22:48:07 +0000 (06:48 +0800)]
Fix db engine (#32351)

Fix #32349

3 weeks agoRefactor the DB migration system slightly (#32344)
wxiaoguang [Sun, 27 Oct 2024 11:54:35 +0000 (19:54 +0800)]
Refactor the DB migration system slightly (#32344)

Introduce "idNumber" for each migration, and clarify the difference
between the migration ID number and database version.

4 weeks agoFix broken image when editing comment with non-image attachments (#32319)
yp05327 [Wed, 23 Oct 2024 15:39:10 +0000 (00:39 +0900)]
Fix broken image when editing comment with non-image attachments (#32319)

Fix #32316

4 weeks agoFix disable 2fa bug (#32320)
Lunny Xiao [Wed, 23 Oct 2024 06:41:00 +0000 (14:41 +0800)]
Fix disable 2fa bug (#32320)

4 weeks agoUpgrade rollup to 4.24.0 (#32312)
Lunny Xiao [Wed, 23 Oct 2024 05:00:32 +0000 (13:00 +0800)]
Upgrade rollup to 4.24.0 (#32312)

4 weeks agoUpgrade vue to 3.5.12 (#32311)
Lunny Xiao [Wed, 23 Oct 2024 04:55:17 +0000 (12:55 +0800)]
Upgrade vue to 3.5.12 (#32311)

4 weeks agoMake admins adhere to branch protection rules (#32248)
Tim [Wed, 23 Oct 2024 04:39:43 +0000 (06:39 +0200)]
Make admins adhere to branch protection rules (#32248)

This introduces a new flag `BlockAdminMergeOverride` on the branch
protection rules that prevents admins/repo owners from bypassing branch
protection rules and merging without approvals or failing status checks.

Fixes #17131

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
4 weeks agoPrevent from submitting issue/comment on uploading (#32263)
박상철 [Wed, 23 Oct 2024 02:48:04 +0000 (11:48 +0900)]
Prevent from submitting issue/comment on uploading (#32263)

fix #32262

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
4 weeks agoAdd warn log when deleting inactive users (#32318)
Lunny Xiao [Wed, 23 Oct 2024 01:28:28 +0000 (09:28 +0800)]
Add warn log when deleting inactive users (#32318)

Add log for the problem #31480

4 weeks agoAdd `DISABLE_ORGANIZATIONS_PAGE` and `DISABLE_CODE_PAGE` settings for explore pages...
Zettat123 [Tue, 22 Oct 2024 05:09:19 +0000 (13:09 +0800)]
Add `DISABLE_ORGANIZATIONS_PAGE` and `DISABLE_CODE_PAGE` settings for explore pages and fix an issue related to user search (#32288)

These settings can allow users to only display the repositories explore page.

Thanks to yp05327 and wxiaoguang !

---------

Co-authored-by: Giteabot <teabot@gitea.io>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
4 weeks agochore: fix some function names in comment (#32300)
wangjingcun [Tue, 22 Oct 2024 00:41:05 +0000 (08:41 +0800)]
chore: fix some function names in comment (#32300)

fix some function names in comment

4 weeks agoAPI: enhance SearchIssues swagger docs (#32208)
6543 [Sat, 19 Oct 2024 20:11:56 +0000 (22:11 +0200)]
API: enhance SearchIssues swagger docs (#32208)

this will result in better api clients generated out of the openapi docs
... for SearchIssues

---
*Sponsored by Kithara Software GmbH*

4 weeks agoUpdate github.com/go-enry/go-enry to v2.9.1 (#32295)
YR Chen [Sat, 19 Oct 2024 12:51:55 +0000 (20:51 +0800)]
Update github.com/go-enry/go-enry to v2.9.1 (#32295)

`go-enry` v2.9.1 includes latest file patterns from Linguist, which can
identify more generated file type, eg. `pdm.lock`.

5 weeks agoAlways update expiration time when creating an artifact (#32281)
Zettat123 [Thu, 17 Oct 2024 09:05:38 +0000 (17:05 +0800)]
Always update expiration time when creating an artifact (#32281)

Fix #32256

5 weeks agoAdd `gh-access-token` flag into backport script (#32283)
cloudchamb3r [Thu, 17 Oct 2024 05:43:48 +0000 (14:43 +0900)]
Add `gh-access-token` flag into backport script (#32283)

The current backport script does not have github access token flag.
This patch will be useful when encountered rate limit issue.

5 weeks agoWarn users when they try to use a non-root-url to sign in/up (#32272)
wxiaoguang [Thu, 17 Oct 2024 02:28:51 +0000 (10:28 +0800)]
Warn users when they try to use a non-root-url to sign in/up (#32272)

5 weeks agoFix null errors on conversation holder (#32258) (#32266)
cloudchamb3r [Wed, 16 Oct 2024 12:39:47 +0000 (21:39 +0900)]
Fix null errors on conversation holder (#32258) (#32266)

fix #32258

Errors in the issue was due to unhandled null check. so i fixed it.

### Detailed description for Issue & Fix
To reproduce that issue, the comment must be deleted on Conversation
tab.
#### Before Delete
<img width="1032" alt="image"
src="https://github.com/user-attachments/assets/72df61ba-7db6-44c9-bebc-ca1178dd27f1">

#### After Delete (AS-IS)
<img width="1010" alt="image"
src="https://github.com/user-attachments/assets/36fa537e-4f8e-4535-8d02-e538c50f0dd8">

gitea already have remove logic for `timeline-item-group`, but because
of null ref exception the later logic that removes `timeline-item-group`
could be not be called correctly.

5 weeks agoSupport requested_reviewers data in comment webhook events (#26178)
谈笑风生间 [Wed, 16 Oct 2024 09:10:05 +0000 (17:10 +0800)]
Support requested_reviewers data in comment webhook events (#26178)

close #25833

Currently, the information for "requested_reviewers" is only included in
the webhook event for reviews. I would like to suggest adding this
information to the webhook event for "PullRequest comment" as well, as
they both pertain to the "PullRequest" event.

Also, The reviewer information for the Pull Request is not displayed
when it is approved or rejected.

5 weeks agoMake `owner/repo/pulls` handlers use "PR reader" permission (#32254)
wxiaoguang [Tue, 15 Oct 2024 06:47:07 +0000 (14:47 +0800)]
Make `owner/repo/pulls` handlers use "PR reader" permission (#32254)

Fix #32253 (partially)

5 weeks agomake `show stats` work when only one file changed (#32244)
a1012112796 [Mon, 14 Oct 2024 21:23:20 +0000 (05:23 +0800)]
make `show stats` work when only one file changed (#32244)

fix https://github.com/go-gitea/gitea/issues/32226

in https://github.com/go-gitea/gitea/pull/27775 , it do some changes to
only show diff file tree when more than one file changed. But looks it
also break the `diff-file-list` logic, which looks not expected change.
so try fix it.

/cc @silverwind

example view:

![image](https://github.com/user-attachments/assets/281e9c4f-a269-4d36-94eb-a132058aea87)

Signed-off-by: a1012112796 <1012112796@qq.com>
5 weeks agoUpdate scheduled tasks even if changes are pushed by "ActionsUser" (#32246)
Zettat123 [Sun, 13 Oct 2024 20:28:32 +0000 (04:28 +0800)]
Update scheduled tasks even if changes are pushed by "ActionsUser" (#32246)

Fix #32219

---------

Co-authored-by: delvh <dev.lh@web.de>