Skip to content

Update action status badge layout #34018

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 15 commits into from
Mar 28, 2025
Merged

Conversation

bytedream
Copy link
Contributor

@bytedream bytedream commented Mar 26, 2025

The current action status badge are looking different from most other badges renders, which is especially noticeable when using them along with other badges. This PR updates the action badges to match the commonly used badges from other providers.

Old (first 3 are gitea badges, the others are from shields.io):
Screenshot_20250326_012707

New:
Screenshot_20250326_022620

A tricky part is the calculation of the text width, which is required to set the correct width of the label and message part of the badge. The used font is DejaVu Sans, which isn't monospaced, so different badge texts with the same letter count may be rendered with different lengths in the browser.
To get the correct width, dynamic text width calculations must be done server side. All widths of printable characters from 0x00 to 0xFF are "prerendered". The comments in badge_glyph_width.go describe how the width generation was done. I've added a build script that downloads the font, renders the width of each supported character (at font size 11) and generates a table/map with all widths that is then used to get the approximate text width. This results in a rather big codegen file, as the font has ~5500 supported characters.

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Mar 26, 2025
@github-actions github-actions bot added modifies/go Pull requests that update Go code modifies/templates This PR modifies the template files modifies/internal labels Mar 26, 2025
Copy link
Contributor

@wxiaoguang wxiaoguang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry but I do not think it is a proper approach to embed font widths at the moment. You can see that font-family="Geneva,DejaVu Sans,sans-serif" there are more fonts and the render might use none of them if there is a fallback.

@GiteaBot GiteaBot added lgtm/blocked A maintainer has reservations with the PR and thus it cannot be merged and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Mar 26, 2025
@wxiaoguang
Copy link
Contributor

Some more thoughts:

  1. Do we really need that many "font widths"? I guess no. That badge only renders ASCII letters and numbers.
  2. Do we really need to handle various fonts? I guess no, we could use some "preferred" fonts and use the guessed width. The "preferred" fonts could be carefully chosen to make sure they have similar character widths.

@bytedream
Copy link
Contributor Author

bytedream commented Mar 26, 2025

Sorry but I do not think it is a proper approach to embed font widths at the moment. You can see that font-family="Geneva,DejaVu Sans,sans-serif" there are more fonts and the render might use none of them if there is a fallback.

I looked at the implementation of shields.io and they are using the same approach to get the font width.
GitHub uses 'DejaVu Sans',Verdana,Geneva,sans-serif for their action shields, shields.io Verdana,Geneva,DejaVu Sans,sans-serif. From what I've read they have mostly the same widths with some small differences for some letters. Verdana is the biggest, Geneva the smallest and DejaVu Sans is in between them. The "spec" also recommends using DejaVu Sans.

  1. Do we really need that many "font widths"? I guess no. That badge only renders ASCII letters and numbers.

The label of the badge is the workflow name, non-ascii letters could be used there. But true, I also think this isn't the case so often. For this cases a fallback width could be used.

  1. Do we really need to handle various fonts? I guess no, we could use some "preferred" fonts and use the guessed width. The "preferred" fonts could be carefully chosen to make sure they have similar character widths.

GitHub and shields.io are both using DejaVu Sans, Verdana and Geneva as fonts, so using them as preferred fonts is relatively safe.

@wxiaoguang
Copy link
Contributor

  1. Do we really need that many "font widths"? I guess no. That badge only renders ASCII letters and numbers.

The label of the badge is the workflow name, non-ascii letters could be used there. But true, I also think this isn't the case so often. For this cases a fallback width could be used.

If non-ascii letters would be used, what would happen if there are CJK characters?

@bytedream
Copy link
Contributor Author

bytedream commented Mar 26, 2025

The last commit added a fallback. So any glyph that isn't in the generated width map (like CJK) will use the width of m. m is also used as fallback for shields.io which is why I chose this char to be the fallback

image

@bytedream
Copy link
Contributor Author

Do we really need that many "font widths"? I guess no.

With the fallback implemented, reducing the amount of font/glyph width is a good idea.
Storing only ascii characters is pretty valid. This would result in a map with 95 width entries. I'd extend the supported char range to unicode.MaxLatin1 (\u00FF) which supports some more specials characters and thus may handle more edgecases. This would will result in 188 map entries. I don't know if including said extended char range is really necessary in practice, so I'm also fine if you say ascii only is enough.

@wxiaoguang
Copy link
Contributor

Hmm yes, if we could only store the widths for characters before 0x80 or 0xFF, it would be better.

@bytedream
Copy link
Contributor Author

Done with 0xFF (+ renamed font width to glyph width)

@wxiaoguang wxiaoguang dismissed their stale review March 27, 2025 15:07

dismiss

@GiteaBot GiteaBot added lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. and removed lgtm/blocked A maintainer has reservations with the PR and thus it cannot be merged labels Mar 27, 2025
@wxiaoguang
Copy link
Contributor

wxiaoguang commented Mar 28, 2025

The rendered images seem strange. Am I wrong?

image

Hmm ..... I guess I know the problem now .... the id conflicts

@wxiaoguang
Copy link
Contributor

Tested with different texts and fonts, seem good.

The last questions:

  1. Do we need to keep build/generate-glyph-width.go? IMO the font widths are fixed and won't change.
  2. (After 1): Maybe we could use once.Value to lazy-init the rune map to avoid consuming CPU&memory for other sub-commands.

@bytedream
Copy link
Contributor Author

bytedream commented Mar 28, 2025

Hmm ..... I guess I know the problem now .... the id conflicts

Oh you also solved this. I did a fix that only changes the devtests (subrequests for each svg).

  1. Do we need to keep build/generate-glyph-width.go? IMO the font widths are fixed and won't change.

My intention with the build script was to have a transparent source how the widths are calculated. But yea I also don't think that they'll ever change

@wxiaoguang
Copy link
Contributor

I made a change in ffc8c1d to use "sync.OnceValue".

Maybe we could either:

  • update the "generate" program
  • add some comments like these widths are generated by `ttfFont.GlyphAdvance(nil, glyphIndex, 11, font.HintingNone)` with https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-sans-ttf-2.37.zip and then no need to include the "generate" program?

@bytedream
Copy link
Contributor Author

  • add some comments like these widths are generated by `ttfFont.GlyphAdvance(nil, glyphIndex, 11, font.HintingNone)` with https://github.com/dejavu-fonts/dejavu-fonts/releases/download/version_2_37/dejavu-sans-ttf-2.37.zip and then no need to include the "generate" program?

Comments sounds good

