Skip to content

feat: restriction fine du bot dev/test par liste de salons et/ou catégorie#89

Merged
mortifia merged 1 commit into
mainfrom
feat/flexible-channel-restriction
Jul 13, 2026
Merged

feat: restriction fine du bot dev/test par liste de salons et/ou catégorie#89
mortifia merged 1 commit into
mainfrom
feat/flexible-channel-restriction

Conversation

@mortifia

Copy link
Copy Markdown
Contributor

Résumé

  • `RESTRICT_TO_CHANNEL_ID` accepte désormais une liste de salons séparés par des virgules (rétrocompatible avec un seul identifiant).
  • Nouvelle variable `RESTRICT_TO_CATEGORY_ID` : tout salon rangé dans cette catégorie Discord est autorisé, en plus de ceux listés dans `RESTRICT_TO_CHANNEL_ID`.
  • Les deux variables sont indépendantes et optionnelles (le check n'est enregistré que si l'une des deux est définie) ; comportement de la prod (aucune des deux définie) inchangé.
  • `docker-compose.dev.yml` utilise maintenant `RESTRICT_TO_CATEGORY_ID` pointant sur la catégorie dédiée aux salons de test.
  • README mis à jour (nouvelle sous-section "Instance de dev/test").

Closes #88

Revue

Implémenté et revu via un workflow (implémentation + revue adversariale automatisée). La revue a trouvé un bug réel avant merge : if restrict_channel_ids or restrict_category_id: traitait RESTRICT_TO_CATEGORY_ID=0 comme "non défini" (0 est falsy en Python), désactivant silencieusement toute restriction. Corrigé (is not None) et vérifié par 12 cas de test unitaires couvrant tous les combos (prod, liste avec espaces, catégorie seule, DM, les deux définies, etc.).

Test plan

  • Déployé sur l'instance dev, démarrage propre confirmé par le log Restreint aux catégorie ....
  • $edit testé dans un salon de la catégorie autorisée : sans réponse (erreur), en réponse à un message non-bot (erreur) — les deux correctement colorés.
  • $prez/$cal/$site/$jdr re-testés dans les salons existants de la catégorie, toujours fonctionnels.

…gorie (#88)

RESTRICT_TO_CHANNEL_ID accepte désormais une liste de salons séparés par
des virgules (un seul identifiant, sans virgule, reste rétrocompatible).

Nouvelle variable RESTRICT_TO_CATEGORY_ID : tout salon rangé dans cette
catégorie Discord est autorisé, en plus de ceux listés dans
RESTRICT_TO_CHANNEL_ID. Permet d'ajouter de nouveaux salons de dev/test
à la catégorie sans redéployer ni reconfigurer le bot.

Les deux variables sont indépendantes et optionnelles ; ni l'une ni
l'autre définie (cas de la prod) laisse le comportement inchangé.
ctx.channel.category_id est lu via getattr avec une valeur par défaut
pour ne pas planter sur les DM (qui n'ont pas cette catégorie).

docker-compose.dev.yml utilise maintenant RESTRICT_TO_CATEGORY_ID
pointant sur la catégorie de salons de test dédiée.

Closes #88
@mortifia mortifia merged commit 68edd76 into main Jul 13, 2026
5 checks passed
@mortifia mortifia deleted the feat/flexible-channel-restriction branch July 13, 2026 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Restriction de salon de l'instance dev/test trop rigide (un seul ID de salon)

1 participant