Skip to content

Commit 2789670

Browse files
Release 0.1.0: Première version stable
- Ajout des fonctionnalités de base pour l'analyse de logs Apache. - Gestion des erreurs de parsing. - Exportation en JSON. - Documentation initiale et mise en place des tests unitaires.
1 parent 328cfec commit 2789670

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+3480
-2
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: Documentation - LogBuster
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
# Permissions (lecture et écriture sur la GitHub Page)
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
jobs:
15+
build:
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
# Etape 1: Cloner le dépôt
20+
- name: Positionnement sur le dépôt
21+
uses: actions/checkout@v4
22+
23+
# Étape 2 : Installer Python
24+
- name: Mis en place de Python
25+
uses: actions/setup-python@v4
26+
with:
27+
python-version: '3.x'
28+
29+
# Étape 3 : Installer les dépendances
30+
- name: Installation des dépendances
31+
run: |
32+
python -m pip install --upgrade pip
33+
pip install sphinx
34+
pip install sphinx_rtd_theme --break-system-packages
35+
pip install colorama
36+
37+
# Étape 4 : Générer la documentation
38+
- name: Construction de la documentation (avec Sphinx)
39+
run: |
40+
sphinx-build -b html docs/source docs/build/html
41+
42+
# Étape 5 : Sauvegarder l'artefact (pour la GitHub Page)
43+
- name: Sauvegarder la documentation
44+
uses: actions/upload-pages-artifact@v3
45+
with:
46+
path: docs/build/html
47+
48+
deploy:
49+
needs: build
50+
runs-on: ubuntu-latest
51+
environment:
52+
name: github-pages
53+
url: ${{ steps.deployment.outputs.page_url }}
54+
55+
steps:
56+
# Déploiement de la documentation
57+
- name: Deploy to GitHub Pages
58+
id: deployment
59+
uses: actions/deploy-pages@v4

.github/workflows/qualite.yaml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: Qualité code - LogBuster
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- develop
8+
9+
jobs:
10+
lint:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
# Étape 1 : Cloner le dépôt
15+
- name: Checkout du code
16+
uses: actions/checkout@v4
17+
18+
# Étape 2 : Installer Python
19+
- name: Configuration de Python
20+
uses: actions/setup-python@v4
21+
with:
22+
python-version: '3.x'
23+
24+
# Étape 3 : Installer les dépendances
25+
- name: Installation des dépendances
26+
run: |
27+
python -m pip install --upgrade pip
28+
pip install pylint
29+
pip install colorama
30+
31+
# Étape 4 : Lancement de l'analyse
32+
- name: Analyse avec Pylint (note >= 9.0 requise)
33+
run: |
34+
pylint app > tests-resultats-qualite.txt || true
35+
SCORE=$(grep "Your code has been rated at" tests-resultats-qualite.txt | awk '{print $7}' | cut -d"/" -f1)
36+
echo "Le score du code dans le dossier app est de $SCORE"
37+
SCORE_VALIDE=$(echo "$SCORE >= 9.0" | bc)
38+
if [ "$SCORE_VALIDE" -ne 1 ]; then
39+
echo "Erreur: La note du code est inférieur à 9."
40+
exit 1
41+
fi
42+
43+
# Sauvegarder l'artefact
44+
- name: Upload du rapport Pylint
45+
uses: actions/upload-artifact@v4
46+
with:
47+
name: rapport-qualite-code
48+
path: tests-resultats-qualite.txt

