ansible/ansibullbot

[3d] BOT: Collections support: Part 1

gundalow opened this issue · 4 comments

Basic amount needed to do so Bot notifies the right people

Assumptions

  • Bot only on community.general, AWS, VMware, Windows
  • Python 2 only (Py3 support doesn't appear complete)
  • Forked codebase is OK for the moment

Requirements

  • Correctly identify authors based on DOCUMENTATION.author
  • Correctly identify authors based on BOTMETA
  • Read BOTMETA from Collections (gundalow)
  • BOTMETA to be read for community.general, aws, windows (requires https://github.com/ansible-community/collection_migration/issues/new) (gundalow)
  • Command line option to specify which collection repo
  • Remove support labels
  • labels for code type plugin, module_utils, action, etc
  • owner_pr label (helps fast track reviews)
  • Ensure on community.general subdirectories for modules are honored (w.r.t labels and maintainers)
  • Don't write to `~/.ansibullbot/cache/ansible.
  • Define & use GH Teams from the correct GH Org
  • TEST shipits from Maintainers
  • TEST merge
  • Multiple templates/multiple_module_notify.j2 ansible-collections/community.general#57
  • Non-modules still showing as support:core - update botmeta, or logic in Bot?
  • Pull in commits from ansibulbot:master that we want
  • /rebuild gundalow#15
  • community.general labels for categories and some subtopics
  • Replace hardcoded botnames. Use ansibullbot/constants.py add in a DEFAULT_BOTNAME
  • Image for GitHub Bot account
  • Issue and PR template from .github repo
  • MOTD with start/stop commands and log locations.
  • Fix links in templates (new data structure for branch, ShippableID)
  • Raise issue for Bot Part 2

Running against other repos

  • Update BOTMETA to define labels for plugin directories
  • Create labels for above
  • Give Bot user permissions on repo
  • Add Shippable projectid

Infra

  • Dedicated host (Q: One instance per Collection, or just different webhook URLs)
  • Basic monitoring
  • Dedicated GitHub account

Depends on

Out of scope

Part 2

  • rebuild_merge
  • label: backport, affects_X.Y

Part 3

  • Combine code back into main ansibullbot
    • function to specify directories, rather than hardcoding module paths
    • Remove Collection specific hacks
    • Guard items like support level around is_collection

re: Don't write to ~/.ansibullbot/cache/ansible is that because it's the wrong location for cache files in your mind or because you simply don't want it to use a disk cache?

re: Don't write to ~/.ansibullbot/cache/ansible is that because it's the wrong location for cache files in your mind or because you simply don't want it to use a disk cache?

@jctanner @mkrizek We will need the bot running against 4+ collection repos. We thought running with different cache directories maybe needed, though maybe a Linux user (and therefore different homedir) per bot instance maybe best.

Closing per above.