
En utilisant le bot gitlab comme exemple, je montrerai comment automatiser le processus de publication des fonctions sans serveur en les mettant automatiquement à jour à partir du référentiel git. On passe des jeux au développement pratique sur serveur sans serveur.
Qu'est-ce qu'un bot gitlab?
Imaginez que vous ayez besoin d'automatiser le processus de rĂ©action pour crĂ©er des tĂąches / bugs dans votre tracker, par exemple Gitlab (Issues) ou Jira. Vous devrez peut-ĂȘtre ajouter automatiquement un artiste en fonction des balises, dĂ©placer la tĂąche vers un jalon spĂ©cifique, ajouter un commentaire ou simplement fermer un bug indĂ©sirable. Tout cela se fait trĂšs facilement en utilisant des fonctions sans serveur. Par exemple, nous ajouterons un commentaire (note dans la terminologie Gitlab) Ă une tĂąche nouvellement créée (problĂšme).
Et comme le bot peut changer frĂ©quemment, nous automatiserons sa publication en synchronisant automatiquement la fonction avec le rĂ©fĂ©rentiel git oĂč il se trouve.
Réglage de l'environnement
Nous devons d'abord créer un projet sur Gitlab. Si vous n'avez pas de compte Gitlab, vous pouvez en créer un
ici . Vous pouvez créer un nouveau projet public, par exemple, en forçant mon projet
https://gitlab.com/bbelky/gitbotswf en cliquant sur le bouton
Fork dans le coin supérieur droit.
Pour pouvoir modifier le code du bot, vous devez le cloner localement. En fait, pour les besoins de ce guide, nous pouvons le faire en ligne, mais nous serons plus proches de la vie réelle. Ouvrez votre terminal et clonez le référentiel git. Le lien se trouve dans le coin supérieur droit de votre projet
Clone >
Clone with HTTPS . Enregistrez-le comme
URL Gitlab , il nous sera toujours utile.
git clone <link to your repo> cd gitbotswf/ ls README.md main.go
Il existe un fichier main.go dans le référentiel cloné. Ceci est notre bot écrit en golang. Le bot est trÚs simple: il reçoit un webhook de Gitlab sur l'événement de la création d'une nouvelle tùche (Issue) et ajoute un commentaire (note dans la terminologie Gitlab) à la tùche créée. Il y a des commentaires dans main.go pour vous aider à comprendre comment fonctionne le bot. Nous n'y reviendrons pas plus en détail.
Ne fermez pas le terminal - un peu plus tard, nous devrons modifier le fichier
main.go.Nous devons également créer l'API Gitlab Token pour accéder à l'API hitlab.
- Accédez à votre profil Gitlab> ParamÚtres > Jetons d'accÚs.
- Créez un nouveau jeton avec une portée API.
- Copiez-le et enregistrez-le sous GITLABTOKEN .
Le bot
Il est temps de crĂ©er le bot lui-mĂȘme. CrĂ©ons une fonction sans serveur avec le code de notre bot basĂ© sur la plateforme sans serveur
Swifty . Si vous n'avez pas encore de compte sur Rusonyx Swifty, il est temps d'en
créer un . Nous voulons automatiser le processus de déploiement d'une nouvelle fonction, alors faisons la séquence suivante: connectez notre référentiel git, créez une fonction basée sur le code du git, et placez le token api gitlab dans un magasin sécurisé.
- Connectez-vous à Swifty et sélectionnez Référentiels
- Cliquez sur Attach Repo , sélectionnez le type d' URL Git et collez votre URL Gitlab .
- N'oubliez pas de sélectionner automatiquement l'option Référentiel miroir et cliquez sur Terminé.
Maintenant, Swifty se synchronisera automatiquement avec votre rĂ©fĂ©rentiel (faites git pull) toutes les 30 minutes. CrĂ©ez maintenant la fonction elle-mĂȘme:
- Accédez à l'onglet Fonctions > Nouvelle fonction > Du référentiel (modÚles) .
- Sélectionnez le référentiel nouvellement ajouté, par exemple, gitlab.com/bbelky/gitbotswf.git . Vous voyez maintenant les fichiers de votre référentiel.
- Sélectionnez le fichier main.go , cliquez sur Suivant.
- Sélectionnez l'option Synchroniser avec le référentiel , entrez le nom de la fonction gitbotswf et cliquez sur Créer .
Maintenant, nous avons besoin d'un déclencheur API HTTP, lorsqu'elle est appelée, la fonction se déclenche:
- Accédez à l'onglet Déclencheurs > Ajouter un déclencheur > API REST (URL) .
- Copiez l'URL résultante et enregistrez-la sous BOT_URL .
TrÚs bien, nous avons maintenant un référentiel et une fonction qui se synchronise automatiquement avec lui. Ajoutez maintenant notre jeton API Gitlab aux comptes Swifty - un référentiel sécurisé et crypté pour les mots de passe et les jetons.
- Accédez à Comptes > Créer un compte .
- Sélectionnez un type générique .
- Nommez GITLABTOKEN et copiez votre jeton. Enregistrez.
Ajoutez maintenant le jeton Ă la fonction:
- Accédez à Fonctions > Fonction gitbotswf > AccÚs et cliquez sur Ajouter .
- Sélectionnez le type Comptes , GITLABTOKEN et cliquez sur Ajouter .
Activer le webhook
à la derniÚre étape, nous devons créer un webhook sur Gitlab qui se déclenchera chaque fois qu'un nouveau problÚme est créé. Passons à Gitlab.
- Sélectionnez votre projet> ParamÚtres > Intégrations .
- Ajoutez le BOT_URL précédemment enregistré dans le champ URL .
- Cochez la case en regard des événements de problÚmes et cliquez sur Ajouter un webhook .
Test
Passons au projet sur Gitlab, dans l'onglet
ProblÚmes et créons un nouveau
problÚme . Vérifiez les commentaires. Ouais! Si tout a bien fonctionné, nous verrons le commentaire
"Merci d'avoir signalé un nouveau problÚme!" . Si une erreur s'est produite quelque part, demandez-nous ici ou posez une question dans un
emplacement .
Mise à jour et libération automatique du bot
Et si nous devons mettre à jour notre bot? Grùce à l'intégration avec git, il vous suffit de mettre à jour votre code (changez le texte de la note par exemple), lancez le code dans Gitlab et Swifty mettra automatiquement à jour votre fonction!
Alors, ouvrez le fichier
main.go dans le terminal et changez la variable
note :
note := "Comments%20changed!"
Mettre Ă jour git:
git add * git commit -m "changes" git push origin master
Allez sans serveur!