.github/workflows/tests.yaml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Tests unitaires - LogBuster
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
- develop
8+
9+
# Permissions (lecture uniquement)
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
pytest:
15+
runs-on: ubuntu-latest
16+
strategy:
17+
matrix:
18+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] # Liste des versions de Python à tester
19+
20+
steps:
21+
# Étape 1 : Cloner le dépôt
22+
- name: Cloner le dépôt
23+
uses: actions/checkout@v4
24+
25+
# Étape 2 : Installer Python
26+
- name: Installer Python ${{ matrix.python-version }}
27+
uses: actions/setup-python@v4
28+
with:
29+
python-version: ${{ matrix.python-version }}
30+
31+
# Étape 3 : Installer les dépendances
32+
- name: Installer les dépendances
33+
run: |
34+
python -m pip install --upgrade pip
35+
pip install colorama
36+
pip install pytest
37+
pip install pytest-cov
38+
pip install pytest-mock
39+
40+
# Étape 4 : Lancer les tests unitaires
41+
- name: Lancer les tests unitaires
42+
run: |
43+
cd tests
44+
pytest --basetemp=resultats_pytest --verbose --cov=../app --cov-report=term-missing --cov-report=xml:resultats_pytest/tests-couverture.xml --junitxml=resultats_pytest/tests-rapport.xml
45+
46+
# Étape 5 : Sauvegarder les artefacts
47+
- name: Sauvegarder les résultats de test
48+
if: always() # Sauvegarde même si les tests échouent
49+
uses: actions/upload-artifact@v4
50+
with:
51+
if-no-files-found: error
52+
name: rapport-tests-unitaires-python-${{ matrix.python-version }} # Nom de l'artefact
53+
path: tests/resultats_pytest # Eléments à sauvegarder

.gitignore

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Environnement virtuel
2+
.venv/
3+
4+
# Fichiers propres à Python
5+
*.pyc
6+
__pycache__/
7+
8+
# Fichiers propres à VisualStudioCode
9+
.vscode/
10+
.idea/
11+
12+
# Fichiers propres à Pytest
13+
.pytest_cache/
14+
15+
# Fichiers propres à Coverage
16+
.coverage
17+
htmlcov/
18+
19+
# Fichiers de la documentation sphinx
20+
docs/build/
21+
22+
# Fichier de tests durant le développement
23+
analyse-log-apache.json

README.md

