Stack2Slack : un bot en Go pour suivre ses notifications StackOverflow

Retrouvez la version EN de cet article ici

Stack to slack

Chez Les-Tilleuls.coop, nous utilisons Slack pour centraliser nos discussions et faciliter la communication interne et en tant que mainteneurs du framework API Platform, nous faisons de notre mieux pour aider et conseiller la communauté présente sur StackOverflow.

Toutes nos notifications (GithubTwitter, Travis etc..) sont centralisées sur Slack. Mais ce n’était pas le cas de celles concernant StackOverflow. Nous devions donc nous rendre périodiquement sur le site pour vérifier si de nouvelles questions avaient été posées. Cette solution n’étant pas des plus optimales et souhaitant centraliser au maximum toutes les alertes que nous recevions, nous avons cherché un moyen de remédier à ce manquement.

Nous avons alors créé un Slackbot (avec seulement 150 lignes de code !) pour surveiller les questions posées sur StackOverflow (ou n’importe quel site de la galaxie Stack Exchange) et ainsi recevoir sur un channel dédié les notifications des questions posées.

Ce bot est écrit en Go, le code source (sous licence MIT) ainsi que les binaires sont disponibles sur Github. Une image Docker est également disponible pour exécuter facilement le service en local ou sur vos serveurs.

Afin d’installer le bot, commencez par l’enregistrer sur Slack. Vous pourrez ensuite le démarrer. Voici un exemple en utilisant Docker :

docker run -e DEBUG=1 -e SLACK_API_TOKEN= 
-eTAG_TO_CHANNEL='{"stackoverflow-tag": "slack-channel"}' dunglas/stack2slack

Vous pouvez ajouter autant de tags que vous voulez, et ensuite configurer et choisir dans quel channel les questions apparaîtront. Enfin, si vous utilisez Kubernetes pour gérer vos serveurs (ou, comme nous, Google Container Engine), vous pouvez installer Stack to Slack en une seule commande grâce au gestionnaire de paquets Helm :  

  • Clonez le repo suivant : 
git clone git@github.com:dunglas/stack2slack.git
  • Installez le package via Helm :
 helm install  --set slackApiToken=  --settagToChannel.stackExchangeTag=slackChannel  ./chart/stack2slack

Et c’est tout !

Si vous appréciez ce bot, mettez lui une étoile sur Github. Si vous êtes à la recherche (ou voulez rejoindre) une équipe d’experts de Go, de bots ou API, contactez-nous !