Une CLI pour nettoyer ses channels Slack

Posté le April 15, 2019

Depuis plusieurs années, Slack est devenu un outil de communication très répandu dans les équipes de dev. Grâce à son API, Slack permet de s'intégrer avec de nombreuses applications, y compris les notres.

De plus en plus, j'utilise Slack pour notifier les évènements de mes applications sur un channel Slack, que ce soit pour mes projets pros ou persos. Cela peut-être des événements métiers (un client a passé commande, a envoyé un message, etc) ou applicatifs (une erreur, etc). C'est facile à mettre en place (les notifications Laravel sont fournies avec un driver), et ça améliore grandement la visibilité sur ce qui se passe sur mes apps.

Cependant, au bout d'un moment, mes channels sont remplis de notifs, la plupart étant inutiles (une fois vues et/ou traitées). Les supprimer manuellement n'est pas très pratique, car Slack ne permet pas de supprimer les messages par lot. Il faut se connecter à chaque workspace, puis pour chaque channel, supprimer les messages un par un. Il semblerait que j'avais trouvé un nouveau side-project 😉

Après quelques temps à travailler dessus, j'ai récemment publié clean-my-slack, une CLI pour supprimer les messages par lot.

En supposant que vous ayez déjà NodeJS sur votre machine, il vous suffit d'installer globalement le package:

yarn global add clean-my-slack

Et ensuite, la commande est disponible:

cmsk -h

Usage: cmsk [options] [command]

Options:
  -V, --version            output the version number
  -h, --help               output usage information

Commands:
  clean [options]          clean a channel
  workspace:add [options]  register a new token

Tous les détails de configuration et d'utilisation sont sur le readme GitHub. À noter qu'il faudra fournir un token d'authentification Slack pour chaque workspace.

Bien que les commandes sont assez minimaliste pour le moment, je prévois d'ajouter des fonctionnalités au fur et à mesure de mes besoins. Comme d'hab, commentaires et suggestions sont les bienvenus ! 😊