ansibullbot icon indicating copy to clipboard operation
ansibullbot copied to clipboard

[Documentation] How does bot identify maintainers?

Open techtonik opened this issue 6 years ago • 14 comments

I've got some ansibullbot questions:

  1. Who is the maintainer?
  2. Am I a maintainer?
  3. Where is the list of maintainers for specific modules?

Overview could link to appropriate explanation.

techtonik avatar Sep 20 '18 06:09 techtonik

It's identified from config: https://github.com/ansible/ansible/blob/devel/.github/BOTMETA.yml

webknjaz avatar Sep 20 '18 11:09 webknjaz

This is the entry point for fetching metadata about any given file, which also computes the maintainers...

https://github.com/ansible/ansibullbot/blob/master/ansibullbot/utils/component_tools.py#L995

jctanner avatar Sep 20 '18 12:09 jctanner

Just to make it absolutely clear - maintainers are not computed, but fetched from BOTMETA.yml. I mean that no source code history is processed, all processing is just matching filenames to modules and to maintainers.

techtonik avatar Sep 20 '18 18:09 techtonik

It is a "compute" operation because the authors of the file are also considered.

jctanner avatar Sep 20 '18 20:09 jctanner

Authors are from source code history?

techtonik avatar Sep 21 '18 03:09 techtonik

@techtonik no, from module metadata history. There's a variable with YAML in it, in each module.

webknjaz avatar Sep 21 '18 14:09 webknjaz

Where is it? https://github.com/ansible/ansible/tree/devel/lib/ansible/modules/files

techtonik avatar Sep 22 '18 06:09 techtonik

I mean how is it called and what is the key?

https://github.com/ansible/ansible/blob/905acd7c9ebf151b19d3f48186ad758b93ec97a0/lib/ansible/modules/files/blockinfile.py#L11-L13

techtonik avatar Sep 22 '18 06:09 techtonik

https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/files/file.py#L30

webknjaz avatar Sep 24 '18 12:09 webknjaz

https://github.com/ansible/ansible/blob/905acd7c9ebf151b19d3f48186ad758b93ec97a0/lib/ansible/modules/files/blockinfile.py#L19-L20

webknjaz avatar Sep 24 '18 12:09 webknjaz

I've got some ansibullbot questions:

Just in case, there is some info here.

  1. Who is the maintainer?

There are three groups of people which are able to approve a pull-request:

  • module maintainers: composed of module authors (listed in author key of DOCUMENTATION in source code of the module) and people mentioned in .github/BOTMETA.yml
  • namespace maintainers: composed of all module maintainers of all modules located in the same directory than the updated module is
  • core team members

Note that:

  • Usually maintainers means module maintainers.

  • Namespace maintainers can be asked to review a particular PR, usually when module maintainers are unresponsive.

  • as a last resort, ask the core team (on IRC (#ansible-devel channel) or using Public Ansible Project Meeting)

  • some pull-requests updating community supported modules (see here and here) can be automerged but a majority is manually merged by the core team

  1. Where is the list of maintainers for specific modules?

Module maintainers should be notified when a new PR/issue is created (example). Namespace maintainers are listed here. Core team members are listed in the documentation.

pilou- avatar Oct 10 '18 23:10 pilou-

How can I check my status? How can I list all maintainers for blockinfile including namespace maintainers and core members?

techtonik avatar Jan 15 '19 03:01 techtonik

@techtonik you can only check botmeta config for entries where you're a maintainer + it takes into account module authors. You can only use bot_status command in issues or PRs. I don't recall anything else we expose.

webknjaz avatar Feb 01 '19 23:02 webknjaz

Re-opening this issue as a documentation request.

mkrizek avatar May 06 '20 13:05 mkrizek