]> source.dussan.org Git - gitea.git/log
gitea.git
7 months agoFix 500 when pushing release to an empty repo (#29554)
Nanguan Lin [Sun, 3 Mar 2024 16:49:05 +0000 (00:49 +0800)]
Fix 500 when pushing release to an empty repo (#29554)

As title.
The former code directly used `ctx.Repo.GitRepo`, causing 500.

https://github.com/go-gitea/gitea/blob/22b4f0c09f1de5e581929bd10f39833d30d2c482/routers/api/v1/repo/release.go#L241

7 months agoUpdate js and py dependencies, bump python (#29561)
silverwind [Sun, 3 Mar 2024 16:23:14 +0000 (17:23 +0100)]
Update js and py dependencies, bump python (#29561)

- Update js and py dependencies excluding `@mcaptcha/vanilla-glue`,
`eslint-plugin-array-func`
- Update stylelint config
- Require python 3.10 and use 3.12 on CI, bump setup-python as well
- Tested markdown toolbar, charts, clipboard, swagger ui, vue

7 months agoFilter Repositories by type (#29231)
Tim-Niclas Oelschläger [Sun, 3 Mar 2024 10:18:34 +0000 (11:18 +0100)]
Filter Repositories by type (#29231)

Filter Repositories by type (resolves #1170, #1318)

before:

![image](https://github.com/go-gitea/gitea/assets/72873130/74e6be62-9010-4ab4-8f9b-bd8afbebb8fb)

after:

![image](https://github.com/go-gitea/gitea/assets/72873130/e4d85ed6-7864-4150-8d72-5194dac1293f)

7 months agoBreaking summary for template refactoring (#29395)
wxiaoguang [Sun, 3 Mar 2024 04:57:22 +0000 (12:57 +0800)]
Breaking summary for template refactoring (#29395)

https://github.com/go-gitea/gitea/pull/29395

7 months ago[skip ci] Updated translations via Crowdin
GiteaBot [Sun, 3 Mar 2024 00:25:22 +0000 (00:25 +0000)]
[skip ci] Updated translations via Crowdin

7 months agoFix incorrect cookie path for AppSubURL (#29534)
wxiaoguang [Sun, 3 Mar 2024 00:14:12 +0000 (08:14 +0800)]
Fix incorrect cookie path for AppSubURL (#29534)

Regression of #24107

7 months agogitea.service: Remove syslog.target (#29550)
Martin [Sat, 2 Mar 2024 23:44:43 +0000 (00:44 +0100)]
gitea.service: Remove syslog.target (#29550)

Remove syslog.target from service file, this target hasn't existed for
over a decade.

https://github.com/systemd/systemd/blob/6aa8d43ade72e24c9426e604f7fc4b7582b9db7c/NEWS#L72-L73

7 months agoAdd option to set language in admin user view (#28449)
6543 [Sat, 2 Mar 2024 21:55:02 +0000 (22:55 +0100)]
Add option to set language in admin user view (#28449)

![image](https://github.com/go-gitea/gitea/assets/24977596/be7e3f92-af3f-4628-b4ed-abf6439687f3)
`/admin/users/<UserID>/edit`

![image](https://github.com/go-gitea/gitea/assets/24977596/906af0dd-cceb-4ed9-9cd9-32c71ae1bf71)
`/admin/users/<UserID>`

---
*Sponsored by Kithara Software GmbH*

7 months agoFix elipsis button not working if the last commit loading is deferred (#29544)
Yarden Shoham [Sat, 2 Mar 2024 19:31:59 +0000 (21:31 +0200)]
Fix elipsis button not working if the last commit loading is deferred (#29544)

Before this change, if we had more than 200 entries being deferred in
loading, the entire table would get replaced thus losing any event
listeners attached to the elements within the table, such as the elipsis
button and commit list with tippy.

With this change we remove the previous javascript code that replaced
the table and use htmx to replace the table.

htmx attributes added:
- `hx-indicator="tr.notready td.message span"`: attach the loading
spinner to the files whose last commit is still being loaded
- `hx-trigger="load"` trigger the request-replace behavior as soon as
possible
- `hx-swap="morph"`: use the idiomorph morphing algorithm, this is the
thing that makes it so the elipsis button event listener is kept during
the replacement, fixing the bug because we don't actually replace the
table, only modifying it
- `hx-post="{{.LastCommitLoaderURL}}"`: make a post request to this url
to get the table with all of the commit information

As part of this change I removed the handling of partial replacement in
the case we have less than 200 "not ready" files. The first reason is
that I couldn't make htmx replace only a subset of returned elements,
the second reason is that we have a cache implemented in the backend
already so the only cost added is that we query the cache a few times
(which is sure to be populated due to the initial request), and the last
reason is that since the last refactor of this functionality that
removed jQuery we don't properly send the "not ready" entries as the
backend expects `FormData` with `f[]` and we send a JSON with `f` so we
always query for all rows anyway.

# Before

![before](https://github.com/go-gitea/gitea/assets/20454870/482ebfec-66c5-40cc-9c1e-e3b3bfe1bbc1)

# After

![after](https://github.com/go-gitea/gitea/assets/20454870/454c517e-3a4e-4006-a49f-99cc56e0fd60)

---------

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
7 months agoFix incorrect relative/absolute URL usages (#29531)
wxiaoguang [Sat, 2 Mar 2024 17:38:38 +0000 (01:38 +0800)]
Fix incorrect relative/absolute URL usages (#29531)

Add two "HTMLURL" methods for PackageDescriptor.
And rename "FullWebLink" to "VersionWebLink"

7 months agoAdd support for API blob upload of release attachments (#29507)
KN4CK3R [Sat, 2 Mar 2024 17:02:01 +0000 (18:02 +0100)]
Add support for API blob upload of release attachments (#29507)

Fixes #29502

Our endpoint is not Github compatible.

https://docs.github.com/en/rest/releases/assets?apiVersion=2022-11-28#upload-a-release-asset

---------

Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoFix queue worker incorrectly stopped when there are still more items in the queue...
wxiaoguang [Sat, 2 Mar 2024 16:07:54 +0000 (00:07 +0800)]
Fix queue worker incorrectly stopped when there are still more items in the queue (#29532)

Without `case <-t.C`, the workers would stop incorrectly, the test won't
pass. For the worse case, there might be only one running worker
processing the queue items for long time because other workers are
stopped. The root cause is related to the logic of doDispatchBatchToWorker.
It isn't a serious problem at the moment, so keep it as-is.

7 months agoremove util.OptionalBool and related functions (#29513)
6543 [Sat, 2 Mar 2024 15:42:31 +0000 (16:42 +0100)]
remove util.OptionalBool and related functions (#29513)

and migrate affected code

_last refactoring bits to replace **util.OptionalBool** with
**optional.Option[bool]**_

7 months agoRename Action.GetDisplayName to GetActDisplayName (#29540)
wxiaoguang [Sat, 2 Mar 2024 15:30:18 +0000 (23:30 +0800)]
Rename Action.GetDisplayName to GetActDisplayName (#29540)

To avoid conflicting with User.GetDisplayName, because there is no data
type in template.

And it matches other methods like GetActFullName / GetActUserName

7 months agoMake PR form use toast to show error message (#29545)
wxiaoguang [Sat, 2 Mar 2024 15:05:07 +0000 (23:05 +0800)]
Make PR form use toast to show error message (#29545)

![image](https://github.com/go-gitea/gitea/assets/2114189/b7a14ed6-db89-4f21-a590-66cd33307233)

7 months agoFix a bug returning 404 when display a single tag with no release (#29466)
Lunny Xiao [Sat, 2 Mar 2024 14:03:39 +0000 (22:03 +0800)]
Fix a bug returning 404 when display a single tag with no release (#29466)

Partially caused by #29149

When use

```go
releases, err := getReleaseInfos(ctx, &repo_model.FindReleasesOptions{
ListOptions: db.ListOptions{Page: 1, PageSize: 1},
RepoID:      ctx.Repo.Repository.ID,
TagNames:    []string{ctx.Params("*")},
// only show draft releases for users who can write, read-only users shouldn't see draft releases.
IncludeDrafts: writeAccess,
})
```
replace
```go
release, err := repo_model.GetRelease(ctx, ctx.Repo.Repository.ID, ctx.Params("*"))
```
It missed `IncludeTags: true,`. That means this bug will be occupied only when the release is a tag.
This PR will fix

 - Get the right tag record when it's not a release
 - Display correct tag tab but not release tag when it's a tag.
- The button will bring the tag name to the new page when it's a single tag page
- the new page will automatically hide the release target inputbox when the tag name is pre filled. This should be backport to v1.21.

7 months agoAdd a check for when the command is canceled by the program on Window… (#29538)
charles [Sat, 2 Mar 2024 13:38:34 +0000 (21:38 +0800)]
Add a check for when the command is canceled by the program on Window… (#29538)

Close #29509

Windows, unlike Linux, does not have signal-specified exit codes.
Therefore, we should add a Windows-specific check for Windows. If we
don't do this, the logs will always show a failed status, even though
the command actually works correctly.

If you check the Go source code in exec_windows.go, you will see that it
always returns exit code 1.

![image](https://github.com/go-gitea/gitea/assets/30816317/9dfd7c70-9995-47d9-9641-db793f58770c)

The exit code 1 does not exclusively signify a SIGNAL KILL; it can
indicate any issue that occurs when a program fails.

7 months agoFix incorrect redirection when creating a PR fails (#29537)
wxiaoguang [Sat, 2 Mar 2024 12:45:14 +0000 (20:45 +0800)]
Fix incorrect redirection when creating a PR fails (#29537)

This is only a quick fix to make it easier to backport.

After this PR gets merged, I will propose a new PR to fix the FIXME.

<details>

![image](https://github.com/go-gitea/gitea/assets/2114189/98d1d5c4-2e79-4a75-80e9-76fd898986e0)

</details>

7 months agoFix incorrect subpath in links (#29535)
wxiaoguang [Sat, 2 Mar 2024 12:02:34 +0000 (20:02 +0800)]
Fix incorrect subpath in links (#29535)

* `$referenceUrl`: it is constructed by "Issue.Link", which already has
the "AppSubURL"
* `window.location.href`: AppSubURL could be empty string, so it needs
the trailing slash

7 months agoFix issue link does not support quotes (#29484) (#29487)
charles [Sat, 2 Mar 2024 09:54:46 +0000 (17:54 +0800)]
Fix issue link does not support quotes (#29484) (#29487)

Close #29484

![圖片](https://github.com/go-gitea/gitea/assets/30816317/b27e6e16-67e0-469c-8e04-30180c585890)

7 months agoRemove jQuery AJAX from the repo tag edit form (#29526)
Yarden Shoham [Sat, 2 Mar 2024 09:29:04 +0000 (11:29 +0200)]
Remove jQuery AJAX from the repo tag edit form (#29526)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the repo tag edit form functionality and it works as before

# Demo using `fetch` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/11126bc4-1666-44ae-8644-a6351da43514)

---------

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
7 months agoActions Artifacts v4 backend (#28965)
ChristopherHX [Sat, 2 Mar 2024 09:12:17 +0000 (10:12 +0100)]
Actions Artifacts v4 backend (#28965)

Fixes #28853

Needs both https://gitea.com/gitea/act_runner/pulls/473 and
https://gitea.com/gitea/act_runner/pulls/471 on the runner side and
patched `actions/upload-artifact@v4` / `actions/download-artifact@v4`,
like `christopherhx/gitea-upload-artifact@v4` and
`christopherhx/gitea-download-artifact@v4`, to not return errors due to
GHES not beeing supported yet.

7 months agoRemove jQuery AJAX from common global functions (#29528)
Yarden Shoham [Sat, 2 Mar 2024 08:48:14 +0000 (10:48 +0200)]
Remove jQuery AJAX from common global functions (#29528)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the locale change functionality and it works as before
- Tested the delete button functionality and it works as before

# Demo using `fetch` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/8a024f75-c2a5-4bff-898d-ca751d2489f1)

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
7 months agoAllow options to disable user gpg keys configuration from the interface on app.ini...
Lunny Xiao [Sat, 2 Mar 2024 01:21:01 +0000 (09:21 +0800)]
Allow options to disable user gpg keys configuration from the interface on app.ini (#29486)

Follow #29447
Fix #29454
Extract from #20549

7 months ago[skip ci] Updated translations via Crowdin
GiteaBot [Sat, 2 Mar 2024 00:22:27 +0000 (00:22 +0000)]
[skip ci] Updated translations via Crowdin

7 months agoFix issue & comment history bugs (#29525)
wxiaoguang [Fri, 1 Mar 2024 16:46:02 +0000 (00:46 +0800)]
Fix issue & comment history bugs (#29525)

* Follow #17746: `HasIssueContentHistory` should use expr builder to
make sure zero value (0) be respected.
* Add "doer" check to make sure `canSoftDeleteContentHistory` only be
called by sign-in users.

7 months agoFix incorrect diff expander for deletion of last lines in a file (#29501)
silverwind [Fri, 1 Mar 2024 16:12:21 +0000 (17:12 +0100)]
Fix incorrect diff expander for deletion of last lines in a file (#29501)

Fixes: https://github.com/go-gitea/gitea/issues/29498
I don't quite understand this code, but this change does seem to fix the
issue and I tested a number of diffs with it and saw no issue. The
function gets such value if last line is an addition:

```
  LastLeftIdx: (int) 0,
  LastRightIdx: (int) 47,
  LeftIdx: (int) 47,
  RightIdx: (int) 48,
```

If it's a deletion, it gets:

```
  LastLeftIdx: (int) 47,
  LastRightIdx: (int) 0,
  LeftIdx: (int) 48,
  RightIdx: (int) 47,
```

So I think it's correct to make this check respect both left and right
side.

7 months agoIgnore `__debug_bin*` which is generated by vscode when debugging (#29524)
sillyguodong [Fri, 1 Mar 2024 14:18:35 +0000 (22:18 +0800)]
Ignore `__debug_bin*` which is generated by vscode when debugging (#29524)

When debugging in VSCode now, the executable file generated will come
with a random string attached.

7 months agoSet pre-step status to `skipped` if job is skipped (#29489)
sillyguodong [Fri, 1 Mar 2024 13:23:53 +0000 (21:23 +0800)]
Set pre-step status to `skipped` if job is skipped (#29489)

close #27496
1. Set pre-step (Set up job) status to `skipped` if job is skipped.
2. Apart from pre-step, the other steps should also be set to `skipped`.
The status of other steps are reported from the runner side. This will
be completed by this PR: https://gitea.com/gitea/act_runner/pulls/500

before:

![image](https://github.com/go-gitea/gitea/assets/33891828/4bac2ba9-66de-4679-b7ed-fbae459c0c54)

after:

![image](https://github.com/go-gitea/gitea/assets/33891828/ead4871a-4e0f-4bb1-9fb4-37f4fdb78dfc)

7 months agoUse a predictiable fork URL to allow forking repositories without providing a repo...
wxiaoguang [Fri, 1 Mar 2024 12:52:30 +0000 (20:52 +0800)]
Use a predictiable fork URL to allow forking repositories without providing a repo ID (#29519)

Close #29512

The "fork" URL:

* Before: `/repo/fork/{RepoID}`
* After: `/{OwnerName}/{RepoName}/fork`

7 months agoAdding back missing options to app.example.ini (#29511)
Origami404 [Fri, 1 Mar 2024 12:01:24 +0000 (20:01 +0800)]
Adding back missing options to app.example.ini (#29511)

In the refactoring of the configuration file #15807,
some lines were accidentally deleted:

DEFAULT_CLOSE_ISSUES_VIA_COMMITS_IN_ANY_BRANCH = false
ENABLE_PUSH_CREATE_USER = false
ENABLE_PUSH_CREATE_ORG = false

Fix #29510

---------

Co-authored-by: techknowlogick <matti@mdranta.net>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
7 months agoRefactor the "attachments" sub-template data key to RenderedContent (#29517)
wxiaoguang [Fri, 1 Mar 2024 10:56:29 +0000 (18:56 +0800)]
Refactor the "attachments" sub-template data key to RenderedContent (#29517)

The value passed into "attachments" sub-template is from
"RedneredContent", so use the same name for consistent. And it makes
readers easy to know its data type.

7 months agoRename Str2html to SanitizeHTML and clarify its behavior (#29516)
wxiaoguang [Fri, 1 Mar 2024 10:16:19 +0000 (18:16 +0800)]
Rename Str2html to SanitizeHTML and clarify its behavior (#29516)

Str2html was abused a lot. So use a proper name for it: SanitizeHTML

And add some tests to show its behavior.

7 months agoAdd admin API route for managing user's badges (#23106)
techknowlogick [Fri, 1 Mar 2024 08:23:28 +0000 (03:23 -0500)]
Add admin API route for managing user's badges (#23106)

Fix #22785

---------

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
7 months agoRefactor some Str2html code (#29397)
wxiaoguang [Fri, 1 Mar 2024 07:11:51 +0000 (15:11 +0800)]
Refactor some Str2html code (#29397)

This PR touches the most interesting part of the "template refactoring".

1. Unclear variable type. Especially for "web/feed/convert.go":
sometimes it uses text, sometimes it uses HTML.
2. Assign text content to "RenderedContent" field, for example: `
project.RenderedContent = project.Description` in web/org/projects.go
3. Assign rendered content to text field, for example: `r.Note =
rendered content` in web/repo/release.go
4. (possible) Incorrectly calling `{{Str2html
.PackageDescriptor.Metadata.ReleaseNotes}}` in
package/content/nuget.tmpl, I guess the name Str2html misleads
developers to use it to "render string to html", but it only sanitizes.
if ReleaseNotes really contains HTML, then this is not a problem.

7 months agoMove migration functions to services layer (#29497)
Lunny Xiao [Fri, 1 Mar 2024 02:23:00 +0000 (10:23 +0800)]
Move migration functions to services layer (#29497)

7 months agoDon’t comment when locking (#29508)
techknowlogick [Fri, 1 Mar 2024 01:43:42 +0000 (20:43 -0500)]
Don’t comment when locking (#29508)

This reduces the number of emails/notifications on outdated issues.

Co-authored-by: John Olheiser <john.olheiser@gmail.com>
7 months ago[skip ci] Updated translations via Crowdin
GiteaBot [Fri, 1 Mar 2024 00:27:12 +0000 (00:27 +0000)]
[skip ci] Updated translations via Crowdin

7 months agomigrate some more "OptionalBool" to "Option[bool]" (#29479)
6543 [Thu, 29 Feb 2024 18:52:49 +0000 (19:52 +0100)]
migrate some more "OptionalBool" to "Option[bool]" (#29479)

just some refactoring bits towards replacing **util.OptionalBool** with
**optional.Option[bool]**

---------

Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
7 months agoUpdate FAQ about git hook problems (#29495)
Jason Song [Thu, 29 Feb 2024 14:16:02 +0000 (22:16 +0800)]
Update FAQ about git hook problems (#29495)

Close
https://github.com/go-gitea/gitea/issues/29338#issuecomment-1970363817

7 months agoLighten text colors on dark theme for increased contrast (#29481)
silverwind [Thu, 29 Feb 2024 05:11:11 +0000 (06:11 +0100)]
Lighten text colors on dark theme for increased contrast (#29481)

Improve contrast by lightening the text colors in dark theme by around
35%. Additionally, share some variables that had the same or similar
color, which will ease future theme creation.

7 months agoFix wrong test usage of `AppSubURL` (#29459)
KN4CK3R [Thu, 29 Feb 2024 03:39:24 +0000 (04:39 +0100)]
Fix wrong test usage of `AppSubURL` (#29459)

The tests use an invalid `setting.AppSubURL`. The wrong behaviour
disturbs other PRs like #29222 and #29427.

7 months agoImprove contrast on blame timestamp, fix double border (#29482)
silverwind [Thu, 29 Feb 2024 02:00:33 +0000 (03:00 +0100)]
Improve contrast on blame timestamp, fix double border (#29482)

Before, double border on top, bad contrast on dark:
<img width="155" alt="Screenshot 2024-02-29 at 02 06 17"
src="https://github.com/go-gitea/gitea/assets/115237/fc0f1e08-a5ce-47ed-9eb6-135eed5a1abb">
<img width="126" alt="Screenshot 2024-02-29 at 02 07 28"
src="https://github.com/go-gitea/gitea/assets/115237/38ae8483-8d9b-484c-8909-d4466131ea16">

After, no double border on top, good contrast:
<img width="154" alt="Screenshot 2024-02-29 at 02 20 20"
src="https://github.com/go-gitea/gitea/assets/115237/ad91282b-e9f5-4f41-8f5e-6ba28db3beac">
<img width="147" alt="Screenshot 2024-02-29 at 02 20 38"
src="https://github.com/go-gitea/gitea/assets/115237/7ee2ec92-e72a-4981-aec3-98fc8e579bae">

7 months agoFix/Improve `processWindowErrorEvent` (#29407)
silverwind [Wed, 28 Feb 2024 22:20:53 +0000 (23:20 +0100)]
Fix/Improve `processWindowErrorEvent` (#29407)

- `e.error` can be undefined in some cases which would raise an error
inside this error handler, fixed that.
- The displayed message mentions looking into the console, but in my
case of error from `ResizeObserver` there was nothing there, so add this
logging. I think this logging was once there but got lost during
refactoring.

7 months agoApply compact padding to small buttons with svg icons (#29471)
silverwind [Wed, 28 Feb 2024 20:26:12 +0000 (21:26 +0100)]
Apply compact padding to small buttons with svg icons (#29471)

The buttons on the repo release tab were larger in height than on other
tabs because one of them contained the RSS icon which stretched the
button height by 3px. Workaround this problem by applying the "compact"
padding to any such button. They are within 0.4px in height now to
non-icon buttons.

Before:

<img width="406" alt="Screenshot 2024-02-28 at 15 30 23"
src="https://github.com/go-gitea/gitea/assets/115237/805bb93a-6fe4-40a0-82d1-03001bee8ecf">

After:

<img width="407" alt="Screenshot 2024-02-28 at 15 38 43"
src="https://github.com/go-gitea/gitea/assets/115237/27707588-890f-4852-ab08-105a57eda880">

For comparison, button on issue tab:

<img width="452" alt="Screenshot 2024-02-28 at 15 31 46"
src="https://github.com/go-gitea/gitea/assets/115237/74ac13d5-d016-49ba-9dd9-40ed32a748e9">

7 months agoFix counter display number incorrectly displayed on the page (#29448)
charles [Wed, 28 Feb 2024 20:23:49 +0000 (04:23 +0800)]
Fix counter display number incorrectly displayed on the page (#29448)

issue : #28239

The counter number script uses the 'checkbox' attribute to determine
whether an item is selected or not.

However, the input event only increments the counter value, and when
more items are displayed, it does not update all previously loaded
items.

As a result, the display becomes incorrect because it triggers the
update counter script, but checkboxes that are selected without the
'checked' attribute are not counted

7 months agoFix incorrect user location link on profile page (#29474)
wxiaoguang [Wed, 28 Feb 2024 16:03:06 +0000 (00:03 +0800)]
Fix incorrect user location link on profile page (#29474)

Fix #29472. Regression of #29236, a "if" check was missing.

7 months agoFix workflow trigger event bugs (#29467)
Zettat123 [Wed, 28 Feb 2024 15:35:04 +0000 (23:35 +0800)]
Fix workflow trigger event bugs (#29467)

1. Fix incorrect `HookEventType` for issue-related events in
`IssueChangeAssignee`
2. Add `case "types"` in the `switch` block in `matchPullRequestEvent`
to avoid warning logs

7 months agoFix URL calculation in clone input box (#29470)
silverwind [Wed, 28 Feb 2024 15:04:04 +0000 (16:04 +0100)]
Fix URL calculation in clone input box (#29470)

Ported the function as-is and added comments so we don't forget about
this in the future.

Fixes: https://github.com/go-gitea/gitea/issues/29462
7 months agoRemove jQuery from the "find file" page (#29456)
Yarden Shoham [Wed, 28 Feb 2024 14:11:54 +0000 (16:11 +0200)]
Remove jQuery from the "find file" page (#29456)

- Switched to plain JavaScript
- Tested the file searching functionality and it works as before

# Demo using JavaScript without jQuery

![action](https://github.com/go-gitea/gitea/assets/20454870/8ceef0ed-ab87-448c-8b9b-9b5c0cd8bebd)

---------

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoMove generate from module to service (#29465)
Lunny Xiao [Wed, 28 Feb 2024 13:40:36 +0000 (21:40 +0800)]
Move generate from module to service (#29465)

7 months agoThe job should always run when `if` is `always()` (#29464)
Zettat123 [Wed, 28 Feb 2024 10:54:44 +0000 (18:54 +0800)]
The job should always run when `if` is `always()` (#29464)

Fix #27906

According to GitHub's
[documentation](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idneeds),
a job should always run when its `if` is `always()`

> If you would like a job to run even if a job it is dependent on did
not succeed, use the `always()` conditional expression in
`jobs.<job_id>.if`.

---------

Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoRecolor dark theme to blue shade (#29283)
silverwind [Wed, 28 Feb 2024 10:16:15 +0000 (11:16 +0100)]
Recolor dark theme to blue shade (#29283)

Now uses the same primary color as light theme. The secondary colors are
shifted towards a slightly blue shade. Could maybe desaturate a bit
more, but overall I think I'm happy with it.

Fixes: https://github.com/go-gitea/gitea/issues/27097
<img width="1343" alt="Screenshot 2024-02-27 at 22 21 46"
src="https://github.com/go-gitea/gitea/assets/115237/4163c393-b469-4a53-8f4b-1c33aa04f3ac">
<img width="581" alt="image"
src="https://github.com/go-gitea/gitea/assets/115237/e621f7f8-5679-4605-bf42-3d5ff1071e1e">
<img width="581" alt="image"
src="https://github.com/go-gitea/gitea/assets/115237/20e66493-2457-482b-b8f1-e5710934e189">

---------

Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoLet ctx.FormOptionalBool() return optional.Option[bool] (#29461)
6543 [Wed, 28 Feb 2024 05:39:12 +0000 (06:39 +0100)]
Let ctx.FormOptionalBool() return optional.Option[bool] (#29461)

just some refactoring bits towards replacing **util.OptionalBool** with
**optional.Option[bool]**

7 months agoImplement actions badge svgs (#28102)
Nanguan Lin [Tue, 27 Feb 2024 17:56:18 +0000 (01:56 +0800)]
Implement actions badge svgs (#28102)

replace #27187
close #23688
The badge has two parts: label(workflow name) and message(action
status). 5 colors are provided with 7 statuses.
Color mapping:
```go
var statusColorMap = map[actions_model.Status]string{
actions_model.StatusSuccess:   "#4c1",    // Green
actions_model.StatusSkipped:   "#dfb317", // Yellow
actions_model.StatusUnknown:   "#97ca00", // Light Green
actions_model.StatusFailure:   "#e05d44", // Red
actions_model.StatusCancelled: "#fe7d37", // Orange
actions_model.StatusWaiting:   "#dfb317", // Yellow
actions_model.StatusRunning:   "#dfb317", // Yellow
actions_model.StatusBlocked:   "#dfb317", // Yellow
}
```
preview:

![1](https://github.com/go-gitea/gitea/assets/70063547/5465cbaf-23cd-4437-9848-2738c3cb8985)

![2](https://github.com/go-gitea/gitea/assets/70063547/ec393d26-c6e6-4d38-b72c-51f2494c5e71)

![3](https://github.com/go-gitea/gitea/assets/70063547/3edb4fdf-1b08-4a02-ab2a-6bdd7f532fb2)

![4](https://github.com/go-gitea/gitea/assets/70063547/8c189de2-2169-4251-b115-0e39a52f3df8)

![5](https://github.com/go-gitea/gitea/assets/70063547/3fe22c73-c2d7-4fec-9ea4-c501a1e4e3bd)

---------

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: Giteabot <teabot@gitea.io>
Co-authored-by: delvh <dev.lh@web.de>
7 months agoFix missed return (#29450)
Lunny Xiao [Tue, 27 Feb 2024 15:09:13 +0000 (23:09 +0800)]
Fix missed return (#29450)

7 months agoUse tailwind instead of `gt-[wh]-` helper classes (#29423)
Lunny Xiao [Tue, 27 Feb 2024 14:31:41 +0000 (22:31 +0800)]
Use tailwind instead of `gt-[wh]-` helper classes (#29423)

Follow #29357
- Replace `gt-w-*` -> `tw-w-*` and remove `gt-w-*`
- Replace `gt-h-*` -> `tw-h-*` and remove `gt-h-*`

7 months agoLock issues and pulls faster (#29436)
6543 [Tue, 27 Feb 2024 11:51:51 +0000 (12:51 +0100)]
Lock issues and pulls faster (#29436)

also point to the docs to explain why we do so

followup to  #29433

7 months agoAllow to change primary email before account activation (#29412)
wxiaoguang [Tue, 27 Feb 2024 10:55:13 +0000 (18:55 +0800)]
Allow to change primary email before account activation (#29412)

7 months agoUpdate docs about `DEFAULT_ACTIONS_URL` (#29442)
Jason Song [Tue, 27 Feb 2024 09:18:35 +0000 (17:18 +0800)]
Update docs about `DEFAULT_ACTIONS_URL` (#29442)

Follow #25581.

7 months agoOnly use supported sort order for "explore/users" page (#29430)
wxiaoguang [Tue, 27 Feb 2024 09:10:51 +0000 (17:10 +0800)]
Only use supported sort order for "explore/users" page (#29430)

Thanks to inferenceus : some sort orders on the "explore/users" page
could list users by their lastlogintime/updatetime.

It leaks user's activity unintentionally. This PR makes that page only
use "supported" sort orders.

Removing the "sort orders" could also be a good solution, while IMO at
the moment keeping the "create time" and "name" orders is also fine, in
case some users would like to find a target user in the search result,
the "sort order" might help.

![image](https://github.com/go-gitea/gitea/assets/2114189/ce5c39c1-1e86-484a-80c3-33cac6419af8)

7 months agoNot trigger all jobs any more, when re-running the first job (#29439)
sillyguodong [Tue, 27 Feb 2024 07:40:21 +0000 (15:40 +0800)]
Not trigger all jobs any more, when re-running the first job (#29439)

Previously, it will be treated as "re-run all jobs" when `jobIndex ==
0`. So when you click re-run button on the first job, it triggers all
the jobs actually.

7 months agoMove context from modules to services (#29440)
Lunny Xiao [Tue, 27 Feb 2024 07:12:22 +0000 (15:12 +0800)]
Move context from modules to services (#29440)

Since `modules/context` has to depend on `models` and many other
packages, it should be moved from `modules/context` to
`services/context` according to design principles. There is no logic
code change on this PR, only move packages.

- Move `code.gitea.io/gitea/modules/context` to
`code.gitea.io/gitea/services/context`
- Move `code.gitea.io/gitea/modules/contexttest` to
`code.gitea.io/gitea/services/contexttest` because of depending on
context
- Move `code.gitea.io/gitea/modules/upload` to
`code.gitea.io/gitea/services/context/upload` because of depending on
context

7 months agoApply tailwindcss rules with `!important` (#29437)
silverwind [Tue, 27 Feb 2024 03:04:46 +0000 (04:04 +0100)]
Apply tailwindcss rules with `!important` (#29437)

As per discussion in https://github.com/go-gitea/gitea/pull/29423, I
think this is the right way that does not burden developers having to
think about CSS precedence which should be irrelevant with an atomic CSS
framework.

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
7 months agoFix mail template error (#29410)
wxiaoguang [Mon, 26 Feb 2024 22:31:30 +0000 (06:31 +0800)]
Fix mail template error (#29410)

7 months agoDocument our issue locking policy (#29433)
delvh [Mon, 26 Feb 2024 22:04:44 +0000 (23:04 +0100)]
Document our issue locking policy (#29433)

7 months agoFix htmx rendering the login page in frame on session logout (#29405)
Yarden Shoham [Mon, 26 Feb 2024 12:40:41 +0000 (14:40 +0200)]
Fix htmx rendering the login page in frame on session logout (#29405)

- Fix #29391

With this change, htmx will not follow the redirect in the AJAX request
but instead redirect the whole browser.

To reproduce the bug fixed by this change without waiting a long time
for the token to expire, you can logout in another tab then look in the
original tab. Just make sure to comment out both instances of
`window.location.href = appSubUrl` in the codebase so you won't be
redirected immediately on logout. This is what I did in the following
gifs.

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoIgnore empty repo for CreateRepository in action notifier (#29416)
yp05327 [Mon, 26 Feb 2024 09:38:15 +0000 (18:38 +0900)]
Ignore empty repo for CreateRepository in action notifier (#29416)

Fix #29415

7 months agoFix incorrect tree path value for patch editor (#29377)
wxiaoguang [Mon, 26 Feb 2024 09:05:22 +0000 (17:05 +0800)]
Fix incorrect tree path value for patch editor (#29377)

Regression of #18718. When submitting the form,
EditRepoFileForm.TreePath is marked as "Required", so the value can't be
empty. The value is not used by backend, so use a meaningful dummy value
for it.

7 months agoFix logic error from #28138 (#29417)
yp05327 [Mon, 26 Feb 2024 08:10:14 +0000 (17:10 +0900)]
Fix logic error from #28138 (#29417)

There's a miss in #28138:

![image](https://github.com/go-gitea/gitea/assets/18380374/b1e0c5fc-0e6e-44ab-9f6e-34bc8ffbe1cc)

https://github.com/go-gitea/gitea/pull/28138/files#diff-2556e62ad7204a230c91927a3f2115e25a2b688240d0ee1de6d34f0277f37dfeR162

@lunny
Not sure about the impact of this, but it will only effect 1.22, and
maybe we should fix it ASAP.

Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
7 months agoInclude resource state events in Gitlab downloads (#29382)
Sebastian Brückner [Mon, 26 Feb 2024 04:08:21 +0000 (04:08 +0000)]
Include resource state events in Gitlab downloads (#29382)

Some specific events on Gitlab issues and merge requests are stored
separately from comments as "resource state events". With this change,
all relevant resource state events are downloaded during issue and merge
request migration, and converted to comments.

This PR also updates the template used to render comments to add support
for migrated comments of these types.

ref: https://docs.gitlab.com/ee/api/resource_state_events.html

7 months agoAdd API to get PR by base/head (#29242)
qwerty287 [Mon, 26 Feb 2024 02:39:01 +0000 (03:39 +0100)]
Add API to get PR by base/head (#29242)

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

Add a new API `/repos/{owner}/{repo}/pulls/{base}/{head}` to get a PR by
its base and head branch.

7 months ago[skip ci] Updated translations via Crowdin
GiteaBot [Mon, 26 Feb 2024 00:24:51 +0000 (00:24 +0000)]
[skip ci] Updated translations via Crowdin

7 months agoImprove Documentation for Restoration from backup (#29321)
kralo [Sun, 25 Feb 2024 23:35:52 +0000 (00:35 +0100)]
Improve Documentation for Restoration from backup (#29321)

Comment the default path for repos and suggest using doctor for when
things are stuck

7 months agoRefactor "user/active" related logic (#29390)
wxiaoguang [Sun, 25 Feb 2024 21:55:00 +0000 (05:55 +0800)]
Refactor "user/active" related logic (#29390)

And add more tests. Remove a lot of fragile "if" blocks.

The old logic is kept as-is.

7 months agoRemove jQuery AJAX from the archive download links (#29380)
Yarden Shoham [Sun, 25 Feb 2024 16:53:44 +0000 (18:53 +0200)]
Remove jQuery AJAX from the archive download links (#29380)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the repo archive download links dropdown functionality and it
works as before

# Demo using `fetch` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/db791249-bca1-4d22-ac5e-623f68023e15)

---------

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
7 months agoAdd tailwindcss (#29357)
silverwind [Sun, 25 Feb 2024 16:46:46 +0000 (17:46 +0100)]
Add tailwindcss (#29357)

This will get tailwindcss working on a basic level. It provides only the
utility classes, e.g. no tailwind base which we don't need because we
have our own CSS reset. Without the base, we also do not have their CSS
variables so a small amount of features do not work and I removed the
generated classes for them.

***Note for future developers: This currently uses a `tw-` prefix, so we
use it like `tw-p-3`.***

<details>
<summary>Currently added CSS, all false-positives</summary>

```
.\!visible{

    visibility: visible !important
}

.visible{

    visibility: visible
}

.invisible{

    visibility: hidden
}

.collapse{

    visibility: collapse
}

.static{

    position: static
}

.\!fixed{

    position: fixed !important
}

.absolute{

    position: absolute
}

.relative{

    position: relative
}

.sticky{

    position: sticky
}

.left-10{

    left: 2.5rem
}

.isolate{

    isolation: isolate
}

.float-right{

    float: right
}

.float-left{

    float: left
}

.mr-2{

    margin-right: 0.5rem
}

.mr-3{

    margin-right: 0.75rem
}

.\!block{

    display: block !important
}

.block{

    display: block
}

.inline-block{

    display: inline-block
}

.inline{

    display: inline
}

.flex{

    display: flex
}

.inline-flex{

    display: inline-flex
}

.\!table{

    display: table !important
}

.inline-table{

    display: inline-table
}

.table-caption{

    display: table-caption
}

.table-cell{

    display: table-cell
}

.table-column{

    display: table-column
}

.table-column-group{

    display: table-column-group
}

.table-footer-group{

    display: table-footer-group
}

.table-header-group{

    display: table-header-group
}

.table-row-group{

    display: table-row-group
}

.table-row{

    display: table-row
}

.flow-root{

    display: flow-root
}

.inline-grid{

    display: inline-grid
}

.contents{

    display: contents
}

.list-item{

    display: list-item
}

.\!hidden{

    display: none !important
}

.hidden{

    display: none
}

.flex-shrink{

    flex-shrink: 1
}

.shrink{

    flex-shrink: 1
}

.flex-grow{

    flex-grow: 1
}

.grow{

    flex-grow: 1
}

.border-collapse{

    border-collapse: collapse
}

.select-all{

    user-select: all
}

.resize{

    resize: both
}

.flex-wrap{

    flex-wrap: wrap
}

.overflow-visible{

    overflow: visible
}

.rounded{

    border-radius: 0.25rem
}

.border{

    border-width: 1px
}

.text-justify{

    text-align: justify
}

.uppercase{

    text-transform: uppercase
}

.lowercase{

    text-transform: lowercase
}

.capitalize{

    text-transform: capitalize
}

.italic{

    font-style: italic
}

.text-red{

    color: var(--color-red)
}

.text-shadow{

    color: var(--color-shadow)
}

.underline{

    text-decoration-line: underline
}

.overline{

    text-decoration-line: overline
}

.line-through{

    text-decoration-line: line-through
}

.outline{

    outline-style: solid
}

.ease-in{

    transition-timing-function: cubic-bezier(0.4, 0, 1, 1)
}

.ease-in-out{

    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
}

.ease-out{

    transition-timing-function: cubic-bezier(0, 0, 0.2, 1)
}
```

</details>

---------

Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoAdd missing space (#29393)
KN4CK3R [Sun, 25 Feb 2024 15:42:36 +0000 (16:42 +0100)]
Add missing space (#29393)

7 months agoIntegrate alpine `noarch` packages into other architectures index (#29137)
KN4CK3R [Sun, 25 Feb 2024 15:10:55 +0000 (16:10 +0100)]
Integrate alpine `noarch` packages into other architectures index (#29137)

Fixes #26691
Revert #24972

The alpine package manager expects `noarch` packages in the index of
other architectures too.

---------

Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
7 months agoenforce maxlength in frontend (#29389)
Tim-Niclas Oelschläger [Sun, 25 Feb 2024 14:31:15 +0000 (15:31 +0100)]
enforce maxlength in frontend (#29389)

Set maxlength attribute in frontend

to long file-name

![image](https://github.com/go-gitea/gitea/assets/72873130/15111614-55ab-4583-acb2-15c25997601d)

![image](https://github.com/go-gitea/gitea/assets/72873130/4105ddd8-4973-4da8-b3ab-4cfae1b45554)
(same for branch-name and commit-summary)

7 months agoRemove incorrect and unnecessary Escape from templates (#29394)
wxiaoguang [Sun, 25 Feb 2024 14:02:20 +0000 (22:02 +0800)]
Remove incorrect and unnecessary Escape from templates (#29394)

Follow #29165

* some of them are incorrect, which would lead to double escaping (eg:
`(print (Escape $.RepoLink)`)
* other of them are not necessary, because `Tr` handles strings&HTML
automatically

Suggest to review by "unified view":
https://github.com/go-gitea/gitea/pull/29394/files?diff=unified&w=0

7 months agoMake actions animation rotate counterclockwisely (#29378)
wxiaoguang [Sun, 25 Feb 2024 13:37:35 +0000 (21:37 +0800)]
Make actions animation rotate counterclockwisely (#29378)

Because the icon is:

![image](https://github.com/go-gitea/gitea/assets/2114189/be7e78ab-bc64-46d9-8259-fd7f0037471a)

So it must rotate counterclockwisely

7 months agoUse `crypto/sha256` (#29386)
KN4CK3R [Sun, 25 Feb 2024 13:32:13 +0000 (14:32 +0100)]
Use `crypto/sha256` (#29386)

Go 1.21 improved the performance of `crypto/sha256`. It's now similar to
`minio/sha256-simd`, so we should just use the standard libs.

https://go.dev/doc/go1.21#crypto/sha256
https://go-review.googlesource.com/c/go/+/408795
https://github.com/multiformats/go-multihash/pull/173

7 months agoAdd `io.Closer` guidelines (#29387)
KN4CK3R [Sun, 25 Feb 2024 13:05:23 +0000 (14:05 +0100)]
Add `io.Closer` guidelines (#29387)

Co-authored-by: Yarden Shoham <git@yardenshoham.com>
7 months agoRemove jQuery AJAX from the notice selection deletion button (#29381)
Yarden Shoham [Sun, 25 Feb 2024 12:36:11 +0000 (14:36 +0200)]
Remove jQuery AJAX from the notice selection deletion button (#29381)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the repo notice selection deletion button functionality and it
works as before

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
7 months agoRefactor Safe modifier (#29392)
wxiaoguang [Sun, 25 Feb 2024 10:45:56 +0000 (18:45 +0800)]
Refactor Safe modifier (#29392)

After this PR: no need to play with the Safe/Escape tricks anymore. See
the changes for more details.

7 months agoAdd attachment support for code review comments (#29220)
Jimmy Praet [Sun, 25 Feb 2024 06:00:55 +0000 (07:00 +0100)]
Add attachment support for code review comments (#29220)

Fixes #27960, #24411, #12183

---------

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
7 months agoRefactor modules/git global variables (#29376)
wxiaoguang [Sun, 25 Feb 2024 05:35:47 +0000 (13:35 +0800)]
Refactor modules/git global variables (#29376)

Move some global variables into a struct to improve maintainability

7 months agoRemove jQuery from the code diff expansion buttons (#29385)
Yarden Shoham [Sun, 25 Feb 2024 05:07:23 +0000 (07:07 +0200)]
Remove jQuery from the code diff expansion buttons (#29385)

- Removed all jQuery AJAX calls and replaced with htmx
- Tested the code diff expansion buttons functionality and it works as
before plus a loading indicator

# Demo using `htmx` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/afba7442-ed56-4d39-b764-835d1f6c3a9c)

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
7 months agoRemove jQuery AJAX from the markdown editor preview (#29384)
Yarden Shoham [Sun, 25 Feb 2024 04:42:29 +0000 (06:42 +0200)]
Remove jQuery AJAX from the markdown editor preview (#29384)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the markdown editor preview button functionality and it works
as before

# Demo using `fetch` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/3fc7abb8-4fdc-46e9-95f6-087d9526bb52)

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
7 months agoRefactor `copy` button event handler (#29379)
wxiaoguang [Sun, 25 Feb 2024 04:17:11 +0000 (12:17 +0800)]
Refactor `copy` button event handler (#29379)

Use "closest" instead of "for-loop"

7 months agoRemove jQuery AJAX from the repo commit graph (#29373)
Yarden Shoham [Sun, 25 Feb 2024 04:09:55 +0000 (06:09 +0200)]
Remove jQuery AJAX from the repo commit graph (#29373)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the repo collaborator mode dropdown functionality and it works
as before

# Demo using `fetch` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/7e2f166e-9941-4f26-9666-d00cdf3d9f60)

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoMove citiation button to proper place (#29374)
wxiaoguang [Sun, 25 Feb 2024 00:13:04 +0000 (08:13 +0800)]
Move citiation button to proper place (#29374)

The citiation button shouldn't be controlled by
DisableDownloadSourceArchives (line 134)

So move it out of that "if" block.

Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoRemove jQuery AJAX from repo collaborator mode dropdown (#29371)
Yarden Shoham [Sat, 24 Feb 2024 23:08:51 +0000 (01:08 +0200)]
Remove jQuery AJAX from repo collaborator mode dropdown (#29371)

- Removed all jQuery AJAX calls and replaced with our fetch wrapper
- Tested the repo collaborator mode dropdown functionality and it works
as before

# Demo using `fetch` instead of jQuery AJAX

![action](https://github.com/go-gitea/gitea/assets/20454870/04466629-19b2-4469-9231-38820ee13c36)

---------

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: Giteabot <teabot@gitea.io>
7 months agoRemove RenderEmojiPlain from template helper (#29375)
wxiaoguang [Sat, 24 Feb 2024 22:34:51 +0000 (06:34 +0800)]
Remove RenderEmojiPlain from template helper (#29375)

RenderEmojiPlain(emoji.ReplaceAliases) should be called explicitly for
some contents, but not for everything.

Actually in modern days, in most cases it doesn't need such
"ReplaceAliases". So only keep it for issue/PR titles.

If anyone really needs to do ReplaceAliases for some contents, I will
propose a following fix.

7 months agoApply to become a maintainer (zokkis) (#29383)
Tim-Nicas Oelschläger [Sat, 24 Feb 2024 20:19:49 +0000 (21:19 +0100)]
Apply to become a maintainer (zokkis) (#29383)

7 months agoRemove jQuery from the Unicode escape button (#29369)
Yarden Shoham [Sat, 24 Feb 2024 19:11:51 +0000 (21:11 +0200)]
Remove jQuery from the Unicode escape button (#29369)

- Switched to plain JavaScript
- Tested the Unicode escape button functionality and it works as before

# Demo using JavaScript without jQuery

![action](https://github.com/go-gitea/gitea/assets/20454870/664f0ced-876b-4cb7-a668-bd62169fc843)

---------

Signed-off-by: Yarden Shoham <git@yardenshoham.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
7 months agoRefactor git attributes (#29356)
KN4CK3R [Sat, 24 Feb 2024 18:46:49 +0000 (19:46 +0100)]
Refactor git attributes (#29356)

7 months agoUsers with `read` permission of pull requests can be assigned too (#27263)
Lunny Xiao [Sat, 24 Feb 2024 14:14:48 +0000 (22:14 +0800)]
Users with `read` permission of pull requests can be assigned too (#27263)

This PR will also keep the consistent between list assigned users and
check assigned users.

7 months agoCustomizable "Open with" applications for repository clone (#29320)
wxiaoguang [Sat, 24 Feb 2024 13:12:17 +0000 (21:12 +0800)]
Customizable "Open with" applications for repository clone (#29320)

Users could customize the "clone" menu with their own application URLs on the admin panel.

Replace #22378
Close #21121
Close #22149