Lines changed: 117 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,117 @@
1-
# code_source
2-
C - Analysateur de fichiers logs
1+
# LogBuster
2+
3+
```
4+
.-. .-') .-') .-') _ ('-. _ .-') ,---.
5+
\ ( OO ) ( OO ). ( OO) ) _( OO)( \( -O ) | |
6+
,--. .-'),-----. ,----. ;-----.\ ,--. ,--. (_)---\_)/ '._(,------.,------. | |
7+
| |.-') ( OO' .-. ' ' .-./-') | .-. | | | | | / _ | |'--...__)| .---'| /`. '| |
8+
| | OO )/ | | | | | |_( O- )| '-' /_) | | | .-') \ :` `. '--. .--'| | | / | || |
9+
| |`-' |\_) | |\| | | | .--, \| .-. `. | |_|( OO ) '..`''.) | | (| '--. | |_.' || .'
10+
(| '---.' \ | | | |(| | '. (_/| | \ | | | | `-' /.-._) \ | | | .--' | . '.'`--'
11+
| | `' '-' ' | '--' | | '--' /(' '-'(_.-' \ / | | | `---.| |\ \ .--.
12+
`------' `-----' `------' `------' `-----' `-----' `--' `------'`--' '--''--'
13+
```
14+
15+
Bienvenue dans le monde de LogBuster, l'outil ultime pour analyser, décortiquer et sauver vos logs Apache des griffes du chaos. Vous avez des logs qui traînent, qui sont indéchiffrables ou tout simplement encombrants ? Pas de panique, LogBuster est là pour les attraper, les analyser et vous offrir des statistiques claires et précises, comme jamais auparavant !
16+
17+
## 📋 Table des matières
18+
19+
- [👻 Fonctionnalités](#-fonctionnalités)
20+
- [📦 Installation](#-installation)
21+
- [🛠️ Utilisation de base](#️-utilisation-de-base)
22+
- [⚠️ Précautions](#️-précautions)
23+
- [📖 Documentation](#-documentation)
24+
- [🧪 Lancer les tests](#-lancer-les-tests)
25+
- [📜 Licence](#-licence)
26+
27+
## 👻 Fonctionnalités
28+
29+
- 📄 Parsing avancé de logs Apache.
30+
- 📉 Extraire des statistiques clés.
31+
- 🗂️ Ranger les données par catégorie.
32+
- 🧹 Indiquer les erreurs de format avec précision.
33+
- 🚚 Exporter les données en JSON.
34+
35+
## 📦 Installation
36+
37+
### Bash (linux/macOS)
38+
```bash
39+
git clone https://github.com/AnthonyGuillauma/code_source
40+
cd code_source
41+
python -m venv .venv
42+
source .venv/bin/activate # Activation de l'environnement virtuel sous Bash
43+
pip install -r requirements.txt
44+
```
45+
46+
### Windows (cmd)
47+
```bash
48+
git clone https://github.com/AnthonyGuillauma/code_source
49+
cd code_source
50+
python -m venv .venv
51+
.venv\Scripts\activate # Activation de l'environnement virtuel sous Windows
52+
pip install -r requirements.txt
53+
```
54+
55+
## 🛠️ Utilisation de base
56+
57+
```
58+
python app/main.py chemin_log [-s SORTIE]
59+
```
60+
- `chemin_log` : Le chemin vers le fichier de log Apache à analyser.
61+
- `-s SORTIE` (optionnel) : Le chemin où sauvegarder les résultats de l'analyse. Si non spécifié, les résultats seront sauvegardés dans un fichier `analyse-log-apache.json`.
62+
63+
## ⚠️ Précautions
64+
65+
Le projet LogBuster utilise des caractères Unicode, tels que des symboles spéciaux, dans le terminal pour rendre l'affichage plus plaisant. Assurez-vous que votre terminal est configuré pour prendre en charge l'affichage de caractères Unicode afin de profiter pleinement de l'expérience utilisateur.
66+
67+
Si vous rencontrez des problèmes d'affichage (comme des symboles manquants ou mal rendus), vous pouvez essayer les solutions suivantes :
68+
69+
- Utiliser un terminal compatible avec Unicode (par exemple, Terminal sous macOS, Windows Terminal sous Windows, ou des terminaux comme GNOME Terminal ou Konsole sous Linux).
70+
- Vérifier que votre terminal utilise une police qui prend en charge les caractères Unicode (par exemple, DejaVu Sans Mono ou Consolas).
71+
72+
## 📖 Documentation
73+
74+
La documentation complète du code du projet se situe [ici](https://anthonyguillauma.github.io/code_source/
75+
).
76+
77+
Si vous souhaitez la générer vous même, suivez ces étapes :
78+
79+
Tout d'abord, placez-vous dans le dossier `docs` qui contient les fichiers sources de la documentation :
80+
81+
```bash
82+
cd docs
83+
```
84+
85+
Puis, générez la documentation via la commande suivante :
86+
87+
```bash
88+
./make html
89+
```
90+
91+
Enfin, ouvrez le fichier html `build/html/index.html` généré dans un navigateur.
92+
93+
## 🧪 Lancer les tests
94+
95+
Les tests unitaires du projet peuvent être exécutés avec pytest. Pour lancer les tests, assurez-vous d'avoir activé l'environnement virtuel et installé les dépendances.
96+
97+
Premièrement, placez-vous dans le dossier `tests` qui contient les fichiers de configuration pour les tests unitaires :
98+
99+
```bash
100+
cd tests
101+
```
102+
103+
Ensuite, exécutez les tests avec la commande suivante :
104+
105+
```bash
106+
pytest
107+
```
108+
109+
Enfin, si vous souhaitez également afficher la couverture des tests unitaires, utilisez la commande suivante :
110+
111+
```bash
112+
pytest --cov=../app --cov-report=term-missing
113+
```
114+
115+
# 📜 Licence
116+
117+
Ce projet est sous licence MIT.

0 commit comments

Comments
 (0)