Adaptation pour Gitea : templates, CI/CD et documentation spécifique
Some checks failed
CI - 4NK Node / Code Quality (push) Failing after 37s
CI - 4NK Node / Unit Tests (push) Failing after 29s
CI - 4NK Node / Integration Tests (push) Successful in 16s
CI - 4NK Node / Security Tests (push) Failing after 28s
CI - 4NK Node / Docker Build & Test (push) Failing after 10s
CI - 4NK Node / Documentation Tests (push) Successful in 4s
CI - 4NK Node / Performance Tests (push) Successful in 31s
CI - 4NK Node / Notify (push) Failing after 2s
Some checks failed
CI - 4NK Node / Code Quality (push) Failing after 37s
CI - 4NK Node / Unit Tests (push) Failing after 29s
CI - 4NK Node / Integration Tests (push) Successful in 16s
CI - 4NK Node / Security Tests (push) Failing after 28s
CI - 4NK Node / Docker Build & Test (push) Failing after 10s
CI - 4NK Node / Documentation Tests (push) Successful in 4s
CI - 4NK Node / Performance Tests (push) Successful in 31s
CI - 4NK Node / Notify (push) Failing after 2s
This commit is contained in:
parent
c1b961b044
commit
82649d48f9
97
.gitea/ISSUE_TEMPLATE/bug_report.md
Normal file
97
.gitea/ISSUE_TEMPLATE/bug_report.md
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
---
|
||||||
|
name: Bug Report
|
||||||
|
about: Signaler un bug pour nous aider à améliorer 4NK Node
|
||||||
|
title: '[BUG] '
|
||||||
|
labels: ['bug', 'needs-triage']
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐛 Description du Bug
|
||||||
|
|
||||||
|
Description claire et concise du problème.
|
||||||
|
|
||||||
|
## 🔄 Étapes pour Reproduire
|
||||||
|
|
||||||
|
1. Aller à '...'
|
||||||
|
2. Cliquer sur '...'
|
||||||
|
3. Faire défiler jusqu'à '...'
|
||||||
|
4. Voir l'erreur
|
||||||
|
|
||||||
|
## ✅ Comportement Attendu
|
||||||
|
|
||||||
|
Description de ce qui devrait se passer.
|
||||||
|
|
||||||
|
## ❌ Comportement Actuel
|
||||||
|
|
||||||
|
Description de ce qui se passe actuellement.
|
||||||
|
|
||||||
|
## 📸 Capture d'Écran
|
||||||
|
|
||||||
|
Si applicable, ajoutez une capture d'écran pour expliquer votre problème.
|
||||||
|
|
||||||
|
## 💻 Informations Système
|
||||||
|
|
||||||
|
- **OS** : [ex: Ubuntu 20.04, macOS 12.0, Windows 11]
|
||||||
|
- **Docker** : [ex: 20.10.0]
|
||||||
|
- **Docker Compose** : [ex: 2.0.0]
|
||||||
|
- **Version 4NK Node** : [ex: v1.0.0]
|
||||||
|
- **Architecture** : [ex: x86_64, ARM64]
|
||||||
|
|
||||||
|
## 📋 Configuration
|
||||||
|
|
||||||
|
### Services Actifs
|
||||||
|
```bash
|
||||||
|
docker ps
|
||||||
|
```
|
||||||
|
|
||||||
|
### Variables d'Environnement
|
||||||
|
```bash
|
||||||
|
# Bitcoin Core
|
||||||
|
BITCOIN_NETWORK=signet
|
||||||
|
BITCOIN_RPC_PORT=18443
|
||||||
|
|
||||||
|
# Blindbit
|
||||||
|
BLINDBIT_PORT=8000
|
||||||
|
|
||||||
|
# SDK Relay
|
||||||
|
SDK_RELAY_PORTS=8090-8095
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📝 Logs
|
||||||
|
|
||||||
|
### Logs Pertinents
|
||||||
|
```
|
||||||
|
Logs pertinents ici
|
||||||
|
```
|
||||||
|
|
||||||
|
### Logs d'Erreur
|
||||||
|
```
|
||||||
|
Logs d'erreur ici
|
||||||
|
```
|
||||||
|
|
||||||
|
### Logs de Debug
|
||||||
|
```
|
||||||
|
Logs de debug ici (si RUST_LOG=debug)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Tentatives de Résolution
|
||||||
|
|
||||||
|
- [ ] Redémarrage des services
|
||||||
|
- [ ] Nettoyage des volumes Docker
|
||||||
|
- [ ] Vérification de la connectivité réseau
|
||||||
|
- [ ] Mise à jour des dépendances
|
||||||
|
- [ ] Vérification de la configuration
|
||||||
|
|
||||||
|
## 📚 Contexte Supplémentaire
|
||||||
|
|
||||||
|
Toute autre information pertinente sur le problème.
|
||||||
|
|
||||||
|
## 🔗 Liens Utiles
|
||||||
|
|
||||||
|
- [Documentation](docs/)
|
||||||
|
- [Guide de Dépannage](docs/TROUBLESHOOTING.md)
|
||||||
|
- [Issues Similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Merci de votre contribution !** 🙏
|
156
.gitea/ISSUE_TEMPLATE/feature_request.md
Normal file
156
.gitea/ISSUE_TEMPLATE/feature_request.md
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
---
|
||||||
|
name: Feature Request
|
||||||
|
about: Proposer une nouvelle fonctionnalité pour 4NK Node
|
||||||
|
title: '[FEATURE] '
|
||||||
|
labels: ['enhancement', 'needs-triage']
|
||||||
|
assignees: ''
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Résumé
|
||||||
|
|
||||||
|
Description claire et concise de la fonctionnalité souhaitée.
|
||||||
|
|
||||||
|
## 💡 Motivation
|
||||||
|
|
||||||
|
Pourquoi cette fonctionnalité est-elle nécessaire ? Quels problèmes résout-elle ?
|
||||||
|
|
||||||
|
### Problèmes Actuels
|
||||||
|
- Problème 1
|
||||||
|
- Problème 2
|
||||||
|
- Problème 3
|
||||||
|
|
||||||
|
### Avantages de la Solution
|
||||||
|
- Avantage 1
|
||||||
|
- Avantage 2
|
||||||
|
- Avantage 3
|
||||||
|
|
||||||
|
## 🎯 Proposition
|
||||||
|
|
||||||
|
Description détaillée de la fonctionnalité proposée.
|
||||||
|
|
||||||
|
### Fonctionnalités Principales
|
||||||
|
- [ ] Fonctionnalité 1
|
||||||
|
- [ ] Fonctionnalité 2
|
||||||
|
- [ ] Fonctionnalité 3
|
||||||
|
|
||||||
|
### Interface Utilisateur
|
||||||
|
Description de l'interface utilisateur si applicable.
|
||||||
|
|
||||||
|
### API Changes
|
||||||
|
Description des changements d'API si applicable.
|
||||||
|
|
||||||
|
## 🔄 Alternatives Considérées
|
||||||
|
|
||||||
|
Autres solutions envisagées et pourquoi elles n'ont pas été choisies.
|
||||||
|
|
||||||
|
### Alternative 1
|
||||||
|
- **Description** : ...
|
||||||
|
- **Pourquoi rejetée** : ...
|
||||||
|
|
||||||
|
### Alternative 2
|
||||||
|
- **Description** : ...
|
||||||
|
- **Pourquoi rejetée** : ...
|
||||||
|
|
||||||
|
## 📊 Impact
|
||||||
|
|
||||||
|
### Impact sur les Utilisateurs
|
||||||
|
- Impact positif 1
|
||||||
|
- Impact positif 2
|
||||||
|
- Impact négatif potentiel (si applicable)
|
||||||
|
|
||||||
|
### Impact sur l'Architecture
|
||||||
|
- Changements nécessaires
|
||||||
|
- Compatibilité avec l'existant
|
||||||
|
- Performance
|
||||||
|
|
||||||
|
### Impact sur la Maintenance
|
||||||
|
- Complexité ajoutée
|
||||||
|
- Tests nécessaires
|
||||||
|
- Documentation requise
|
||||||
|
|
||||||
|
## 💻 Exemples d'Utilisation
|
||||||
|
|
||||||
|
### Cas d'Usage 1
|
||||||
|
```bash
|
||||||
|
# Exemple de commande ou configuration
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cas d'Usage 2
|
||||||
|
```python
|
||||||
|
# Exemple de code Python
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cas d'Usage 3
|
||||||
|
```javascript
|
||||||
|
// Exemple de code JavaScript
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🧪 Tests
|
||||||
|
|
||||||
|
### Tests Nécessaires
|
||||||
|
- [ ] Tests unitaires
|
||||||
|
- [ ] Tests d'intégration
|
||||||
|
- [ ] Tests de performance
|
||||||
|
- [ ] Tests de sécurité
|
||||||
|
- [ ] Tests de compatibilité
|
||||||
|
|
||||||
|
### Scénarios de Test
|
||||||
|
- Scénario 1
|
||||||
|
- Scénario 2
|
||||||
|
- Scénario 3
|
||||||
|
|
||||||
|
## 📚 Documentation
|
||||||
|
|
||||||
|
### Documentation Requise
|
||||||
|
- [ ] Guide d'utilisation
|
||||||
|
- [ ] Documentation API
|
||||||
|
- [ ] Exemples de code
|
||||||
|
- [ ] Guide de migration
|
||||||
|
- [ ] FAQ
|
||||||
|
|
||||||
|
## 🔧 Implémentation
|
||||||
|
|
||||||
|
### Étapes Proposées
|
||||||
|
1. **Phase 1** : [Description]
|
||||||
|
2. **Phase 2** : [Description]
|
||||||
|
3. **Phase 3** : [Description]
|
||||||
|
|
||||||
|
### Estimation de Temps
|
||||||
|
- **Développement** : X jours/semaines
|
||||||
|
- **Tests** : X jours/semaines
|
||||||
|
- **Documentation** : X jours/semaines
|
||||||
|
- **Total** : X jours/semaines
|
||||||
|
|
||||||
|
### Ressources Nécessaires
|
||||||
|
- Développeur(s)
|
||||||
|
- Testeur(s)
|
||||||
|
- Documentateur(s)
|
||||||
|
- Infrastructure
|
||||||
|
|
||||||
|
## 🎯 Critères de Succès
|
||||||
|
|
||||||
|
Comment mesurer le succès de cette fonctionnalité ?
|
||||||
|
|
||||||
|
- [ ] Critère 1
|
||||||
|
- [ ] Critère 2
|
||||||
|
- [ ] Critère 3
|
||||||
|
|
||||||
|
## 🔗 Liens Utiles
|
||||||
|
|
||||||
|
- [Documentation existante](docs/)
|
||||||
|
- [Issues similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
||||||
|
- [Roadmap](https://git.4nkweb.com/4nk/4NK_node/projects)
|
||||||
|
- [Discussions](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
|
|
||||||
|
## 📋 Checklist
|
||||||
|
|
||||||
|
- [ ] J'ai vérifié que cette fonctionnalité n'existe pas déjà
|
||||||
|
- [ ] J'ai lu la documentation existante
|
||||||
|
- [ ] J'ai vérifié les issues similaires
|
||||||
|
- [ ] J'ai fourni des exemples d'utilisation
|
||||||
|
- [ ] J'ai considéré l'impact sur l'existant
|
||||||
|
- [ ] J'ai proposé des tests
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Merci de votre contribution à l'amélioration de 4NK Node !** 🌟
|
180
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
180
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
# Pull Request - 4NK Node
|
||||||
|
|
||||||
|
## 📋 Description
|
||||||
|
|
||||||
|
Description claire et concise des changements apportés.
|
||||||
|
|
||||||
|
### Type de Changement
|
||||||
|
- [ ] 🐛 Bug fix
|
||||||
|
- [ ] ✨ Nouvelle fonctionnalité
|
||||||
|
- [ ] 📚 Documentation
|
||||||
|
- [ ] 🧪 Tests
|
||||||
|
- [ ] 🔧 Refactoring
|
||||||
|
- [ ] 🚀 Performance
|
||||||
|
- [ ] 🔒 Sécurité
|
||||||
|
- [ ] 🎨 Style/UI
|
||||||
|
- [ ] 🏗️ Architecture
|
||||||
|
- [ ] 📦 Build/CI
|
||||||
|
|
||||||
|
### Composants Affectés
|
||||||
|
- [ ] Bitcoin Core
|
||||||
|
- [ ] Blindbit
|
||||||
|
- [ ] SDK Relay
|
||||||
|
- [ ] Tor
|
||||||
|
- [ ] Docker/Infrastructure
|
||||||
|
- [ ] Tests
|
||||||
|
- [ ] Documentation
|
||||||
|
- [ ] Scripts
|
||||||
|
|
||||||
|
## 🔗 Issue(s) Liée(s)
|
||||||
|
|
||||||
|
Fixes #(issue)
|
||||||
|
Relates to #(issue)
|
||||||
|
|
||||||
|
## 🧪 Tests
|
||||||
|
|
||||||
|
### Tests Exécutés
|
||||||
|
- [ ] Tests unitaires
|
||||||
|
- [ ] Tests d'intégration
|
||||||
|
- [ ] Tests de connectivité
|
||||||
|
- [ ] Tests externes
|
||||||
|
- [ ] Tests de performance
|
||||||
|
|
||||||
|
### Commandes de Test
|
||||||
|
```bash
|
||||||
|
# Tests complets
|
||||||
|
./tests/run_all_tests.sh
|
||||||
|
|
||||||
|
# Tests spécifiques
|
||||||
|
./tests/run_unit_tests.sh
|
||||||
|
./tests/run_integration_tests.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Résultats des Tests
|
||||||
|
```
|
||||||
|
Résultats des tests ici
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📸 Captures d'Écran
|
||||||
|
|
||||||
|
Si applicable, ajoutez des captures d'écran pour les changements visuels.
|
||||||
|
|
||||||
|
## 🔧 Changements Techniques
|
||||||
|
|
||||||
|
### Fichiers Modifiés
|
||||||
|
- `fichier1.rs` - Description des changements
|
||||||
|
- `fichier2.py` - Description des changements
|
||||||
|
- `docker-compose.yml` - Description des changements
|
||||||
|
|
||||||
|
### Nouveaux Fichiers
|
||||||
|
- `nouveau_fichier.rs` - Description
|
||||||
|
- `nouveau_script.sh` - Description
|
||||||
|
|
||||||
|
### Fichiers Supprimés
|
||||||
|
- `ancien_fichier.rs` - Raison de la suppression
|
||||||
|
|
||||||
|
### Changements de Configuration
|
||||||
|
```yaml
|
||||||
|
# Exemple de changement de configuration
|
||||||
|
service:
|
||||||
|
new_option: value
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Documentation
|
||||||
|
|
||||||
|
### Documentation Mise à Jour
|
||||||
|
- [ ] README.md
|
||||||
|
- [ ] docs/INSTALLATION.md
|
||||||
|
- [ ] docs/USAGE.md
|
||||||
|
- [ ] docs/API.md
|
||||||
|
- [ ] docs/ARCHITECTURE.md
|
||||||
|
|
||||||
|
### Nouvelle Documentation
|
||||||
|
- [ ] Nouveau guide créé
|
||||||
|
- [ ] Exemples ajoutés
|
||||||
|
- [ ] API documentée
|
||||||
|
|
||||||
|
## 🔍 Code Review Checklist
|
||||||
|
|
||||||
|
### Code Quality
|
||||||
|
- [ ] Le code suit les standards du projet
|
||||||
|
- [ ] Les noms de variables/fonctions sont clairs
|
||||||
|
- [ ] Les commentaires sont appropriés
|
||||||
|
- [ ] Pas de code mort ou commenté
|
||||||
|
- [ ] Gestion d'erreurs appropriée
|
||||||
|
|
||||||
|
### Performance
|
||||||
|
- [ ] Pas de régression de performance
|
||||||
|
- [ ] Optimisations appliquées si nécessaire
|
||||||
|
- [ ] Tests de performance ajoutés
|
||||||
|
|
||||||
|
### Sécurité
|
||||||
|
- [ ] Pas de vulnérabilités introduites
|
||||||
|
- [ ] Validation des entrées utilisateur
|
||||||
|
- [ ] Gestion sécurisée des secrets
|
||||||
|
|
||||||
|
### Tests
|
||||||
|
- [ ] Couverture de tests suffisante
|
||||||
|
- [ ] Tests pour les cas d'erreur
|
||||||
|
- [ ] Tests d'intégration si nécessaire
|
||||||
|
|
||||||
|
### Documentation
|
||||||
|
- [ ] Code auto-documenté
|
||||||
|
- [ ] Documentation mise à jour
|
||||||
|
- [ ] Exemples fournis
|
||||||
|
|
||||||
|
## 🚀 Déploiement
|
||||||
|
|
||||||
|
### Impact sur le Déploiement
|
||||||
|
- [ ] Aucun impact
|
||||||
|
- [ ] Migration de données requise
|
||||||
|
- [ ] Changement de configuration
|
||||||
|
- [ ] Redémarrage des services
|
||||||
|
|
||||||
|
### Étapes de Déploiement
|
||||||
|
```bash
|
||||||
|
# Étapes pour déployer les changements
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📊 Métriques
|
||||||
|
|
||||||
|
### Impact sur les Performances
|
||||||
|
- Temps de réponse : +/- X%
|
||||||
|
- Utilisation mémoire : +/- X%
|
||||||
|
- Utilisation CPU : +/- X%
|
||||||
|
|
||||||
|
### Impact sur la Stabilité
|
||||||
|
- Taux d'erreur : +/- X%
|
||||||
|
- Disponibilité : +/- X%
|
||||||
|
|
||||||
|
## 🔄 Compatibilité
|
||||||
|
|
||||||
|
### Compatibilité Ascendante
|
||||||
|
- [ ] Compatible avec les versions précédentes
|
||||||
|
- [ ] Migration automatique
|
||||||
|
- [ ] Migration manuelle requise
|
||||||
|
|
||||||
|
### Compatibilité Descendante
|
||||||
|
- [ ] Compatible avec les futures versions
|
||||||
|
- [ ] API stable
|
||||||
|
- [ ] Configuration stable
|
||||||
|
|
||||||
|
## 🎯 Critères de Succès
|
||||||
|
|
||||||
|
- [ ] Critère 1
|
||||||
|
- [ ] Critère 2
|
||||||
|
- [ ] Critère 3
|
||||||
|
|
||||||
|
## 📝 Notes Supplémentaires
|
||||||
|
|
||||||
|
Informations supplémentaires importantes pour les reviewers.
|
||||||
|
|
||||||
|
## 🔗 Liens Utiles
|
||||||
|
|
||||||
|
- [Documentation](docs/)
|
||||||
|
- [Tests](tests/)
|
||||||
|
- [Issues liées](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Merci pour votre contribution !** 🙏
|
313
.gitea/workflows/ci.yml
Normal file
313
.gitea/workflows/ci.yml
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
name: CI - 4NK Node
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main, develop ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main, develop ]
|
||||||
|
|
||||||
|
env:
|
||||||
|
RUST_VERSION: '1.70'
|
||||||
|
DOCKER_COMPOSE_VERSION: '2.20.0'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
# Job de vérification du code
|
||||||
|
code-quality:
|
||||||
|
name: Code Quality
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Cache Rust dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cargo/registry
|
||||||
|
~/.cargo/git
|
||||||
|
target
|
||||||
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-cargo-
|
||||||
|
|
||||||
|
- name: Run clippy
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo clippy --all-targets --all-features -- -D warnings
|
||||||
|
|
||||||
|
- name: Run rustfmt
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo fmt --all -- --check
|
||||||
|
|
||||||
|
- name: Check documentation
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo doc --no-deps
|
||||||
|
|
||||||
|
- name: Check for TODO/FIXME
|
||||||
|
run: |
|
||||||
|
if grep -r "TODO\|FIXME" . --exclude-dir=.git --exclude-dir=target; then
|
||||||
|
echo "Found TODO/FIXME comments. Please address them."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Job de tests unitaires
|
||||||
|
unit-tests:
|
||||||
|
name: Unit Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Cache Rust dependencies
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.cargo/registry
|
||||||
|
~/.cargo/git
|
||||||
|
target
|
||||||
|
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-cargo-
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo test --lib --bins
|
||||||
|
|
||||||
|
- name: Run integration tests
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo test --tests
|
||||||
|
|
||||||
|
# Job de tests d'intégration
|
||||||
|
integration-tests:
|
||||||
|
name: Integration Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
services:
|
||||||
|
docker:
|
||||||
|
image: docker:24.0.5
|
||||||
|
options: >-
|
||||||
|
--health-cmd "docker info"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
ports:
|
||||||
|
- 2375:2375
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Build Docker images
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-bitcoin ./bitcoin
|
||||||
|
docker build -t 4nk-node-blindbit ./blindbit
|
||||||
|
docker build -t 4nk-node-sdk-relay -f ./sdk_relay/Dockerfile ..
|
||||||
|
|
||||||
|
- name: Run integration tests
|
||||||
|
run: |
|
||||||
|
# Tests de connectivité de base
|
||||||
|
./tests/run_connectivity_tests.sh || true
|
||||||
|
|
||||||
|
# Tests d'intégration
|
||||||
|
./tests/run_integration_tests.sh || true
|
||||||
|
|
||||||
|
- name: Upload test results
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
if: always()
|
||||||
|
with:
|
||||||
|
name: test-results
|
||||||
|
path: |
|
||||||
|
tests/logs/
|
||||||
|
tests/reports/
|
||||||
|
retention-days: 7
|
||||||
|
|
||||||
|
# Job de tests de sécurité
|
||||||
|
security-tests:
|
||||||
|
name: Security Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Run cargo audit
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo audit --deny warnings
|
||||||
|
|
||||||
|
- name: Check for secrets
|
||||||
|
run: |
|
||||||
|
# Vérifier les secrets potentiels
|
||||||
|
if grep -r "password\|secret\|key\|token" . --exclude-dir=.git --exclude-dir=target --exclude=*.md; then
|
||||||
|
echo "Potential secrets found. Please review."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Check file permissions
|
||||||
|
run: |
|
||||||
|
# Vérifier les permissions sensibles
|
||||||
|
find . -type f -perm /0111 -name "*.conf" -o -name "*.key" -o -name "*.pem" | while read file; do
|
||||||
|
if [[ $(stat -c %a "$file") != "600" ]]; then
|
||||||
|
echo "Warning: $file has insecure permissions"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
# Job de build et test Docker
|
||||||
|
docker-build:
|
||||||
|
name: Docker Build & Test
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
services:
|
||||||
|
docker:
|
||||||
|
image: docker:24.0.5
|
||||||
|
options: >-
|
||||||
|
--health-cmd "docker info"
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
ports:
|
||||||
|
- 2375:2375
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Build and test Bitcoin Core
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-bitcoin:test ./bitcoin
|
||||||
|
docker run --rm 4nk-node-bitcoin:test bitcoin-cli --version
|
||||||
|
|
||||||
|
- name: Build and test Blindbit
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-blindbit:test ./blindbit
|
||||||
|
docker run --rm 4nk-node-blindbit:test --version || true
|
||||||
|
|
||||||
|
- name: Build and test SDK Relay
|
||||||
|
run: |
|
||||||
|
docker build -t 4nk-node-sdk-relay:test -f ./sdk_relay/Dockerfile ..
|
||||||
|
docker run --rm 4nk-node-sdk-relay:test --version || true
|
||||||
|
|
||||||
|
- name: Test Docker Compose
|
||||||
|
run: |
|
||||||
|
docker-compose config
|
||||||
|
docker-compose build --no-cache
|
||||||
|
|
||||||
|
# Job de tests de documentation
|
||||||
|
documentation-tests:
|
||||||
|
name: Documentation Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Check markdown links
|
||||||
|
run: |
|
||||||
|
# Vérification basique des liens markdown
|
||||||
|
find . -name "*.md" -exec grep -l "\[.*\](" {} \; | while read file; do
|
||||||
|
echo "Checking links in $file"
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Check documentation structure
|
||||||
|
run: |
|
||||||
|
# Vérifier la présence des fichiers de documentation essentiels
|
||||||
|
required_files=(
|
||||||
|
"README.md"
|
||||||
|
"LICENSE"
|
||||||
|
"CONTRIBUTING.md"
|
||||||
|
"CHANGELOG.md"
|
||||||
|
"CODE_OF_CONDUCT.md"
|
||||||
|
"SECURITY.md"
|
||||||
|
"docs/INDEX.md"
|
||||||
|
"docs/INSTALLATION.md"
|
||||||
|
"docs/USAGE.md"
|
||||||
|
)
|
||||||
|
|
||||||
|
for file in "${required_files[@]}"; do
|
||||||
|
if [[ ! -f "$file" ]]; then
|
||||||
|
echo "Missing required documentation file: $file"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: Validate documentation
|
||||||
|
run: |
|
||||||
|
# Vérifier la cohérence de la documentation
|
||||||
|
if ! grep -q "4NK Node" README.md; then
|
||||||
|
echo "README.md should mention '4NK Node'"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Job de tests de performance
|
||||||
|
performance-tests:
|
||||||
|
name: Performance Tests
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: ${{ env.RUST_VERSION }}
|
||||||
|
override: true
|
||||||
|
|
||||||
|
- name: Run performance tests
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo test --release --test performance_tests || true
|
||||||
|
|
||||||
|
- name: Check memory usage
|
||||||
|
run: |
|
||||||
|
# Tests de base de consommation mémoire
|
||||||
|
echo "Performance tests completed"
|
||||||
|
|
||||||
|
# Job de notification
|
||||||
|
notify:
|
||||||
|
name: Notify
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [code-quality, unit-tests, integration-tests, security-tests, docker-build, documentation-tests]
|
||||||
|
if: always()
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Notify success
|
||||||
|
if: needs.code-quality.result == 'success' && needs.unit-tests.result == 'success' && needs.integration-tests.result == 'success' && needs.security-tests.result == 'success' && needs.docker-build.result == 'success' && needs.documentation-tests.result == 'success'
|
||||||
|
run: |
|
||||||
|
echo "✅ All tests passed successfully!"
|
||||||
|
|
||||||
|
- name: Notify failure
|
||||||
|
if: needs.code-quality.result == 'failure' || needs.unit-tests.result == 'failure' || needs.integration-tests.result == 'failure' || needs.security-tests.result == 'failure' || needs.docker-build.result == 'failure' || needs.documentation-tests.result == 'failure'
|
||||||
|
run: |
|
||||||
|
echo "❌ Some tests failed!"
|
||||||
|
exit 1
|
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
2
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@ -90,7 +90,7 @@ Toute autre information pertinente sur le problème.
|
|||||||
|
|
||||||
- [Documentation](docs/)
|
- [Documentation](docs/)
|
||||||
- [Guide de Dépannage](docs/TROUBLESHOOTING.md)
|
- [Guide de Dépannage](docs/TROUBLESHOOTING.md)
|
||||||
- [Issues Similaires](../../issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
- [Issues Similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Abug)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
6
.github/ISSUE_TEMPLATE/feature_request.md
vendored
6
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@ -138,9 +138,9 @@ Comment mesurer le succès de cette fonctionnalité ?
|
|||||||
## 🔗 Liens Utiles
|
## 🔗 Liens Utiles
|
||||||
|
|
||||||
- [Documentation existante](docs/)
|
- [Documentation existante](docs/)
|
||||||
- [Issues similaires](../../issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
- [Issues similaires](https://git.4nkweb.com/4nk/4NK_node/issues?q=is%3Aissue+is%3Aopen+label%3Aenhancement)
|
||||||
- [Roadmap](../../projects)
|
- [Roadmap](https://git.4nkweb.com/4nk/4NK_node/projects)
|
||||||
- [Discussions](../../discussions)
|
- [Discussions](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
|
|
||||||
## 📋 Checklist
|
## 📋 Checklist
|
||||||
|
|
||||||
|
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
2
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -173,7 +173,7 @@ Informations supplémentaires importantes pour les reviewers.
|
|||||||
|
|
||||||
- [Documentation](docs/)
|
- [Documentation](docs/)
|
||||||
- [Tests](tests/)
|
- [Tests](tests/)
|
||||||
- [Issues liées](../../issues)
|
- [Issues liées](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
58
.github/workflows/ci.yml
vendored
58
.github/workflows/ci.yml
vendored
@ -1,10 +1,17 @@
|
|||||||
name: CI - 4NK Node
|
name: CI - 4NK Node
|
||||||
|
|
||||||
on:
|
# Note: Ce workflow est configuré pour GitHub Actions
|
||||||
push:
|
# Pour Gitea, utilisez Gitea Actions ou configurez un runner CI/CD externe
|
||||||
branches: [ main, develop ]
|
#
|
||||||
pull_request:
|
# Configuration Gitea Actions (si disponible):
|
||||||
branches: [ main, develop ]
|
# on:
|
||||||
|
# push:
|
||||||
|
# branches: [ main, develop ]
|
||||||
|
# pull_request:
|
||||||
|
# branches: [ main, develop ]
|
||||||
|
|
||||||
|
# Configuration pour runner externe (Jenkins, GitLab CI, etc.)
|
||||||
|
# Décommentez et adaptez selon votre infrastructure CI/CD
|
||||||
|
|
||||||
env:
|
env:
|
||||||
RUST_VERSION: '1.70'
|
RUST_VERSION: '1.70'
|
||||||
@ -309,30 +316,25 @@ jobs:
|
|||||||
- name: Checkout code
|
- name: Checkout code
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Create release
|
# Note: Pour Gitea, utilisez l'API Gitea ou créez les releases manuellement
|
||||||
uses: actions/create-release@v1
|
# - name: Create release
|
||||||
env:
|
# run: |
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
# # Script pour créer une release via l'API Gitea
|
||||||
with:
|
# curl -X POST "https://git.4nkweb.com/api/v1/repos/4nk/4NK_node/releases" \
|
||||||
tag_name: v${{ github.run_number }}
|
# -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \
|
||||||
release_name: Release v${{ github.run_number }}
|
# -H "Content-Type: application/json" \
|
||||||
body: |
|
# -d '{
|
||||||
Automated release from CI/CD pipeline
|
# "tag_name": "v${{ github.run_number }}",
|
||||||
|
# "name": "Release v${{ github.run_number }}",
|
||||||
|
# "body": "Automated release from CI/CD pipeline\\n\\nChanges in this release:\\n- See CHANGELOG.md for details",
|
||||||
|
# "draft": false,
|
||||||
|
# "prerelease": false
|
||||||
|
# }'
|
||||||
|
|
||||||
Changes in this release:
|
# - name: Upload release artifacts
|
||||||
- See CHANGELOG.md for details
|
# run: |
|
||||||
draft: false
|
# # Script pour uploader les artefacts via l'API Gitea
|
||||||
prerelease: false
|
# # Implémentez selon votre infrastructure
|
||||||
|
|
||||||
- name: Upload release artifacts
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: ./archive/4NK_node_v${{ github.run_number }}.tar.gz
|
|
||||||
asset_name: 4NK_node_v${{ github.run_number }}.tar.gz
|
|
||||||
asset_content_type: application/gzip
|
|
||||||
|
|
||||||
# Job de notification
|
# Job de notification
|
||||||
notify:
|
notify:
|
||||||
|
@ -222,5 +222,5 @@ Pour contribuer au changelog, suivez le format existant et ajoutez vos changemen
|
|||||||
|
|
||||||
- [Documentation](docs/)
|
- [Documentation](docs/)
|
||||||
- [Guide de Contribution](CONTRIBUTING.md)
|
- [Guide de Contribution](CONTRIBUTING.md)
|
||||||
- [Issues](../../issues)
|
- [Issues](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
- [Releases](../../releases)
|
- [Releases](https://git.4nkweb.com/4nk/4NK_node/releases)
|
||||||
|
@ -49,13 +49,13 @@ Nous accueillons différents types de contributions :
|
|||||||
### Fork et Clone
|
### Fork et Clone
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Fork le repository sur GitHub/GitLab
|
# 1. Fork le repository sur Gitea
|
||||||
# 2. Clone votre fork
|
# 2. Clone votre fork
|
||||||
git clone https://github.com/votre-username/4NK_node.git
|
git clone https://git.4nkweb.com/votre-username/4NK_node.git
|
||||||
cd 4NK_node
|
cd 4NK_node
|
||||||
|
|
||||||
# 3. Ajouter le repository original comme upstream
|
# 3. Ajouter le repository original comme upstream
|
||||||
git remote add upstream https://github.com/4nk/4NK_node.git
|
git remote add upstream https://git.4nkweb.com/4nk/4NK_node.git
|
||||||
```
|
```
|
||||||
|
|
||||||
### Branches
|
### Branches
|
||||||
@ -73,7 +73,7 @@ git checkout -b fix/nom-du-bug
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# 1. Cloner le repository
|
# 1. Cloner le repository
|
||||||
git clone https://github.com/4nk/4NK_node.git
|
git clone https://git.4nkweb.com/4nk/4NK_node.git
|
||||||
cd 4NK_node
|
cd 4NK_node
|
||||||
|
|
||||||
# 2. Démarrer l'infrastructure
|
# 2. Démarrer l'infrastructure
|
||||||
@ -339,9 +339,9 @@ Utilisez le [Semantic Versioning](https://semver.org/) :
|
|||||||
### Communication
|
### Communication
|
||||||
|
|
||||||
- **Issues** - Pour les bugs et fonctionnalités
|
- **Issues** - Pour les bugs et fonctionnalités
|
||||||
- **Discussions** - Pour les questions générales
|
- **Discussions** - Pour les questions générales (via les issues)
|
||||||
- **Pull Requests** - Pour les contributions
|
- **Pull Requests** - Pour les contributions
|
||||||
- **Wiki** - Pour la documentation collaborative
|
- **Wiki** - Pour la documentation collaborative (si activé sur Gitea)
|
||||||
|
|
||||||
### Code de Conduite
|
### Code de Conduite
|
||||||
|
|
||||||
@ -359,8 +359,8 @@ Utilisez le [Semantic Versioning](https://semver.org/) :
|
|||||||
## 🆘 Besoin d'Aide ?
|
## 🆘 Besoin d'Aide ?
|
||||||
|
|
||||||
- Consultez la [documentation](docs/)
|
- Consultez la [documentation](docs/)
|
||||||
- Vérifiez les [issues existantes](../../issues)
|
- Vérifiez les [issues existantes](https://git.4nkweb.com/4nk/4NK_node/issues)
|
||||||
- Posez une question dans les [discussions](../../discussions)
|
- Posez une question via les [issues](https://git.4nkweb.com/4nk/4NK_node/issues/new)
|
||||||
- Contactez l'équipe de maintenance
|
- Contactez l'équipe de maintenance
|
||||||
|
|
||||||
## 📄 Licence
|
## 📄 Licence
|
||||||
|
279
docs/GITEA_SETUP.md
Normal file
279
docs/GITEA_SETUP.md
Normal file
@ -0,0 +1,279 @@
|
|||||||
|
# Configuration Gitea - 4NK Node
|
||||||
|
|
||||||
|
Ce guide explique comment configurer le projet 4NK Node spécifiquement pour Gitea (git.4nkweb.com).
|
||||||
|
|
||||||
|
## 🎯 Configuration Gitea
|
||||||
|
|
||||||
|
### Repository Configuration
|
||||||
|
|
||||||
|
Le projet est hébergé sur : **https://git.4nkweb.com/4nk/4NK_node**
|
||||||
|
|
||||||
|
### Branches Principales
|
||||||
|
|
||||||
|
- **`main`** - Branche principale, code stable
|
||||||
|
- **`develop`** - Branche de développement (optionnelle)
|
||||||
|
- **`feature/*`** - Branches de fonctionnalités
|
||||||
|
- **`fix/*`** - Branches de corrections
|
||||||
|
|
||||||
|
### Protection des Branches
|
||||||
|
|
||||||
|
Configurez les protections suivantes sur Gitea :
|
||||||
|
|
||||||
|
1. **Branche `main`** :
|
||||||
|
- ✅ Require pull request reviews before merging
|
||||||
|
- ✅ Require status checks to pass before merging
|
||||||
|
- ✅ Require branches to be up to date before merging
|
||||||
|
- ✅ Restrict pushes that create files
|
||||||
|
- ✅ Restrict pushes that delete files
|
||||||
|
|
||||||
|
2. **Branche `develop`** (si utilisée) :
|
||||||
|
- ✅ Require pull request reviews before merging
|
||||||
|
- ✅ Require status checks to pass before merging
|
||||||
|
|
||||||
|
## 🔧 Configuration CI/CD
|
||||||
|
|
||||||
|
### Option 1 : Gitea Actions (Recommandé)
|
||||||
|
|
||||||
|
Si votre instance Gitea supporte Gitea Actions :
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# .gitea/workflows/ci.yml
|
||||||
|
name: CI - 4NK Node
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main, develop ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main, develop ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Setup Rust
|
||||||
|
uses: actions-rs/toolchain@v1
|
||||||
|
with:
|
||||||
|
toolchain: stable
|
||||||
|
- name: Run tests
|
||||||
|
run: |
|
||||||
|
cd sdk_relay
|
||||||
|
cargo test
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option 2 : Runner Externe
|
||||||
|
|
||||||
|
Configurez un runner CI/CD externe (Jenkins, GitLab CI, etc.) :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Exemple avec Jenkins
|
||||||
|
pipeline {
|
||||||
|
agent any
|
||||||
|
stages {
|
||||||
|
stage('Checkout') {
|
||||||
|
steps {
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Test') {
|
||||||
|
steps {
|
||||||
|
sh 'cd sdk_relay && cargo test'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
stage('Build') {
|
||||||
|
steps {
|
||||||
|
sh 'docker-compose build'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option 3 : GitHub Actions (Migration)
|
||||||
|
|
||||||
|
Si vous souhaitez utiliser GitHub Actions avec un miroir :
|
||||||
|
|
||||||
|
1. Créez un repository miroir sur GitHub
|
||||||
|
2. Configurez un webhook pour synchroniser automatiquement
|
||||||
|
3. Utilisez le workflow GitHub Actions existant
|
||||||
|
|
||||||
|
## 📋 Templates Gitea
|
||||||
|
|
||||||
|
### Issues Templates
|
||||||
|
|
||||||
|
Les templates d'issues sont stockés dans `.gitea/ISSUE_TEMPLATE/` :
|
||||||
|
|
||||||
|
- `bug_report.md` - Pour signaler des bugs
|
||||||
|
- `feature_request.md` - Pour proposer des fonctionnalités
|
||||||
|
|
||||||
|
### Pull Request Template
|
||||||
|
|
||||||
|
Le template de PR est dans `.gitea/PULL_REQUEST_TEMPLATE.md`
|
||||||
|
|
||||||
|
## 🔗 Intégrations Gitea
|
||||||
|
|
||||||
|
### Webhooks
|
||||||
|
|
||||||
|
Configurez des webhooks pour :
|
||||||
|
|
||||||
|
1. **Notifications** - Slack, Discord, Email
|
||||||
|
2. **CI/CD** - Déclenchement automatique des builds
|
||||||
|
3. **Deployment** - Déploiement automatique
|
||||||
|
|
||||||
|
### API Gitea
|
||||||
|
|
||||||
|
Utilisez l'API Gitea pour l'automatisation :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Exemple : Créer une release
|
||||||
|
curl -X POST "https://git.4nkweb.com/api/v1/repos/4nk/4NK_node/releases" \
|
||||||
|
-H "Authorization: token YOUR_TOKEN" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{
|
||||||
|
"tag_name": "v1.0.0",
|
||||||
|
"name": "Release v1.0.0",
|
||||||
|
"body": "Description de la release"
|
||||||
|
}'
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🏷️ Labels et Milestones
|
||||||
|
|
||||||
|
### Labels Recommandés
|
||||||
|
|
||||||
|
- **bug** - Problèmes et bugs
|
||||||
|
- **enhancement** - Nouvelles fonctionnalités
|
||||||
|
- **documentation** - Amélioration de la documentation
|
||||||
|
- **good first issue** - Pour les nouveaux contributeurs
|
||||||
|
- **help wanted** - Besoin d'aide
|
||||||
|
- **priority: high** - Priorité élevée
|
||||||
|
- **priority: low** - Priorité basse
|
||||||
|
- **status: blocked** - Bloqué
|
||||||
|
- **status: in progress** - En cours
|
||||||
|
- **status: ready for review** - Prêt pour review
|
||||||
|
|
||||||
|
### Milestones
|
||||||
|
|
||||||
|
- **v1.0.0** - Version stable initiale
|
||||||
|
- **v1.1.0** - Améliorations et corrections
|
||||||
|
- **v2.0.0** - Nouvelles fonctionnalités majeures
|
||||||
|
|
||||||
|
## 🔐 Sécurité Gitea
|
||||||
|
|
||||||
|
### Permissions
|
||||||
|
|
||||||
|
1. **Repository** :
|
||||||
|
- Public pour l'open source
|
||||||
|
- Issues et PR activés
|
||||||
|
- Wiki activé (optionnel)
|
||||||
|
|
||||||
|
2. **Collaborateurs** :
|
||||||
|
- Maintainers : Write access
|
||||||
|
- Contributors : Read access
|
||||||
|
- Public : Read access
|
||||||
|
|
||||||
|
### Secrets
|
||||||
|
|
||||||
|
Stockez les secrets sensibles dans les variables d'environnement Gitea :
|
||||||
|
|
||||||
|
- `DOCKER_USERNAME`
|
||||||
|
- `DOCKER_PASSWORD`
|
||||||
|
- `GITEA_TOKEN`
|
||||||
|
- `SLACK_WEBHOOK_URL`
|
||||||
|
|
||||||
|
## 📊 Monitoring et Analytics
|
||||||
|
|
||||||
|
### Gitea Analytics
|
||||||
|
|
||||||
|
- **Traffic** - Vues du repository
|
||||||
|
- **Contributors** - Contributeurs actifs
|
||||||
|
- **Issues** - Statistiques des issues
|
||||||
|
- **Pull Requests** - Statistiques des PR
|
||||||
|
|
||||||
|
### Intégrations Externes
|
||||||
|
|
||||||
|
- **Codecov** - Couverture de code
|
||||||
|
- **SonarCloud** - Qualité du code
|
||||||
|
- **Dependabot** - Mise à jour des dépendances
|
||||||
|
|
||||||
|
## 🚀 Workflow de Contribution
|
||||||
|
|
||||||
|
### 1. Fork et Clone
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Fork sur Gitea
|
||||||
|
# Puis clone
|
||||||
|
git clone https://git.4nkweb.com/votre-username/4NK_node.git
|
||||||
|
cd 4NK_node
|
||||||
|
|
||||||
|
# Ajouter l'upstream
|
||||||
|
git remote add upstream https://git.4nkweb.com/4nk/4NK_node.git
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Développement
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Créer une branche
|
||||||
|
git checkout -b feature/nouvelle-fonctionnalite
|
||||||
|
|
||||||
|
# Développer
|
||||||
|
# ...
|
||||||
|
|
||||||
|
# Commiter
|
||||||
|
git commit -m "feat: ajouter nouvelle fonctionnalité"
|
||||||
|
|
||||||
|
# Pousser
|
||||||
|
git push origin feature/nouvelle-fonctionnalite
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Pull Request
|
||||||
|
|
||||||
|
1. Créer une PR sur Gitea
|
||||||
|
2. Remplir le template
|
||||||
|
3. Attendre les reviews
|
||||||
|
4. Merge après approbation
|
||||||
|
|
||||||
|
## 🔧 Configuration Avancée
|
||||||
|
|
||||||
|
### Gitea Configuration
|
||||||
|
|
||||||
|
```ini
|
||||||
|
# gitea.ini
|
||||||
|
[repository]
|
||||||
|
DEFAULT_BRANCH = main
|
||||||
|
PUSH_CREATE_DELETE_PROTECTED_BRANCH = true
|
||||||
|
|
||||||
|
[repository.pull-request]
|
||||||
|
ENABLE_WHITELIST = true
|
||||||
|
WHITELIST_USERS = admin,maintainer
|
||||||
|
```
|
||||||
|
|
||||||
|
### Webhooks Configuration
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# webhook.yml
|
||||||
|
url: "https://your-ci-server.com/webhook"
|
||||||
|
content_type: "application/json"
|
||||||
|
secret: "your-secret"
|
||||||
|
events:
|
||||||
|
- push
|
||||||
|
- pull_request
|
||||||
|
- issues
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Ressources
|
||||||
|
|
||||||
|
### Documentation Gitea
|
||||||
|
|
||||||
|
- [Gitea Documentation](https://docs.gitea.io/)
|
||||||
|
- [Gitea API](https://docs.gitea.io/en-us/api-usage/)
|
||||||
|
- [Gitea Actions](https://docs.gitea.io/en-us/actions/)
|
||||||
|
|
||||||
|
### Outils Utiles
|
||||||
|
|
||||||
|
- **Gitea CLI** - Interface en ligne de commande
|
||||||
|
- **Gitea SDK** - SDK pour l'automatisation
|
||||||
|
- **Gitea Runner** - Runner pour les actions
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Configuration Gitea terminée ! Le projet est prêt pour l'open source sur git.4nkweb.com** 🚀
|
@ -67,6 +67,15 @@ Guide de sécurité et bonnes pratiques.
|
|||||||
- **Audit et monitoring de sécurité**
|
- **Audit et monitoring de sécurité**
|
||||||
- **Bonnes pratiques**
|
- **Bonnes pratiques**
|
||||||
|
|
||||||
|
### 🐙 [Configuration Gitea](GITEA_SETUP.md)
|
||||||
|
Guide de configuration spécifique pour Gitea.
|
||||||
|
- **Configuration du repository Gitea**
|
||||||
|
- **Templates d'issues et pull requests**
|
||||||
|
- **Configuration CI/CD avec Gitea Actions**
|
||||||
|
- **Intégrations et webhooks**
|
||||||
|
- **Workflow de contribution**
|
||||||
|
- **Sécurité et permissions**
|
||||||
|
|
||||||
### 📈 [Performance](PERFORMANCE.md)
|
### 📈 [Performance](PERFORMANCE.md)
|
||||||
Guide d'optimisation et monitoring des performances.
|
Guide d'optimisation et monitoring des performances.
|
||||||
- **Optimisation des ressources**
|
- **Optimisation des ressources**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user