- [PR](https://codeberg.org/forgejo/forgejo/pulls/6240): <!--number 6240 --><!--line 0 --><!--description RW5zdXJlIGBzb3VyY2VfaWRgIHBhcmFtZXRlciBpcyBub3Qgc2tpcHBlZCB3aGVuIHNldCB0byAwIGFuZCBjb3JyZWN0bHkgZmlsdGVyIHVzZXJzIGluIGAvYXBpL3YxL2FkbWluL3VzZXJzYCBlbmRwb2ludA==-->Ensure `source_id` parameter is not skipped when set to 0 and correctly filter users in `/api/v1/admin/users` endpoint<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6044): <!--number 6044 --><!--line 0 --><!--description UHV0IGlzc3VlIGFjdGlvbnMgaW4gYSBzaW5nbGUgcm93IG9uIG1vYmlsZQ==-->Put issue actions in a single row on mobile<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6018): <!--number 6018 --><!--line 0 --><!--description RG9uJ3QgZGlzcGxheSBlbWFpbCBpbiBwcm9maWxlIHNldHRpbmdzIHdoZW4gaGlkZGVu-->Don't display email in profile settings when hidden<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5899): <!--number 5899 --><!--line 0 --><!--description SGlnaGxpZ2h0IHVzZXIgbWVudGlvbiBpbiBjb21tZW50cyBhbmQgY29tbWl0IG1lc3NhZ2Vz-->Highlight user mention in comments and commit messages<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5819): <!--number 5819 --><!--line 0 --><!--description U29ydCBieSBzY29yZSBhbmQgdGVybSBiYXNlZCBxdWVyeSBmb3IgZnV6enkgc2VhcmNo-->When [bleve is used for issue search](https://forgejo.org/docs/next/admin/config-cheat-sheet/#indexer-indexer), a `fuzzy` search now applies to each word instead of all of them, as if they were a phrase. For instance, searching for `activitypub spam moderation` previously [returned no result in Forgejo discussions](https://v9.next.forgejo.org/snematoda/forgejo-discussions/issues?state=open&type=all&q=activitypub+spam+moderation&fuzzy=true) and now returns the [relevant issues](https://codeberg.org/forgejo/discussions/issues?state=open&type=all&q=activitypub+spam+moderation&fuzzy=true). If the search results are too broad, or for searching exact phrases prefer using an `exact` search. Sorting by newest is still available as a non default option under `Sort`. The query was also reworked to improve performances. It makes a significant difference for large instances such as Codeberg.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5677): <!--number 5677 --><!--line 0 --><!--description SWYgeW91IHNlbGVjdCBhIHBvcnRpb24gb2YgYSBjb21tZW50IGFuZCB1c2UgdGhlICdRdW90ZSByZXBseScgZmVhdHVyZSBpbiB0aGUgY29udGV4dCBtZW51LCBvbmx5IHRoYXQgcG9ydGlvbiB3aWxsIGJlIHF1b3RlZC4gVGhlIG1hcmtkb3duIHN5bnRheCBpcyBwcmVzZXJ2ZWQu-->If you select a portion of a comment and use the 'Quote reply' feature in the context menu, only that portion will be quoted. The markdown syntax is preserved.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5593): <!--number 5593 --><!--line 0 --><!--description U2V0IHlvdXJfcmVwb3NpdG9yaWVzIGFzIHRoZSBkZWZhdWx0IGZpbHRlciBmb3Igb3JnIGRhc2hib2FyZHM=-->Set "your repositories" as the default filter for org dashboards<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5589): <!--number 5589 --><!--line 0 --><!--description QWRkIGJ1dHRvbiB0byBjcmVhdGUgTWFya2Rvd24gdGFibGU=-->Add button to create a Markdown table in a comment<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5518): <!--number 5518 --><!--line 0 --><!--description QWRkIGEgYnVsbGV0IHN5bWJvbCBiZXR3ZWVuIGF1dGhvciBhbmQgY29tbWl0dGVy-->Add a bullet symbol between author and committer<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/4125): <!--number 4125 --><!--line 0 --><!--description QWRkZWQgbGluayB0byBzaG93IGFsbCBJc3N1ZXMvUHVsbFJlcXVlc3Rz-->Added link to show all Issues/PullRequests<!--description-->
- User Interface bug fixes
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6122): <!--number 6122 --><!--line 0 --><!--description Rml4IEFjdGlvbiBsb2cgVUkgcmFjZSBjb25kaXRpb24gdGhhdCBvY2Nhc2lvbmFsbHkgcHJldmVudHMgbG9ncyBmcm9tIGxvYWRpbmc=-->Fix Action log UI race condition that occasionally prevents logs from loading<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6063): <!--number 6063 --><!--line 0 --><!--description Rml4IHdpa2kgc2VhcmNoIG92ZXJmbG93aW5nIG9uIHdpZGUgc2NyZWVucw==-->Fix wiki search overflowing on wide screens<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5697): <!--number 5697 --><!--line 0 --><!--description VXBkYXRlIGhlbHAgbGlua3Mgb24gcGFnZSB3aXRoIG5vIHdvcmtmbG93cw==-->Update help links on page with no workflows<!--description-->
- Localization
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6072): <!--number 6072 --><!--line 0 --><!--description QWRkIExvdyBHZXJtYW4gdG8gbGlzdCBvZiBkZWZhdWx0IGxhbmd1YWdlcw==-->Add Low German to list of default languages<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5786): <!--number 5786 --><!--line 0 --><!--description aTE4bjogQWRkIGR1bW15IGxhbmd1YWdlIGZvciBjaGVja2luZyB0cmFuc2xhdGlvbiBrZXlzICgjNTc4NSk=-->i18n: Add dummy language for checking translation keys (#5785)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6180): <!--number 6180 --><!--line 0 --><!--description QWRkIHN1cHBvcnQgZm9yIGBwYWNtYW4gLUZgIGluIEFyY2ggcGFja2FnZQ==-->Add support for `pacman -F` in Arch package<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6170): <!--number 6170 --><!--line 0 --><!--description TWFrZSBMRlMgaHR0cF9jbGllbnQgcGFyYWxsZWwgd2l0aGluIGEgYmF0Y2g=-->Make LFS http_client parallel within a batch<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6146): <!--number 6146 --><!--line 0 --><!--description SW1wcm92ZSBwZXJmb3JtYW5jZSBvZiBub3RpZmljYXRpb25zIHBhZ2UgZm9yIE15U1FM-->Improve performance of notifications page for MySQL<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6062): <!--number 6062 --><!--line 3 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC8yNjJjNDg0MDliMTIyNGUzZjZkYzYzYzhkMWUwNGZlZjBlMGNmMmMwKSBTdXBwb3J0IEhUVFAgUE9TVCByZXF1ZXN0cyB0byBgL3VzZXJpbmZvYCwgYWxpZ25pbmcgdG8gT3BlbklEIENvcmUgc3BlY2lmaWNhdGlvbg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/ddabba5f89c4b196daeeb2af17de9ec2cec14b63) Allow the actions user to login via the jwt token<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6053): <!--number 6053 --><!--line 0 --><!--description QWRkIGEgInN1bW1hcnkgY2FyZCIgdG8gaXNzdWVzICYgUFJzIGZvciBjb25zdW1wdGlvbiBieSBPcGVuR3JhcGggY2xpZW50cw==-->Add a "summary card" to issues & PRs for consumption by OpenGraph clients<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5997): <!--number 5997 --><!--line 7 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9kZDNjNGQ3MDk2Y2ZmOTE4NTRiY2M2NjQxZjU1ZDlkMDkzZTVjODZlKSBBZGQgYSBkb2N0b3IgY2hlY2sgdG8gZGlzYWJsZSB0aGUgIkFjdGlvbnMiIHVuaXQgZm9yIG1pcnJvcnM=-->[commit](https://codeberg.org/forgejo/forgejo/commit/dd3c4d7096cff91854bcc6641f55d9d093e5c86e) Add a doctor check to disable the "Actions" unit for mirrors<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5940): <!--number 5940 --><!--line 0 --><!--description TWFrZSBBVklGIEltYWdlcyB3b3JrIHdpdGggRm9yZ2Vqbw==-->Make AVIF Images work with Forgejo<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5822): <!--number 5822 --><!--line 0 --><!--description VHJpbSBzcGFjZXMgZnJvbSByZXBvIG5hbWVzIG9uIGZvcm0gc3VibWlzc2lvbg==-->Trim spaces from repo names on form submission<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5789): <!--number 5789 --><!--line 4 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC8xZTU5NTk3OTYyNWU1NGQzNzVhMGVhYTQ0MGI4NGVmNWUxN2FmMTYwKSBBZGQgbmV3IFtsZnNfY2xpZW50XS5CQVRDSF9TSVpFIGFuZCBbc2VydmVyXS5MRlNfTUFYX0JBVENIX1NJWkUgY29uZmlnIHNldHRpbmdzLg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/1e595979625e54d375a0eaa440b84ef5e17af160) Add new [lfs_client].BATCH_SIZE and [server].LFS_MAX_BATCH_SIZE config settings.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5751): <!--number 5751 --><!--line 1 --><!--description bWVybWFpZDogW0NsYXNzIGRpYWdyYW0gaW5jbHVkZXMgYSBuZXcgImNsYXNzQm94IiBzaGFwZSwgY2xhc3NEZWYgc3RhdGVtZW50LCBzdXBwb3J0IGZvciBzdHlsaW5nIHRoZSBkZWZhdWx0IGNsYXNzIGFuZCBsb2xsaXBvcCBpbnRlcmZhY2VzXShodHRwczovL2dpdGh1Yi5jb20vbWVybWFpZC1qcy9tZXJtYWlkL3B1bGwvNTg4MCku-->mermaid: [Class diagram includes a new "classBox" shape, classDef statement, support for styling the default class and lollipop interfaces](https://github.com/mermaid-js/mermaid/pull/5880).<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5714): <!--number 5714 --><!--line 2 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9hYjY2MGM1OTQ0ZDU5Y2RiNGVjYzA3MTQwMTQ0NWFjOWY1M2NlZTQ1KSBBZGQgYERJU0FCTEVfT1JHQU5JWkFUSU9OU19QQUdFYCBhbmQgYERJU0FCTEVfQ09ERV9QQUdFYCBzZXR0aW5ncyBmb3IgZXhwbG9yZSBwYWdlcw==-->[commit](https://codeberg.org/forgejo/forgejo/commit/ab660c5944d59cdb4ecc071401445ac9f53cee45) Add `DISABLE_ORGANIZATIONS_PAGE` and `DISABLE_CODE_PAGE` settings for explore pages<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5621): <!--number 5621 --><!--line 2 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9jMzc0MWQ3ZmIwMTE0NjkxZGE3M2YwMGFlMGFjOWRjZWQ4N2U4ODRkKSBUaGUgYHJlcXVlc3RlZF9yZXZpZXdlcnNgIGRhdGEgaXMgaW5jbHVkZWQgaW4gbW9yZSB3ZWJob29rIGV2ZW50cy4=-->[commit](https://codeberg.org/forgejo/forgejo/commit/c3741d7fb0114691da73f00ae0ac9dced87e884d) The `requested_reviewers` data is included in more webhook events.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5601): <!--number 5601 --><!--line 0 --><!--description TGFuZ3VhZ2UgZGV0ZWN0aW9uIGluIHRoZSByZXBvc2l0b3J5IGxlYXJuZWQgYWJvdXQgdGhlIGZvbGxvd2luZyBsYW5ndWFnZXM6IFtKYXZhIFRlbXBsYXRlIEVuZ2luZV0oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi1saW5ndWlzdC9saW5ndWlzdC9wdWxsLzY2MTApLCBbTm9pcl0oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi1saW5ndWlzdC9saW5ndWlzdC9wdWxsLzY0MzIpLCBbQ3lsY10oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi1saW5ndWlzdC9saW5ndWlzdC9wdWxsLzY4MzIpLCBbaUNhbGVuZGFyXShodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViLWxpbmd1aXN0L2xpbmd1aXN0L3B1bGwvNjk0MCksIFt2Q2FyZCAoYWthLiBWQ0Y6IFZpcnR1YWwgQ29udGFjdCBGaWxlKSBhbmQgVmFyaWFudCBDYWxsIEZvcm1hdCAoVkNGKV0oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi1saW5ndWlzdC9saW5ndWlzdC9wdWxsLzY5NDEpLCBbQjRYXShodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViLWxpbmd1aXN0L2xpbmd1aXN0L3B1bGwvNjk2NSksIFtDYXJib25dKGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWItbGluZ3Vpc3QvbGluZ3Vpc3QvcHVsbC83MDExKSwgW0xpdmVDb2RlIFNjcmlwdF0oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi1saW5ndWlzdC9saW5ndWlzdC9wdWxsLzY4MzMpLCBbRHVuZSAoT0NhbWwgYnVpbGQgc3lzdGVtKV0oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi1saW5ndWlzdC9saW5ndWlzdC9wdWxsLzY4MTQpLg==-->Language detection in the repository learned about the following languages: [Java Template Engine](https://github.com/github-linguist/linguist/pull/6610), [Noir](https://github.com/github-linguist/linguist/pull/6432), [Cylc](https://github.com/github-linguist/linguist/pull/6832), [iCalendar](https://github.com/github-linguist/linguist/pull/6940), [vCard (aka. VCF: Virtual Contact File) and Variant Call Format (VCF)](https://github.com/github-linguist/linguist/pull/6941), [B4X](https://github.com/github-linguist/linguist/pull/6965), [Carbon](https://github.com/github-linguist/linguist/pull/7011), [LiveCode Script](https://github.com/github-linguist/linguist/pull/6833), [Dune (OCaml build system)](https://github.com/github-linguist/linguist/pull/6814).<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5601): <!--number 5601 --><!--line 1 --><!--description VGhlIGZvbGxvd2luZyBleHRlbnNpb25zIG9yIGZpbGVuYW1lcyBpbiBhIHJlcG9zaXRvcnkgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWF0Y2hpbmcgbGFuZ3VhZ2U6IFtkZW5vLmxvY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWItbGluZ3Vpc3QvbGluZ3Vpc3QvcHVsbC82ODg1KSwgW3V2LmxvY2tdKGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWItbGluZ3Vpc3QvbGluZ3Vpc3QvcHVsbC83MDA2KSwgW0hPU1RTLlRYVF0oaHR0cHM6Ly9naXRodWIuY29tL2dpdGh1Yi1saW5ndWlzdC9saW5ndWlzdC9wdWxsLzcwMTQpLCBbLnBlZ2d5XShodHRwczovL2dpdGh1Yi5jb20vZ2l0aHViLWxpbmd1aXN0L2xpbmd1aXN0L3B1bGwvNzAxNyksIFsucmVzb3VyY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9naXRodWItbGluZ3Vpc3QvbGluZ3Vpc3QvcHVsbC82NTAwKS4=-->The following extensions or filenames in a repository are associated with the matching language: [deno.lock](https://github.com/github-linguist/linguist/pull/6885), [uv.lock](https://github.com/github-linguist/linguist/pull/7006), [HOSTS.TXT](https://github.com/github-linguist/linguist/pull/7014), [.peggy](https://github.com/github-linguist/linguist/pull/7017), [.resource](https://github.com/github-linguist/linguist/pull/6500).<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5543): <!--number 5543 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9kMGFmOGZlNGRjN2IyOTRmZTU0MDliMjI3MTQ2ODQ5NDI2N2Q1YTdkKSBBbGxvdyBmaWx0ZXJpbmcgcHVsbCByZXF1ZXN0cyBieSBwb3N0ZXIgaW4gdGhlIEFQSS4=-->[commit](https://codeberg.org/forgejo/forgejo/commit/d0af8fe4dc7b294fe5409b2271468494267d5a7d) Allow filtering pull requests by poster in the API.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5477): <!--number 5477 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9hZjkwMWFjN2JiMDNkMjdmMTc1ZjIyOTI1ODFmYzY3ZmE5YzhkNTY3KSBBZGQgc3VwcG9ydCBmb3Igc2VhcmNoaW5nIHVzZXJzIGJ5IGVtYWlsLg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/af901ac7bb03d27f175f2292581fc67fa9c8d567) Add support for searching users by email.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5416): <!--number 5416 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC84MTc4ZDZlYWJhNjRkMDU3OTlmZDNiNjJmYTg4OWJkMTNiZWUwN2M3KSBDb2RlIHNlYXJjaCByZXN1bHRzIHdoZW4gdXNpbmcgdGhlIGJsZXZlIGluZGV4ZXIgYXJlIHNvcnRlZCBieSByZWxldmFuY2Uu-->[commit](https://codeberg.org/forgejo/forgejo/commit/8178d6eaba64d05799fd3b62fa889bd13bee07c7) Code search results when using the bleve indexer are sorted by relevance.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5372): <!--number 5372 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC85ZDM0NzMxMTk4OTNmZmRlMGFiMzZkOThlN2EwZTQxYzVkMGJhOWEzKSBBZGQgYmluIHRvIENvbXBvc2VyIE1ldGFkYXRhLg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/9d3473119893ffde0ab36d98e7a0e41c5d0ba9a3) Add bin to Composer Metadata.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/4753): <!--number 4753 --><!--line 0 --><!--description R2l0IG5vdGVzIGNhbiBiZSBtb2RpZmllZCB2aWEgdGhlIEFQSSBvciB0aGUgVUk=-->Git notes can be modified via the API or the UI<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6329): <!--number 6329 --><!--line 0 --><!--description bWF2ZW4gcGFja2FnZSB3aGVyZSBhY3R1YWwgcG9tIGhhcyBubyBncm91cC1pZCBkZWZpbmVkLCBmYWxsYmFjayB0byBwYXJlbnQgZ3JvdXAtaWQ=-->maven package where actual pom has no group-id defined, fallback to parent group-id<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6271): <!--number 6271 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC85NmE3ZjBhM2YwNjVjNWRiOGZkZjM1MmM5M2M4MzY3ZTI0ZDI1OWRlKSBGaXggbWlzc2luZyBvdXRwdXRzIGZvciBqb2JzIHdpdGggbWF0cml4-->[commit](https://codeberg.org/forgejo/forgejo/commit/96a7f0a3f065c5db8fdf352c93c8367e24d259de) Fix missing outputs for jobs with matrix<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6271): <!--number 6271 --><!--line 3 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9iZjkzNGM5NmM5MmQ2NDM2NzhhYzdhMTg2OTdiNjU2M2JjOWQyMGE1KSBBZGQgc3RhbmRhcmQtY29tcGxpYW50IHJvdXRlIHRvIHNlcnZlIG91dGRhdGVkIFIgcGFja2FnZXM=-->[commit](https://codeberg.org/forgejo/forgejo/commit/bf934c96c92d643678ac7a18697b6563bc9d20a5) Add standard-compliant route to serve outdated R packages<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6105): <!--number 6105 --><!--line 0 --><!--description Rml4IHVuY29uZGl0aW9uYWwgREIgcXVlcmllcyBpbiBjb21taXQgc3RhdHVzIGZldGNoZXM=-->Fix unconditional DB queries in commit status fetches<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6062): <!--number 6062 --><!--line 2 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9kZGFiYmE1Zjg5YzRiMTk2ZGFlZWIyYWYxN2RlOWVjMmNlYzE0YjYzKSBhbGxvdyB0aGUgYWN0aW9ucyB1c2VyIHRvIGxvZ2luIHZpYSB0aGUgand0IHRva2Vu-->[commit](https://codeberg.org/forgejo/forgejo/commit/ddabba5f89c4b196daeeb2af17de9ec2cec14b63) allow the actions user to login via the jwt token<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5997): <!--number 5997 --><!--line 3 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9jMmU4NzkwZGYzN2ExNGI0ZDJmNzJjNzM3N2RiNzUzMDllMGViZjFkKSBUcmltIHRpdGxlIGJlZm9yZSBpbnNlcnQvdXBkYXRlIHRvIGRhdGFiYXNlIHRvIG1hdGNoIHRoZSBzaXplIHJlcXVpcmVtZW50cyBvZiBkYXRhYmFzZQ==-->[commit](https://codeberg.org/forgejo/forgejo/commit/c2e8790df37a14b4d2f72c7377db75309e0ebf1d) Trim title before insert/update to database to match the size requirements of database<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5988): <!--number 5988 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9mYzI2YmVjYmE0YjA4ODc3YTcyNmYyZTdlNDUzOTkyMzEwMjQ1ZmU1KSB3aGVuIGEgdGFnIHdhcyByZW1vdmVkIGFuZCBhIHJlbGVhc2UgZXhpc3RlZCBmb3IgdGhhdCB0YWcsIGl0IHdvdWxkIGJlIGJyb2tlbi4gVGhlIHJlbGVhc2UgaXMgbm8gbG9uZ2VyIGJyb2tlbiB0aGUgdGFnIGNhbiBiZSBhZGRlZCBhZ2Fpbi4=-->[commit](https://codeberg.org/forgejo/forgejo/commit/fc26becba4b08877a726f2e7e453992310245fe5) When a tag was removed and a release existed for that tag, it would be broken. The release is no longer broken the tag can be added again.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5811): <!--number 5811 --><!--line 0 --><!--description RXNjYXBpbmcgc3BlY2lmaWMgbWFya2Rvd24gaW4gIGNvbW1pdCBtZXNzYWdlcyBvbiBEaXNjb3JkLXR5cGUgZW1iZWRz-->Escaping specific markdown in commit messages on Discord-type embeds<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5789): <!--number 5789 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC8zNjJhZDBiYTM5YmRiYzg3MjAyZTM0OTY3OGUyMWZjMmE3NWZmN2NiKSBVcGRhdGUgZm9yY2UtcHVzaGVkIHRhZ3MgdG9vIHdoZW4gc3luY2luZyBtaXJyb3Jz-->[commit](https://codeberg.org/forgejo/forgejo/commit/362ad0ba39bdbc87202e349678e21fc2a75ff7cb) Update force-pushed tags too when syncing mirrors<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5789): <!--number 5789 --><!--line 2 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC80YzViZGRkZjc3NTFhMzU5ODVjMDhiYTY1MDZmMWYzMDEwMzc0OWQ2KSBGaXggYG1pc3Npbmcgc2lnbmF0dXJlIGtleWAgZXJyb3Igd2hlbiBwdWxsaW5nIERvY2tlciBpbWFnZXMgd2l0aCBgU0VSVkVfRElSRUNUYCBlbmFibGVk-->[commit](https://codeberg.org/forgejo/forgejo/commit/4c5bdddf7751a35985c08ba6506f1f30103749d6) Fix `missing signature key` error when pulling Docker images with `SERVE_DIRECT` enabled<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5789): <!--number 5789 --><!--line 3 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC8yYzVmZGIxMDhmZjllMjNlOGY5MDdmYjZhZmU1OTE3N2M2YmIyMDJlKSBGaXggdGhlIG1pc3NpbmcgbWVudSBpbiBvcmdhbml6YXRpb24gcHJvamVjdCB2aWV3IHBhZ2U=-->[commit](https://codeberg.org/forgejo/forgejo/commit/2c5fdb108ff9e23e8f907fb6afe59177c6bb202e) Fix the missing menu in organization project view page<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5781): <!--number 5781 --><!--line 0 --><!--description UHJldmlldyBwaWN0dXJlIG5vdCB2aXNpYmxlIG9uIE1hcmtkb3duIGZpbGU=-->Preview picture not visible on Markdown file<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5714): <!--number 5714 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9kMTNhNGFiNTYzMmQ2YTk2OTdiZDA5MDdmOWM2OWVkNTdkOTQ5MzQwKSBGaXhlZCBhIGJ1ZyByZWxhdGVkIHRvIGRpc2FibGluZyB0d28tZmFjdG9yIGF1dGhlbnRpY2F0aW9u-->[commit](https://codeberg.org/forgejo/forgejo/commit/d13a4ab5632d6a9697bd0907f9c69ed57d949340) Fixed a bug related to disabling two-factor authentication<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5621): <!--number 5621 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9mM2YzODY1NDVlZTk3YjkxZjFhYWFjNDE0MjQ4MGU3MGE0NDNjNjU1KSBBbHdheXMgdXBkYXRlIGV4cGlyYXRpb24gdGltZSB3aGVuIGNyZWF0aW5nIGFuIGFydGlmYWN0LCBzbyB0aGF0IGFydGlmYWN0cyBmcm9tIHJlLXJhbiBqb2JzIGRvIG5vdCBnZXQgbG9zdC4=-->[commit](https://codeberg.org/forgejo/forgejo/commit/f3f386545ee97b91f1aaac4142480e70a443c655) Always update expiration time when creating an artifact, so that artifacts from re-ran jobs do not get lost.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5621): <!--number 5621 --><!--line 1 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9jMTYzYmY2ZmI1NWM5MjJhYjBjZjU1MmI0NzQ3NWZjOGZjOGI5OWQ5KSBSZW1vdmUgdGhlIGJ1dHRvbiB0b29sYmFyIHdoZW4gZGVsZXRpbmcgYSBkaWZmIGNvbW1lbnQu-->[commit](https://codeberg.org/forgejo/forgejo/commit/c163bf6fb55c922ab0cf552b47475fc8fc8b99d9) Remove the button toolbar when deleting a diff comment.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5621): <!--number 5621 --><!--line 3 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9lODcwMGNlZTYxMmYwYWE3NjlkYzY5Mjk3NzJkOWIwNGM2YzIxODA3KSBSdW4gc2NoZWR1bGVkIHRhc2tzIGFnYWluc3QgdGhlIGxhdGVzdCBjb21taXQu-->[commit](https://codeberg.org/forgejo/forgejo/commit/e8700cee612f0aa769dc6929772d9b04c6c21807) Run scheduled tasks against the latest commit.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5517): <!--number 5517 --><!--line 0 --><!--description QWxsb3cgT3JnYW5pc2F0aW9ucyB0byByZW1vdmUgdGhlIEVtYWlsIEFkZHJlc3M=-->Allow Organisations to remove the Email Address<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5477): <!--number 5477 --><!--line 2 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9iNjdiN2MxMjM4NTA1OTg5OGZjOGNiNzk5Nzc1NWE4OGIzYWZhNDgzKSB0aGUgbG9naWMgb2YgZmluZGluZyB0aGUgbGF0ZXN0IHB1bGwgcmV2aWV3IGNvbW1pdCBJRCBpcyBpbmNvcnJlY3Qu-->[commit](https://codeberg.org/forgejo/forgejo/commit/b67b7c12385059898fc8cb7997755a88b3afa483) The logic of finding the latest pull review commit ID is incorrect.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5416): <!--number 5416 --><!--line 1 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9iNDk2MzE3YjVhMmFlYTk3MGJjOTRjY2Y2ZmNkZTM1Y2Q0MTdlYzIwKSBBZnRlciBtaWdyYXRpbmcgYSByZXBvc2l0b3J5IHRoYXQgY29udGFpbnMgbWVyZ2VkIHB1bGwgcmVxdWVzdHMsIHRoZSBicmFuY2ggaXMgbWlzc2luZyBhbmQgY2Fubm90IGJlIGRlbGV0ZWQu-->[commit](https://codeberg.org/forgejo/forgejo/commit/b496317b5a2aea970bc94ccf6fcde35cd417ec20) After migrating a repository that contains merged pull requests, the branch is missing and cannot be deleted.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5714): <!--number 5714 --><!--line 1 --><!--description Y2hvcmU6IFtjb21taXRdKGh0dHBzOi8vY29kZWJlcmcub3JnL2Zvcmdlam8vZm9yZ2Vqby9jb21taXQvYWIyNmQ4ODA5MzJkYmMxMTZjNDNlYTI3NzAyOTk4NGM3YTZkNGU5NCkgRW1pdCBhIGxvZyBtZXNzYWdlIHdoZW4gZmFpbGluZyB0byBkZWxldGUgYW4gaW5hY3RpdmUgdXNlcg==-->chore: [commit](https://codeberg.org/forgejo/forgejo/commit/ab26d880932dbc116c43ea277029984c7a6d4e94) Emit a log message when failing to delete an inactive user<!--description-->
- Included for completeness but not worth a release note
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6441) ([backported](https://codeberg.org/forgejo/forgejo/pulls/6442)): <!--number 6442 --><!--line 0 --><!--description Zml4KGNvZGUgc2VhcmNoKTogZW1wdHkgbW9kZSBkcm9wZG93biB3aGVuIGtleXdvcmQgaXMgZW1wdHk=-->fix(code search): empty mode dropdown when keyword is empty<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6427) ([backported](https://codeberg.org/forgejo/forgejo/pulls/6430)): <!--number 6430 --><!--line 0 --><!--description Zml4KHVpKTogdXNlIHByaW1hcnkgY29sb3IgZm9yIGJ1dHRvbiBpbiB0YWJsZSBtb2RhbA==-->fix(ui): use primary color for button in table modal<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6403) ([backported](https://codeberg.org/forgejo/forgejo/pulls/6420)): <!--number 6420 --><!--line 0 --><!--description Y2hvcmUoYnJhbmRpbmcpOiBzdHJpcCBtZXRhZGF0YSBpbmZvcm1hdGlvbiBmcm9tIHRoZSBmb290ZXI=-->chore(branding): strip metadata information from the footer<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6410) ([backported](https://codeberg.org/forgejo/forgejo/pulls/6418)): <!--number 6418 --><!--line 0 --><!--description Zml4OiB1c2UgRGF0ZVV0aWxzIGZvciBibG9ja2VkIHVzZXJzIGxpc3Q=-->fix: use DateUtils for blocked users list<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6405) ([backported](https://codeberg.org/forgejo/forgejo/pulls/6406)): <!--number 6406 --><!--line 0 --><!--description Zml4OiB4b3JtIG5lZWRzIHRvIGJlIGxvd2VyY2FzZSBvdGhlcndpc2UgaXQgaXMgaWdub3JlZA==-->fix: xorm needs to be lowercase otherwise it is ignored<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6401) ([backported](https://codeberg.org/forgejo/forgejo/pulls/6402)): <!--number 6402 --><!--line 0 --><!--description Q29zbWV0aWMgY2hhbmdlcyBhbmQgZml4ZXMgYXJvdW5kIHJlcG8gaG9tZXBhZ2U=-->Cosmetic changes and fixes around repo homepage<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6286) ([backported](https://codeberg.org/forgejo/forgejo/pulls/6398)): <!--number 6398 --><!--line 0 --><!--description ZmVhdDogV2hlbiBjb21wYXJpbmcgaW4gcmVwb3MsIG1lbnRpb24gdGhhdCBwdWxsIHJlcXVlc3QgY3JlYXRpb24gcmVxdWlyZXMgc2lnbi1pbg==-->feat: When comparing in repos, mention that pull request creation requires sign-in<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6357): <!--number 6357 --><!--line 0 --><!--description Y2hvcmUoZG9jcyk6IGV4cGxhaW4gdmFycy5TS0lQX0VORF9UT19FTkQgd2hlbiBidWlsZGluZyBhIHJlbGVhc2U=-->chore(docs): explain vars.SKIP_END_TO_END when building a release<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6337): <!--number 6337 --><!--line 0 --><!--description a2VlcCBjb21taXQgY291bnQgbGltaXQgaW4gZmlsZSBoaXN0b3J5IHBhZ2luYXRpb24gc3RhdGljIGFuZCBub3QgaW5jcmVhc2Ugd2l0aCBldmVyeSBwYWdl-->keep commit count limit in file history pagination static and not increase with every page<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6324): <!--number 6324 --><!--line 0 --><!--description Y2hvcmUocmVsZWFzZSk6IGxpbmsgdG8gdGhlIHN0YW5kYWxvbmUgcmVsZWFzZSBub3RlcyBmaWxl-->chore(release): link to the standalone release notes file<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6288): <!--number 6288 --><!--line 0 --><!--description U29tZSBpbXByb3ZlbWVudHMgdG8gYmFzZSBsb2NhbGU=-->Some improvements to base locale<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6287): <!--number 6287 --><!--line 0 --><!--description RG9uJ3Qgbm90aWZ5IHdoZW4gYSB1c2VyIHNlbGYtcmVxdWVzdCBhcyByZXZpZXdlcg==-->Don't notify when a user self-request as reviewer<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6237): <!--number 6237 --><!--line 0 --><!--description QXZvaWQgaGF2aW5nIHRvIHN0b3JlIGkxOG4gbGludGVyIGV4Y2VwdGlvbnMgZm9yIDxmaWxlbmFtZT4=-->Avoid having to store i18n linter exceptions for <filename><!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6223): <!--number 6223 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBzZXQgdGhlIG1pbGVzdG9uZSB3aGVuIGEgcHVsbCByZXF1ZXN0IGlzIGNsb3NlZCAodGFrZSA0KQ==-->chore(ci): set the milestone when a pull request is closed (take 4)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6219): <!--number 6219 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBzZXQgdGhlIG1pbGVzdG9uZSB3aGVuIGEgcHVsbCByZXF1ZXN0IGlzIG9wZW4gKHRha2UgMyk=-->chore(ci): set the milestone when a pull request is open (take 3)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6213): <!--number 6213 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBzZXQgdGhlIG1pbGVzdG9uZSB3aGVuIGEgcHVsbCByZXF1ZXN0IGlzIG9wZW4gKHRha2UgMik=-->chore(ci): set the milestone when a pull request is open (take 2)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6211): <!--number 6211 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBzZXQgdGhlIG1pbGVzdG9uZSB3aGVuIGEgcHVsbCByZXF1ZXN0IGlzIG9wZW4gW3NraXAgY2ld-->chore(ci): set the milestone when a pull request is open [skip ci]<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6199): <!--number 6199 --><!--line 0 --><!--description ZmVhdChzZWNyZXQpOiBnZW5lcmF0ZSBGT1JHRUpPX1RPS0VOIGZvciBhbGwgdGFza3M=-->feat(secret): generate FORGEJO_TOKEN for all tasks<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6196): <!--number 6196 --><!--line 0 --><!--description UmVicmFuZCBoZWxwIHRleHQgaW4gYGZvcmdlam8gbWlncmF0ZWAgIzYxOTQ=-->Rebrand help text in `forgejo migrate`#6194<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6191): <!--number 6191 --><!--line 0 --><!--description RG8gbm90IG9mZmVyIGR1cGxpY2F0aW5nIGEgUFIgZm9yIGEgcmVjZW50bHkgcHVzaGVkIGJyYW5jaA==-->Do not offer duplicating a PR for a recently pushed branch<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6188): <!--number 6188 --><!--line 0 --><!--description ZG9uJ3Qgc3BlY2lmeSBGT1IgY2xhdXNlIGZvciBpbmRleCBoaW50-->don't specify FOR clause for index hint<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6182): <!--number 6182 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBjb21tb24gaXNzdWUtbGFiZWxzIG5hbWUgZm9yIGFsbCByZWxhdGVkIHdvcmtmbG93cw==-->chore(ci): common issue-labels name for all related workflows<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6178): <!--number 6178 --><!--line 0 --><!--description UmV2ZXJ0ICJjaG9yZShjaSk6IG1lcmdlIGpvYnMgaW4gaXNzdWUtbGFiZWxzLnltbCBpbiBvbmUgd29ya2Zsb3ci-->Revert "chore(ci): merge jobs in issue-labels.yml in one workflow"<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6177): <!--number 6177 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBkb2NrZXItcnVubmVyLW9uZSBpcyBub3QgYSBrbm93biBsYWJlbA==-->chore(ci): docker-runner-one is not a known label<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6136): <!--number 6136 --><!--line 0 --><!--description YnVpbGQ6IHJlbGF4IHJlcXVpcmVkIGdvIHZlcnNpb24gZm9yIGxvY2FsIGRldmVsb3BtZW50-->build: relax required go version for local development<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6128): <!--number 6128 --><!--line 0 --><!--description Y2xlYW4gdXAgbG9nIGZpbGVzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0-->clean up log files that no longer exist<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6120): <!--number 6120 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBydW4gbWVyZ2UgY29uZGl0aW9ucyB3aGVuIGEgbmV3IGNvbW1pdCBpcyBwdXNoZWQ=-->chore(ci): run merge conditions when a new commit is pushed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6089): <!--number 6089 --><!--line 0 --><!--description dHlwb3MsIG1vc3RseSBmcm9tIGBjb2Rlc3BlbGxgLCBvdGhlcnMganVzdCBieSBleWViYWxsaW5n-->typos, mostly from `codespell`, others just by eyeballing<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6046): <!--number 6046 --><!--line 0 --><!--description Y2k6IHVzZSBtb3JlIGB0bXBmc2AgYW5kIGBub2F0aW1lYCBmb3IgZmFzdGVyIENJ-->ci: use more `tmpfs` and `noatime` for faster CI<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6021): <!--number 6021 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBtZXJnZSBqb2JzIGlzc3VlIGxhYmVsIGpvYnMgIGluIG9uZSB3b3JrZmxvdw==-->chore(ci): merge jobs issue label jobs in one workflow<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6006): <!--number 6006 --><!--line 0 --><!--description dmVydGljYWwgY2VudGVyIHRoZSBkYXRlIG9uIEdQRyBrZXlz-->vertical center the date on GPG keys<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6003): <!--number 6003 --><!--line 0 --><!--description Y2hvcmUocmVsZWFzZS1ub3Rlcy1hc3Npc3RhbnQpOiBzZWN1cml0eSBmaXggLyBmZWF0dXJlcyBjb21lIGZpcnN0-->chore(release-notes-assistant): security fix / features come first<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5989): <!--number 5989 --><!--line 0 --><!--description dXNlIGJldHRlciBjb2RlIHRvIGdyb3VwIFVJRCBhbmQgc3RvcHdhdGNoZXM=-->use better code to group UID and stopwatches<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5987): <!--number 5987 --><!--line 0 --><!--description RGVmYXVsdCB0byBnZW5lcmF0aW5nIEVkRFNBIGZvciBPQXV0aCBKV1Qgc2lnbmluZyBrZXk=-->Default to generating EdDSA for OAuth JWT signing key<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5958): <!--number 5958 --><!--line 0 --><!--description Y2k6IHVzZSB0bXBmcyBmb3Igc2VydmljZSBzdG9yYWdl-->ci: use tmpfs for service storage<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5956): <!--number 5956 --><!--line 0 --><!--description dGVzdDogdXNlIHNxbGl0ZSBpbi1tZW1vcnkgZGIgZm9yIGludGVncmF0aW9u-->test: use sqlite in-memory db for integration<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5896): <!--number 5896 --><!--line 0 --><!--description Zml4KGNpKTogb25seSB0cmlnZ2VyIGVuZC10by1lbmQgdGVzdHMgd2hlbiB0aGUgbGFiZWwgaXMgc2V0-->fix(ci): only trigger end-to-end tests when the label is set<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5892): <!--number 5892 --><!--line 0 --><!--description UHJvcGVyIHBhcnNpbmcgb2YgZGF0ZSBmb3IgZ2l0IGNvbW1pdHM=-->Proper parsing of date for git commits<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5888): <!--number 5888 --><!--line 0 --><!--description Y2hvcmU6IGxhenktbG9hZGVkIHZlcnNpb24gb2YgZ29jY3kvZ28tanNvbg==-->chore: lazy-loaded version of goccy/go-json<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5886): <!--number 5886 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBFbmZvcmNlIHRlc3QgbGFiZWwgd2l0aCBDSSBjaGVjaw==-->chore(ci): Enforce test label with CI check<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5881): <!--number 5881 --><!--line 0 --><!--description W1RIRU1FXSBDb3B5IGFuc2kgdGVybWluYWwgY29sb3VycyBmcm9tIGdpdGVhIHRvIGZvcmdlam8gdGhlbWVz-->[THEME] Copy ansi terminal colours from gitea to forgejo themes<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5878): <!--number 5878 --><!--line 0 --><!--description Zml4KGNpKTogc2xvdyBydW5uZXJzIG1heSBuZWVkIG1vcmUgdGhhbiA1MCBtaW51dGVzIGZvciBhIHRlc3Q=-->fix(ci): slow runners may need more than 50 minutes for a test<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5869): <!--number 5869 --><!--line 0 --><!--description YnVnOiByZXF1aXJlLkV2ZW50dWFsbHkgbXVzdCBub3QgdGVzdCB3aXRoIGFzc2VydA==-->bug: require.Eventually must not test with assert<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5858): <!--number 5858 --><!--line 0 --><!--description Y2hvcmUocmVub3ZhdGUpOiBvbmx5IHJ1biBpZiByZW5vdmF0ZSB3b3JrZmxvdyBjaGFuZ2Vk-->chore(renovate): only run if renovate workflow changed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5843): <!--number 5843 --><!--line 0 --><!--description aXNzdWUgbGFiZWxzIGFyZSBub3Qgc2V0IGFmdGVyIGRlbGV0aW5nIG9uZSBsYWJlbA==-->issue labels are not set after deleting one label<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5836): <!--number 5836 --><!--line 0 --><!--description VXBkYXRlIGRlcGVuZGVuY3kgZ28gdG8gdjEuMjMuMyAoZm9yZ2Vqbyk=-->Update dependency go to v1.23.3 (forgejo)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5835): <!--number 5835 --><!--line 0 --><!--description TWFrZSBkaXJlbnYgb3B0aW9uYWwgdG8gbGV0IGRldmVsb3BlcnMgdXNlIHRoZWlyIG93biBkaXJlbnYgY29uZmlndXJhdGlvbg==-->Make direnv optional to let developers use their own direnv configuration<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5793): <!--number 5793 --><!--line 0 --><!--description W1BPUlRdIFJlZmFjdG9yIHRoZSBEQiBtaWdyYXRpb24gc3lzdGVtIHNsaWdodGx5IChnaXRlYSMzMjM0NCk=-->[PORT] Refactor the DB migration system slightly (gitea#32344)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5792): <!--number 5792 --><!--line 0 --><!--description W1BPUlRdIEZpeCB0b0Fic29sdXRlTG9jYWxlRGF0ZSBhbmQgYWRkIG1vcmUgdGVzdHMgKGdpdGVhIzMyMzg3KQ==-->[PORT] Fix toAbsoluteLocaleDate and add more tests (gitea#32387)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5791): <!--number 5791 --><!--line 0 --><!--description W1BPUlRdIEZpeCBhIG51bWJlciBvZiB0eXBlc2NyaXB0IGlzc3VlcyAoZ2l0ZWEjMzIzMDgp-->[PORT] Fix a number of typescript issues (gitea#32308)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5790): <!--number 5790 --><!--line 0 --><!--description W1BPUlRdIFJlZmFjdG9yIHRlc3RzIHRvIHByZXZlbnQgZnJvbSB1bm5lY2Vzc2FyeSBwcmVwYXJhdGlvbnMgKGdpdGVhIzMyMzk4KQ==-->[PORT] Refactor tests to prevent from unnecessary preparations (gitea#32398)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5779): <!--number 5779 --><!--line 0 --><!--description c3VwcG9ydCBjb2xvciBkb3RzIGZvciA0IGNoYXJhY3RlciBoZXgu-->support color dots for 4 character hex.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5769): <!--number 5769 --><!--line 0 --><!--description UmV2ZXJ0OiBjaG9yZShjaSk6IEVuZm9yY2UgdGVzdCBsYWJlbCB3aXRoIENJIGNoZWNr-->Revert: chore(ci): Enforce test label with CI check<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5767): <!--number 5767 --><!--line 0 --><!--description SW1wcm92ZW1lbnRzIHRvIHNvbWUgRW5nbGlzaCBzdHJpbmdz-->Improvements to some English strings<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5756): <!--number 5756 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBFbmZvcmNlIHRlc3QgbGFiZWwgd2l0aCBDSSBjaGVjaw==-->chore(ci): Enforce test label with CI check<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5755): <!--number 5755 --><!--line 0 --><!--description Y2hvcmUoY2kpOiB1c2Ugcm9vdGxlc3MgZm9yIHRoZSBjb250YWluZXIgaW1hZ2VzIHNlbnQgdG8gazhz-->chore(ci): use rootless for the container images sent to k8s<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5732): <!--number 5732 --><!--line 0 --><!--description Y2hvcmUocmVsZWFzZSk6IGFsc28gY29weSB0aGUgcmVsZWFzZSB0byBjb2RlLmZvcmdlam8ub3Jn-->chore(release): also copy the release to code.forgejo.org<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5729): <!--number 5729 --><!--line 0 --><!--description ZG9jczogYWRkIGxpbmtzIHRvIHRoZSB2Ny4wLjEwICYgdjkuMC4xIHJlbGVhc2Ugbm90ZXM=-->docs: add links to the v7.0.10 & v9.0.1 release notes<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5688): <!--number 5688 --><!--line 0 --><!--description bWFrZSBicmFuY2ggcHJvdGVjdGlvbiB3b3JrIGZvciBuZXcgYnJhbmNoZXM=-->make branch protection work for new branches<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5684): <!--number 5684 --><!--line 0 --><!--description cmVzZXQgYGhpc3Rvcnkuc2Nyb2xsUmVzdG9yYXRpb25gIGlmIHNldCB0byBgbWFudWFsYCBhbmQgbm8gaXNzdWUgYW5jaG9yIGluIHVybA==-->reset `history.scrollRestoration` if set to `manual` and no issue anchor in url<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5653): <!--number 5653 --><!--line 0 --><!--description ZG9uJ3Qgc2hvdyB0cnVuY2F0ZWQgY29tbWVudHMgaW4gUlNTL0F0b20gZmVlZHM=-->don't show truncated comments in RSS/Atom feeds<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5652): <!--number 5652 --><!--line 0 --><!--description dHlwbyBvbiByZWxlYXNlcyBmb3Igc291cmNlIGNvZGUgZG93bmxvYWRz-->typo on releases for source code downloads<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5651): <!--number 5651 --><!--line 0 --><!--description bGluayB0byBzZWN1cml0eSBwb2xpY3kgaW4gc2VjdXJpdHkudHh0-->link to security policy in security.txt<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5646): <!--number 5646 --><!--line 0 --><!--description Y2hvcmUocmVsZWFzZS1ub3Rlcyk6IG5vIG5lZWQgdG8gc3BlY2lmeSB0aGV5IGFyZSBkcmFmdA==-->chore(release-notes): no need to specify they are draft<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5640): <!--number 5640 --><!--line 0 --><!--description UmV2ZXJ0ICJhZGQgZ2FwIGJldHdlZW4gYnJhbmNoIGRyb3Bkb3duIGFuZCBQUiBidXR0b24i-->Revert "add gap between branch dropdown and PR button"<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5638): <!--number 5638 --><!--line 0 --><!--description QmV0dGVyIG1lc3NhZ2VzIGZvciBjYXNlcyBvZiBwcml2YXRlIHByb2ZpbGVz-->Better messages for cases of private profiles<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5637): <!--number 5637 --><!--line 0 --><!--description ZmVhdChjaSk6IGFsbG93IG1hbnVhbCB0cmlnZ2VyaW5nIG9mIHRoZSB0ZXN0IHN1aXRl-->feat(ci): allow manual triggering of the test suite<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5625): <!--number 5625 --><!--line 0 --><!--description Zml4KGkxOG4pOiBlZGl0IHNob3VsZCBub3QgYmUgbG93ZXJjYXNlIGhlcmU=-->fix(i18n): edit should not be lowercase here<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5595): <!--number 5595 --><!--line 0 --><!--description QWRkIHNlcnZlciBsb2dnaW5nIGZvciBPQXV0aCBzZXJ2ZXIgZXJyb3Jz-->Add server logging for OAuth server errors<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5592): <!--number 5592 --><!--line 0 --><!--description Zm9yZ2Vqby1jbGkgaXMgbm93IGEgc3ltbGluayBhbmQgY2Fubm90IGJlIHVzZWQgZm9yIHNhbml0eSBjaGVja3M=-->forgejo-cli is now a symlink and cannot be used for sanity checks<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5536): <!--number 5536 --><!--line 0 --><!--description dXNlIGNvbHVtbiBmbGV4IG9uIG1vYmlsZSB0byBwcmV2ZW50IHByb2plY3QgdGl0bGUgZnJvbSB3cmFwcGluZw==-->use column flex on mobile to prevent project title from wrapping<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5523): <!--number 5523 --><!--line 0 --><!--description aTE4bjogRmluZSB0dW5lIGxhbmd1YWdlIGZvciB1bml0cw==-->i18n: Fine tune language for units<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5506): <!--number 5506 --><!--line 0 --><!--description RG8gbm90IGNoYW5nZSBzdHJva2Ugc2l6ZSBpbiB0aGUgbG9hZGluZyBhbmltYXRpb24=-->Do not change stroke size in the loading animation<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5505): <!--number 5505 --><!--line 0 --><!--description U21hbGwgZml4ZXMgYW5kIHJlbmFtZSBmb3IgIzU0ODI=-->Small fixes and rename for #5482<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5503): <!--number 5503 --><!--line 0 --><!--description dXBkYXRlIGdpdCBib29rIGxpbmsgdG8gdjI=-->update git book link to v2<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5491): <!--number 5491 --><!--line 0 --><!--description Y29ycmVjdCBkb2N1bWVudGF0aW9uIGZvciBub24gMjAwIHJlc3BvbnNlcyBpbiBzd2FnZ2Vy-->correct documentation for non 200 responses in swagger<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5482): <!--number 5482 --><!--line 0 --><!--description IkFzc2lnbiB0byBtZSIgYnV0dG9uIG9uIFBSIGFuZCBJc3N1ZXMgIzUyMTU=-->"Assign to me" button on PR and Issues #5215<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5450): <!--number 5450 --><!--line 0 --><!--description Y2kvdGVzdHMoZTJlKTogYWx3YXlzIHJ1biBlMmUgdGVzdHMsIGJ1dCBvbmx5IG9uIGNoYW5nZWQgZmlsZXM=-->ci/tests(e2e): always run e2e tests, but only on changed files<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5449): <!--number 5449 --><!--line 0 --><!--description VXBkYXRlIGRlcGVuZGVuY3kgZ28gdG8gdjEuMjMuMiAoZm9yZ2Vqbyk=-->Update dependency go to v1.23.2 (forgejo)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5391): <!--number 5391 --><!--line 0 --><!--description ZG9jczogYWRkIGxpbmsgdG8gdGhlIHY5LjAuMCByZWxlYXNlIG5vdGVz-->docs: add link to the v9.0.0 release notes<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5389): <!--number 5389 --><!--line 0 --><!--description bWFpbCBpc3N1ZTogRGlzcGxheSBpc3N1ZSB0eXBlIGluIGVtYWlsIGhlYWRlcg==-->mail issue: Display issue type in email header<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5351): <!--number 5351 --><!--line 0 --><!--description QWRkIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyByZW1vdmFsIHN1cHBvcnQgZm9yIGFyY2ggcGFja2FnZQ==-->Add architecture-specific removal support for arch package<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5328): <!--number 5328 --><!--line 0 --><!--description Y2k6IHVzZSBjdXN0b20gYWN0aW9uIGZvciBHbyBjYWNoaW5n-->ci: use custom action for Go caching<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5158): <!--number 5158 --><!--line 0 --><!--description dXNlIFZhbGlkYXRlRW1haWwgYXMgYmluZGluZyBhY3Jvc3Mgd2ViIGZvcm1z-->use ValidateEmail as binding across web forms<!--description-->
- Already announced in the release notes of an older stable release
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6249): <!--number 6249 --><!--line 0 --><!--description UmV2ZXJ0ICJhbGxvdyBzeW5jaHJvbml6aW5nIHVzZXIgc3RhdHVzIGZyb20gT0F1dGgyIGxvZ2luIHByb3ZpZGVycyAoIzMxNTcyKSI=-->Revert "allow synchronizing user status from OAuth2 login providers (#31572)"<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6248): <!--number 6248 --><!--line 0 --><!--description ZW5zdXJlIGNvcnJlY3Qgc3NoIHB1YmxpYyBrZXkgaXMgdXNlZCBmb3IgYXV0aGVudGljYXRpb24=-->ensure correct ssh public key is used for authentication<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6124): <!--number 6124 --><!--line 0 --><!--description ZG9jdG9yIGZhaWxzIHdpdGggcHE6IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICIuIiB3aGlsc3QgY291bnRpbmcgQXV0aG9yaXphdGlvbiB0b2tlbiB3aXRob3V0IGV4aXN0aW5nIFVzZXI=-->doctor fails with pq: syntax error at or near "." whilst counting Authorization token without existing User<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6097): <!--number 6097 --><!--line 0 --><!--description RG8gbm90IHJld3JpdGUgc3NoIGtleXMgZmlsZXMgd2hlbiBkZWxldGluZyBhIHVzZXIgd2l0aG91dCBvbmU=-->Do not rewrite ssh keys files when deleting a user without one<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/6054): <!--number 6054 --><!--line 0 --><!--description RG8gbm90IGRlbGV0ZSBnbG9iYWwgT2F1dGgyIGFwcGxpY2F0aW9ucw==-->Do not delete global Oauth2 applications<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 0 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC8xY2UzM2FhMzhkMWQyNThkMTQ1MjNmZjJjN2MyZGJmMzM5ZjIyYjc0KSBpdCB3YXMgcG9zc2libGUgdG8gdXNlIGEgdG9rZW4gc2VudCB2aWEgZW1haWwgZm9yIHNlY29uZGFyeSBlbWFpbCB2YWxpZGF0aW9uIHRvIHJlc2V0IHRoZSBwYXNzd29yZCBpbnN0ZWFkLiAgSW4gb3RoZXIgd29yZHMsIGEgdG9rZW4gc2VudCBmb3IgIGEgZ2l2ZW4gYWN0aW9uIChyZWdpc3RyYXRpb24sIHBhc3N3b3JkIHJlc2V0IG9yIHNlY29uZGFyeSBlbWFpbCB2YWxpZGF0aW9uKSBjb3VsZCBiZSB1c2VkIHRvIHBlcmZvcm0gYSBkaWZmZXJlbnQgYWN0aW9uLiBJdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gdXNlIGEgdG9rZW4gZm9yIGFuIGFjdGlvbiB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIGl0cyBvcmlnaW5hbCBwdXJwb3NlLg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/1ce33aa38d1d258d14523ff2c7c2dbf339f22b74) it was possible to use a token sent via email for secondary email validation to reset the password instead. In other words, a token sent for a given action (registration, password reset or secondary email validation) could be used to perform a different action. It is no longer possible to use a token for an action that is different from its original purpose.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 1 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC8wNjFhYmU2MDA0NTIxMmFjZjhjM2Y1YzQ5YjVjYzc1OGI0Y2JjZGU5KSBhIGZvcmsgb2YgYSBwdWJsaWMgcmVwb3NpdG9yeSB3b3VsZCBzaG93IGluIHRoZSBsaXN0IG9mIGZvcmtzLCBldmVuIGlmIGl0cyBvd25lciB3YXMgbm90IGEgcHVibGljIHVzZXIgb3Igb3JnYW5pemF0aW9uLiBTdWNoIGEgZm9yayBpcyBub3cgaGlkZGVuIGZyb20gdGhlIGxpc3Qgb2YgZm9ya3Mgb2YgdGhlIHB1YmxpYyByZXBvc2l0b3J5Lg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/061abe60045212acf8c3f5c49b5cc758b4cbcde9) a fork of a public repository would show in the list of forks, even if its owner was not a public user or organization. Such a fork is now hidden from the list of forks of the public repository.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 2 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC8zZTNlZjc2ODA4MTAwY2IxYzg1MzM3ODczM2QwZjZhOTEwMzI0YWM2KSB0aGUgbWVtYmVycyBvZiBhbiBvcmdhbml6YXRpb24gdGVhbSB3aXRoIHJlYWQgYWNjZXNzIHRvIGEgcmVwb3NpdG9yeSAoZS5nLiB0byByZWFkIGlzc3VlcykgYnV0IG5vIHJlYWQgYWNjZXNzIHRvIHRoZSBjb2RlIGNvdWxkIHJlYWQgdGhlIFJTUyBvciBhdG9tIGZlZWRzIHdoaWNoIGluY2x1ZGUgdGhlIGNvbW1pdCBhY3Rpdml0eS4gUmVhZGluZyB0aGUgUlNTIG9yIGF0b20gZmVlZHMgaXMgbm93IGRlbmllZCB1bmxlc3MgdGhlIHRlYW0gaGFzIHJlYWQgcGVybWlzc2lvbnMgb24gdGhlIGNvZGUu-->[commit](https://codeberg.org/forgejo/forgejo/commit/3e3ef76808100cb1c853378733d0f6a910324ac6) the members of an organization team with read access to a repository (e.g. to read issues) but no read access to the code could read the RSS or atom feeds which include the commit activity. Reading the RSS or atom feeds is now denied unless the team has read permissions on the code.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 3 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC85NTA4YWE3NzEzNjMyZWQ0MDEyNGE5MzNkOTFkNTc2NmNmMjM2OWMyKSB0aGUgdG9rZW5zIHVzZWQgd2hlbiBbcmVwbHlpbmcgYnkgZW1haWwgdG8gaXNzdWVzIG9yIHB1bGwgcmVxdWVzdHNdKGh0dHBzOi8vZm9yZ2Vqby5vcmcvZG9jcy92OS4wL3VzZXIvaW5jb21pbmcvKSB3ZXJlIHdlYWtlciB0aGFuIHRoZSBbcmZjMjEwNCByZWNvbW1lbmRhdGlvbnNdKGh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjMjEwNCNzZWN0aW9uLTUpLiBUaGUgdG9rZW5zIGFyZSBub3cgdHJ1bmNhdGVkIHRvIDEyOCBiaXRzIGluc3RlYWQgb2YgODAgYml0cy4gSXQgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIHJlcGx5IHRvIGVtYWlscyBzZW50IGJlZm9yZSB0aGUgdXBncmFkZSBiZWNhdXNlIHRoZSB3ZWFrZXIgdG9rZW5zIGFyZSBpbnZhbGlkLg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/9508aa7713632ed40124a933d91d5766cf2369c2) the tokens used when [replying by email to issues or pull requests](https://forgejo.org/docs/v9.0/user/incoming/) were weaker than the [rfc2104 recommendations](https://datatracker.ietf.org/doc/html/rfc2104#section-5). The tokens are now truncated to 128 bits instead of 80 bits. It is no longer possible to reply to emails sent before the upgrade because the weaker tokens are invalid.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 4 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC83ODZkZmM3ZmI4MWVlNzZkNDI5MmNhNWZjYjMzZTZlYTdiZGNjYzI5KSBhIHJlZ2lzdGVyZWQgdXNlciBjb3VsZCBtb2RpZnkgdGhlIHVwZGF0ZSBmcmVxdWVuY3kgb2YgYW55IHB1c2ggbWlycm9yIChlLmcuIGV2ZXJ5IDRoIGluc3RlYWQgb2YgZXZlcnkgOGgpLiBUaGV5IGFyZSBub3cgb25seSBhYmxlIHRvIGRvIHRoYXQgaWYgdGhleSBoYXZlIGFkbWluaXN0cmF0aXZlIHBlcm1pc3Npb25zIG9uIHRoZSByZXBvc2l0b3J5Lg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/786dfc7fb81ee76d4292ca5fcb33e6ea7bdccc29) a registered user could modify the update frequency of any push mirror (e.g. every 4h instead of every 8h). They are now only able to do that if they have administrative permissions on the repository.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 5 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9lNmJiZWNiMDJkNDc3MzBkM2NjNjMwZDQxOWZlMjdlZjJmYjVjYjM5KSBpdCB3YXMgcG9zc2libGUgdG8gdXNlIGJhc2ljIGF1dGhvcml6YXRpb24gKGkuZS4gdXNlcjpwYXNzd29yZCkgZm9yIHJlcXVlc3RzIHRvIHRoZSBBUEkgZXZlbiB3aGVuIHNlY3VyaXR5IGtleXMgd2VyZSBlbnJvbGxlZCBmb3IgYSB1c2VyLiBJdCBpcyBubyBsb25nZXIgcG9zc2libGUsIGFuIGFwcGxpY2F0aW9uIHRva2VuIG11c3QgYmUgdXNlZCBpbnN0ZWFkLg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/e6bbecb02d47730d3cc630d419fe27ef2fb5cb39) it was possible to use basic authorization (i.e. user:password) for requests to the API even when security keys were enrolled for a user. It is no longer possible, an application token must be used instead.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 6 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC83MDY3Y2M3ZGE0ZjE0NGNjOGEyZmQyYWU2ZTUzMDdlMDQ2NWFjZTdmKSBzb21lIG1hcmt1cCBzYW5pdGF0aW9uIHJ1bGVzIHdlcmUgbm90IGFzIHN0cm9uZyBhcyB0aGV5IGNvdWxkIGJlIChlLmcuIGFsbG93aW5nIGBlbW9qaSBzb21ldGhpbmdlbHNlYCBhcyB3ZWxsIGFzIGBlbW9qaWApLiBUaGUgcnVsZXMgYXJlIG5vdyBzdHJpY3RlciBhbmQgZG8gbm90IGFsbG93IGZvciBzdWNoIGNhc2VzLg==-->[commit](https://codeberg.org/forgejo/forgejo/commit/7067cc7da4f144cc8a2fd2ae6e5307e0465ace7f) some markup sanitation rules were not as strong as they could be (e.g. allowing `emoji somethingelse` as well as `emoji`). The rules are now stricter and do not allow for such cases.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5974): <!--number 5974 --><!--line 7 --><!--description W2NvbW1pdF0oaHR0cHM6Ly9jb2RlYmVyZy5vcmcvZm9yZ2Vqby9mb3JnZWpvL2NvbW1pdC9iNzAxOTY2NTNmOWQ3ZDNiOWQ0ZTcyZDExNGU1Y2M2ZjQ3Mjk4OGM0KSB3aGVuIEZvcmdlam8gaXMgY29uZmlndXJlZCB0byBlbmFibGUgaW5zdGFuY2Ugd2lkZSBzZWFyY2ggKGUuZy4gd2l0aCBbYmxldmVdKGh0dHBzOi8vYmxldmVzZWFyY2guY29tLykpLCByZXN1bHRzIGZvdW5kIGluIHRoZSByZXBvc2l0b3JpZXMgb2YgcHJpdmF0ZSBvciBsaW1pdGVkIHVzZXJzIHdlcmUgZGlzcGxheWVkIHRvIGFub255bW91cyB2aXNpdG9ycy4gVGhlIHJlc3VsdHMgZm91bmQgaW4gcHJpdmF0ZSBvciBsaW1pdGVkIG9yZ2FuaXphdGlvbnMgd2VyZSBub3QgZGlzcGxheWVkLiBUaGUgc2VhcmNoIHJlc3VsdHMgZm91bmQgaW4gdGhlIHJlcG9zaXRvcmllcyBvZiBwcml2YXRlIG9yIGxpbWl0ZWQgdXNlciBhcmUgbm8gbG9uZ2VyIGRpc3BsYXllZCB0byBhbm9ueW1vdXMgdmlzaXRvcnMu-->[commit](https://codeberg.org/forgejo/forgejo/commit/b70196653f9d7d3b9d4e72d114e5cc6f472988c4) when Forgejo is configured to enable instance wide search (e.g. with [bleve](https://blevesearch.com/)), results found in the repositories of private or limited users were displayed to anonymous visitors. The results found in private or limited organizations were not displayed. The search results found in the repositories of private or limited user are no longer displayed to anonymous visitors.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5850): <!--number 5850 --><!--line 0 --><!--description W1BPUlRdIEZpeCBjb2RlIG93bmVycyB3aWxsIG5vdCBiZSBtZW50aW9uZWQgd2hlbiBhIHB1bGwgcmVxdWVzdCBjb21lcyBmcm9tIGEgZm9ya2VkIHJlcG9zaXRvcnkgKGdpdGVhIzMwNDc2KQ==-->[PORT] Fix code owners will not be mentioned when a pull request comes from a forked repository (gitea#30476)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5831): <!--number 5831 --><!--line 0 --><!--description bGFiZWxzIGFyZSBtaXNzaW5nIGluIHRoZSBwdWxsIHJlcXVlc3QgcGF5bG9hZCByZW1vdmluZyBhIGxhYmVs-->labels are missing in the pull request payload removing a label<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5778): <!--number 5778 --><!--line 0 --><!--description SW4gYSBGb3JnZWpvIEFjdGlvbnMgd29ya2Zsb3csIHRoZSBgdW5sYWJlbGVkYCBldmVudCB0eXBlIGZvciBwdWxsIHJlcXVlc3RzIHdhcyBpbmNvcnJlY3RseSBtYXBwZWQgdG8gdGhlIGxhYmVsZWQgZXZlbnQgdHlwZS4=-->In a Forgejo Actions workflow, the `unlabeled` event type for pull requests was incorrectly mapped to the labeled event type.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5778): <!--number 5778 --><!--line 1 --><!--description V2hlbiBhIEZvcmdlam8gQWN0aW9ucyBpc3N1ZSBvciBwdWxsIHJlcXVlc3Qgd29ya2Zsb3cgaXMgdHJpZ2dlcmVkIGJ5IGFuIGBsYWJlbGVkYCBvciBgdW5sYWJlbGVkYCBldmVudCB0eXBlLCBpdCBtaXNzZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxhYmVsIGFkZGVkIG9yIHJlbW92ZWQuIEl0IGlzIG5vdyBhdmFpbGFibGUgaW4gdGhlIGBsYWJlbGAgZGF0YSBtZW1iZXIgb2YgdGhlIGV2ZW50IHBheWxvYWQu-->When a Forgejo Actions issue or pull request workflow is triggered by an `labeled` or `unlabeled` event type, it misses information about the label added or removed. It is now available in the `label` data member of the event payload.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5778): <!--number 5778 --><!--line 2 --><!--description VGhlIHB1bGwgcmVxdWVzdCB3b3JrZmxvdyBtdXN0IGFsd2F5cyB1cGRhdGUgdGhlIGhlYWQgU0hBIGNvbW1pdCBzdGF0dXMuIE5vdCBqdXN0IHdoZW4gdGhlIFBSIGlzIHN5bmNocm9uaXplZCwgb3BlbmVkIG9yIGNsb3NlZC4gT3RoZXJ3aXNlIGl0IG1ha2VzIGl0IGltcG9zc2libGUgdG8gZGVmaW5lIGEgam9iIHRvIGJlIGEgcmVxdWlyZWQgY2hlY2sgKGZvciBpbnN0YW5jZSBhIGpvYiB0aGF0IGlzIHRyaWdnZXJlZCB3aGVuIGxhYmVscyBhcmUgbW9kaWZpZWQgYW5kIHZlcmlmaWVzIHRoYXQgYSBnaXZlbiBjb21iaW5hdGlvbiBpcyBwcmVzZW50KS4=-->The pull request workflow must always update the head SHA commit status. Not just when the PR is synchronized, opened or closed. Otherwise it makes it impossible to define a job to be a required check (for instance a job that is triggered when labels are modified and verifies that a given combination is present).<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5746): <!--number 5746 --><!--line 0 --><!--description Z2l0LWdyZXAgZm9yIGNvZGUgc2VhcmNoIHdoZW4gZ2l0IHZlcnNpb24gaXMgYmVsb3cgMi4zOA==-->git-grep for code search when git version is below 2.38<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5719): <!--number 5719 --><!--line 0 --><!--description Rm9yZ2VqbyBnZW5lcmF0ZXMgYSB0b2tlbiB3aGljaCBpcyB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB3ZWIgZW5kcG9pbnRzIHRoYXQgYXJlIG9ubHkgbWVhbnQgdG8gYmUgdXNlZCBpbnRlcm5hbGx5LCBmb3IgaW5zdGFuY2Ugd2hlbiB0aGUgU1NIIGRhZW1vbiBpcyB1c2VkIHRvIHB1c2ggYSBjb21taXQgd2l0aCBHaXQuIFRoZSB2ZXJpZmljYXRpb24gb2YgdGhpcyB0b2tlbiB3YXMgbm90IGRvbmUgaW4gY29uc3RhbnQgdGltZSBhbmQgd2FzIHN1c2NlcHRpYmxlIHRvIFt0aW1pbmcgYXR0YWNrc10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVGltaW5nX2F0dGFjaykuIEEgcHJlLWNvbmRpdGlvbiBmb3Igc3VjaCBhbiBhdHRhY2sgaXMgdGhlIHByZWNpc2UgbWVhc3VyZW1lbnRzIG9mIHRoZSB0aW1lIGZvciBlYWNoIG9wZXJhdGlvbi4gU2luY2UgaXQgcmVxdWlyZXMgb2JzZXJ2aW5nIHRoZSB0aW1pbmcgb2YgbmV0d29yayBvcGVyYXRpb25zLCB0aGUgaXNzdWUgaXMgbWl0aWdhdGVkIHdoZW4gYSBGb3JnZWpvIGluc3RhbmNlIGlzIGFjY2Vzc2VkIG92ZXIgdGhlIGludGVybmV0IGJlY2F1c2UgdGhlIElTUCBpbnRyb2R1Y2UgdW5wcmVkaWN0YWJsZSByYW5kb20gZGVsYXlzLg==-->Forgejo generates a token which is used to authenticate web endpoints that are only meant to be used internally, for instance when the SSH daemon is used to push a commit with Git. The verification of this token was not done in constant time and was susceptible to [timing attacks](https://en.wikipedia.org/wiki/Timing_attack). A pre-condition for such an attack is the precise measurements of the time for each operation. Since it requires observing the timing of network operations, the issue is mitigated when a Forgejo instance is accessed over the internet because the ISP introduce unpredictable random delays.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5718): <!--number 5718 --><!--line 0 --><!--description QmVjYXVzZSBvZiBhIG1pc3NpbmcgcGVybWlzc2lvbiBjaGVjaywgdGhlIGJyYW5jaCB1c2VkIHRvIHByb3Bvc2UgYSBwdWxsIHJlcXVlc3QgdG8gYSByZXBvc2l0b3J5IGNhbiBhbHdheXMgYmUgZGVsZXRlZCBieSB0aGUgdXNlciBwZXJmb3JtaW5nIHRoZSBtZXJnZS4gSXQgd2FzIGZpeGVkIHNvIHRoYXQgc3VjaCBhIGRlbGV0aW9uIGlzIG9ubHkgYWxsb3dlZCBpZiB0aGUgdXNlciBwZXJmb3JtaW5nIHRoZSBtZXJnZSBoYXMgd3JpdGUgcGVybWlzc2lvbiB0byB0aGUgcmVwb3NpdG9yeSBmcm9tIHdoaWNoIHRoZSBwdWxsIHJlcXVlc3Qgd2FzIG1hZGUu-->Because of a missing permission check, the branch used to propose a pull request to a repository can always be deleted by the user performing the merge. It was fixed so that such a deletion is only allowed if the user performing the merge has write permission to the repository from which the pull request was made.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5634): <!--number 5634 --><!--line 0 --><!--description cGFja2FnZSBhcmNoICBkYXRhYmFzZSBub3QgdXBkYXRpbmcgd2hlbiB1cGxvYWRpbmcgImFueSIgYXJjaGl0ZWN0dXJl-->package arch database not updating when uploading "any" architecture<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5627): <!--number 5627 --><!--line 0 --><!--description Y29ycmVjdCBTUUwgcXVlcnkgZm9yIGFjdGl2ZSBpc3N1ZXM=-->correct SQL query for active issues<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5626): <!--number 5626 --><!--line 0 --><!--description c3BlY2lmeSBkZWZhdWx0IHZhbHVlIGZvciBgRVhQTE9SRV9ERUZBVUxUX1NPUlRgLg==-->specify default value for `EXPLORE_DEFAULT_SORT`.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5529): <!--number 5529 --><!--line 0 --><!--description RG9uJ3QgYWxsb3cgb3duZXIgdGVhbSB3aXRoIGluY29ycmVjdCB1bml0IGFjY2VzcyAoaW5jbHVkZXMgZG9jdG9yIGZpeCk=-->Don't allow owner team with incorrect unit access (includes doctor fix)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/5515): <!--number 5515 --><!--line 0 --><!--description KipGaXhpbmcgdGhpcyBidWcgaXMgYSBicmVha2luZyBjaGFuZ2UgYmVjYXVzZSBleGlzdGluZyB0b2tlbnMgd2l0aCBhIHB1YmxpYyBzY29wZSB3aWxsIG5vIGxvbmdlciByZXR1cm4gcHJpdmF0ZSByZXNvdXJjZXMuIFRoZXkgaGF2ZSB0byBiZSBkZWxldGVkIGFuZCByZS1jcmVhdGVkIHdpdGhvdXQgdGhlIHB1YmxpYyBzY29wZSB0byByZXN0b3JlIHRoZWlyIG9yaWdpbmFsIGJlaGF2aW9yKiouIFRoZSBwdWJsaWMgc2NvcGUgb2YgYW4gYXBwbGljYXRpb24gdG9rZW4gZG9lcyBub3QgZmlsdGVyIG91dCBwcml2YXRlIHJlcG9zaXRvcmllcywgb3JnYW5pemF0aW9ucyBvciBwYWNrYWdlcyBpbiBzb21lIGNhc2VzLiBUaGlzIHNjb3BlIGlzIG5vdCB0aGUgZGVmYXVsdCwgaXQgaGFzIHRvIGJlIG1hbnVhbGx5IHNldCB2aWEgdGhlIHdlYiBVSSBvciB0aGUgQVBJLiBXaGVuIHRoZSBwdWJsaWMgc2NvcGUgaXMgZXhwbGljaXRseSBhZGRlZCB0byBhbiBhcHBsaWNhdGlvbiB0b2tlbiB0aGF0IGlzIGFsbG93ZWQgdG8gbGlzdCB0aGUgcmVwb3NpdG9yaWVzIGFuZCBwYWNrYWdlcyBvZiBhIHVzZXIgb3IgYW4gb3JnYW5pemF0aW9uLCBpdCBpcyBtZWFudCBhcyBhIHJlc3RyaWN0aW9uLiBGb3IgaW5zdGFuY2UgaWYgYSB1c2VyIGhhcyB0d28gcmVwb3NpdG9yaWVzLCBvbmUgcHJpdmF0ZSBhbmQgdGhlIG90aGVyIHB1YmxpY2x5IHZpc2libGUsIGEgdG9rZW4gd2l0aCB0aGUgcHVibGljIHNjb3BlIHVzZWQgd2l0aCB0aGUgQVBJIGVuZHBvaW50IGxpc3RpbmcgdGhlIHJlcG9zaXRvcmllcyB0aGF0IGJlbG9uZyB0byB0aGlzIHVzZXIgbXVzdCBvbmx5IHJldHVybiB0aGUgcHVibGljbHkgdmlzaWJsZSBvbmUgYW5kIG5vdCByZXZlYWwgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgcHJpdmF0ZSBvbmUu-->**Fixing this bug is a breaking change because existing tokens with a public scope will no longer return private resources. They have to be deleted and re-created without the public scope to restore their original behavior**. The public scope of an application token does not filter out private repositories, organizations or packages in some cases. This scope is not the default, it has to be manually set via the web UI or the API. When the public scope is explicitly added to an application token that is allowed to list the repositories and packages of a user or an organization, it is meant as a restriction. For instance if a user has two repositories, one private and the other publicly visible, a token with the public scope used with the API endpoint listing the repositories that belong to this user must only return the publicly visible one and not reveal the existence of the private one.<!--description-->