La version 3.0.0 du logiciel Gitea Runner est disponible et ajoute la prise en charge native du cache et des artefacts de GitHub Actions, rendant inutile le fork « gitea-upload-artifact »
Gitea Runner 3.0.0 est désormais disponible, avec des améliorations majeures pour la sécurité et la gestion des workflows. Cette version introduit la prise en charge native des actions standard de cache et d'artefacts de GitHub Actions, rendant ainsi inutile le fork « gitea-upload-artifact ». Elle met également en œuvre un renforcement de la sécurité contre les échappements de conteneurs en supprimant les options Docker potentiellement dangereuses des workflows non privilégiés. De plus, le runner applique désormais la règle « un processus par fichier .runner » afin d'éviter les annulations de tâches causées par des conflits d'identifiants.
Gitea est un logiciel de forge permettant d'héberger le contrôle de version du développement logiciel à l'aide de Git, ainsi que d'autres fonctionnalités collaboratives telles que le suivi des bogues, la révision de code, l'intégration continue, les tableaux Kanban, les tickets et les wikis. Il prend en charge l'auto-hébergement et fournit également une instance publique gratuite gérée par l'éditeur. Il s'agit d'un fork de Gogs, écrit en Go et en TypeScript. Gitea peut être hébergé sur toutes les plateformes prises en charge par Go, notamment FreeBSD, Linux, macOS, OpenBSD et Windows. Le projet est financé sur Open Collective.
Gitea est un service Git open source issu d'un fork de Gogs en 2016. Bien que Gogs fût open source, son dépôt était contrôlé par un seul responsable. Face à ces limites, les développeurs de Gitea ont décidé de créer un fork de Gogs en novembre 2016, instaurant ainsi un modèle de développement piloté par la communauté. La version officielle 1.0 de Gitea a été lancée en décembre 2016.
En octobre 2022, les responsables Lunny Xiao et Matti Ranta ont fondé la société Gitea Limited dans le but de proposer des services d'hébergement utilisant des versions spécialisées et propriétaires de Gitea, répartissant ainsi les variantes prises en charge de Gitea entre l'installation fournie par Gitea Limited et la version originale sous licence MIT. En réponse, Codeberg, l'une des principales plateformes de gestion de projets utilisant Gitea à l'époque, a créé un fork de Gitea appelé Forgejo.
Gitea Runner 3.0.0 est désormais disponible et introduit la prise en charge native des actions standard de cache et d'artefacts de GitHub Actions, rendant ainsi inutile le fork « gitea-upload-artifact ». Cette version met également en œuvre un renforcement de la sécurité contre les échappements de conteneurs en supprimant les options Docker potentiellement dangereuses des workflows non privilégiés. De plus, le runner applique désormais la règle « un processus par fichier .runner » afin d'éviter les annulations de tâches causées par des conflits d'identifiants.
Voici l'annonce de la sortie de Gitea Runner 3.0.0 :
Sortie de Gitea Runner 3.0.0
La principale nouveauté de cette version est le service de cache v2 : les actions standard actions/upload-artifact, actions/download-artifact et actions/cache fonctionnent désormais avec un Gitea Runner sans le fork gitea-upload-artifact. Par ailleurs, la version 3.0.0 ajoute un renforcement de la sécurité « container-escape », le masquage des secrets encodés, des hooks de tâches et la propagation par proxy, ainsi qu’une protection empêchant deux démons de partager un même fichier de runner.
Il s’agit d’une version côté runner. Elle reste compatible au niveau de la communication avec les versions existantes de Gitea ; l’augmentation du numéro de version majeur reflète trois changements de compatibilité ascendante plutôt qu’une nouvelle dépendance serveur.
Nouveautés de la version 3.0.0
Actions sur les artefacts et le cache par défaut — aucun fork requis
Gitea Runner prend désormais en charge l'API github.actions.results.api.v1.CacheService(v2) de GitHub Actions, en plus de l'API de cache v1 existante, en partageant le même stockage, ainsi que le sous-ensemble du protocole Blob d'Azure utilisé par l'outil de téléchargement @actions/toolkit.
Concrètement, cela signifie que les actions en amont non modifiées fonctionnent :
Les actions actions/upload-artifact et actions/download-artifact (à partir de la version 4.4.0) ainsi que actions/cache ne nécessitent plus le fork gitea-upload-artifact ni de solutions de contournement personnalisées. Le runner applique des correctifs aux bundles d’actions au moment du chargement afin d’ouvrir la passerelle GHES et de lire le point de terminaison du cache à partir de ACTIONS_CACHE_URL ; cela a été validé sur 118 bundles réels couvrant 16 actions.
Renforcement de la sécurité contre les évasions de conteneur
Lorsque le mode privilégié est désactivé, les options de conteneur contrôlées par le workflow ne sont plus intégrées telles quelles dans le fichier HostConfig de Docker. Le runner supprime désormais les options pouvant être utilisées pour contourner l’isolation du conteneur :
PidMode, IpcMode, UTSMode, CgroupnsMode, UsernsMode, CapAdd, SecurityOpt, Devices, DeviceCgroupRules, DeviceRequests, VolumesFrom, Runtime, CgroupParentet Sysctls.
Ces options sont conservées lorsqu’un administrateur active explicitement le mode privilégié, car cela signifie déjà l’acceptation d’un accès étendu à l’hôte. Il s’agit d’un changement rompant pour les workflows qui s’appuyaient sur ces options sur un runner non privilégié.
Masquage des secrets encodés
Auparavant, seule la valeur brute d’un secret était masquée ; ainsi, un secret divulgué par une action qui le sérialisait restait lisible dans les journaux. Chaque secret et chaque valeur ::add-mask:: sont désormais également masqués sous leurs formes encodées, conformément aux encodeurs de valeurs utilisés par le runner de GitHub :
- JSON — valeurs échappées via toJSON(secrets)
- Base64 — par exemple, les secrets contenus dans un en-tête Authorization
- Encodage URL en pourcentage — secrets intégrés dans des URL
Les encodages qui laissent la valeur inchangée sont ignorés ; ainsi, un jeton en clair ne nécessite toujours qu’une seule paire de remplacement.
Hooks de tâche
Les opérateurs peuvent désormais exécuter un script hôte au sein de l'environnement de la tâche à deux moments clés de son cycle de vie, à l'instar des hooks ACTIONS_RUNNER_HOOK_JOB_STARTED et ACTIONS_RUNNER_HOOK_JOB_COMPLETED de GitHub :
La fonction job_started s’exécute avant la première étape du job et la fonction job_completed après la dernière. Toutes deux analysent leur sortie à la recherche de commandes de workflow, relisent les variables $GITHUB_ENV et $GITHUB_PATH, et font échouer le job en cas de code de sortie différent de zéro. Cela s’avère utile pour précharger les caches, provisionner des identifiants ou générer des données de télémétrie pour chaque job.
Propagation du proxy
Le runner définit désormais les variables http_proxy, https_proxy et no_proxy (en minuscules et en majuscules) afin que tous les éléments qu’il contrôle les utilisent : les jobs, les conteneurs de service et les builds d’actions Dockerfile. Les hôtes sensibles sont automatiquement ajoutés à la liste no_proxy pour les tâches : le serveur de cache, les adresses de bouclage, les conteneurs du service de tâches et le démon Docker (afin que « docker-in-docker » continue de fonctionner). Lorsque vous utilisez une image dind, le démon lit les mêmes variables de proxy, et le runner affiche un avertissement au démarrage s’il détecte une incompatibilité de proxy.
Déplacement du cache des outils et corrections de montage
La définition de RUNNER_TOOL_CACHE entraîne désormais le déplacement effectif du cache des outils au lieu de se contenter de modifier la variable ; ainsi, ${{ runner.tool_cache }} et la variable d’environnement sont désormais cohérents. Cette même modification permet aux volumes de tâches et de services de remplacer un montage en conflit sur la même cible, corrige le montage en lecture-écriture de name:/target:ro sur le chemin littéral /target:ro, et fait en sorte que les clés inconnues dans config.yaml génèrent un avertissement au lieu de disparaître silencieusement.
Changements majeurs
- Le service de cache v2 est activé par défaut : Le runner utilise désormais le service de cache v2 par défaut. Si vous aviez précédemment déployé le fork gitea-upload-artifact ou un shim personnalisé pour les artefacts/le cache, supprimez-le et remplacez vos workflows par les actions standard actions/upload-artifact@v4, actions/download-artifact@v4 et actions/cache@v4. Si vous devez conserver le comportement précédent, désactivez-le avec cache.v2: false.
- Les options de conteneur « host-escape » sont supprimées en l’absence de mode privilégié : Les workflows qui définissent des options telles que PidMode, [C]CapAdd[C], SecurityOpt, Devicesou Sysctlsdans container.options ne les verront plus appliquées sur un runner non privilégié. Si un workflow en a réellement besoin, exécutez-le sur un runner où l’administrateur a explicitement activé le mode privilégié — la limite est désormais appliquée au lieu d’être discrètement contournée.
- Un processus « runner » par fichier .runner : Le démon et le registre acquièrent désormais un verrou consultatif non bloquant sur un fichier <runner-file>.lock homonyme au démarrage. Auparavant, deux processus partageant le même fichier .runner présentaient des identifiants UUID+token identiques ; Gitea les traitait donc comme un seul « runner » et leurs tâches s’annulaient mutuellement. Désormais, un deuxième processus sur le même hôte échoue rapidement avec une erreur claire. Attribuez à chaque démon son propre fichier .runner. Le système d’exploitation libère automatiquement le verrou à la sortie, même en cas d’arrêt forcé, ce qui évite l’accumulation de verrous obsolètes. Les configurations inter-hôtes partageant un fichier runner via NFS reposent toujours sur la détection côté serveur dans Gitea.
Source : Blog officiel de Gitea
Et vous ?
Pensez-vous que cette annonce est crédible ou pertinente ?
Quel est votre avis sur le sujet ?
Voir aussi :
Workflows GitHub Agentic offre l'automatisation des référentiels, l'exécution des agents de codage, tels que Copilot, Claude ou OpenAI Codex, avec des garde-fous solides dans GitHub Actions
Microsoft lance l'application de bureau GitHub Copilot pour gérer plusieurs agents IA, marquant le passage d'assistants de codage passifs à des agents IA capables de gérer en parallèle des workflow
GitHub confirme que des pirates ont volé des données provenant de 3 800 référentiels internes lors d'une récente violation, attribuée à une version corrompue de l'extension VS Code « nrwl.angular-console »








Pensez-vous que cette annonce est crédible ou pertinente ?
Répondre avec citation
Partager