This release contains [a regression](https://codeberg.org/forgejo/forgejo/issues/9421) when `RENDER_CONTENT_MODE = iframe` is set in `app.ini` that sometime forces the height to be 300px. It will be fixed in [Forgejo v13.0.1](https://codeberg.org/forgejo/forgejo/milestone/29090).
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8692): <!--number 8692 --><!--line 0 --><!--description bWlncmF0ZSBhY3Rpb24gc2VjcmV0cyB0byBga2V5aW5nYCB0byBzdG9yZSB0aGVtIG1vcmUgc2VjdXJlbHk=-->migrate action secrets to `keying` to store them more securely<!--description-->
- Breaking features
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8328): <!--number 8328 --><!--line 0 --><!--description YnVtcCB0aGUgbWluaW11bSByZXF1aXJlZCBHaXQgdmVyc2lvbiBmcm9tIDIuMC4wIHRvIDIuMzQuMQ==-->bump the minimum required Git version from 2.0.0 to 2.34.1<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8502): <!--number 8502 --><!--line 0 --><!--description Rm9yZ2VqbyBBY3Rpb25zIHdvcmtmbG93cyBhcmUgdmVyaWZpZWQgd2l0aCBhIFlBTUwgc2NoZW1hIGFuZCBjb21tb24gZXJyb3JzIHN1Y2ggYXMgdXNpbmcgYW4gaW5jb3JyZWN0IGNvbnRleHQgKGUuZy4gYCR7eyBiYWRjb250ZXh0LkZPUkdFSk9fUkVQT1NJVE9SWSB9fWApIG9yIGEgdHlwbyBpbiBhIHJlcXVpcmVkIGtleXdvcmQgKGUuZy4gYHJ1aW5zLW9uOmAgaW5zdGVhZCBvZiBgcnVucy1vbjpgKSB3aWxsIGJlIHJlcG9ydGVkIGluIHRoZSBhY3Rpb24gcGFnZSBhbmQgdGhlIHdlYiBwYWdlIHRoYXQgZGlzcGxheXMgdGhlIGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuIEl0IGlzIHJlY29tbWVuZGVkIHRvIHZlcmlmeSBleGlzdGluZyB3b3JrZmxvd3MgYXJlIHN1Y2Nlc3NmdWxseSB2ZXJpZmllZCBwcmlvciB0byB1cGdyYWRpbmcsIFthcyBleHBsYWluZWQgaW4gdGhlIEZvcmdlam8gcnVubmVyIHJlbGVhc2Ugbm90ZXNdKGh0dHBzOi8vY29kZS5mb3JnZWpvLm9yZy9mb3JnZWpvL3J1bm5lci9zcmMvYnJhbmNoL21haW4vUkVMRUFTRS1OT1RFUy5tZCM4LTAtMCku-->Forgejo Actions workflows are verified with a YAML schema and common errors such as using an incorrect context (e.g. `${{ badcontext.FORGEJO_REPOSITORY }}`) or a typo in a required keyword (e.g. `ruins-on:` instead of `runs-on:`) will be reported in the action page and the web page that displays the file in the repository. It is recommended to verify existing workflows are successfully verified prior to upgrading, [as explained in the Forgejo runner release notes](https://code.forgejo.org/forgejo/runner/releases/tag/v9.0.0).<!--description-->
- Breaking bug fixes
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9023): <!--number 9023 --><!--line 0 --><!--description VGhlIGBhcnRpZmFjdC11cmxgIG91cHV0IFtyZXR1cm5lZCBieSB0aGUgdXBsb2FkLWFydGlmYWN0QHY0IGFjdGlvbl0oaHR0cHM6Ly9jb2RlLmZvcmdlam8ub3JnL2FjdGlvbnMvdXBsb2FkLWFydGlmYWN0I291dHB1dHMpIGNhbiBiZSB1c2VkIHRvIGRvd25sb2FkIHRoZSBhcnRpZmFjdC4gSXQgd2FzIHByZXZpb3VzbHkgNDA0LiBUbyBpbXBsZW1lbnQgdGhpcyBjb21wYXRpYmlsaXR5IGZpeCwgdGhlIHdlYiBVSSBVUkwgdG8gZG93bmxvYWQgYXJ0aWZhY3RzIChpLmUuIGAve293bmVyfS97cmVwb30vYWN0aW9ucy9ydW5zL3tydW5faWR9L2FydGlmYWN0cy97YXJ0aWZhY3RfbmFtZX1gKSBub3cgcmVsaWVzIG9uIGFuIGlkZW50aWZpZXIgdGhhdCBpcyB1bmlxdWUgYWNjcm9zcyB0aGUgaW5zdGFuY2UuIFVSTHMgdG8gZG93bmxvYWQgYXJ0aWZhY3RzIHRoYXQgd2VyZSBib29rbWFya2VkIG9yIGNvcGllZCBwcmlvciB0byB0aGlzIGNoYW5nZSB1c2UgYW4gaWQgcmVsYXRpdmUgdG8gdGhlIHJlcG9zaXRvcnkgYW5kIHdpbGwgbm8gbG9uZ2VyIHdvcmsuIEl0IHByZXZpb3VzbHkgd2FzIGAve293bmVyfS97cmVwb30vYWN0aW9ucy9ydW5zL3tydW5faW5kZXh9L2FydGlmYWN0cy97YXJ0aWZhY3RfbmFtZX1gLCBub3RlIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYHtydW5faWR9YCBhbmQgYHtydW5faW5kZXh9YC4gVGhlIG5ldyBVUkwgY2FuIGJlIG9idGFpbmVkIGFnYWluIGJ5IHZpc2l0aW5nIHRoZSBwYXJlbnQgcGFnZSwgd2hpY2ggc3RpbGwgdXNlcyB0aGUgcmVsYXRpdmUgaWQgKGAve293bmVyfS97cmVwb30vYWN0aW9ucy9ydW5zL3tydW5faW5kZXh9YCku-->The `artifact-url` ouput [returned by the upload-artifact@v4 action](https://code.forgejo.org/actions/upload-artifact#outputs) can be used to download the artifact. It was previously 404. To implement this compatibility fix, the web UI URL to download artifacts (i.e. `/{owner}/{repo}/actions/runs/{run_id}/artifacts/{artifact_name}`) now relies on an identifier that is unique accross the instance. URLs to download artifacts that were bookmarked or copied prior to this change use an id relative to the repository and will no longer work. It previously was `/{owner}/{repo}/actions/runs/{run_index}/artifacts/{artifact_name}`, note the difference between `{run_id}` and `{run_index}`. The new URL can be obtained again by visiting the parent page, which still uses the relative id (`/{owner}/{repo}/actions/runs/{run_index}`).<!--description-->
- User Interface features
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9017): <!--number 9017 --><!--line 0 --><!--description YWJpbGl0eSB0byB2aWV3IHByZXZpb3VzIGxvZ3MgZm9yIEFjdGlvbnMgcnVucyB0aGF0IGhhdmUgYmVlbiByZXRyaWVk-->ability to view previous logs for Actions runs that have been retried<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8655): <!--number 8655 --><!--line 0 --><!--description c2hvdyBDSSBzdGF0dXMgb24gZm9yY2UtcHVzaGVz-->show CI status on force-pushes<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8572): <!--number 8572 --><!--line 0 --><!--description ZmVhdCh1aSk6IGltcHJvdmUgb3JnIGhlYWRlciB3aXRoIG5ldyBub0pTIGRyb3Bkb3duIGFuZCBtb3JlIG9wdGlvbnM=-->feat(ui): improve org header with new noJS dropdown and more options<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8759): <!--number 8759 --><!--line 0 --><!--description YWRkIHRhZyBsYWJlbCB0byBjb21taXQgbGlzdCB2aWV3-->add tag label to commit list view<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9181): <!--number 9181 --><!--line 0 --><!--description Zml4KHVpKTogcmV3b3JrZWQgZmlsZSBwcmV2aWV3IHBsYWNlbWVudCB0b3dhcmRzIGJldHRlciBIVE1MIHZhbGlkaXR5-->fix(ui): reworked file preview placement towards better HTML validity<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9398): <!--number 9398 --><!--line 0 --><!--description Zml4KHVpKTogZml4IGFsaWdubWVudCBvZiBpdGVtcyBpbiB0YWcgc2lnbmF0dXJl-->fix(ui): fix alignment of items in tag signature<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8418): <!--number 8418 --><!--line 0 --><!--description Zml4KHVpKTogdmlzdWFsbHkgZGlzdGluZ3Vpc2ggdGhlIGJyYW5jaCBuYW1lIGluIGFjdGlvbiBkZXNjcmlwdGlvbg==-->fix(ui): visually distinguish the branch name in action description<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8943): <!--number 8943 --><!--line 0 --><!--description cHJlc2VydmVkICdDdXN0b20gYWNjZXNzJyBldmVuIGFmdGVyIG5vIHBlcm1pc3Npb25z-->preserved 'Custom access' even after no permissions<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8363): <!--number 8363 --><!--line 0 --><!--description Zml4KHVpKTogc2hvdyBwYXJ0aWNpcGFudHMgaW4gbWVudGlvbiBzdWdnZXN0aW9ucyBpbiBwciByZXZpZXc=-->fix(ui): show participants in mention suggestions in pr review<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9400): <!--number 9400 --><!--line 0 --><!--description Zml4KHVpKTogYXBwbHkgYmFja2dyb3VuZCBjb2xvciB0byB3aWtpIGNvbnRlbnQ=-->fix(ui): apply background color to wiki content<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9262): <!--number 9262 --><!--line 0 --><!--description aWdub3JlIGV4aXN0ZW5jZSBvZiBjb21taXRzIGZvciBmb3JjZSBwdXNoZXM=-->ignore existence of commits for force pushes<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8923): <!--number 8923 --><!--line 0 --><!--description Zml4KHVpKTogbWFrZSB1bmljb2RlIGVzY2FwZSB3b3JrIGluIHdpa2k=-->fix(ui): make unicode escape work in wiki<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9099): <!--number 9099 --><!--line 0 --><!--description cHJldmVudCBpbml0aWFsICdibGFuaycgZGlzcGxheSBvZiBhY3Rpb24gbG9ncyB2aWV3LCByZW1vdmUgdW5uZWNlc3NhcnkgQVBJIGNhbGxz-->prevent initial 'blank' display of action logs view, remove unnecessary API calls<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9052): <!--number 9052 --><!--line 0 --><!--description ZG9uJ3QgYWxsb3cgY29tbWVudCBib3hlcyB0byBzdHJldGNoIG91dHNpZGUgZGlmZiBib3VuZHJpZXMgb24gc21hbGwgZGV2aWNlIFVJ-->don't allow comment boxes to stretch outside diff boundries on small device UI<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/7703): <!--number 7703 --><!--line 0 --><!--description aGlkZSBlZGl0IGJ1dHRvbiBvbiB0YWcgcmVsZWFzZXMsIGltcHJvdmUgZ2hvc3QgdXNlciBkaXNwbGF5LCBmaXggdGFnIHNpZ25hdHVyZSBiYW5uZXI=-->hide edit button on tag releases, improve ghost user display, fix tag signature banner<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8266): <!--number 8266 --><!--line 0 --><!--description Zml4KHVpKTogcmVzb2x2ZWQgNTAwIGVycm9yIHVwb24gY2xpY2tpbmcgICdDbGVhciBtaWxlc3RvbmUnIGJ1dHRvbiB3aGVuIHRoZXJlJ3Mgbm8gbWlsZXN0b25lcyBhdmFpbGFibGUgaW4gSXNzdWUgcGFnZQ==-->fix(ui): resolved 500 error upon clicking 'Clear milestone' button when there's no milestones available in Issue page<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8496): <!--number 8496 --><!--line 0 --><!--description Zml4KHVpKTogY29tcGFyZSBicmFuY2hlcyBldmVuIHdpdGggcHVsbCByZXF1ZXN0cyBkaXNhYmxlZA==-->fix(ui): compare branches even with pull requests disabled<!--description-->
- Localization
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9600): <!--number 9600 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8977): <!--number 8977 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9347): <!--number 9347 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9259): <!--number 9259 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9108): <!--number 9108 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9013): <!--number 9013 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8535): <!--number 8535 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8673): <!--number 8673 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8744): <!--number 8744 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8826): <!--number 8826 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8891): <!--number 8891 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8490): <!--number 8490 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8410): <!--number 8410 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8295): <!--number 8295 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8238): <!--number 8238 --><!--line 0 --><!--description aTE4bjogdXBkYXRlIG9mIHRyYW5zbGF0aW9ucyBmcm9tIENvZGViZXJnIFRyYW5zbGF0ZQ==-->i18n: update of translations from Codeberg Translate<!--description-->
- Features
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9638) ([backported](https://codeberg.org/forgejo/forgejo/pulls/9689)): <!--number 9689 --><!--line 0 --><!--description VXBsb2FkZWQgYXZhdGFyIGltYWdlcyBjYW4gc29tZXRpbWVzIGNvbnRhaW4gdW5leHBlY3RlZCBtZXRhZGF0YSBzdWNoIGFzIHRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgaW1hZ2Ugd2FzIGNyZWF0ZWQsIG9yIHRoZSBkZXZpY2UgdGhlIGltYWdlIHdhcyBjcmVhdGVkIHdpdGgsIHN0b3JlZCBpbiBhIGZvcm1hdCBjYWxsZWQgRVhJRi4gRm9yZ2VqbyBub3cgcmVtb3ZlcyBFWElGIGRhdGEgd2hlbiBjdXN0b20gdXNlciBhbmQgcmVwb3NpdG9yeSBpbWFnZXMgYXJlIHVwbG9hZGVkIGluIG9yZGVyIHRvIHJlZHVjZSB0aGUgcmlzayBvZiBwZXJzb25hbGx5IGlkZW50aWZpYWJsZSBpbmZvcm1hdGlvbiBiZWluZyBsZWFrZWQgdW5leHBlY3RlZGx5LiBBIG5ldyBDTEkgc3ViY29tbWFuZCBgZm9yZ2VqbyBkb2N0b3IgYXZhdGFyLXN0cmlwLWV4aWZgIGNhbiBiZSB1c2VkIHRvIHN0cmlwIEVYSUYgaW5mb3JtYXRpb24gZnJvbSBhbGwgZXhpc3RpbmcgYXZhdGFyczsgd2UgcmVjb21tZW5kIHRoYXQgYWRtaW5pc3RyYXRvcnMgcnVuIHRoaXMgY29tbWFuZCBvbmNlIGFmdGVyIHVwZ3JhZGUgaW4gb3JkZXIgdG8gbWluaW1pemUgdGhpcyByaXNrIGZvciBleGlzdGluZyBzdG9yZWQgZmlsZXMu-->Uploaded avatar images can sometimes contain unexpected metadata such as the location where the image was created, or the device the image was created with, stored in a format called EXIF. Forgejo now removes EXIF data when custom user and repository images are uploaded in order to reduce the risk of personally identifiable information being leaked unexpectedly. A new CLI subcommand `forgejo doctor avatar-strip-exif` can be used to strip EXIF information from all existing avatars; we recommend that administrators run this command once after upgrade in order to minimize this risk for existing stored files.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8667): <!--number 8667 --><!--line 0 --><!--description ZmVhdChsb2dnZXIpOiByZW5hbWUgc2V0dGluZ3MgZm9yIGNvbnNpc3RlbmN5IGFuZCByZW1vdmUgb2Jzb2xldGUgc2V0dGluZ3M=-->feat(logger): rename settings for consistency and remove obsolete settings<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8831): <!--number 8831 --><!--line 0 --><!--description QnJpbmcgInJlbW92ZSBhIGxhYmVsIGZyb20gaXNzdWUiIEFQSSBpbiBsaW5lIHdpdGggR2l0SHViIGVxdWl2YWxlbnQ=-->Bring "remove a label from issue" API in line with GitHub equivalent<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9060): <!--number 9060 --><!--line 0 --><!--description cmVqZWN0IHBhc3N3b3JkIHJlc2V0IGF0dGVtcHRzIGZvciBPQXV0aDIgdXNlcnMgd2l0aG91dCBhIGN1cnJlbnQgcGFzc3dvcmQ=-->reject password reset attempts for OAuth2 users without a current password<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8513): <!--number 8513 --><!--line 0 --><!--description QWRkIHN1cHBvcnQgZm9yIG1pZ3JhdGluZyBmcm9tIFBhZ3VyZQ==-->Add support for migrating from Pagure<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8116): <!--number 8116 --><!--line 0 --><!--description YWRkIF9VUkkgZW50cmllcyBmb3IgbWFpbCBjb25maWc=-->add _URI entries for mail config<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8297): <!--number 8297 --><!--line 0 --><!--description Z2l0L2Jsb2I6IEdldENvbnRlbnRCYXNlNjQgd2l0aCBmZXdlciBhbGxvY2F0aW9ucyBhbmQgbm8gZ29yb3V0aW5l-->git/blob: GetContentBase64 with fewer allocations and no goroutine<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8332): <!--number 8332 --><!--line 0 --><!--description bWFrZSBBUEkgcHVsbCBhbmQgY29tcGFyZSBlbmRwb2ludCByZWZlcmVuY2VzIHRvIGhlYWQgbW9yZSByb2J1c3Q=-->make API pull and compare endpoint references to head more robust<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8594): <!--number 8594 --><!--line 0 --><!--description YWRkIHNvcnQgcGFyYW1ldGVyIGZvciB1c2Vycy9zZWFyY2ggYXBpIGVuZHBvaW50-->add sort parameter for users/search api endpoint<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8932): <!--number 8932 --><!--line 0 --><!--description QWxsb3cgY29udmVydGluZyBtaXJyb3IgcmVwb3MgdG8gbm9ybWFsIHRocm91Z2ggdGhlIEFQSQ==-->Allow converting mirror repos to normal through the API<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8798): <!--number 8798 --><!--line 0 --><!--description YWxsb3cgbW9yZSBSRUFETUUgZm9ybWF0cyBmb3IgYC5wcm9maWxlYA==-->allow more README formats for `.profile`<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8479): <!--number 8479 --><!--line 0 --><!--description QUdpdCBwdXNoIG9wdGlvbnMgc3RhcnRpbmcgd2l0aCBge2Jhc2U2NH1gIGFyZSBkZWNvZGVk-->AGit push options starting with `{base64}` are decoded<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8863): <!--number 8863 --><!--line 0 --><!--description c2VhcmNoIGluIHRoZSBgZG9jc2AgZGlyZWN0b3J5IGZvciBpc3N1ZSBhbmQgcHVsbCByZXF1ZXN0IHRlbXBsYXRlcw==-->search in the `docs` directory for issue and pull request templates<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/7823): <!--number 7823 --><!--line 0 --><!--description cHVzaCBtaXJyb3IgdG8gaGF2ZSBvcHRpb24gdG8gb25seSBwdXNoIHNlbGVjdGVkIGJyYW5jaGVz-->push mirror to have option to only push selected branches<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8426): <!--number 8426 --><!--line 0 --><!--description aWYgT0F1dGgyIGlzIGRpc2FibGVkIHJldHVybiAnTm90IGZvdW5kJyBmb3Igb3BlbmlkIGNvbmZpZ3VyYXRpb24=-->if OAuth2 is disabled return 'Not found' for openid configuration<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8383): <!--number 8383 --><!--line 0 --><!--description YWRkIGAtLWF0dHJpYnV0ZS1zc2gtcHViaWMta2V5YCB0byBmb3JnZWpvIGFkbWluIGF1dGggYWRkLW9hdXRoIGFuZCB1cGRhdGUtb2F1dGggQ0xJ-->add `--attribute-ssh-pubic-key` to forgejo admin auth add-oauth and update-oauth CLI<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9033): <!--number 9033 --><!--line 0 --><!--description cXVvdGEgZXZhbHVhdGlvbiBydWxlcyBub3Qgd29ya2luZyBwcm9wZXJseQ==-->quota evaluation rules not working properly<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8957): <!--number 8957 --><!--line 0 --><!--description YXJ0aWZhY3RzIGNhbiBiZSBkb3dubG9hZGVkIHVzaW5nIHRoZWlyIGlkIGluc3RlYWQgb2YgdGhlaXIgbmFtZQ==-->artifacts can be downloaded using their id instead of their name<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9536): <!--number 9536 --><!--line 0 --><!--description Zml4OiBmYWlsdXJlIHRvIHBhcnNlIGBvbmAgYmxvY2sgcmVzdWx0cyBpbiB1bmNvbmRpdGlvbmFsIHdvcmtmbG93IGV4ZWN1dGlvbg==-->fix: failure to parse `on` block results in unconditional workflow execution<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9468) ([backported](https://codeberg.org/forgejo/forgejo/pulls/9471)): <!--number 9471 --><!--line 0 --><!--description Zml4OiBwYWNrYWdlIGNsZWFuZWQgcnVsZSBmYWlscyBpZiB0aGUga2VlcCBjb3VudCBpcyB0b28gaGlnaA==-->fix: package cleaned rule fails if the keep count is too high<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8844): <!--number 8844 --><!--line 0 --><!--description cHJldmVudCB1c2VyLWVudGVyZWQgdGV4dCB3aXRoIHwgY2hhcmFjdGVycyBmcm9tIGJlaW5nIHRydW5jYXRlZCBpbiBhY3Rpdml0eSBmZWVk-->prevent user-entered text with | characters from being truncated in activity feed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8853): <!--number 8853 --><!--line 0 --><!--description UFIgcmV2aWV3IGRpc21pc3NhbHMgd2VyZSBub3QgYXBwZWFyaW5nIGluIGFjdGl2aXR5IGZlZWQ=-->PR review dismissals were not appearing in activity feed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8896): <!--number 8896 --><!--line 0 --><!--description Y29tbWVudCBzdGFydGluZyB3aXRoIGEgbWVybWFpZCBibG9jayBkaXNwbGF5cyBlcnJvciBpbiBhY3Rpdml0eSBmZWVk-->comment starting with a mermaid block displays error in activity feed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8880): <!--number 8880 --><!--line 0 --><!--description TWFya2Rvd246IGdlbmVyYXRlIHVuaXF1ZSBwZXIgY29tbWVudCBIVE1MIElEcyBmb3IgZm9vdG5vdGVzIGFuZCBoZWFkZXJz-->Markdown: generate unique per comment HTML IDs for footnotes and headers<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9098): <!--number 9098 --><!--line 0 --><!--description dmVyeSBsb25nIGNvbW1pdCBtZXNzYWdlcyBjYXVzZSBwdXNoZWQgY29tbWl0cyB0byBmYWlsIHRvIGRpc3BsYXkgb24gdGhlIGFjdGlvbiBmZWVkIG9uIE15U1FM-->very long commit messages cause pushed commits to fail to display on the action feed on MySQL<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8900): <!--number 8900 --><!--line 0 --><!--description cGFyc2UgZXh0cmEgd2VpcmQgdHJlZSBtb2RlIHZhbHVl-->parse extra weird tree mode value<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9360): <!--number 9360 --><!--line 0 --><!--description Y2hlY2sgdGFyZ2V0IHJlcG8gbGltaXQgaW5zdGVhZCBvZiB1c2VyIHJlcG8gbGltaXQ=-->check target repo limit instead of user repo limit<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8424): <!--number 8424 --><!--line 0 --><!--description ZW5hYmxlIG11bHRpLWxpbmUgbWF0aCBlcXVhdGlvbnMgaW4gd2lraQ==-->enable multi-line math equations in wiki<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9158): <!--number 9158 --><!--line 0 --><!--description QWN0aW9ucyBsb2cgdmlldyBzdG9wcyByZWZyZXNoaW5nIGFmdGVyIHRoZSBkaXNwbGF5ZWQgam9iIGlzIGZpbmlzaGVkLCBldmVuIGlmIG90aGVyIGpvYnMgYXJlIHN0aWxsIHJ1bm5pbmc=-->Actions log view stops refreshing after the displayed job is finished, even if other jobs are still running<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8854): <!--number 8854 --><!--line 0 --><!--description c3RhbmRhcmRpemUgdHJ1bmNhdGlvbiBvZiB1c2VyLWVudGVyZWQgY29tbWVudCB0ZXh0IGluIGFjdGl2aXR5IGZlZWQ=-->standardize truncation of user-entered comment text in activity feed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8889): <!--number 8889 --><!--line 0 --><!--description YWxsb3cgQWN0aW9ucyB0b2tlbnMgdG8gYWNjZXNzIHJlcG9zIHJlYWRhYmxlIGJ5IHNpZ25lZCBpbiB1c2Vycw==-->allow Actions tokens to access repos readable by signed in users<!--description-->
- Included for completeness but not user-facing (chores, etc.)
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9687): <!--number 9687 --><!--line 0 --><!--description cmUtYWRkIGFjY2lkZW50YWxseSByZW1vdmVkIGNsb3NpbmcgdGFnIG9mIGRpdg==-->re-add accidentally removed closing tag of div<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9680): <!--number 9680 --><!--line 0 --><!--description cmV2ZXJ0cyAiZml4OiB0ZW1wb3JhcmlseSBwaW4gcmVsZWFzZSBidWlsZHMgdG8gR28gMS4yNC43ICgjOTY1OCki-->reverts "fix: temporarily pin release builds to Go 1.24.7 (#9658)"<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9658): <!--number 9658 --><!--line 0 --><!--description Zml4OiB0ZW1wb3JhcmlseSBwaW4gcmVsZWFzZSBidWlsZHMgdG8gR28gMS4yNC43-->fix: temporarily pin release builds to Go 1.24.7<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9645) ([backported](https://codeberg.org/forgejo/forgejo/pulls/9674)): <!--number 9674 --><!--line 0 --><!--description Zml4OiBhdm9pZCBqdW1waW5nIHRvIGJlZ2luIG9mIHBhZ2Ugb24gZWRpdCBjb21tZW50IGFjdGlvbiAoIzk2NDUp-->fix: avoid jumping to begin of page on edit comment action (#9645)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9662) ([backported](https://codeberg.org/forgejo/forgejo/pulls/9672)): <!--number 9672 --><!--line 0 --><!--description Y2hvcmUoZTJlKTogdGVzdCBmbGFraW5lc3MgaW4gd2ViYXV0aG4udGVzdC5lMmUudHM=-->chore(e2e): test flakiness in webauthn.test.e2e.ts<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9092): <!--number 9092 --><!--line 0 --><!--description Zml4KGkxOG4vZW4pOiB1cGRhdGUgYSBmZXcgc291cmNlIHN0cmluZ3M=-->fix(i18n/en): update a few source strings<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9626) ([backported](https://codeberg.org/forgejo/forgejo/pulls/9637)): <!--number 9637 --><!--line 0 --><!--description Zml4KHVpL3JlbGVhc2VzKTogc3RyZWNoIGVsZW1lbnRzIGFwYXJ0IHdoZW4gbm8gc2VhcmNoIGJhcg==-->fix(ui/releases): strech elements apart when no search bar<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8936): <!--number 8936 --><!--line 0 --><!--description Y2hvcmU6IGRvIG5vdCBpbXBvc2UgbWVyZ2UgcmVxdWlyZW1lbnRzIHRvIGNhc2NhZGluZyBwdWxsIHJlcXVlc3Rz-->chore: do not impose merge requirements to cascading pull requests<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9134): <!--number 9134 --><!--line 0 --><!--description Y2hvcmU6IGZpeCBhIGZldyB0eXBvcyBpbiB0aGUgZG9jdW1lbnRhdGlvbg==-->chore: fix a few typos in the documentation<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9611) ([backported](https://codeberg.org/forgejo/forgejo/pulls/9620)): <!--number 9620 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBsaW1pdCBMREFQIHNlcnZpY2UgY29udGFpbmVyIG1lbW9yeSB1c2FnZSB0byA1MDBN-->chore(ci): limit LDAP service container memory usage to 500M<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8908) ([backported](https://codeberg.org/forgejo/forgejo/pulls/9622)): <!--number 9622 --><!--line 0 --><!--description Y2hvcmU6IFRlc3RQYXJzZUdpdFVSTHMgbXVzdCB1c2UgYSB2YWxpZCBJUHY2IGFkZHJlc3M=-->chore: TestParseGitURLs must use a valid IPv6 address<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9257): <!--number 9257 --><!--line 0 --><!--description ZmVhdCh1aSk6IGltcHJvdmUgZGlzcGxheSBvZiB0YWdzIGluIGNvbW1pdCBsaXN0-->feat(ui): improve display of tags in commit list<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9293): <!--number 9293 --><!--line 0 --><!--description bG9hZGluZyBhY3Rpb24gbG9ncyBvbiBhIHRhc2sgdGhhdCBpc24ndCBmZXRjaGVkIHlldCwgZmFpbHMgd2hlbiB0aGUgam9iIGlzIGZldGNoZWQ=-->loading action logs on a task that isn't fetched yet, fails when the job is fetched<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9417): <!--number 9417 --><!--line 0 --><!--description dXBncmFkZSB0byB0aGUgbGRhcCB2ZXJzaW9uIHVzZWQgZm9yIHRlc3RpbmcgdG8gMi41-->upgrade to the ldap version used for testing to 2.5<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9205): <!--number 9205 --><!--line 0 --><!--description Y2hvcmU6IGJ1aWxkLXJlbGVhc2UgbXVzdCBjbG9zZSB0aGUgY2FzY2FkaW5nIHB1bGwgcmVxdWVzdA==-->chore: build-release must close the cascading pull request<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9217): <!--number 9217 --><!--line 0 --><!--description Y2hvcmUocmVub3ZhdGUpOiBkb24ndCB1c2UgZ28gcHJveHkgZm9yIGZvcmdlam8tY29kZQ==-->chore(renovate): don't use go proxy for forgejo-code<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9208): <!--number 9208 --><!--line 0 --><!--description cmVmYWN0b3JlZCBmb3IgbGF6eSBldmFsdWF0aW9uIG9mIE1JR1JBVElPTl9QQUNLQUdFUyBhbmQgR09fVEVTVF9QQUNLQUdFUw==-->refactored for lazy evaluation of MIGRATION_PACKAGES and GO_TEST_PACKAGES<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8592): <!--number 8592 --><!--line 0 --><!--description Y2hvcmU6IFVzZSBjb21tb24gU2V0Q2FwdGNoYURhdGEgaW4gbGluayBhY2NvdW50-->chore: Use common SetCaptchaData in link account<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8690): <!--number 8690 --><!--line 0 --><!--description cmV0dXJuIGVycm9yIHdoZW4gdXNlciBpcyBub3QgcmVwbyB3cml0ZXI=-->return error when user is not repo writer<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8727): <!--number 8727 --><!--line 0 --><!--description Y2hvcmUoY2kpOiBzZW5kIG1haWwgd2hlbiBkYWlseSBpbnRlZ3JhdGlvbiB0ZXN0cyBmYWls-->chore(ci): send mail when daily integration tests fail<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8897): <!--number 8897 --><!--line 0 --><!--description bWluaW8gaW5pdGlhbGl6YXRpb24gY2FuIGZyZWV6ZSBpbmRlZmluaXRlbHkgaWYgbWlzY29uZmlndXJlZA==-->minio initialization can freeze indefinitely if misconfigured<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8882): <!--number 8882 --><!--line 0 --><!--description Y29tcGFyZSB3ZWVrIGFzIG51bWJlcnMgYW5kIG5vdCBhcyBzdHJpbmdz-->compare week as numbers and not as strings<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9178): <!--number 9178 --><!--line 0 --><!--description ZXh0ZW5kIG9wdGlvbnMgaW4gYnVnLXJlcG9ydHMgcmVnYXJkaW5nIHJlcHJvZHVjaWJpbGl0eSBvbiB0aGUgRm9yZ2VqbyB0ZXN0IGluc3RhbmNl-->extend options in bug-reports regarding reproducibility on the Forgejo test instance<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9172): <!--number 9172 --><!--line 0 --><!--description YWN0aW9uIHZpZXcgJ1JlLXJ1biBhbGwgam9icycgbGVhdmVzIFVJIG9uIHRoZSBsYXN0IGF0dGVtcHQsIG5vdCB0aGUgbmV3IGF0dGVtcHQ=-->action view 'Re-run all jobs' leaves UI on the last attempt, not the new attempt<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8742): <!--number 8742 --><!--line 0 --><!--description Y2hvcmU6IGdpdGh1Yi5jb20vbmVrdG9zL2FjdCBpcyBub3cgYXQgY29kZS5mb3JnZWpvLm9yZy9mb3JnZWpvL3J1bm5lci92OQ==-->chore: github.com/nektos/act is now at code.forgejo.org/forgejo/runner/v9<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8999): <!--number 8999 --><!--line 0 --><!--description Y2hvcmU6IG1ha2UgbWlncmF0aW9uIHRlc3RzIHJlbGF0aXZlIHRvIHRoZSByb290IG9mIHRoZSByZXBvc2l0b3J5-->chore: make migration tests relative to the root of the repository<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8953): <!--number 8953 --><!--line 0 --><!--description Y2hvcmU6IFVwZGF0ZSB2YWx1ZSBvZiBhbGxvd1RlbXBsYXRlTGl0ZXJhbHMgYmVjYXVzZSBvZiBkZXByZWNhdGlvbiBvZiAndHJ1ZSc=-->chore: Update value of allowTemplateLiterals because of deprecation of 'true'<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8258): <!--number 8258 --><!--line 0 --><!--description Y29ycnVwdGVkIHdpa2kgdW5pdCBkZWZhdWx0IHBlcm1pc3Npb24gKCM4MjM0IGZvbGxvdy11cCk=-->corrupted wiki unit default permission (#8234 follow-up)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8326): <!--number 8326 --><!--line 0 --><!--description bWFrZSBBUEkgL3JlcG9zL3tvd25lcn0ve3JlcG99L2NvbXBhcmUve2Jhc2VoZWFkfSB3b3JrIHdpdGggZm9ya3M=-->make API /repos/{owner}/{repo}/compare/{basehead} work with forks<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8461): <!--number 8461 --><!--line 0 --><!--description Y2hvcmU6IGRvIG5vdCBuYXZpZ2F0ZSB0byBzYW1lIFVSTCBpbiBFMkUgdGVzdA==-->chore: do not navigate to same URL in E2E test<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8271): <!--number 8271 --><!--line 0 --><!--description Q0kgZGVidWc6IHRlc3RTbGVlcDogc2hvdyBhY3R1YWwgdGltZXMgb24gZmFpbHVyZXM=-->CI debug: testSleep: show actual times on failures<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8320): <!--number 8320 --><!--line 0 --><!--description Y2hvcmU6IHNvcnQgYmxvY2tlZCB1c2VycyBsaXN0IGZvciBkZXRlcm1pc3RpYyByZXN1bHRz-->chore: sort blocked users list for determistic results<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8366): <!--number 8366 --><!--line 0 --><!--description Y2FuY2VsbGVkIG9yIHNraXBwZWQgcnVucyBhcmUgbm90IGZhaWx1cmVzIGZvciBub3RpZmljYXRpb25z-->cancelled or skipped runs are not failures for notifications<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8304): <!--number 8304 --><!--line 0 --><!--description cGFzcyBkb2VyJ3MgSUQgZm9yIENSVUQgaW5zdGFuY2Ugc2lnbmluZw==-->pass doer's ID for CRUD instance signing<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8464): <!--number 8464 --><!--line 0 --><!--description dXNlIHBhcmVudCBjb250ZXh0IGZvciBuZXcgdHJhbnNhY3Rpb25z-->use parent context for new transactions<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8460): <!--number 8460 --><!--line 0 --><!--description Y2hvcmU6IGRpc2FibGUgbWlzbWF0Y2hlZCByb290IFVSTCBlMmUgdGVzdCBmb3Igc2FmYXJp-->chore: disable mismatched root URL e2e test for safari<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8002): <!--number 8002 --><!--line 0 --><!--description Zml4KHVpKTogcmVsZWFzZTogbmFtZSBpcyBvdmVycmlkZGVuIHdpdGggdGFnIG5hbWUgb24gZWRpdA==-->fix(ui): release: name is overridden with tag name on edit<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8524): <!--number 8524 --><!--line 0 --><!--description Y2hvcmU6IGZhaWxlZCBhdXRoZW50aWNhdGlvbiBhdHRlbXB0cyBhcmUgbm90IGVycm9ycyBhbmQgYXJlIGRpc3BsYXllZCBhdCB0aGUgbG9nIGluZm8gbGV2ZWw=-->chore: failed authentication attempts are not errors and are displayed at the log info level<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8492): <!--number 8492 --><!--line 0 --><!--description Zml4KGNvZGUtc2VhcmNoKTogSGlnaGxpZ2h0U2VhcmNoUmVzdWx0Q29kZSBzaG91bGQgY291bnQgdGhlIG51bWJlciBvZiBieXRlcyBhbmQgbm90IHRoZSBudW1iZXIgb2YgcnVuZXM=-->fix(code-search): HighlightSearchResultCode should count the number of bytes and not the number of runes<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8611): <!--number 8611 --><!--line 0 --><!--description Y2hvcmU6IGRpc2FibGUgRTJFIHRlc3QgZm9yIHdlYmtpdA==-->chore: disable E2E test for webkit<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8301): <!--number 8301 --><!--line 0 --><!--description Y2hvcmU6IHVzZSBldmVudHVhbGx5IGZvciBteXNxbCBjb2xsYXRpb24gdGVzdA==-->chore: use eventually for mysql collation test<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8874): <!--number 8874 --><!--line 0 --><!--description cmVkaXJlY3QgZnJvbSAve3VzZXJuYW1lfS97cmVwb25hbWV9L3B1bGxzL3tpbmRleH0gdG8gaXNzdWUgaWYgaW5kZXggaXMgYSBpc3N1ZQ==-->redirect from /{username}/{reponame}/pulls/{index} to issue if index is a issue<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8890): <!--number 8890 --><!--line 0 --><!--description UHVsbCBSZXF1ZXN0IFJlZmVyZW5jZSBzaG91bGQgdXNlIFB1bGwgUmVxdWVzdCBmb3JtYXQgKCEsIG5vdCAjKQ==-->Pull Request Reference should use Pull Request format (!, not #)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/7025): <!--number 7025 --><!--line 0 --><!--description VXNlIG1ob2x0L2FyY2hpdmVzIGluIHBsYWNlIG9mIGRlcHJlY2F0ZWQgbWhvbHQvYXJjaGl2ZXIvdjM=-->Use mholt/archives in place of deprecated mholt/archiver/v3<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8691): <!--number 8691 --><!--line 0 --><!--description RW5oYW5jZSBteXNxbEdldE5leHRSZXNvdXJjZUluZGV4IHRvIHVzZSBjdXJyZW50IE1hcmlhREIgZmVhdHVyZXM=-->Enhance mysqlGetNextResourceIndex to use current MariaDB features<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8642): <!--number 8642 --><!--line 0 --><!--description ZG9uJ3QgbWFyayBmaWxlcyBpbiBBR2l0IFBScyBhcyBlZGl0YWJsZQ==-->don't mark files in AGit PRs as editable<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8680): <!--number 8680 --><!--line 0 --><!--description YWRkIHRyYWNpbmcgbG9ncyBhZnRlciBwcm9jZXNzIGlzIGNvbXBsZXRl-->add tracing logs after process is complete<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8675): <!--number 8675 --><!--line 0 --><!--description UkVMRUFTRS1OT1RFUy5tZCB0byByZWZlciB0byB0aGUgcmVsZWFzZSBub3RlcyBkaXJlY3Rvcnkgb24gbWFzdGVyICBbc2tpcCBjaV0=-->RELEASE-NOTES.md to refer to the release notes directory on master [skip ci]<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8635): <!--number 8635 --><!--line 0 --><!--description Y2hvcmU6IGludGVncmF0aW9uIHRlc3Qgd2hlbiByZWJhc2Ugc2hvdWxkIGhhcHBlbg==-->chore: integration test when rebase should happen<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8542): <!--number 8542 --><!--line 0 --><!--description Y2hvcmU6IGltcHJvdmUgdGhlIHdvcmRpbmcgb2YgdGhlICJub3Qgd29ydGggYSByZWxlYXNlIG5vdGUiIGNhdGVnb3J5-->chore: improve the wording of the "not worth a release note" category<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8506): <!--number 8506 --><!--line 0 --><!--description ZmVhdCh1aSk6IG1ha2UgJ1JlZmVyZW5jZScgaW4gaXNzdWUgc2lkZWJhciBtb3JlIHVuaWZvcm0=-->feat(ui): make 'Reference' in issue sidebar more uniform<!--description-->
- Already announced in the release notes of an older stable release
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8892): <!--number 8892 --><!--line 0 --><!--description bWlncmF0aW9uIGZhaWxpbmcgd2hlbiBpbXBvcnRpbmcgZWl0aGVyIGlzc3VlcyBvciBQUnMgYnV0IG5vdCB0aGUgb3RoZXI=-->migration failing when importing either issues or PRs but not the other<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8818): <!--number 8818 --><!--line 0 --><!--description Zml4KHVpKTogbW92ZSBmaWxlIHJlbmFtZSBub3RpY2UgdG8gYmVmb3JlIHBhZ2luYXRpb24=-->fix(ui): move file rename notice to before pagination<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9264): <!--number 9264 --><!--line 0 --><!--description dXNlIGNvcnJlY3QgY29tbWl0IHdoZW4gZmV0Y2hpbmcgcGF0Y2ggdmlldyBmb3IgcmV2aWV3IGNvbW1lbnRz-->use correct commit when fetching patch view for review comments<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9219): <!--number 9219 --><!--line 0 --><!--description cGFja2FnZSBjbGVhbnVwIHJ1bGVzIGFyZSBub3QgYXBwbGllZCB3aGVuIHRoZXJlIGFyZSBtb3JlIHRoYW4gMjAwIHBhY2thZ2VzIChkZXBlbmRzIG9uIGBNQVhfUkVTUE9OU0VfSVRFTVNgKQ==-->package cleanup rules are not applied when there are more than 200 packages (depends on `MAX_RESPONSE_ITEMS`)<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8802): <!--number 8802 --><!--line 0 --><!--description Y29ycmVjdCByZWxlYXNlIGxpbmsgaW4gZmVlZA==-->correct release link in feed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9362): <!--number 9362 --><!--line 0 --><!--description RG8gbm90IGRpc3BsYXkgdGhlIHRpdGxlIG9mIHVuc3Vic2NyaWJlZCBpc3N1ZXMgb3IgcHVsbCByZXF1ZXN0cyBpbiB0aGUgbm90aWZpY2F0aW9uIHdlYiBwYWdlIC4gVGhlIHRpdGxlIG9mIHNvbWUgcmFuZG9tIGlzc3VlcyBvciBwdWxsIHJlcXVlc3RzIGZyb20gcmVwb3NpdG9yaWVzIHdlcmUgYWNjaWRlbnRhbGx5IGRpc3BsYXllZCBpbiB0aGUgbm90aWZpY2F0aW9ucyBvZiBhIHVzZXIuIEl0IHdhcyBhIHJhcmUgb2NjdXJyZW5jZSwgY2F1c2VkIGJ5IGFuIGluY29ycmVjdCBjb21wYXJpc29uIG9mIHR3byB1bnJlbGF0ZWQgdW5pcXVlIGlkZW50aWZpZXJzIHRoYXQgYXJlIHVubGlrZWx5IHRvIG1hdGNoICh0aGUgaWQgb2YgdGhlIG5vdGlmaWNhdGlvbiBhbmQgdGhlIGlkIG9mIGEgcmVwb3NpdG9yeSkuIElmIHRoZSBpc3N1ZSBvciB0aGUgcHVsbCByZXF1ZXN0IGJlbG9uZ2VkIHRvIGEgcHJpdmF0ZSByZXBvc2l0b3J5IHRvIHdoaWNoIHRoZSB1c2VyIGhhZCBubyByZWFkIGFjY2Vzcywgb25seSB0aGUgdGl0bGUgd2FzIGxlYWtlZC4gVGhlIHVzZXIgd2FzIGRlbmllZCBwZXJtaXNzaW9uIHRvIHZpZXcgdGhlIGlzc3VlIG9yIHRoZSBwdWxsIHJlcXVlc3Qgd2hlbiBjbGlja2luZyBvbiB0aGUgbGluayBkaXNwbGF5ZWQgaW4gdGhlIG5vdGlmaWNhdGlvbnMgd2ViIHBhZ2Uu-->Do not display the title of unsubscribed issues or pull requests in the notification web page . The title of some random issues or pull requests from repositories were accidentally displayed in the notifications of a user. It was a rare occurrence, caused by an incorrect comparison of two unrelated unique identifiers that are unlikely to match (the id of the notification and the id of a repository). If the issue or the pull request belonged to a private repository to which the user had no read access, only the title was leaked. The user was denied permission to view the issue or the pull request when clicking on the link displayed in the notifications web page.<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9201): <!--number 9201 --><!--line 0 --><!--description Zml4KGFwaSk6IHNldCBkZWZhdWx0IHBhZ2luYXRpb24gYW5kIExpbmsgaGVhZGVyIGZvciBgcmVwb0xpc3RUYWdzYA==-->fix(api): set default pagination and Link header for `repoListTags`<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9202): <!--number 9202 --><!--line 0 --><!--description TEZTIEdDIGlzIG5ldmVyIHJ1bm5pbmcgYmVjYXVzZSBvZiBhIGJ1ZyBpbiB0aGUgcGFyc2luZyBvZiB0aGUgSU5JIGZpbGU=-->LFS GC is never running because of a bug in the parsing of the INI file<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9072): <!--number 9072 --><!--line 0 --><!--description b25seSByZWRpcmVjdCB0byBhIG5ldyBvd25lciAob3JnYW5pemF0aW9uIG9yIHVzZXIpIGlmIHRoZSB1c2VyIGhhcyBwZXJtaXNzaW9ucyB0byB2aWV3IHRoZSBuZXcgb3duZXI=-->only redirect to a new owner (organization or user) if the user has permissions to view the new owner<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9070): <!--number 9070 --><!--line 0 --><!--description cmVxdWlyZSBwYXNzd29yZCBsb2dpbiBmb3IgY3JlYXRpb24gb2YgbmV3IHRva2Vu-->require password login for creation of new token<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8681): <!--number 8681 --><!--line 0 --><!--description c2hvdyBtZXJnZWJveCB3aGVuIG9ubHkgbWFudWFsIG1lcmdlIGlzIGFsbG93ZWQ=-->show mergebox when only manual merge is allowed<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8756): <!--number 8756 --><!--line 0 --><!--description Y29ycmVjdGx5IGdldCBzdGF0cyBmb3IgQVBJIGNvbW1pdHM=-->correctly get stats for API commits<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9003): <!--number 9003 --><!--line 0 --><!--description QWN0aW9ucyB3b3JrZmxvd3MgdHJpZ2dlcmVkIGJ5IGNvbW1lbnRzIG9yIGxhYmVscyB0byBwdWxsIHJlcXVlc3RzIG1heSBhY2Nlc3Mgc2VjcmV0cw==-->Actions workflows triggered by comments or labels to pull requests may access secrets<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/9074): <!--number 9074 --><!--line 0 --><!--description ZW1haWwgY29tbWVudHMgYXJlIHJlbW92ZWQgZnJvbSBlbWFpbCBhZGRyZXNzZXM=-->email comments are removed from email addresses<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8450): <!--number 8450 --><!--line 0 --><!--description Y29ycmVjdGx5IG1hcmsgcmV2aWV3cyBhcyBzdGFsZSBmb3IgQUdpdCBQUnM=-->correctly mark reviews as stale for AGit PRs<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8296): <!--number 8296 --><!--line 0 --><!--description YWRkIG1pc3NpbmcgdHJ1c3Qgc3RhdHVzIHRvIHB1bGwgcmV2aWV3IGNvbW1pdHM=-->add missing trust status to pull review commits<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8330): <!--number 8330 --><!--line 0 --><!--description bG9hZCBPbGRNaWxlc3RvbmUgYmFzZWQgb24gT2xkTWlsZXN0b25lSUQsIG5vdCBNaWxlc3RvbmVJRA==-->load OldMilestone based on OldMilestoneID, not MilestoneID<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8391): <!--number 8391 --><!--line 0 --><!--description QXV0aCBIZWFkZXI6IEFsbG93IGxvd2VyY2FzZSBhcyB3ZWxsIGFzIHVwcGVyY2FzZSB0b2tlbg==-->Auth Header: Allow lowercase as well as uppercase token<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8533): <!--number 8533 --><!--line 0 --><!--description bWFrZSBzdXJlIHRvIHVzZSB1bmFsdGVyZWQgZmllbGRzIHdoZW4gc2F2aW5nIGEgc2hhZG93IGNvcHkgZm9yIHVwZGF0ZWQgcHJvZmlsZXMgb3IgY29tbWVudHM=-->make sure to use unaltered fields when saving a shadow copy for updated profiles or comments<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8622): <!--number 8622 --><!--line 0 --><!--description cmViYXNlIGFuZCBmYXN0IGZvcndhcmQgbWVyZ2UgYnJlYWtzIGNvbW1pdCBzaWduYXR1cmVz-->rebase and fast forward merge breaks commit signatures<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8617): <!--number 8617 --><!--line 0 --><!--description bWFrZSB0aGUgYWN0aW9uIGZlZWQgcmVzaWxpZW50IHRvIGRhdGFiYXNlIGluY29uc2lzdGVuY2llcw==-->make the action feed resilient to database inconsistencies<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8609): <!--number 8609 --><!--line 0 --><!--description dXBncmFkZSBmYWlscyBvciBoYW5nIGF0IG1pZ3JhdGlvblszMV06IE1pZ3JhdGUgbWF2ZW4gcGFja2FnZSBuYW1lIGNvbmNhdGVuYXRpb24=-->upgrade fails or hang at migration[31]: Migrate maven package name concatenation<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8511): <!--number 8511 --><!--line 0 --><!--description UFIgbm90IGJsb2NrZWQgYnkgcmV2aWV3IHJlcXVlc3QgZm9yIGEgd2hpdGVsaXN0ZWQgdGVhbQ==-->PR not blocked by review request for a whitelisted team<!--description-->
- [PR](https://codeberg.org/forgejo/forgejo/pulls/8575): <!--number 8575 --><!--line 0 --><!--description YWxsb3cgZm9yIHRyYWNrZWQgdGltZSB0byBiZSByZW1vdmVkIGFnYWlu-->allow for tracked time to be removed again<!--description-->