500 error while trying to access any repository.

Description
In the web ui while logged in I get a 500 error when trying to access any repository.
GetRecentlyPushedBranches, Error 1267 (HY000): Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for operation '='

The repositories that are public are accessible while logged out.
Gitea Version
1.21.0+dev-266-gfa0b5b14c
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots

Git Version
No response
Operating System
No response
How are you running Gitea?
Docker
Database
MySQL

Please ensure columns in your MySQL have the same collation, either utf8mb4_general_ci or utf8mb4_unicode_ci.

Please ensure columns in your MySQL have the same collation, either utf8mb4_general_ci or utf8mb4_unicode_ci.

Converting collation to utf8mb4_unicode_ci fixed the issue.
Thank you.


I might have a way to loop even more icons

Instead of using duration and delay/begin we time using values array which gives us more freedom regarding timing and repeatability.
Below is customised code for external link. Pay special attention to values and notice that dur  is same in all
UPDATE 1: Got some time
Explaining how it works
Values split the dur equally among the elements if you want a bigger part to take more time just fill more of it's values and adjust by interpolating it yourself. If you want one animation to start only after other, then change the value after the index by which first has finished.
animation1: 42 21  0 0 0 0
animation2: 12 12 12 0 0 0
animation3:  8  8  8 8 0 0

animation 2 starts after 1 as values only change from a index after 1 stops
similarly animation 3 starts after 2

<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"
	><g
		fill="none"
		stroke="currentColor"
		stroke-linecap="round"
		stroke-linejoin="round"
		stroke-width="2"
		><path stroke-dasharray="42" stroke-dashoffset="42" d="M11 5H5V19H19V13"
			><animate
				fill="freeze"
				attributeName="stroke-dashoffset"
				dur="2.4s"
				values="42;0;0;0;0;0"
				repeatCount="indefinite"
			/>
		</path>
		<path stroke-dasharray="12" stroke-dashoffset="12" d="M13 11L20 4"
			><animate
				fill="freeze"
				attributeName="stroke-dashoffset"
				dur="2.4s"
				values="12;12;0;0;0;0"
				repeatCount="indefinite"
			/>
		</path>
		<path stroke-dasharray="8" stroke-dashoffset="8" d="M21 3H15M21 3V9">
			<animate
				fill="freeze"
				attributeName="stroke-dashoffset"
				dur="2.4s"
				values="8;8;8;0;0;0"
				repeatCount="indefinite"
			/>
		</path></g
	>
</svg>

Sorry, I'm very confused what you are trying to show there.
Restarting stroke animation after a delay is not something I'd consider adding. As for that code, there is a keyTimes attribute, which can be used to adjust timing instead of repeating same value multiple times.


Add ChartName internal resource

Towards giantswarm/roadmap#320
This is prep for adding the app resource. I simplified it by extracting the logic to check the chart name.
This checks if the chart name has the -app suffix. We also now cache the index.yaml for the catalog.

Changes were tested with https://github.com/giantswarm/cluster-apps-operator/pull/11 on ginger


Fix GitHub Actions based CI checks which have been failing

Motivation
The current CI checks always fail. This PR attemps to fix this
Modifications

upgrade kind, helm chart and chart releaser versions
disable podMonitor for remaining check
make k8s 1.21 the baseline version
upgrade application version to 2.10.4 since Zookeeper TLS tests didn't pass with 2.10.2

Verifying this change

[ ] Make sure that the change passes the CI checks.

I think that the original reason for it to break is that ubuntu-latest switched to ubuntu-22.04 at some point. ubuntu-22.04 defaults to cgroup v2. The oldest k8s version to support cgroup v2 is k8s 1.19 . I'm not sure which kind version starts supporting cgroup v2. I also found out that for kind, you need to use supported versions of the kindest/node docker images which are documented in the kind release notes at https://github.com/kubernetes-sigs/kind/releases .
The reason to switch to 1.21 as the base line is the fact that the oldest k8s version supported by kind 0.20.0 is k8s 1.21. Anyways old k8s versions are end-of-life in many ways so there shouldn't be a good reason to keep support for very old k8s versions around.