Use [chi](https://github.com/go-chi/chi) instead of the forked [macaron](https://gitea.com/macaron/macaron). Since macaron and chi have conflicts with session share, this big PR becomes a have-to thing. According my previous idea, we can replace macaron step by step but I'm wrong. :( Below is a list of big changes on this PR. - [x] Define `context.ResponseWriter` interface with an implementation `context.Response`. - [x] Use chi instead of macaron, and also a customize `Route` to wrap chi so that the router usage is similar as before. - [x] Create different routers for `web`, `api`, `internal` and `install` so that the codes will be more clear and no magic . - [x] Use https://github.com/unrolled/render instead of macaron's internal render - [x] Use https://github.com/NYTimes/gziphandler instead of https://gitea.com/macaron/gzip - [x] Use https://gitea.com/go-chi/session which is a modified version of https://gitea.com/macaron/session and removed `nodb` support since it will not be maintained. **BREAK** - [x] Use https://gitea.com/go-chi/captcha which is a modified version of https://gitea.com/macaron/captcha - [x] Use https://gitea.com/go-chi/cache which is a modified version of https://gitea.com/macaron/cache - [x] Use https://gitea.com/go-chi/binding which is a modified version of https://gitea.com/macaron/binding - [x] Use https://github.com/go-chi/cors instead of https://gitea.com/macaron/cors - [x] Dropped https://gitea.com/macaron/i18n and make a new one in `code.gitea.io/gitea/modules/translation` - [x] Move validation form structs from `code.gitea.io/gitea/modules/auth` to `code.gitea.io/gitea/modules/forms` to avoid dependency cycle. - [x] Removed macaron log service because it's not need any more. **BREAK** - [x] All form structs have to be get by `web.GetForm(ctx)` in the route function but not as a function parameter on routes definition. - [x] Move Git HTTP protocol implementation to use routers directly. - [x] Fix the problem that chi routes don't support trailing slash but macaron did. - [x] `/api/v1/swagger` now will be redirect to `/api/swagger` but not render directly so that `APIContext` will not create a html render. Notices: - Chi router don't support request with trailing slash - Integration test `TestUserHeatmap` maybe mysql version related. It's failed on my macOS(mysql 5.7.29 installed via brew) but succeed on CI. Co-authored-by: 6543 <6543@obermui.de>
		
			
				
	
	
	
	
		
			9.8 KiB
		
	
	
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			9.8 KiB
		
	
	
	
	
		
			Executable file
		
	
	
	
	
| date | title | slug | url | weight | toc | draft | 
|---|---|---|---|---|---|---|
| 2017-08-23T09:00:00+02:00 | Documentation | documentation | /fr-fr/ | 10 | false | false | 
A propos de Gitea
Gitea est un service Git auto-hébergé très simple à installer et à utiliser. Il est similaire à GitHub, Bitbucket ou Gitlab. Le développement initial provient sur [Gogs] (http://gogs.io), mais nous l'avons forké puis renommé Gitea. Si vous souhaitez en savoir plus sur les raisons pour lesquelles nous avons fait cela, lisez [cette publication] (https://blog.gitea.io/2016/12/welcome-to-gitea/) sur le blog.
Objectif
Le but de ce projet est de fournir de la manière la plus simple, la plus rapide et sans complication un service Git auto-hébergé. Grâce à Go, cela peut se faire via un binaire indépendant fonctionnant sur toutes les plateformes que Go prend en charge, y compris Linux, macOS et Windows, même sur des architectures comme ARM ou PowerPC.
Fonctionalités
- Tableau de bord de l'utilisateur
- Choix du contexte (organisation ou utilisateur actuel)
 - Chronologie de l'activité
- Révisions (Commits)
 - Tickets
 - Demande d'ajout (Pull request)
 - Création de dépôts
 
 - Liste des dépôts
 - Liste de vos organisations
 - Liste des dépôts miroires
 
 - Tableau de bord des tickets
- Choix du contexte (organisation ou utilisateur actuel)
 - Filtres
- Ouvert
 - Fermé
 - Vos dépôts
 - Tickets assignés
 - Vos tickets
 - Dépôts
 
 - Options de tri
- Plus vieux
 - Dernière mise à jour
 - Nombre de commentaires
 
 
 - Tableau de bord des demandes d'ajout
- Identique au tableau de bord des tickets
 
 - Types de dépôt
- Miroire
 - Normal
 - Migré
 
 - Notifications (courriel et web)
- Lu
 - Non lu
 - Épinglé
 
 - Page d'exploration
- Utilisateurs
 - Dépôts
 - Organisations
 - Moteur de recherche
 
 - Interface personnalisables
 - Fichiers publiques remplaçables (logo, css, etc)
 - Protection CSRF et XSS
 - Support d'HTTPS
 - Configuration des types et de la taille maximale des fichiers téléversés
 - Journalisation (Log)
 - Configuration
- Base de données
- MySQL
 - PostgreSQL
 - SQLite3
 - MSSQL
 - TiDB (expérimental)
 
 - Fichier de configuration
- Voir ici
 
 - Panel d'administration
- Statistiques
 - Actions
- Suppression des comptes inactifs
 - Suppression des dépôts archivés
 - Suppression des dépôts pour lesquels il manque leurs fichiers
 - Exécution du garbage collector sur les dépôts
 - Ré-écriture des clefs SSH
 - Resynchronisation des hooks
 - Recreation des dépôts manquants
 
 - Status du server
- Temps de disponibilité
 - Mémoire
 - Nombre de goroutines
 - et bien plus...
 
 - Gestion des utilisateurs
- Recherche
 - Tri
 - Dernière connexion
 - Méthode d'authentification
 - Nombre maximum de dépôts
 - Désactivation du compte
 - Permissions d'administration
 - Permission pour crééer des hooks
 - Permission pour crééer des organisations
 - Permission pour importer des dépôts
 
 - Gestion des organisations
- Membres
 - Équipes
 - Avatar
 - Hooks
 
 - Gestion des depôts
- Voir toutes les informations pour un dépôt donné et gérer tous les dépôts
 
 - Méthodes d'authentification
- OAuth
 - PAM
 - LDAP
 - SMTP
 
 - Visualisation de la configuration
- Tout ce que contient le fichier de configuration
 
 - Alertes du système
- Quand quelque chose d'inattendu survient
 
 - Surveillance
- Processus courrants
 - Tâches CRON
- Mise à jour des dépôts miroires
 - Vérification de l'état des dépôts
 - Vérification des statistiques des dépôts
 - Nettoyage des anciennes archives
 
 
 
 - Variables d'environement
 - Options de ligne de commande
 
 - Base de données
 - Internationalisation (21 langues)
 - Courriel
- Notifications
 - Confirmation d'inscription
 - Ré-initialisation du mot de passe
 
 - Support de reverse proxy
- subpaths inclus
 
 - Utilisateurs
- Profil
- Nom
 - Prénom
 - Courriel
 - Site internet
 - Date de création
 - Abonnés et abonnements
 - Organisations
 - Dépôts
 - Activité
 - Dépôts suivis
 
 - Paramètres
- Identiques au profil avec en plus les éléments ci-dessous
 - Rendre l'adresse de courriel privée
 - Avatar
- Gravatar
 - Libravatar
 - Personnalisé
 
 - Mot de passe
 - Courriels multiples
 - Clefs SSH
 - Applications connectées
 - Authentification à double facteurs
 - Identités OAuth2 attachées
 - Suppression du compte
 
 
 - Profil
 - Dépôts
- Clone à partir de SSH / HTTP / HTTPS
 - Git LFS
 - Suivre, Voter, Fork
 - Voir les personnes qui suivent, les votes et les forks
 - Code
- Navigation entre les branches
 - Création ou téléversement de fichier depuis le navigateur
 - URLs pour clôner le dépôt
 - Téléchargement
- ZIP
 - TAR.GZ
 
 - Édition en ligne
- Éditeur Markdown
 - Éditeur de texte
- Coloration syntaxique
 
 - Visualisation des Diffs
 - Visualisation
 - Possibilité de choisir où sauvegarder la révision
 
 - Historiques des fichiers
 - Suppression de fichiers
 - Voir le fichier brut
 
 - Tickets
- Modèle de ticket
 - Jalons
 - Étiquettes
 - Affecter des tickets
 - Filtres
- Ouvert
 - Ferme
 - Personne assignée
 - Créer par vous
 - Qui vous mentionne
 
 - Tri
- Plus vieux
 - Dernière mise à jour
 - Nombre de commentaires
 
 - Moteur de recherche
 - Commentaires
 - Joindre des fichiers
 
 - Demande d’ajout (Pull request)
- Les mêmes fonctionnalités que pour les tickets
 
 - Révisions (Commits)
- Representation graphique des révisions
 - Révisions par branches
 - Moteur de recherche
 - Voir les différences
 - Voir les numéro de révision SHA
 - Voir l'auteur
 - Naviguer dans les fichiers d'une révision donnée
 
 - Publication
- Pièces jointes
 - Titre
 - Contenu
 - Suppression
 - Définir comme une pré-publication
 - Choix de la branche
 
 - Wiki
- Import
 - Éditeur Markdown
 
 - Paramètres
- Options
- Nom
 - Description
 - Privé / Publique
 - Site internet
 - Wiki
- Activé / Désactivé
 - Interne / externe
 
 - Tickets
- Activé / Désactivé
 - Interne / externe
 - URL personnalisable pour une meilleur intégration avec un gestionnaire de tickets externe
 
 - Activer / désactiver les demandes d'ajout (Pull request)
 - Transfert du dépôt
 - Suppression du wiki
 - Suppression du dépôt
 
 - Collaboration
- Lecture / Écriture / Administration
 
 - Branches
- Branche par défaut
 - Protection
 
 - Webhooks
 - Git hooks
 - Clefs de déploiement
 
 - Options
 
 
Configuration requise
- Un simple Raspberry Pi est assez puissant pour les fonctionnalités de base.
 - Un processeur double coeurs et 1Gb de RAM est une bonne base pour une utilisation en équipe.
 - Gitea est censé être exécuté avec un compte utilisateur dédié et non root, aucun autre mode de fonctionnement n'est pris en charge. (NOTE: Dans le cas où vous l'exécutez avec votre propre compte d'utilisateur et que le serveur SSH intégré est désactivé, Gitea modifie le fichier 
~ /.ssh /authorized_keysafin que vous ne soyez plus capable de vous connecter interactivement). 
Navigateurs supportés
- Consultez Semantic UI pour la liste des navigateurs supportés.
 - La taille minimale supportée officielement est de 1024*768, l'interface utilisateur peut toujours fonctionner à une taille plus petite, mais ce n'est pas garanti et les problèmes remontés ne seront pas corrigés.
 
Composants
Logiciels et services
- Drone (Intégration continue)