Documentation
Intégration GitHub
Jetscale s'intègre avec GitHub pour créer automatiquement des pull requests contenant du code Terraform prêt pour la production pour vos recommandations d'optimisation des coûts.
Jetscale s'intègre avec GitHub pour créer automatiquement des pull requests contenant du code Terraform prêt pour la production pour vos recommandations d'optimisation des coûts.
Aperçu
L'intégration GitHub permet à Jetscale de :
- Pousser du code Terraform généré vers vos dépôts
- Créer des pull requests avec des recommandations d'optimisation détaillées
- S'intégrer de manière transparente avec votre flux de travail de révision de code existant
- Suivre l'état de mise en œuvre des recommandations
Prérequis
Avant de connecter GitHub, vous aurez besoin de :
- Compte GitHub avec accès à votre dépôt d'infrastructure
- Accès au dépôt avec permissions de push
- Personal Access Token (PAT) avec les portées suivantes :
repo- Contrôle total des dépôts privésread:org- Lire l'appartenance aux organisations et équipesuser:email- Accéder aux adresses email des utilisateurs
Guide de configuration
Étape 1 : Créer un Personal Access Token GitHub
- Accédez à GitHub Settings → Developer settings → Personal access tokens
- Cliquez sur Generate new token → Generate new token (classic)
- Donnez à votre jeton un nom descriptif (ex : "Jetscale Integration")
- Sélectionnez les portées requises :
- ✓
repo(Contrôle total des dépôts privés) - ✓
read:org(Lire l'appartenance aux organisations et équipes) - ✓
user:email(Accéder aux adresses email des utilisateurs)
- ✓
- Cliquez sur Generate token
- Important : Copiez votre jeton immédiatement - vous ne pourrez plus le voir
Note de sécurité : Stockez votre jeton en toute sécurité. Jetscale chiffre les jetons au repos et ne les enregistre ou ne les expose jamais.
Étape 2 : Connecter GitHub dans Jetscale
- Accédez à Paramètres → Intégrations dans Jetscale
- Cliquez sur Connect GitHub
- Collez votre Personal Access Token
- Cliquez sur Verify and Connect
Jetscale vérifiera votre jeton et affichera les informations de votre compte GitHub.
Étape 3 : Sélectionner votre dépôt
- Dans le menu déroulant Repository, sélectionnez votre dépôt d'infrastructure Terraform
- Jetscale vérifiera que vous avez un accès en push
- Le dépôt sélectionné sera utilisé pour toutes les futures pull requests
Vous pouvez changer le dépôt sélectionné à tout moment depuis les paramètres d'intégration.
Fonctionnement
Création de pull request
Lorsque vous approuvez une recommandation d'optimisation des coûts dans Jetscale :
- Création de branche : Jetscale crée une nouvelle branche de fonctionnalité depuis votre branche par défaut
- Format de nommage de branche :
jetscale/optimization-{resource-type}-{date} - Exemple :
jetscale/optimization-rds-2024-01-15
- Format de nommage de branche :
- Push de fichiers : Les fichiers Terraform générés sont poussés vers le répertoire
terraform/- Les fichiers incluent toutes les définitions de ressources nécessaires
- Les commentaires expliquent la justification de l'optimisation
- Les variables sont extraites lorsque approprié
- Pull Request : Une PR est automatiquement créée avec :
- Titre : Résumé descriptif de l'optimisation
- Description : Analyse détaillée de l'impact sur les coûts, considérations de performance et notes de mise en œuvre
- Labels : Automatiquement tagué avec
jetscaleet le type de ressource
Structure de la pull request
## Optimisation des coûts : Redimensionnement d'instance RDS
### Résumé
Réduire l'instance RDS `production-db` de db.r5.2xlarge à db.r5.xlarge
### Impact sur les coûts
- **Coût mensuel actuel** : $730.00
- **Coût mensuel projeté** : $365.00
- **Économies mensuelles** : $365.00 (réduction de 50%)
- **Économies annuelles** : $4,380.00
### Analyse des performances
- Utilisation CPU actuelle : 15-25% en moyenne
- Utilisation mémoire actuelle : 30-40% en moyenne
- L'instance recommandée offre 2x l'utilisation de pointe actuelle
- Aucune dégradation de performance attendue
### Fichiers modifiés
- `terraform/rds_production_db.tf` - Classe d'instance mise à jour
- `terraform/variables.tf` - Variable instance_class ajoutée
### Recommandations de test
1. Appliquer les modifications d'abord dans l'environnement de staging
2. Surveiller les métriques de performance pendant 48 heures
3. Vérifier que les temps de réponse de l'application restent cohérents
4. Vérifier que les alarmes CloudWatch sont correctement configurées
---
🤖 Généré par [Jetscale](https://jetscale.ai)
Exemple de code Terraform
resource "aws_db_instance" "production_db" {
identifier = "production-db"
engine = "postgres"
engine_version = "14.7"
# Optimisé de db.r5.2xlarge à db.r5.xlarge
# Réduction des coûts : $365/mois (50%)
# Basé sur 15-25% CPU moyen, 30-40% utilisation mémoire moyenne
instance_class = "db.r5.xlarge"
allocated_storage = 100
storage_type = "gp3"
storage_encrypted = true
# ... autre configuration inchangée
}
Permissions de dépôt
Jetscale nécessite un accès push à votre dépôt pour créer des branches et des pull requests. L'intégration va :
✓ Créer des branches de fonctionnalité ✓ Pousser des fichiers Terraform ✓ Créer des pull requests ✓ Lire les métadonnées du dépôt
✗ Ne peut pas fusionner les pull requests ✗ Ne peut pas supprimer les branches ✗ Ne peut pas modifier les fichiers existants en dehors des PR créées ✗ Ne peut pas accéder aux secrets du dépôt
Gestion de l'intégration
Voir l'état de l'intégration
Depuis Paramètres → Intégrations → GitHub, vous pouvez voir :
- Compte GitHub connecté
- Dépôt sélectionné
- Heure de dernière vérification
- Pull requests récentes créées par Jetscale
Changer de dépôt
- Accédez à Paramètres → Intégrations → GitHub
- Cliquez sur Change Repository
- Sélectionnez un dépôt différent dans le menu déroulant
- Cliquez sur Update
Déconnecter GitHub
Pour supprimer l'intégration GitHub :
- Accédez à Paramètres → Intégrations → GitHub
- Cliquez sur Disconnect
- Confirmez la déconnexion
Important : La déconnexion va :
- Supprimer votre jeton d'accès stocké de Jetscale
- Arrêter la création automatique de PR pour les nouvelles recommandations
- Préserver les pull requests existantes (elles restent ouvertes dans GitHub)
Vous pouvez vous reconnecter à tout moment en utilisant un Personal Access Token nouveau ou existant.
Dépannage
Échec de vérification du jeton
Problème : Erreur "Invalid GitHub Token" lors de la connexion
Solutions :
- Vérifiez que toutes les portées requises sont sélectionnées (
repo,read:org,user:email) - Vérifiez que le jeton n'a pas expiré
- Assurez-vous d'avoir copié le jeton complet sans espaces supplémentaires
- Essayez de générer un nouveau jeton avec les portées correctes
Dépôt non listé
Problème : Impossible de trouver votre dépôt dans le menu déroulant de sélection
Solutions :
- Vérifiez que vous avez un accès en push au dépôt
- Vérifiez si le dépôt appartient à une organisation - assurez-vous que votre jeton a la portée
read:org - Essayez de vous reconnecter avec un nouveau jeton
- Confirmez que le dépôt existe et n'est pas archivé
Échec de création de pull request
Problème : Recommandation approuvée mais la PR n'a pas été créée
Solutions :
- Vérifiez qu'une branche n'existe pas déjà avec le même nom
- Vérifiez que vous avez toujours un accès en push au dépôt
- Assurez-vous que la branche par défaut n'a pas été supprimée ou renommée
- Consultez les limites de taux de GitHub - vous devrez peut-être attendre brièvement
La branche existe déjà
Problème : Erreur "Branch already exists" lors de la création de PR
Solutions :
- Supprimez ou renommez la branche existante dans GitHub
- Réessayez la recommandation d'optimisation - Jetscale générera un nouveau nom de branche avec horodatage
- Fusionnez ou fermez la PR existante si elle provient d'une recommandation précédente
Bonnes pratiques
Gestion des jetons
- Créez un jeton dédié pour Jetscale au lieu de réutiliser des jetons
- Définissez une date d'expiration et renouvelez avant l'expiration
- Utilisez des permissions granulaires quand elles seront disponibles pour votre organisation
- Alternez les jetons régulièrement (tous les 90 jours recommandé)
Configuration du dépôt
- Utilisez un dépôt dédié pour l'infrastructure Terraform
- Activez la protection de branche sur votre branche par défaut pour exiger des révisions
- Configurez CODEOWNERS pour demander automatiquement des révisions de votre équipe
- Configurez des vérifications CI/CD pour valider les modifications Terraform avant la fusion
Flux de travail des pull requests
- Examinez la description de la PR pour l'impact sur les coûts et l'analyse des performances
- Testez en staging avant d'appliquer en production
- Surveillez les métriques après avoir appliqué les modifications
- Fermez les PR que vous n'implémenterez pas plutôt que de les laisser ouvertes indéfiniment
Considérations de sécurité
Sécurité des jetons
- Jetscale chiffre les Personal Access Tokens au repos avec AES-256
- Les jetons ne sont jamais enregistrés ou exposés dans les réponses API
- Tous les appels API vers GitHub utilisent HTTPS avec TLS 1.2+
- Les jetons sont stockés séparément des données utilisateur avec un accès restreint
Piste d'audit
Chaque action effectuée par Jetscale est enregistrée :
- Tous les appels API GitHub sont enregistrés
- La création de pull request est suivie par recommandation
- Les tentatives échouées sont capturées avec les détails d'erreur
- Les journaux d'audit sont disponibles dans votre tableau de bord Jetscale
Révocation de l'accès
Pour révoquer immédiatement l'accès de Jetscale :
- Dans GitHub : Accédez à Settings → Applications → Personal access tokens
- Cliquez sur Delete à côté du jeton Jetscale
- Dans Jetscale : Accédez à Paramètres → Intégrations → GitHub et cliquez sur Disconnect
Une fois révoqué, Jetscale perd immédiatement tout accès à vos dépôts.
Référence API
Pour l'accès programmatique à l'intégration GitHub, consultez notre Documentation API.
Points de terminaison clés :
POST /api/v1/github/action/connect- Connecter un compte GitHubPOST /api/v1/github/action/select-repo- Sélectionner un dépôtGET /api/v1/github/repos- Lister les dépôts accessiblesPOST /api/v1/github/action/pr/create- Créer une pull requestPOST /api/v1/github/action/disconnect- Déconnecter GitHub
Support
Besoin d'aide avec l'intégration GitHub ?
- Email : support@jetscale.ai
- Documentation : FAQ
- Problèmes GitHub : Signaler un problème
Intégrations
Connectez Jetscale à votre flux de travail de développement existant pour automatiser l'implémentation de l'optimisation des coûts.
Intégration Jira
Jetscale s'intègre avec Jira pour créer automatiquement des tickets pour les recommandations d'optimisation des coûts, permettant un suivi transparent via votre flux de gestion...
