# AIDE POUR LE REPO

## Table des matières  
* [Comment utiliser Git](#comment-utiliser-git)
* [Docker-compose](#docker-compose)
* [Wiki](#wiki)

## Comment utiliser Git

Clonez le dépot sur votre machine `git clone https://gitea.zoz-serv.org/Zoz/plex_fr_discord_repo.git`  

### Pour chaque modification, attention à bien suivre cette procédure si vous voulez éviter des conflits de versions

- Créez votre branche via la GUI Gitea (idéalement votre pseudo) ex : `Benj`
(pour cela, demandez à Zoz de vous attribuer un rôle de contributeur)

![mabanche](https://i.imgur.com/0KLNFSG.png)

- Rapatriez les dernières modifications : `git pull`
- Mettez vous sur votre branche : `git checkout mabranche`
- Faites vos modificatiosn (création de fichiers etc)
- Récupérez les éventuelles denrières modifications : `git pull` puis `git merge master`
- Ajoutez les nouveaux fichiers : `git add .` ou `git add -A` 
- Validez les modif : `git commit -m "ma super modif"`
- Balancez sur le serveur : `git push`
- Et ouvrez une merge request via la GUI, pensez à ajouter 1 ou 2 relecteurs, petite parenthèse 
le but de la relecture par les pairs permet d'éviter des erreurs (https://blog.groupe-sii.com/les-revues-de-code/)

Quand la merge request est close et/ou mergé, le relecteur supprime votre branche, 
vous pourrez la recréer plus tard quand vous aurez besoin...

### Petit reminder

- **ON NE TRAVAILLE JAMAIS SUR LE MASTER**

- **Un renommage de répertoire cause un conflit généralement, nécessite intervention manuelle**

- `git status` > donne la branche courante ainsi que l'état des fichiers modifiés
> git status  
> Sur la branche master  
> Votre branche est à jour avec 'origin/master'.  
>  
> Modifications qui ne seront pas validées :  
>  (utilisez "git add <fichier>..." pour mettre à jour ce qui sera validé)  
>  (utilisez "git checkout -- <fichier>..." pour annuler les modifications dans la copie de travail)  
>
>	modifié :         README.md
>
> aucune modification n'a été ajoutée à la validation (utilisez "git add" ou "git commit -a")


- `git add toto.pouet` ou `git add .` > ajout les modifications sur toto.pouet ou sur tous les fichiers au prochain commit


- `git commit -m "mon super message"` > on pose le commit avec un message qui explique ce que l'on a fait (pratique pour retrouver ca plus tard si besoin)


- `git pull` > on récupère toutes les dernières modifs du serveur


- `git merge master` > (doit être fait après un `git pull`) on récupère toutes les dernières modifs du master pour les mettre sur la branche courante

### Au secours

#### J'ai fait mes modif sur le master (sans commit)

- `git stash` > je sauvegarde mes modifs en local et rétablis le dernier commit
- `git pull` > je récupère des dernières modifs du serveur
- `git checkout mabranche` > je changement de branche
- `git merge master` > je récupère les dernières modifs du master sur ma branche
- `git stash apply` > j'applique ma sauvegarde local
- je poursuis mes modifs et je add/commit/push quand j'ai fini

## Docker-compose

### Fonctionnement

Le répertoire `docker-compose/` contient uniquement les docker-compose de chaque service/application.  

L'arborescence doit être la suivante :  
`docker-compose/<app>/docker-compose.yml`  
- `<app>` : le nom de l'application ou service à rajouter

### Possibilité

Le bot pourrait appeler le contenu de chaque application selon cette commande
`.docker-compose <app>`  
Il chercherait selon l'url suivant :
`https://gitea.zoz-serv.org/Zoz/plex_fr_discord_repo/raw/branch/master/docker-compose/<app>/docker-compose.yml`  
Si HTTP 200 alors on affiche le contenu retourné  
Sinon HTTP 404 alors on affiche `la page n'existe pas`  


Exemple ok:
> `.docker-compose plex`
> renvoie le contenu de
> https://gitea.zoz-serv.org/Zoz/plex_fr_discord_repo/raw/branch/master/docker-compose/plex/docker-compose.yml

Exemple ko:
> `.docker-compose pouet`
> renvoie `La page que vous demandez n'existe pas`



## Wiki

fichiers au format md (markdown)

### Possibilité

Le bot pourrait appeler le contenu de chaque application selon cette commande
`.wiki <doc>`  
Il chercherait selon l'url suivant :
`https://gitea.zoz-serv.org/Zoz/plex_fr_discord_repo/raw/branch/master/wiki/<doc>.md`  
Si HTTP 200 alors on affiche le contenu retourné  
Sinon HTTP 404 alors on affiche `la page n'existe pas`