Gitea 1.21 is released
Gitea 1.21.0 is now released.
It includes 962 pull requests, many new features, and Gitea Actions have now left the experimental state.
You can download 1.21 for example from our downloads page. Please read our installation guide for more information on installation.
We would like to thank all of our supporters on Open Collective who are helping to sustain us financially.
Breaking Changes
These changes are likely to affect the way Gitea works for at least some users. These changes are sorted by importance, with the top ones likely requiring some actions from you, and the bottom ones mostly not affecting anyone.
⚠️ Move public asset files to the proper directory (#25907)
At some point, a folder structure emerged for Gitea where files stored in custom/public/*
have been served under https://gitea.example.com/assets/*
, which lead to a lot of confusion for new users trying to customize their instances.
To correct this behavior, we changed the default assets folder to custom/public/assets/*
.
If you have custom asset files, e. g. custom themes, inside custom/public/*
, you need to transfer these files to custom/public/assets/*
for them to be detected by Gitea v1.21.
⚠️ Set SSH_AUTHORIZED_KEYS_BACKUP
to false
(#25412)
Previously, the configuration option [server].SSH_AUTHORIZED_KEYS_BACKUP
, which makes Gitea automatically create backups of the authorized_keys
file every time a new SSH key is added by a user, was set to true
by default. However, this lead to the backup folder getting enormously large on instances with many users.
As a consequence, we decided to change the default value of this parameter to false
. Please ensure to set it to true
manually inside your app.ini
if you want for Gitea to continue creating backups of this file.
⚠️ Remove CHARSET
config option for MySQL, always use utf8mb4
(#25413)
Using utf8
as a charset for MySQL may result in issues, e. g. with emoji characters, however a new installation can still end up using it through the [database].CHARSET
configuration option. The superior utf8mb4
character set is being supported since MySQL v5.5, and as Gitea only supports MySQL v5.7+, support for utf8
is no longer needed in Gitea. To eliminate such issues, we decided to remove this configuration option completely.
Existing utf8
databases will continue to work without modifications, however we strongly recommend you to convert them to utf8mb4
using the gitea doctor convert
command.
⚠️ Refactor Gitea cli (#25959)
A refactoring of Gitea's cli package lead to some changes in the way it treats command options:
gitea
without subcommands no longer acceptsgitea web
options.--install-port
,--pid
,--port
,--quiet
, and--verbose
belong to theweb
sub-command- use
./gitea web --pid …
instead ./gitea
can still run theweb
sub-command as shorthand, with default options
- The sub-command's options must follow the sub-command
- before:
./gitea --sub-opt subcmd
might equal to./gitea subcmd --sub-opt
- after: only
./gitea subcmd --sub-opt
can be used - global options like
--config
are not affected
- before:
⚠️ Restrict certificate type for builtin SSH server (#26789)
When using certificate authentication, the OpenSSH server automatically rejects host certificates which are being used as client certificates. Similarly to OpenSSH, Gitea's built-in SSH server now also requires you to use proper client certificates when connecting. Most users should be unaffected by this change.
⚠️ Remove commit status running to align with GitHub (#25839)
When implementing Gitea Actions, the additional commit status "running" was introduced in Gitea v1.19, which resulted in partially confusing aggregated commit status behavior if compared to GitHub. We decided to remove "running" with this release to simplify the commit status and make it more consistent with GitHub.
Notable Improvements
🚀 Select specific commit range when reviewing a PR (#25528)
One of the major pain points for anyone, who has ever reviewed a PR on Gitea, was always that it is only possible to see the current state of the PR and not previous commits, or even a range of commits.
This has now changed, as you can now select to review all changes, the changes of a single commit, the changes of any commit range, or even all changes since your last review.
🚀 Recently pushed branches notification (#25715)
Gitea has finally gotten the ability to inform you when you've recently pushed changes to open a PR for the changes.
The exact rules for this notification are as follows at the moment:
- You must be the pusher on a branch that still exists and that is not the default branch
- The push must have occurred within the last 6 hours
- There is no open PR for this branch at the moment
- You are on the repository start page
You will see at most three notifications at the same time.
🚀 Codeowners (#24910)
Gitea now supports CODEOWNERS
files as explained by GitHub in their docs. Currently, the only supported functionality is automatically assigning code reviewers to PRs which change specific files.
The CODEOWNERS file is loaded from these paths in this order:
./CODEOWNERS
./docs/CODEOWNERS
./.gitea/CODEOWNERS
🚀 Pre-register OAuth2 applications for git credential helpers (#26291)
Storing credentials for Git repositories safely can be a nightmare - that's where Git credential helpers come in to make developers' lives easier.
To allow for them to be used without any additional server-side configuration, starting from Gitea 1.21, OAuth applications for Git Credential Manager and git-credential-oauth will be pre-registered in Gitea by default.
This can be disabled by setting the [oauth2].DEFAULT_APPLICATIONS
parameter in app.ini
.
The underlying functionality would also allow to pre-register OAuth applications for other applications, i. e. GitNex or Tea, in future releases.