@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Mar 28, 2025
@wxiaoguang wxiaoguang added the type/enhancement An improvement of existing functionality label Mar 28, 2025
@wxiaoguang wxiaoguang added this to the 1.24.0 milestone Mar 28, 2025
@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Mar 28, 2025
@wxiaoguang wxiaoguang enabled auto-merge (squash) March 28, 2025 14:50
@wxiaoguang wxiaoguang merged commit bf9500b into go-gitea:main Mar 28, 2025
26 checks passed
zjjhot added a commit to zjjhot/gitea that referenced this pull request Mar 31, 2025
* giteaofficial/main:
  [skip ci] Updated translations via Crowdin
  Add toggleClass function in dom.ts (go-gitea#34063)
  Add a config option to block "expensive" pages for anonymous users (go-gitea#34024)
  add additional ReplaceAll in pathsep to cater for different pathsep (go-gitea#34061)
  [skip ci] Updated translations via Crowdin
  enable staticcheck QFxxxx rules (go-gitea#34064)
  update to golangci-lint v2 (go-gitea#34054)
  Add descriptions for private repo public access settings and improve the UI (go-gitea#34057)
  Add anonymous access support for private/unlisted repositories (go-gitea#34051)
  Hide activity contributors, recent commits and code frequrency left tabs if there is no code permission (go-gitea#34053)
  Update action status badge layout (go-gitea#34018)
  Add anonymous access support for private repositories (backend) (go-gitea#33257)
  Simplify emoji rendering (go-gitea#34048)
  Adjust the layout of the toolbar on the Issues/Projects page (go-gitea#33667)
  Fix bug on downloading job logs (go-gitea#34041)
  Fix git client accessing renamed repo  (go-gitea#34034)
  Decouple Batch from git.Repository to simplify usage without requiring the creation of a Repository struct. (go-gitea#34001)
  fix org repo creation being limited by user limits (go-gitea#34030)
  Fix the issue with error message logging for the `check-attr` command on Windows OS. (go-gitea#34035)
  Try to fix check-attr bug (go-gitea#34029)
chris-sanders pushed a commit to chris-sanders/argocd that referenced this pull request Jun 23, 2025
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [gitea/gitea](https://github.com/go-gitea/gitea) | minor | `1.22.6` -> `1.24.2` |

---

### Release Notes

<details>
<summary>go-gitea/gitea (gitea/gitea)</summary>

### [`v1.24.2`](https://github.com/go-gitea/gitea/releases/tag/v1.24.2)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.24.1...v1.24.2)

This is a quick release to resolve docker images push bug

- BUGFIXES
  - Fix container range bug ([#&#8203;34795](https://github.com/go-gitea/gitea/issues/34795)) ([#&#8203;34796](https://github.com/go-gitea/gitea/issues/34796))
  - Upgrade chi to v5.2.2 ([#&#8203;34798](https://github.com/go-gitea/gitea/issues/34798)) ([#&#8203;34799](https://github.com/go-gitea/gitea/issues/34799))
- BUILD
  - Bump poetry feature to new url for dev container ([#&#8203;34787](https://github.com/go-gitea/gitea/issues/34787)) ([#&#8203;34790](https://github.com/go-gitea/gitea/issues/34790))

Instances on **[Gitea Cloud](https://cloud.gitea.com)** will be automatically upgraded to this version during the specified maintenance window.

### [`v1.24.1`](https://github.com/go-gitea/gitea/releases/tag/v1.24.1)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.24.0...v1.24.1)

- ENHANCEMENTS

  - Improve alignment of commit status icon on commit page ([#&#8203;34750](https://github.com/go-gitea/gitea/issues/34750)) ([#&#8203;34757](https://github.com/go-gitea/gitea/issues/34757))
  - Support title and body query parameters for new PRs ([#&#8203;34537](https://github.com/go-gitea/gitea/issues/34537)) ([#&#8203;34752](https://github.com/go-gitea/gitea/issues/34752))

- BUGFIXES
  - When using rules to delete packages, remove unclean bugs ([#&#8203;34632](https://github.com/go-gitea/gitea/issues/34632)) ([#&#8203;34761](https://github.com/go-gitea/gitea/issues/34761))
  - Fix ghost user in feeds when pushing in an actions, it should be gitea-actions ([#&#8203;34703](https://github.com/go-gitea/gitea/issues/34703)) ([#&#8203;34756](https://github.com/go-gitea/gitea/issues/34756))
  - Prevent double markdown link brackets when pasting URL ([#&#8203;34745](https://github.com/go-gitea/gitea/issues/34745)) ([#&#8203;34748](https://github.com/go-gitea/gitea/issues/34748))
  - Prevent duplicate form submissions when creating forks ([#&#8203;34714](https://github.com/go-gitea/gitea/issues/34714)) ([#&#8203;34735](https://github.com/go-gitea/gitea/issues/34735))
  - Fix markdown wrap ([#&#8203;34697](https://github.com/go-gitea/gitea/issues/34697)) ([#&#8203;34702](https://github.com/go-gitea/gitea/issues/34702))
  - Fix pull requests API convert panic when head repository is deleted. ([#&#8203;34685](https://github.com/go-gitea/gitea/issues/34685)) ([#&#8203;34687](https://github.com/go-gitea/gitea/issues/34687))
  - Fix commit message rendering and some UI problems ([#&#8203;34680](https://github.com/go-gitea/gitea/issues/34680)) ([#&#8203;34683](https://github.com/go-gitea/gitea/issues/34683))
  - Fix container range bug ([#&#8203;34725](https://github.com/go-gitea/gitea/issues/34725)) ([#&#8203;34732](https://github.com/go-gitea/gitea/issues/34732))
  - Fix incorrect cli default values ([#&#8203;34765](https://github.com/go-gitea/gitea/issues/34765)) ([#&#8203;34766](https://github.com/go-gitea/gitea/issues/34766))
  - Fix dropdown filter ([#&#8203;34708](https://github.com/go-gitea/gitea/issues/34708)) ([#&#8203;34711](https://github.com/go-gitea/gitea/issues/34711))
  - Hide href attribute of a tag if there is no target\_url ([#&#8203;34556](https://github.com/go-gitea/gitea/issues/34556)) ([#&#8203;34684](https://github.com/go-gitea/gitea/issues/34684))
  - Fix tag target ([#&#8203;34781](https://github.com/go-gitea/gitea/issues/34781)) [#&#8203;34783](https://github.com/go-gitea/gitea/issues/34783)

Instances on **[Gitea Cloud](https://cloud.gitea.com)** will be automatically upgraded to this version during the specified maintenance window.

### [`v1.24.0`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1240---2025-05-26)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.8...v1.24.0)

- BREAKING
  - Make Gitea always use its internal config, ignore `/etc/gitconfig` ([#&#8203;33076](https://github.com/go-gitea/gitea/issues/33076))
  - Improve log format ([#&#8203;33814](https://github.com/go-gitea/gitea/issues/33814))
  - Fix markdown render behaviors ([#&#8203;34122](https://github.com/go-gitea/gitea/issues/34122))
  - Add package version api endpoints ([#&#8203;34173](https://github.com/go-gitea/gitea/issues/34173))

- FEATURES
  - Enforce two-factor auth (2FA: TOTP or WebAuthn) ([#&#8203;34187](https://github.com/go-gitea/gitea/issues/34187))
  - Add fullscreen mode as a more efficient operation way to view projects ([#&#8203;34081](https://github.com/go-gitea/gitea/issues/34081))
  - Add anonymous access support for private/unlisted repositories ([#&#8203;34051](https://github.com/go-gitea/gitea/issues/34051))
  - Support public code/issue access for private repositories ([#&#8203;33127](https://github.com/go-gitea/gitea/issues/33127))
  - Add middleware for request prioritization ([#&#8203;33951](https://github.com/go-gitea/gitea/issues/33951))
  - Add cli flags LDAP group configuration ([#&#8203;33933](https://github.com/go-gitea/gitea/issues/33933))
  - Add file tree to file view page ([#&#8203;32721](https://github.com/go-gitea/gitea/issues/32721))
  - Add material icons for file list ([#&#8203;33837](https://github.com/go-gitea/gitea/issues/33837))
  - Artifacts download api for artifact actions v4 ([#&#8203;33510](https://github.com/go-gitea/gitea/issues/33510))
  - Support choose email when creating a commit via web UI ([#&#8203;33432](https://github.com/go-gitea/gitea/issues/33432))
  - Add basic auth support to rss/atom feeds ([#&#8203;33371](https://github.com/go-gitea/gitea/issues/33371))
  - Add sorting by exclusive labels (issue priority) ([#&#8203;33206](https://github.com/go-gitea/gitea/issues/33206))
  - Add sub issue list support ([#&#8203;32940](https://github.com/go-gitea/gitea/issues/32940))
  - Private README.md for organization ([#&#8203;32872](https://github.com/go-gitea/gitea/issues/32872))
  - Email option to embed images as base64 instead of link ([#&#8203;32061](https://github.com/go-gitea/gitea/issues/32061))
  - Option to delay conflict checking of old pull requests until page view ([#&#8203;27779](https://github.com/go-gitea/gitea/issues/27779))
  - Worktime tracking for the organization level ([#&#8203;19808](https://github.com/go-gitea/gitea/issues/19808))

- PERFORMANCE
  - Add cache for common package queries ([#&#8203;22491](https://github.com/go-gitea/gitea/issues/22491))
  - Move issue pin to an standalone table for querying performance ([#&#8203;33452](https://github.com/go-gitea/gitea/issues/33452))
  - Improve commits list performance to reduce unnecessary database queries ([#&#8203;33528](https://github.com/go-gitea/gitea/issues/33528))
  - Optimize total count of feed when loading activities in user dashboard. ([#&#8203;33841](https://github.com/go-gitea/gitea/issues/33841))
  - Optimize heatmap query ([#&#8203;33853](https://github.com/go-gitea/gitea/issues/33853))
  - Only use prev and next buttons for pagination on user dashboard ([#&#8203;33981](https://github.com/go-gitea/gitea/issues/33981))
  - Improve pull request list API performance ([#&#8203;34052](https://github.com/go-gitea/gitea/issues/34052))
  - Cache GPG keys, emails and users when list commits ([#&#8203;34086](https://github.com/go-gitea/gitea/issues/34086))
  - Refactor Git Attribute & performance optimization ([#&#8203;34154](https://github.com/go-gitea/gitea/issues/34154))
  - Performance optimization for tags synchronization ([#&#8203;34355](https://github.com/go-gitea/gitea/issues/34355)) [#&#8203;34522](https://github.com/go-gitea/gitea/issues/34522)

- ENHANCEMENTS
  - Code
    - Display when a release attachment was uploaded ([#&#8203;34261](https://github.com/go-gitea/gitea/issues/34261))
    - Support creating relative link to raw path in markdown ([#&#8203;34105](https://github.com/go-gitea/gitea/issues/34105))
    - Improve code block readability and isolate copy button ([#&#8203;34009](https://github.com/go-gitea/gitea/issues/34009))
    - Improve repository commit view ([#&#8203;33877](https://github.com/go-gitea/gitea/issues/33877))
    - Full-file syntax highlighting for diff pages ([#&#8203;33766](https://github.com/go-gitea/gitea/issues/33766))
    - Clone repository with Tea CLI ([#&#8203;33725](https://github.com/go-gitea/gitea/issues/33725))
    - Improve sync fork behavior ([#&#8203;33319](https://github.com/go-gitea/gitea/issues/33319))
    - Make git clone URL could use current signed-in user ([#&#8203;33091](https://github.com/go-gitea/gitea/issues/33091))
    - Add submodule diff links ([#&#8203;33097](https://github.com/go-gitea/gitea/issues/33097))
    - Link to tree views of submodules if possible ([#&#8203;33424](https://github.com/go-gitea/gitea/issues/33424))
    - Only keep popular licenses ([#&#8203;33832](https://github.com/go-gitea/gitea/issues/33832))
    - De-emphasize signed commits ([#&#8203;31160](https://github.com/go-gitea/gitea/issues/31160))

  - Actions
    - Add flat-square action badge style ([#&#8203;34062](https://github.com/go-gitea/gitea/issues/34062))
    - Update action status badge layout ([#&#8203;34018](https://github.com/go-gitea/gitea/issues/34018))
    - Download actions job logs from API ([#&#8203;33858](https://github.com/go-gitea/gitea/issues/33858))
    - Always show the "rerun" button for action jobs ([#&#8203;33692](https://github.com/go-gitea/gitea/issues/33692))
    - Add auto-expanding running actions step ([#&#8203;30058](https://github.com/go-gitea/gitea/issues/30058))
    - Update status check for all supported on.pull\_request.types in Gitea ([#&#8203;33117](https://github.com/go-gitea/gitea/issues/33117))
    - Workflow\_dispatch use workflow from trigger branch ([#&#8203;33098](https://github.com/go-gitea/gitea/issues/33098))
    - Add action auto-scroll ([#&#8203;30057](https://github.com/go-gitea/gitea/issues/30057))
    - Add workflow\_job webhook ([#&#8203;33694](https://github.com/go-gitea/gitea/issues/33694))
    - Add a button editing action secret ([#&#8203;34462](https://github.com/go-gitea/gitea/issues/34462))

  - Pull Request
    - Auto expand "New PR" form ([#&#8203;33971](https://github.com/go-gitea/gitea/issues/33971))
    - Mark parent directory as viewed when all files are viewed ([#&#8203;33958](https://github.com/go-gitea/gitea/issues/33958))
    - Show info about maintainers are allowed to edit a PR ([#&#8203;33738](https://github.com/go-gitea/gitea/issues/33738))
    - Automerge supports deleting branch automatically after merging ([#&#8203;32343](https://github.com/go-gitea/gitea/issues/32343))
    - Add additional command hints for PowerShell & CMD ([#&#8203;33548](https://github.com/go-gitea/gitea/issues/33548))

  - Issues
    - Allow filtering issues by any assignee ([#&#8203;33343](https://github.com/go-gitea/gitea/issues/33343))
    - Show warning on navigation if currently editing comment or title ([#&#8203;32920](https://github.com/go-gitea/gitea/issues/32920))
    - Make tracked time representation display as hours ([#&#8203;33315](https://github.com/go-gitea/gitea/issues/33315))
    - Add No Results Prompt Message on Issue List Page ([#&#8203;33699](https://github.com/go-gitea/gitea/issues/33699))
    - Add sort option recentclose for issues and pulls ([#&#8203;34525](https://github.com/go-gitea/gitea/issues/34525)) [#&#8203;34539](https://github.com/go-gitea/gitea/issues/34539)

  - Packages
    - Link to nuget dependencies ([#&#8203;26554](https://github.com/go-gitea/gitea/issues/26554))
    - Add composor source field ([#&#8203;33502](https://github.com/go-gitea/gitea/issues/33502))

  - Administration
    - Improve navbar: add "admin" tip, add "active" style ([#&#8203;32927](https://github.com/go-gitea/gitea/issues/32927))
    - Add a option "--user-type bot" to admin user create, improve role display ([#&#8203;27885](https://github.com/go-gitea/gitea/issues/27885))
    - Improve admin user view page ([#&#8203;33735](https://github.com/go-gitea/gitea/issues/33735))
    - Support performance trace ([#&#8203;32973](https://github.com/go-gitea/gitea/issues/32973))
    - Change pprof labels to be prometheus compatible ([#&#8203;32865](https://github.com/go-gitea/gitea/issues/32865))
    - Allow admins and org owners to change org member public status ([#&#8203;28294](https://github.com/go-gitea/gitea/issues/28294))
    - Optimize the installation page ([#&#8203;32994](https://github.com/go-gitea/gitea/issues/32994))
    - Make public URL generation configurable ([#&#8203;34250](https://github.com/go-gitea/gitea/issues/34250))
    - Add a --fullname arg to gitea admin user create. ([#&#8203;34241](https://github.com/go-gitea/gitea/issues/34241))

  - Others
    - Improve oauth2 error handling ([#&#8203;33969](https://github.com/go-gitea/gitea/issues/33969))
    - Fail mirroring more gracefully ([#&#8203;34002](https://github.com/go-gitea/gitea/issues/34002))
    - Align User Details Page Header Layout with Design Specifications ([#&#8203;34192](https://github.com/go-gitea/gitea/issues/34192))
    - Webhook add X-Gitea-Hook-Installation-Target-Type Header ([#&#8203;33752](https://github.com/go-gitea/gitea/issues/33752))
    - Optimize the dashboard ([#&#8203;32990](https://github.com/go-gitea/gitea/issues/32990))
    - Improve button layout on small screens ([#&#8203;33633](https://github.com/go-gitea/gitea/issues/33633))
    - Add cropping support when modifying the user/org/repo avatar ([#&#8203;33498](https://github.com/go-gitea/gitea/issues/33498))
    - Make ROOT\_URL support using request Host header ([#&#8203;32564](https://github.com/go-gitea/gitea/issues/32564))
    - Add `show more` organizations icon in user's profile ([#&#8203;32986](https://github.com/go-gitea/gitea/issues/32986))
    - Introduce `--page-space-bottom` at 64px ([#&#8203;30692](https://github.com/go-gitea/gitea/issues/30692))
    - Improve theme display ([#&#8203;30671](https://github.com/go-gitea/gitea/issues/30671))
    - Add alphabetical project sorting ([#&#8203;33504](https://github.com/go-gitea/gitea/issues/33504))
    - Add global lock for migrations to make upgrade more safe with multiple replications ([#&#8203;33706](https://github.com/go-gitea/gitea/issues/33706))
    - Add descriptions for private repo public access settings and improve the UI ([#&#8203;34057](https://github.com/go-gitea/gitea/issues/34057))

- API
  - Actions Runner rest api ([#&#8203;33873](https://github.com/go-gitea/gitea/issues/33873))
  - Inclusion of rename organization api ([#&#8203;33303](https://github.com/go-gitea/gitea/issues/33303))
  - Add API to support link package to repository and unlink it ([#&#8203;33481](https://github.com/go-gitea/gitea/issues/33481))
  - Add API endpoint to request contents of multiple files simultaniously ([#&#8203;34139](https://github.com/go-gitea/gitea/issues/34139))
  - Actions artifacts API list/download check status upload confirmed ([#&#8203;34273](https://github.com/go-gitea/gitea/issues/34273))
  - Add API routes to lock and unlock issues ([#&#8203;34165](https://github.com/go-gitea/gitea/issues/34165))
  - Fix some user name usages ([#&#8203;33689](https://github.com/go-gitea/gitea/issues/33689))
  - Allow filtering /repos/{owner}/{repo}/pulls by target base branch queryparam ([#&#8203;33684](https://github.com/go-gitea/gitea/issues/33684))
  - Improve swagger generation ([#&#8203;33664](https://github.com/go-gitea/gitea/issues/33664))
  - Support Ephemeral action runners ([#&#8203;33570](https://github.com/go-gitea/gitea/issues/33570))
  - Support workflow event dispatch via API ([#&#8203;33545](https://github.com/go-gitea/gitea/issues/33545))
  - Support workflow event dispatch via API ([#&#8203;32059](https://github.com/go-gitea/gitea/issues/32059))
  - Added Description Field for Secrets and Variables  ([#&#8203;33526](https://github.com/go-gitea/gitea/issues/33526))
  - Reject star-related requests if stars are disabled ([#&#8203;33208](https://github.com/go-gitea/gitea/issues/33208))
  - Let API create and edit system webhooks, attempt 2 ([#&#8203;33180](https://github.com/go-gitea/gitea/issues/33180))
  - Use `Project-URL` metadata field to get a PyPI package's homepage URL ([#&#8203;33089](https://github.com/go-gitea/gitea/issues/33089))
  - Add `last_committer_date` and `last_author_date` for file contents API ([#&#8203;32921](https://github.com/go-gitea/gitea/issues/32921))

- REFACTORS
  - Remove context from git struct ([#&#8203;33793](https://github.com/go-gitea/gitea/issues/33793))
  - Refactor admin/common.ts ([#&#8203;33788](https://github.com/go-gitea/gitea/issues/33788))
  - Refactor repo-settings.ts ([#&#8203;33785](https://github.com/go-gitea/gitea/issues/33785))
  - Refactor repo-issue.ts ([#&#8203;33784](https://github.com/go-gitea/gitea/issues/33784))
  - Small refactor to reduce unnecessary database queries and remove duplicated functions ([#&#8203;33779](https://github.com/go-gitea/gitea/issues/33779))
  - Refactor initRepoBranchTagSelector to use new init framework ([#&#8203;33776](https://github.com/go-gitea/gitea/issues/33776))
  - Refactor buttons to use new init framework ([#&#8203;33774](https://github.com/go-gitea/gitea/issues/33774))
  - Refactor markup and pdf-viewer to use new init framework ([#&#8203;33772](https://github.com/go-gitea/gitea/issues/33772))
  - Refactor error system ([#&#8203;33771](https://github.com/go-gitea/gitea/issues/33771))
  - Refactor mail code ([#&#8203;33768](https://github.com/go-gitea/gitea/issues/33768))
  - Update TypeScript types ([#&#8203;33799](https://github.com/go-gitea/gitea/issues/33799))
  - Refactor older tests to use testify ([#&#8203;33140](https://github.com/go-gitea/gitea/issues/33140))
  - Move notifywatch to service layer ([#&#8203;33825](https://github.com/go-gitea/gitea/issues/33825))
  - Decouple context from repository related structs ([#&#8203;33823](https://github.com/go-gitea/gitea/issues/33823))
  - Remove context from mail struct ([#&#8203;33811](https://github.com/go-gitea/gitea/issues/33811))
  - Refactor dropdown ellipsis ([#&#8203;34123](https://github.com/go-gitea/gitea/issues/34123))
  - Refactor functions to reduce repopath expose ([#&#8203;33892](https://github.com/go-gitea/gitea/issues/33892))
  - Refactor repo-diff.ts ([#&#8203;33746](https://github.com/go-gitea/gitea/issues/33746))
  - Refactor web route handler ([#&#8203;33488](https://github.com/go-gitea/gitea/issues/33488))
  - Refactor user & avatar ([#&#8203;33433](https://github.com/go-gitea/gitea/issues/33433))
  - Refactor user package ([#&#8203;33423](https://github.com/go-gitea/gitea/issues/33423))
  - Refactor decouple context from migration structs ([#&#8203;33399](https://github.com/go-gitea/gitea/issues/33399))
  - Refactor context flash msg and global variables ([#&#8203;33375](https://github.com/go-gitea/gitea/issues/33375))
  - Refactor response writer & access logger ([#&#8203;33323](https://github.com/go-gitea/gitea/issues/33323))
  - Refactor ref type ([#&#8203;33242](https://github.com/go-gitea/gitea/issues/33242))
  - Refactor context repository ([#&#8203;33202](https://github.com/go-gitea/gitea/issues/33202))
  - Refactor legacy JS ([#&#8203;33115](https://github.com/go-gitea/gitea/issues/33115))
  - Refactor legacy line-number and scroll code ([#&#8203;33094](https://github.com/go-gitea/gitea/issues/33094))
  - Refactor env var related code ([#&#8203;33075](https://github.com/go-gitea/gitea/issues/33075))
  - Move SetMerged to service layer ([#&#8203;33045](https://github.com/go-gitea/gitea/issues/33045))
  - Merge updatecommentattachment functions ([#&#8203;33044](https://github.com/go-gitea/gitea/issues/33044))
  - Refactor pull-request compare\&create page ([#&#8203;33071](https://github.com/go-gitea/gitea/issues/33071))
  - Refactor repo-new.ts ([#&#8203;33070](https://github.com/go-gitea/gitea/issues/33070))
  - Refactor pagination ([#&#8203;33037](https://github.com/go-gitea/gitea/issues/33037))
  - Refactor tests ([#&#8203;33021](https://github.com/go-gitea/gitea/issues/33021))
  - Refactor markup render to fix various path problems ([#&#8203;34114](https://github.com/go-gitea/gitea/issues/34114))
  - Refactor Branch struct in package modules/git ([#&#8203;33980](https://github.com/go-gitea/gitea/issues/33980))
  - Don't create duplicated functions for code repositories and wiki repositories ([#&#8203;33924](https://github.com/go-gitea/gitea/issues/33924))
  - Move git references checking to gitrepo packages to reduce expose of repository path ([#&#8203;33891](https://github.com/go-gitea/gitea/issues/33891))
  - Refactor cache-control ([#&#8203;33861](https://github.com/go-gitea/gitea/issues/33861))
  - Decouple diff stats query from actual diffing ([#&#8203;33810](https://github.com/go-gitea/gitea/issues/33810))
  - Move part of updating protected branch logic to service layer ([#&#8203;33742](https://github.com/go-gitea/gitea/issues/33742))
  - Decouple Batch from git.Repository to simplify usage without requiring the creation of a Repository struct. ([#&#8203;34001](https://github.com/go-gitea/gitea/issues/34001))
  - Refactor tmpl and blob\_excerpt ([#&#8203;32967](https://github.com/go-gitea/gitea/issues/32967))
  - Refactor template & test related code ([#&#8203;32938](https://github.com/go-gitea/gitea/issues/32938))
  - Refactor db package and remove unnecessary `DumpTables` ([#&#8203;32930](https://github.com/go-gitea/gitea/issues/32930))
  - Refactor pprof labels and process desc ([#&#8203;32909](https://github.com/go-gitea/gitea/issues/32909))
  - Refactor repo-projects.ts ([#&#8203;32892](https://github.com/go-gitea/gitea/issues/32892))
  - Refactor getpatch/getdiff functions and remove unnecessary fallback ([#&#8203;32817](https://github.com/go-gitea/gitea/issues/32817))
  - Uniform all temporary directories and allow customizing temp path ([#&#8203;32352](https://github.com/go-gitea/gitea/issues/32352))
  - Remove context from retry downloader ([#&#8203;33871](https://github.com/go-gitea/gitea/issues/33871))
  - Refactor global init code and add more comments ([#&#8203;33755](https://github.com/go-gitea/gitea/issues/33755))
  - Remove some unnecessary template helpers ([#&#8203;33069](https://github.com/go-gitea/gitea/issues/33069))
  - Move and rename UpdateRepository ([#&#8203;34136](https://github.com/go-gitea/gitea/issues/34136))
  - Move hooks function to gitrepo and reduce expose repopath ([#&#8203;33890](https://github.com/go-gitea/gitea/issues/33890))
  - Add abstraction layer to delete repository from disk ([#&#8203;33879](https://github.com/go-gitea/gitea/issues/33879))
  - Add abstraction layer to check if the repository exists on disk ([#&#8203;33874](https://github.com/go-gitea/gitea/issues/33874))
  - Move ParseCommitWithSSHSignature to service layer ([#&#8203;34087](https://github.com/go-gitea/gitea/issues/34087))
  - Move duplicated functions ([#&#8203;33977](https://github.com/go-gitea/gitea/issues/33977))
  - Extract code to their own functions for push update ([#&#8203;33944](https://github.com/go-gitea/gitea/issues/33944))
  - Move gitgraph from modules to services layer ([#&#8203;33527](https://github.com/go-gitea/gitea/issues/33527))
  - Move commits signature and verify functions to service layers ([#&#8203;33605](https://github.com/go-gitea/gitea/issues/33605))
  - Use `CloseIssue` and `ReopenIssue` instead of `ChangeStatus` ([#&#8203;32467](https://github.com/go-gitea/gitea/issues/32467))
  - Refactor arch route handlers ([#&#8203;32993](https://github.com/go-gitea/gitea/issues/32993))
  - Refactor "string truncate" ([#&#8203;32984](https://github.com/go-gitea/gitea/issues/32984))
  - Refactor arch route handlers ([#&#8203;32972](https://github.com/go-gitea/gitea/issues/32972))
  - Clarify path param naming ([#&#8203;32969](https://github.com/go-gitea/gitea/issues/32969))
  - Refactor request context ([#&#8203;32956](https://github.com/go-gitea/gitea/issues/32956))
  - Move some errors to their own sub packages ([#&#8203;32880](https://github.com/go-gitea/gitea/issues/32880))
  - Move RepoTransfer from models to models/repo sub package ([#&#8203;32506](https://github.com/go-gitea/gitea/issues/32506))
  - Move delete deploy keys into service layer ([#&#8203;32201](https://github.com/go-gitea/gitea/issues/32201))
  - Refactor webhook events ([#&#8203;33337](https://github.com/go-gitea/gitea/issues/33337))
  - Move some Actions related functions from `routers` to `services` ([#&#8203;33280](https://github.com/go-gitea/gitea/issues/33280))
  - Refactor RefName ([#&#8203;33234](https://github.com/go-gitea/gitea/issues/33234))
  - Refactor context RefName and RepoAssignment ([#&#8203;33226](https://github.com/go-gitea/gitea/issues/33226))
  - Refactor repository transfer ([#&#8203;33211](https://github.com/go-gitea/gitea/issues/33211))
  - Refactor error system ([#&#8203;33626](https://github.com/go-gitea/gitea/issues/33626))
  - Refactor error system ([#&#8203;33610](https://github.com/go-gitea/gitea/issues/33610))
  - Refactor package (routes and error handling, npm peer dependency) ([#&#8203;33111](https://github.com/go-gitea/gitea/issues/33111))
  - Use test context in tests and new loop system in benchmarks ([#&#8203;33648](https://github.com/go-gitea/gitea/issues/33648))
  - Some small refactors ([#&#8203;33144](https://github.com/go-gitea/gitea/issues/33144))
  - Simplify context ref name ([#&#8203;33267](https://github.com/go-gitea/gitea/issues/33267))

- BUGFIXES
  - Fix some dropdown problems on the issue sidebar ([#&#8203;34308](https://github.com/go-gitea/gitea/issues/34308)) [#&#8203;34327](https://github.com/go-gitea/gitea/issues/34327)
  - Do not return archive download URLs in API if downloads are disabled ([#&#8203;34324](https://github.com/go-gitea/gitea/issues/34324)) [#&#8203;34338](https://github.com/go-gitea/gitea/issues/34338)
  - Fix LFS files being editable in web UI ([#&#8203;34356](https://github.com/go-gitea/gitea/issues/34356)) [#&#8203;34362](https://github.com/go-gitea/gitea/issues/34362)
  - Fix only text/\* being viewable in web UI ([#&#8203;34374](https://github.com/go-gitea/gitea/issues/34374)) [#&#8203;34378](https://github.com/go-gitea/gitea/issues/34378)
  - Fix LFS file not stored in LFS when uploaded/edited via API or web UI ([#&#8203;34367](https://github.com/go-gitea/gitea/issues/34367))
  - Grey out expired artifact on Artifacts list ([#&#8203;34314](https://github.com/go-gitea/gitea/issues/34314)) [#&#8203;34404](https://github.com/go-gitea/gitea/issues/34404)
  - Fix incorrect divergence cache after switching default branch ([#&#8203;34370](https://github.com/go-gitea/gitea/issues/34370)) [#&#8203;34406](https://github.com/go-gitea/gitea/issues/34406)
  - Refactor commit message rendering and fix bugs ([#&#8203;34412](https://github.com/go-gitea/gitea/issues/34412)) [#&#8203;34414](https://github.com/go-gitea/gitea/issues/34414)
  - Merge and tweak markup editor expander CSS ([#&#8203;34409](https://github.com/go-gitea/gitea/issues/34409)) [#&#8203;34415](https://github.com/go-gitea/gitea/issues/34415)
  - Fix GetUsersByEmails ([#&#8203;34423](https://github.com/go-gitea/gitea/issues/34423)) [#&#8203;34425](https://github.com/go-gitea/gitea/issues/34425)
  - Only git operations should update last changed of a repository ([#&#8203;34388](https://github.com/go-gitea/gitea/issues/34388)) [#&#8203;34427](https://github.com/go-gitea/gitea/issues/34427)
  - Fix comment textarea scroll issue in Firefox ([#&#8203;34438](https://github.com/go-gitea/gitea/issues/34438)) [#&#8203;34446](https://github.com/go-gitea/gitea/issues/34446)
  - Fix repo broken check ([#&#8203;34444](https://github.com/go-gitea/gitea/issues/34444)) [#&#8203;34452](https://github.com/go-gitea/gitea/issues/34452)
  - Fix remove org user failure on mssql ([#&#8203;34449](https://github.com/go-gitea/gitea/issues/34449)) [#&#8203;34453](https://github.com/go-gitea/gitea/issues/34453)
  - Fix Workflow run Not Found page ([#&#8203;34459](https://github.com/go-gitea/gitea/issues/34459)) [#&#8203;34466](https://github.com/go-gitea/gitea/issues/34466)
  - When updating comment, if the content is the same, just return and not update the database ([#&#8203;34422](https://github.com/go-gitea/gitea/issues/34422)) [#&#8203;34464](https://github.com/go-gitea/gitea/issues/34464)
  - Fix project board view ([#&#8203;34470](https://github.com/go-gitea/gitea/issues/34470)) [#&#8203;34475](https://github.com/go-gitea/gitea/issues/34475)
  - Fix get / delete runner to use consistent http 404 and 500 status ([#&#8203;34480](https://github.com/go-gitea/gitea/issues/34480)) [#&#8203;34488](https://github.com/go-gitea/gitea/issues/34488)
  - Fix url validation in webhook add/edit API ([#&#8203;34492](https://github.com/go-gitea/gitea/issues/34492)) [#&#8203;34496](https://github.com/go-gitea/gitea/issues/34496)
  - Fix edithook api can not update package, status and workflow\_job events ([#&#8203;34495](https://github.com/go-gitea/gitea/issues/34495)) [#&#8203;34499](https://github.com/go-gitea/gitea/issues/34499)
  - Fix ephemeral runner deletion ([#&#8203;34447](https://github.com/go-gitea/gitea/issues/34447)) [#&#8203;34513](https://github.com/go-gitea/gitea/issues/34513)
  - Don't display error log when .git-blame-ignore-revs doesn't exist ([#&#8203;34457](https://github.com/go-gitea/gitea/issues/34457))
  - Only allow admins to rename default/protected branches ([#&#8203;33276](https://github.com/go-gitea/gitea/issues/33276))
  - Improve "lock conversation" UI ([#&#8203;34207](https://github.com/go-gitea/gitea/issues/34207))
  - Fix incorrect file links ([#&#8203;34189](https://github.com/go-gitea/gitea/issues/34189))
  - Optimize Overflow Menu ([#&#8203;34183](https://github.com/go-gitea/gitea/issues/34183))
  - Check user/org repo limit instead of doer ([#&#8203;34147](https://github.com/go-gitea/gitea/issues/34147))
  - Make markdown render match GitHub's behavior ([#&#8203;34129](https://github.com/go-gitea/gitea/issues/34129))
  - Fix team permission ([#&#8203;34128](https://github.com/go-gitea/gitea/issues/34128))
  - Correctly handle submodule view and avoid throwing 500 error ([#&#8203;34121](https://github.com/go-gitea/gitea/issues/34121))
  - Fix users being able bypass limits with repo transfers ([#&#8203;34031](https://github.com/go-gitea/gitea/issues/34031))
  - Avoid creating unnecessary temporary cat file sub process ([#&#8203;33942](https://github.com/go-gitea/gitea/issues/33942))
  - Refactor organization menu ([#&#8203;33928](https://github.com/go-gitea/gitea/issues/33928))
  - Fix various Fomantic UI and htmx problems ([#&#8203;33851](https://github.com/go-gitea/gitea/issues/33851))
  - Fix 500 error when error occurred in migration page ([#&#8203;33256](https://github.com/go-gitea/gitea/issues/33256))
  - Validate that the tag doesn't exist when creating a tag via the web ([#&#8203;33241](https://github.com/go-gitea/gitea/issues/33241))
  - Add missed transaction on setmerged ([#&#8203;33079](https://github.com/go-gitea/gitea/issues/33079))
  - Rework create/fork/adopt/generate repository to make sure resources will be cleanup once failed ([#&#8203;31035](https://github.com/go-gitea/gitea/issues/31035))
  - Valid email address should only start with alphanumeric ([#&#8203;28174](https://github.com/go-gitea/gitea/issues/28174))
  - Fix webhook url ([#&#8203;34186](https://github.com/go-gitea/gitea/issues/34186))
  - Fix "toAbsoluteLocaleDate" test when system locale is not en-US ([#&#8203;33939](https://github.com/go-gitea/gitea/issues/33939))
  - Fix file name could not be searched if the file was not a text file when using the Bleve indexer ([#&#8203;33959](https://github.com/go-gitea/gitea/issues/33959))
  - Fix cannot delete runners via the modal dialog ([#&#8203;33895](https://github.com/go-gitea/gitea/issues/33895))
  - Fix unpin hint on the pinned pull requests ([#&#8203;33207](https://github.com/go-gitea/gitea/issues/33207))
  - Fix parentCommit invalid memory address or nil pointer dereference. ([#&#8203;33204](https://github.com/go-gitea/gitea/issues/33204))
  - Fix comment header padding ([#&#8203;33377](https://github.com/go-gitea/gitea/issues/33377))
  - Fix some migration and repo name problems ([#&#8203;33986](https://github.com/go-gitea/gitea/issues/33986))
  - Fix various trivial frontend problems ([#&#8203;34263](https://github.com/go-gitea/gitea/issues/34263))
  - Fix Set Email Preference dropdown and button placement ([#&#8203;34255](https://github.com/go-gitea/gitea/issues/34255))
  - Fix quoted replies incorrectly render user input as part of the quote ([#&#8203;34216](https://github.com/go-gitea/gitea/issues/34216))
  - Fix button alignments and remove unnecessary styles ([#&#8203;34206](https://github.com/go-gitea/gitea/issues/34206))
  - Restore form inputs on organization create error ([#&#8203;34201](https://github.com/go-gitea/gitea/issues/34201))
  - Try to fix ACME (3rd) ([#&#8203;33807](https://github.com/go-gitea/gitea/issues/33807))
  - Fix incorrect ref "blob" ([#&#8203;33240](https://github.com/go-gitea/gitea/issues/33240))
  - Fix dynamic content loading init problem ([#&#8203;33748](https://github.com/go-gitea/gitea/issues/33748))
  - Fix git empty check and HEAD request ([#&#8203;33690](https://github.com/go-gitea/gitea/issues/33690))
  - Fix Untranslated Text on Actions Page ([#&#8203;33635](https://github.com/go-gitea/gitea/issues/33635))
  - Fix issue label delete incorrect labels webhook payload ([#&#8203;34575](https://github.com/go-gitea/gitea/issues/34575))
  - Fix incorrect page navigation with up and down arrow on last item of dashboard repos ([#&#8203;34570](https://github.com/go-gitea/gitea/issues/34570))
  - Fix/improve avatar sync from LDAP ([#&#8203;34573](https://github.com/go-gitea/gitea/issues/34573))
  - Fix some trivial problems ([#&#8203;34579](https://github.com/go-gitea/gitea/issues/34579))
  - Retain issue sort type when a keyword search is introduced ([#&#8203;34559](https://github.com/go-gitea/gitea/issues/34559))
  - Always use an empty line to separate the commit message and trailer ([#&#8203;34512](https://github.com/go-gitea/gitea/issues/34512))
  - Fix line-button issue after file selection in file tree ([#&#8203;34574](https://github.com/go-gitea/gitea/issues/34574))
  - Fix doctor deleting orphaned issues attachments ([#&#8203;34142](https://github.com/go-gitea/gitea/issues/34142))
  - Add webhook assigning test and fix possible bug ([#&#8203;34420](https://github.com/go-gitea/gitea/issues/34420))
  - Fix possible nil description of pull request when migrating from CodeCommit ([#&#8203;34541](https://github.com/go-gitea/gitea/issues/34541))
  - Refactor commit reader ([#&#8203;34542](https://github.com/go-gitea/gitea/issues/34542))
  - Fix possible pull request broken when leave the page immediately after clicking the update button [#&#8203;34509](https://github.com/go-gitea/gitea/issues/34509)
  - Ignore "Close" error when uploading container blob ([#&#8203;34620](https://github.com/go-gitea/gitea/issues/34620))
  - Fix missed merge commit sha and time when migrating from codecommit ([#&#8203;34645](https://github.com/go-gitea/gitea/issues/34645))
  - Fix GetUsersByEmails ([#&#8203;34643](https://github.com/go-gitea/gitea/issues/34643))
  - Misc CSS fixes ([#&#8203;34638](https://github.com/go-gitea/gitea/issues/34638))
  - Add codecommit to supported services in api docs ([#&#8203;34626](https://github.com/go-gitea/gitea/issues/34626))
  - Validate hex colors when creating/editing labels ([#&#8203;34623](https://github.com/go-gitea/gitea/issues/34623))
  - Fix possible pull request broken when leave the page immediately after clicking the update button ([#&#8203;34509](https://github.com/go-gitea/gitea/issues/34509))
  - Fix margin issue in markup paragraph rendering ([#&#8203;34599](https://github.com/go-gitea/gitea/issues/34599))
  - Fix migration pull request title too long ([#&#8203;34577](https://github.com/go-gitea/gitea/issues/34577))
  - Fix footnote jump behavior on the issue page. ([#&#8203;34621](https://github.com/go-gitea/gitea/issues/34621))
  - Fix "oras" OCI client compatibility ([#&#8203;34666](https://github.com/go-gitea/gitea/issues/34666))
  - Fix last admin check when syncing users ([#&#8203;34649](https://github.com/go-gitea/gitea/issues/34649))
  - Fix skip paths check on tag push events in workflows ([#&#8203;34602](https://github.com/go-gitea/gitea/issues/34602)) [#&#8203;34670](https://github.com/go-gitea/gitea/issues/34670)

- MISC

  - Bump to alpine 3.22 ([#&#8203;34613](https://github.com/go-gitea/gitea/issues/34613))
  - Make pull request and issue history more compact ([#&#8203;34588](https://github.com/go-gitea/gitea/issues/34588))
  - Run integration tests against postgres 14 ([#&#8203;34514](https://github.com/go-gitea/gitea/issues/34514)) [#&#8203;34536](https://github.com/go-gitea/gitea/issues/34536)
  - Enable addtional linters ([#&#8203;34085](https://github.com/go-gitea/gitea/issues/34085))
  - Enable testifylint rules ([#&#8203;34075](https://github.com/go-gitea/gitea/issues/34075))
  - Enable staticcheck QFxxxx rules ([#&#8203;34064](https://github.com/go-gitea/gitea/issues/34064))
  - Improve Actions test ([#&#8203;32883](https://github.com/go-gitea/gitea/issues/32883))
  - Drop fomantic build ([#&#8203;33845](https://github.com/go-gitea/gitea/issues/33845))
  - Go1.24 ([#&#8203;33562](https://github.com/go-gitea/gitea/issues/33562))
  - Run yamllint with strict mode, fix issue ([#&#8203;33551](https://github.com/go-gitea/gitea/issues/33551))
  - Disable cron task to update license ([#&#8203;33486](https://github.com/go-gitea/gitea/issues/33486))
  - Optimize makefile help information generation ([#&#8203;33390](https://github.com/go-gitea/gitea/issues/33390))
  - Convert github.com/xanzy/go-gitlab into gitlab.com/gitlab-org/api/client-go ([#&#8203;33126](https://github.com/go-gitea/gitea/issues/33126))
  - Add missed changelogs ([#&#8203;33649](https://github.com/go-gitea/gitea/issues/33649))
  - Update .changelog file to add performance label group ([#&#8203;33472](https://github.com/go-gitea/gitea/issues/33472))
  - Add missing POPULATE\_SQUASH\_COMMENT\_WITH\_COMMIT\_MESSAGES in app.example.ini ([#&#8203;33363](https://github.com/go-gitea/gitea/issues/33363))
  - Update README screenshots ([#&#8203;33347](https://github.com/go-gitea/gitea/issues/33347))
  - Update unrs-resolver ([#&#8203;34279](https://github.com/go-gitea/gitea/issues/34279))
  - Update go\&js dependencies ([#&#8203;34262](https://github.com/go-gitea/gitea/issues/34262))
  - Optimize the calling code of queryElems ([#&#8203;34235](https://github.com/go-gitea/gitea/issues/34235))
  - Update protected\_branch.tmpl ([#&#8203;34193](https://github.com/go-gitea/gitea/issues/34193))
  - Feat/optimize span svg layout ([#&#8203;34185](https://github.com/go-gitea/gitea/issues/34185))
  - Set MERMAID\_MAX\_SOURCE\_CHARACTERS to 50000 ([#&#8203;34152](https://github.com/go-gitea/gitea/issues/34152))
  - Update JS and PY deps ([#&#8203;34143](https://github.com/go-gitea/gitea/issues/34143))
  - Add Chinese translations for README files ([#&#8203;34132](https://github.com/go-gitea/gitea/issues/34132))
  - Use `overflow-wrap: anywhere` to replace `word-break: break-all` ([#&#8203;34126](https://github.com/go-gitea/gitea/issues/34126))
  - Clarify ownership in password change error messages ([#&#8203;34092](https://github.com/go-gitea/gitea/issues/34092))
  - Add toggleClass function in dom.ts ([#&#8203;34063](https://github.com/go-gitea/gitea/issues/34063))
  - Update to golangci-lint v2 ([#&#8203;34054](https://github.com/go-gitea/gitea/issues/34054))
  - Update Makefile test comments ([#&#8203;34013](https://github.com/go-gitea/gitea/issues/34013))
  - Update go mod dependencies ([#&#8203;33988](https://github.com/go-gitea/gitea/issues/33988))
  - Use filepath.Join instead of path.Join for file system file operations ([#&#8203;33978](https://github.com/go-gitea/gitea/issues/33978))
  - Prepare common tmpl functions in a middleware ([#&#8203;33957](https://github.com/go-gitea/gitea/issues/33957))
  - Remove unused or abused styles ([#&#8203;33918](https://github.com/go-gitea/gitea/issues/33918))
  - Update JS and PY deps, misc tweaks ([#&#8203;33903](https://github.com/go-gitea/gitea/issues/33903))
  - Try to figure out attribute checker problem ([#&#8203;33901](https://github.com/go-gitea/gitea/issues/33901))
  - Add lock for a repository pull mirror ([#&#8203;33876](https://github.com/go-gitea/gitea/issues/33876))
  - Fine tune push mirror UI ([#&#8203;33866](https://github.com/go-gitea/gitea/issues/33866))
  - Improve issue & code search ([#&#8203;33860](https://github.com/go-gitea/gitea/issues/33860))
  - Use pullrequestlist instead of \[]\*pullrequest ([#&#8203;33765](https://github.com/go-gitea/gitea/issues/33765))
  - Upgrade act to 0.261.4 and actions-proto-go to v0.4.1 ([#&#8203;33760](https://github.com/go-gitea/gitea/issues/33760))
  - Align sidebar gears to the right ([#&#8203;33721](https://github.com/go-gitea/gitea/issues/33721))
  - Update Go dependencies (skip blevesearch, meilisearch) ([#&#8203;33655](https://github.com/go-gitea/gitea/issues/33655))
  - Add migrations and doctor fixes ([#&#8203;33556](https://github.com/go-gitea/gitea/issues/33556))
  - Remove "class-name" from svg icon ([#&#8203;33540](https://github.com/go-gitea/gitea/issues/33540))
  - Update MAINTAINERS ([#&#8203;33529](https://github.com/go-gitea/gitea/issues/33529))
  - Add "No data available" display when list is empty ([#&#8203;33517](https://github.com/go-gitea/gitea/issues/33517))
  - Use `git diff-tree` for `DiffFileTree` on diff pages ([#&#8203;33514](https://github.com/go-gitea/gitea/issues/33514))
  - Give organisation members access to organisation feeds ([#&#8203;33508](https://github.com/go-gitea/gitea/issues/33508))
  - Update feishu icon ([#&#8203;33470](https://github.com/go-gitea/gitea/issues/33470))
  - Hide/disable unusable UI elements when a repository is archived ([#&#8203;33459](https://github.com/go-gitea/gitea/issues/33459))
  - Update `@github/text-expander-element` to 2.9.0 ([#&#8203;33435](https://github.com/go-gitea/gitea/issues/33435))
  - Do not access GitRepo when a repo is being created ([#&#8203;33380](https://github.com/go-gitea/gitea/issues/33380))
  - Fix incorrect ref usages ([#&#8203;33301](https://github.com/go-gitea/gitea/issues/33301))
  - Prepare for support performance trace ([#&#8203;33286](https://github.com/go-gitea/gitea/issues/33286))
  - Enable Typescript `noImplicitThis` ([#&#8203;33250](https://github.com/go-gitea/gitea/issues/33250))
  - Remove unused CSS styles and move some styles to proper files ([#&#8203;33217](https://github.com/go-gitea/gitea/issues/33217))
  - Add .run to gitignore ([#&#8203;33175](https://github.com/go-gitea/gitea/issues/33175))
  - Fix typo in gitea downloader test and add missing codebase in `ToGitServiceType` ([#&#8203;33146](https://github.com/go-gitea/gitea/issues/33146))
  - Remove extended glob pattern from branch protection UI ([#&#8203;33125](https://github.com/go-gitea/gitea/issues/33125))
  - Clean up legacy form CSS styles ([#&#8203;33081](https://github.com/go-gitea/gitea/issues/33081))
  - Unset XDG\_HOME\_CONFIG as gitea manages configuration locations ([#&#8203;33067](https://github.com/go-gitea/gitea/issues/33067))
  - Add IntelliJ Gateway's .uuid to gitignore ([#&#8203;33052](https://github.com/go-gitea/gitea/issues/33052))
  - User facing messages for AGit errors ([#&#8203;33012](https://github.com/go-gitea/gitea/issues/33012))
  - Always show assignees on right ([#&#8203;33006](https://github.com/go-gitea/gitea/issues/33006))
  - Fix eslint ([#&#8203;33002](https://github.com/go-gitea/gitea/issues/33002))
  - Update JS dependencies ([#&#8203;32914](https://github.com/go-gitea/gitea/issues/32914))
  - Bump x/net ([#&#8203;32896](https://github.com/go-gitea/gitea/issues/32896)) ([#&#8203;32900](https://github.com/go-gitea/gitea/issues/32900))
  - Only activity tab needs heatmap data loading ([#&#8203;34652](https://github.com/go-gitea/gitea/issues/34652))

### [`v1.23.8`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1238---2025-05-11)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.7...v1.23.8)

- SECURITY
  - Fix a bug when uploading file via lfs ssh command ([#&#8203;34408](https://github.com/go-gitea/gitea/issues/34408)) ([#&#8203;34411](https://github.com/go-gitea/gitea/issues/34411))
  - Update net package ([#&#8203;34228](https://github.com/go-gitea/gitea/issues/34228)) ([#&#8203;34232](https://github.com/go-gitea/gitea/issues/34232))
- BUGFIXES
  - Fix releases sidebar navigation link ([#&#8203;34436](https://github.com/go-gitea/gitea/issues/34436)) [#&#8203;34439](https://github.com/go-gitea/gitea/issues/34439)
  - Fix bug webhook milestone is not right. ([#&#8203;34419](https://github.com/go-gitea/gitea/issues/34419)) [#&#8203;34429](https://github.com/go-gitea/gitea/issues/34429)
  - Fix two missed null value checks on the wiki page. ([#&#8203;34205](https://github.com/go-gitea/gitea/issues/34205)) ([#&#8203;34215](https://github.com/go-gitea/gitea/issues/34215))
  - Swift files can be passed either as file or as form value ([#&#8203;34068](https://github.com/go-gitea/gitea/issues/34068)) ([#&#8203;34236](https://github.com/go-gitea/gitea/issues/34236))
  - Fix bug when API get pull changed files for deleted head repository ([#&#8203;34333](https://github.com/go-gitea/gitea/issues/34333)) ([#&#8203;34368](https://github.com/go-gitea/gitea/issues/34368))
  - Upgrade github v61 -> v71 to fix migrating bug ([#&#8203;34389](https://github.com/go-gitea/gitea/issues/34389))
  - Fix bug when visiting comparation page ([#&#8203;34334](https://github.com/go-gitea/gitea/issues/34334)) ([#&#8203;34364](https://github.com/go-gitea/gitea/issues/34364))
  - Fix wrong review requests when updating the pull request ([#&#8203;34286](https://github.com/go-gitea/gitea/issues/34286)) ([#&#8203;34304](https://github.com/go-gitea/gitea/issues/34304))
  - Fix github migration error when using multiple tokens ([#&#8203;34144](https://github.com/go-gitea/gitea/issues/34144)) ([#&#8203;34302](https://github.com/go-gitea/gitea/issues/34302))
  - Explicitly not update indexes when sync database schemas ([#&#8203;34281](https://github.com/go-gitea/gitea/issues/34281)) ([#&#8203;34295](https://github.com/go-gitea/gitea/issues/34295))
  - Fix panic when comment is nil ([#&#8203;34257](https://github.com/go-gitea/gitea/issues/34257)) ([#&#8203;34277](https://github.com/go-gitea/gitea/issues/34277))
  - Fix project board links to related Pull Requests ([#&#8203;34213](https://github.com/go-gitea/gitea/issues/34213)) ([#&#8203;34222](https://github.com/go-gitea/gitea/issues/34222))
  - Don't assume the default wiki branch is master in the wiki API ([#&#8203;34244](https://github.com/go-gitea/gitea/issues/34244)) ([#&#8203;34245](https://github.com/go-gitea/gitea/issues/34245))
- DOCUMENTATION
  - Update token creation API swagger documentation ([#&#8203;34288](https://github.com/go-gitea/gitea/issues/34288)) ([#&#8203;34296](https://github.com/go-gitea/gitea/issues/34296))
- MISC
  - Fix CI Build ([#&#8203;34315](https://github.com/go-gitea/gitea/issues/34315))
  - Add riscv64 support ([#&#8203;34199](https://github.com/go-gitea/gitea/issues/34199)) ([#&#8203;34204](https://github.com/go-gitea/gitea/issues/34204))
  - Bump go version in go.mod ([#&#8203;34160](https://github.com/go-gitea/gitea/issues/34160))
  - remove hardcoded 'code' string in clone\_panel.tmpl ([#&#8203;34153](https://github.com/go-gitea/gitea/issues/34153)) ([#&#8203;34158](https://github.com/go-gitea/gitea/issues/34158))

### [`v1.23.7`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1237---2025-04-07)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.6...v1.23.7)

- Enhancements
  - Add a config option to block "expensive" pages for anonymous users ([#&#8203;34024](https://github.com/go-gitea/gitea/issues/34024)) ([#&#8203;34071](https://github.com/go-gitea/gitea/issues/34071))
  - Also check default ssh-cert location for host ([#&#8203;34099](https://github.com/go-gitea/gitea/issues/34099)) ([#&#8203;34100](https://github.com/go-gitea/gitea/issues/34100)) ([#&#8203;34116](https://github.com/go-gitea/gitea/issues/34116))
- BUGFIXES
  - Fix discord webhook 400 status code when description limit is exceeded ([#&#8203;34084](https://github.com/go-gitea/gitea/issues/34084)) ([#&#8203;34124](https://github.com/go-gitea/gitea/issues/34124))
  - Get changed files based on merge base when checking `pull_request` actions trigger ([#&#8203;34106](https://github.com/go-gitea/gitea/issues/34106)) ([#&#8203;34120](https://github.com/go-gitea/gitea/issues/34120))
  - Fix invalid version in RPM package path ([#&#8203;34112](https://github.com/go-gitea/gitea/issues/34112)) ([#&#8203;34115](https://github.com/go-gitea/gitea/issues/34115))
  - Return default avatar url when user id is zero rather than updating database ([#&#8203;34094](https://github.com/go-gitea/gitea/issues/34094)) ([#&#8203;34095](https://github.com/go-gitea/gitea/issues/34095))
  - Add additional ReplaceAll in pathsep to cater for different pathsep ([#&#8203;34061](https://github.com/go-gitea/gitea/issues/34061)) ([#&#8203;34070](https://github.com/go-gitea/gitea/issues/34070))
  - Try to fix check-attr bug ([#&#8203;34029](https://github.com/go-gitea/gitea/issues/34029)) ([#&#8203;34033](https://github.com/go-gitea/gitea/issues/34033))
  - Git client will follow 301 but 307 ([#&#8203;34005](https://github.com/go-gitea/gitea/issues/34005)) ([#&#8203;34010](https://github.com/go-gitea/gitea/issues/34010))
  - Fix block expensive for 1.23 ([#&#8203;34127](https://github.com/go-gitea/gitea/issues/34127))
  - Fix markdown frontmatter rendering ([#&#8203;34102](https://github.com/go-gitea/gitea/issues/34102)) ([#&#8203;34107](https://github.com/go-gitea/gitea/issues/34107))
  - Add new CLI flags to set name and scopes when creating a user with access token ([#&#8203;34080](https://github.com/go-gitea/gitea/issues/34080)) ([#&#8203;34103](https://github.com/go-gitea/gitea/issues/34103))
  - Do not show 500 error when default branch doesn't exist ([#&#8203;34096](https://github.com/go-gitea/gitea/issues/34096)) ([#&#8203;34097](https://github.com/go-gitea/gitea/issues/34097))
  - Hide activity contributors, recent commits and code frequrency left tabs if there is no code permission ([#&#8203;34053](https://github.com/go-gitea/gitea/issues/34053)) ([#&#8203;34065](https://github.com/go-gitea/gitea/issues/34065))
  - Simplify emoji rendering ([#&#8203;34048](https://github.com/go-gitea/gitea/issues/34048)) ([#&#8203;34049](https://github.com/go-gitea/gitea/issues/34049))
  - Adjust the layout of the toolbar on the Issues/Projects page ([#&#8203;33667](https://github.com/go-gitea/gitea/issues/33667)) ([#&#8203;34047](https://github.com/go-gitea/gitea/issues/34047))
  - Pull request updates will also trigger code owners review requests ([#&#8203;33744](https://github.com/go-gitea/gitea/issues/33744)) ([#&#8203;34045](https://github.com/go-gitea/gitea/issues/34045))
  - Fix org repo creation being limited by user limits ([#&#8203;34030](https://github.com/go-gitea/gitea/issues/34030)) ([#&#8203;34044](https://github.com/go-gitea/gitea/issues/34044))
  - Fix git client accessing renamed repo ([#&#8203;34034](https://github.com/go-gitea/gitea/issues/34034)) ([#&#8203;34043](https://github.com/go-gitea/gitea/issues/34043))
  - Fix the issue with error message logging for the `check-attr` command on Windows OS. ([#&#8203;34035](https://github.com/go-gitea/gitea/issues/34035)) ([#&#8203;34036](https://github.com/go-gitea/gitea/issues/34036))
  - Polyfill WeakRef ([#&#8203;34025](https://github.com/go-gitea/gitea/issues/34025)) ([#&#8203;34028](https://github.com/go-gitea/gitea/issues/34028))

### [`v1.23.6`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1236---2025-03-24)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.5...v1.23.6)

- SECURITY
  - Fix LFS URL ([#&#8203;33840](https://github.com/go-gitea/gitea/issues/33840)) ([#&#8203;33843](https://github.com/go-gitea/gitea/issues/33843))
  - Update jwt and redis packages ([#&#8203;33984](https://github.com/go-gitea/gitea/issues/33984)) ([#&#8203;33987](https://github.com/go-gitea/gitea/issues/33987))
  - Update golang crypto and net ([#&#8203;33989](https://github.com/go-gitea/gitea/issues/33989))
- BUGFIXES
  - Drop timeout for requests made to the internal hook api ([#&#8203;33947](https://github.com/go-gitea/gitea/issues/33947)) ([#&#8203;33970](https://github.com/go-gitea/gitea/issues/33970))
  - Fix maven panic when no package exists ([#&#8203;33888](https://github.com/go-gitea/gitea/issues/33888)) ([#&#8203;33889](https://github.com/go-gitea/gitea/issues/33889))
  - Fix markdown render ([#&#8203;33870](https://github.com/go-gitea/gitea/issues/33870)) ([#&#8203;33875](https://github.com/go-gitea/gitea/issues/33875))
  - Fix auto concurrency cancellation skips commit status updates ([#&#8203;33764](https://github.com/go-gitea/gitea/issues/33764)) ([#&#8203;33849](https://github.com/go-gitea/gitea/issues/33849))
  - Fix oauth2 auth ([#&#8203;33961](https://github.com/go-gitea/gitea/issues/33961)) ([#&#8203;33962](https://github.com/go-gitea/gitea/issues/33962))
  - Fix incorrect 1.23 translations ([#&#8203;33932](https://github.com/go-gitea/gitea/issues/33932))
  - Try to figure out attribute checker problem ([#&#8203;33901](https://github.com/go-gitea/gitea/issues/33901)) ([#&#8203;33902](https://github.com/go-gitea/gitea/issues/33902))
  - Ignore trivial errors when updating push data ([#&#8203;33864](https://github.com/go-gitea/gitea/issues/33864)) ([#&#8203;33887](https://github.com/go-gitea/gitea/issues/33887))
  - Fix some UI problems for 1.23 ([#&#8203;33856](https://github.com/go-gitea/gitea/issues/33856))
  - Removing unwanted ui container ([#&#8203;33833](https://github.com/go-gitea/gitea/issues/33833)) ([#&#8203;33835](https://github.com/go-gitea/gitea/issues/33835))
  - Support disable passkey auth ([#&#8203;33348](https://github.com/go-gitea/gitea/issues/33348)) ([#&#8203;33819](https://github.com/go-gitea/gitea/issues/33819))
  - Do not call "git diff" when listing PRs ([#&#8203;33817](https://github.com/go-gitea/gitea/issues/33817))
  - Try to fix ACME (3rd) ([#&#8203;33807](https://github.com/go-gitea/gitea/issues/33807)) ([#&#8203;33808](https://github.com/go-gitea/gitea/issues/33808))
  - Fix incorrect code search indexer options ([#&#8203;33992](https://github.com/go-gitea/gitea/issues/33992)) [#&#8203;33999](https://github.com/go-gitea/gitea/issues/33999)

### [`v1.23.5`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1235---2025-03-04)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.4...v1.23.5)

- SECURITY
  - Bump x/oauth2 & x/crypto ([#&#8203;33704](https://github.com/go-gitea/gitea/issues/33704)) ([#&#8203;33727](https://github.com/go-gitea/gitea/issues/33727))
- PERFORMANCE
  - Optimize user dashboard loading ([#&#8203;33686](https://github.com/go-gitea/gitea/issues/33686)) ([#&#8203;33708](https://github.com/go-gitea/gitea/issues/33708))
- BUGFIXES
  - Fix navbar dropdown item align ([#&#8203;33782](https://github.com/go-gitea/gitea/issues/33782))
  - Fix inconsistent closed issue list icon ([#&#8203;33722](https://github.com/go-gitea/gitea/issues/33722)) ([#&#8203;33728](https://github.com/go-gitea/gitea/issues/33728))
  - Fix for Maven Package Naming Convention Handling ([#&#8203;33678](https://github.com/go-gitea/gitea/issues/33678)) ([#&#8203;33679](https://github.com/go-gitea/gitea/issues/33679))
  - Improve Open-with URL encoding ([#&#8203;33666](https://github.com/go-gitea/gitea/issues/33666)) ([#&#8203;33680](https://github.com/go-gitea/gitea/issues/33680))
  - Deleting repository should unlink all related packages ([#&#8203;33653](https://github.com/go-gitea/gitea/issues/33653)) ([#&#8203;33673](https://github.com/go-gitea/gitea/issues/33673))
  - Fix omitempty bug ([#&#8203;33663](https://github.com/go-gitea/gitea/issues/33663)) ([#&#8203;33670](https://github.com/go-gitea/gitea/issues/33670))
  - Upgrade go-crypto from 1.1.4 to 1.1.6 ([#&#8203;33745](https://github.com/go-gitea/gitea/issues/33745)) ([#&#8203;33754](https://github.com/go-gitea/gitea/issues/33754))
  - Fix OCI image.version annotation for releases to use full semver ([#&#8203;33698](https://github.com/go-gitea/gitea/issues/33698)) ([#&#8203;33701](https://github.com/go-gitea/gitea/issues/33701))
  - Try to fix ACME path when renew ([#&#8203;33668](https://github.com/go-gitea/gitea/issues/33668)) ([#&#8203;33693](https://github.com/go-gitea/gitea/issues/33693))
  - Fix mCaptcha bug ([#&#8203;33659](https://github.com/go-gitea/gitea/issues/33659)) ([#&#8203;33661](https://github.com/go-gitea/gitea/issues/33661))
  - Git graph: don't show detached commits ([#&#8203;33645](https://github.com/go-gitea/gitea/issues/33645)) ([#&#8203;33650](https://github.com/go-gitea/gitea/issues/33650))
  - Use MatchPhraseQuery for bleve code search ([#&#8203;33628](https://github.com/go-gitea/gitea/issues/33628))
  - Adjust appearence of commit status webhook ([#&#8203;33778](https://github.com/go-gitea/gitea/issues/33778)) [#&#8203;33789](https://github.com/go-gitea/gitea/issues/33789)
  - Upgrade golang net from 0.35.0 -> 0.36.0 ([#&#8203;33795](https://github.com/go-gitea/gitea/issues/33795)) [#&#8203;33796](https://github.com/go-gitea/gitea/issues/33796)

### [`v1.23.4`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1234---2025-02-16)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.3...v1.23.4)

- SECURITY
  - Enhance routers for the Actions variable operations ([#&#8203;33547](https://github.com/go-gitea/gitea/issues/33547)) ([#&#8203;33553](https://github.com/go-gitea/gitea/issues/33553))
  - Enhance routers for the Actions runner operations ([#&#8203;33549](https://github.com/go-gitea/gitea/issues/33549)) ([#&#8203;33555](https://github.com/go-gitea/gitea/issues/33555))
  - Fix project issues list and counting ([#&#8203;33594](https://github.com/go-gitea/gitea/issues/33594)) [#&#8203;33619](https://github.com/go-gitea/gitea/issues/33619)
- PERFORMANCES
  - Performance optimization for pull request files loading comments attachments ([#&#8203;33585](https://github.com/go-gitea/gitea/issues/33585)) ([#&#8203;33592](https://github.com/go-gitea/gitea/issues/33592))
- BUGFIXES
  - Add a transaction to `pickTask` ([#&#8203;33543](https://github.com/go-gitea/gitea/issues/33543)) ([#&#8203;33563](https://github.com/go-gitea/gitea/issues/33563))
  - Fix mirror bug ([#&#8203;33597](https://github.com/go-gitea/gitea/issues/33597)) ([#&#8203;33607](https://github.com/go-gitea/gitea/issues/33607))
  - Use default Git timeout when checking repo health ([#&#8203;33593](https://github.com/go-gitea/gitea/issues/33593)) ([#&#8203;33598](https://github.com/go-gitea/gitea/issues/33598))
  - Fix PR's target branch dropdown ([#&#8203;33589](https://github.com/go-gitea/gitea/issues/33589)) ([#&#8203;33591](https://github.com/go-gitea/gitea/issues/33591))
  - Fix various problems (artifact order, api empty slice, assignee check, fuzzy prompt, mirror proxy, adopt git) ([#&#8203;33569](https://github.com/go-gitea/gitea/issues/33569)) ([#&#8203;33577](https://github.com/go-gitea/gitea/issues/33577))
  - Rework suggestion backend ([#&#8203;33538](https://github.com/go-gitea/gitea/issues/33538)) ([#&#8203;33546](https://github.com/go-gitea/gitea/issues/33546))
  - Fix context usage ([#&#8203;33554](https://github.com/go-gitea/gitea/issues/33554)) ([#&#8203;33557](https://github.com/go-gitea/gitea/issues/33557))
  - Only show the latest version in the Arch index ([#&#8203;33262](https://github.com/go-gitea/gitea/issues/33262)) ([#&#8203;33580](https://github.com/go-gitea/gitea/issues/33580))
  - Skip deletion error for action artifacts ([#&#8203;33476](https://github.com/go-gitea/gitea/issues/33476)) ([#&#8203;33568](https://github.com/go-gitea/gitea/issues/33568))
  - Make actions URL in commit status webhooks absolute ([#&#8203;33620](https://github.com/go-gitea/gitea/issues/33620)) [#&#8203;33632](https://github.com/go-gitea/gitea/issues/33632)
  - Add missing locale ([#&#8203;33641](https://github.com/go-gitea/gitea/issues/33641)) [#&#8203;33642](https://github.com/go-gitea/gitea/issues/33642)

### [`v1.23.3`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1233---2025-02-06)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.2...v1.23.3)

- Security
  - Build Gitea with Golang v1.23.6 to fix security bugs
- BUGFIXES
  - Fix a bug caused by status webhook template [#&#8203;33512](https://github.com/go-gitea/gitea/issues/33512)

### [`v1.23.2`](https://github.com/go-gitea/gitea/blob/HEAD/CHANGELOG.md#1232---2025-02-04)

[Compare Source](https://github.com/go-gitea/gitea/compare/v1.23.1...v1.23.2)

- BREAKING
  - Add tests for webhook and fix some webhook bugs ([#&#8203;33396](https://github.com/go-gitea/gitea/issues/33396)) ([#&#8203;33442](https://github.com/go-gitea/gitea/issues/33442))
    - Package webhook’s Organization was incorrectly used as the User struct. This PR fixes the issue.
    - This changelog is just a hint. The change is not really breaking because most fields are the same, most users are not affected.
- ENHANCEMENTS
  - Clone button enhancements ([#&#8203;33362](https://github.com/go-gitea/gitea/issues/33362)) ([#&#8203;33404](https://github.com/go-gitea/gitea/issues/33404))
  - Repo homepage styling tweaks ([#&#8203;33289](https://github.com/go-gitea/gitea/issues/33289)) ([#&#8203;33381](https://github.com/go-gitea/gitea/issues/33381))
  - Add a confirm dialog for "sync fork" ([#&#8203;33270](https://github.com/go-gitea/gitea/issues/33270)) ([#&#8203;33273](https://github.com/go-gitea/gitea/issues/33273))
  - Make tracked time representation display as hours ([#&#8203;33315](https://github.com/go-gitea/gitea/issues/33315)) ([#&#8203;33334](https://github.com/go-gitea/gitea/issues/33334))
  - Improve sync fork behavior ([#&#8203;33319](https://github.com/go-gitea/gitea/issues/33319)) ([#&#8203;33332](https://github.com/go-gitea/gitea/issues/33332))
- BUGFIXES
  - Fix code button alignment ([#&#8203;33345](https://github.com/go-gitea/gitea/issues/33345)) ([#&#8203;33351](https://github.com/go-gitea/gitea/issues/33351))
  - Correct bot label `vertical-align` ([#&#8203;33477](https://github.com/go-gitea/gitea/issues/33477)) ([#&#8203;33480](https://github.com/go-gitea/gitea/issues/33480))
  - Fix SSH LFS memory usage ([#&#8203;33455](https://github.com/go-gitea/gitea/issues/33455)) ([#&#8203;33460](https://github.com/go-gitea/gitea/issues/33460))
  - Fix issue sidebar dropdown keyboard support ([#&#8203;33447](https://github.com/go-gitea/gitea/issues/33447)) ([#&#8203;33450](https://github.com/go-gitea/gitea/issues/33450))
  - Fix user avatar ([#&#8203;33439](https://github.com/go-gitea/gitea/issues/33439))
  - Fix `GetCommitBranchStart` bug ([#&#8203;33298](https://github.com/go-gitea/gitea/issues/33298)) ([#&#8203;33421](https://github.com/go-gitea/gitea/issues/33421))
  - Add pubdate for repository rss and add some tests ([#&#8203;33411](https://github.com/go-gitea/gitea/issues/33411)) ([#&#8203;33416](https://github.com/go-gitea/gitea/issues/33416))
  - Add missed auto merge feed message on dashboard ([#&#8203;33309](https://github.com/go-gitea/gitea/issues/33309)) ([#&#8203;33405](https://github.com/go-gitea/gitea/issues/33405))
  - Fix issue suggestion bug ([#&#8203;33389](https://github.com/go-gitea/gitea/issues/33389)) ([#&#8203;33391](https://github.com/go-gitea/gitea/issues/33391))
  - Make issue suggestion work for all editors ([#&#8203;33340](https://github.com/go-gitea/gitea/issues/33340)) ([#&#8203;33342](https://github.com/go-gitea/gitea/issues/33342))
  - Fix issue count ([#&#8203;33338](https://github.com/go-gitea/gitea/issues/33338)) ([#&#8203;33341](https://github.com/go-gitea/gitea/issues/33341))
  - Fix Account linking page ([#&#8203;33325](https://github.com/go-gitea/gitea/issues/33325)) ([#&#8203;33327](https://github.com/go-gitea/gitea/issues/33327))
  - Fix closed dependency title ([#&#8203;33285](https://github.com/go-gitea/gitea/issues/33285)) ([#&#8203;33287](https://github.com/go-gitea/gitea/issues/33287))
  - Fix sidebar milestone link ([#&#8203;33269](https://github.com/go-gitea/gitea/issues/33269)) ([#&#8203;33272](https://github.com/go-gitea/gitea/issues/33272))
  - Fix missing license when sync mirror ([#&#8203;33255](https://github.com/go-gitea/gitea/issues/33255)) ([#&#8203;33258](https://github.com/go-gitea/gitea/issues/33258))
  - Fix upload file form ([#&#8203;33230](https://github.com/go-gitea/gitea/issues/33230)) ([#&#8203;33233](https://github.com/go-gitea/gitea/issues/33233))
  - Fix mirror bug ([#&#8203;33224](https://github.com/go-gitea/gitea/issues/33224)) ([#&#8203;33225](https://git…
@go-gitea go-gitea locked as resolved and limited conversation to collaborators Jun 26, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/go Pull requests that update Go code modifies/templates This PR modifies the template files type/enhancement An improvement of existing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants