community.general icon indicating copy to clipboard operation
community.general copied to clipboard

gitlab_merge_request_rule: new module, create Gitlab Merge Request Rule (Enterprise/Ultimate Only)

Open mil1i opened this issue 7 months ago • 11 comments

SUMMARY

Adding a new Gitlab module named gitlab_merge_request_rule. This is for managing (creating, updating and deleting) merge request rules for those with Gitlab Enterprise/Ultimate.

It can take in a group name or id, as well as usernames or user id, perform the lookup (assumes the authenticated token/user has the proper access) to properly generate the request.

Has failure messages builtin for unable to find a user or a group. If the specified protected branch is not found, it defaults back to "All Branches".

If applies_to_all_protected_branches option is set to true it ignores protected_branch if set.

This should idempotently detect changes (additions or removals) for all settings.

Could probably use some additional tweaking to reduce complexity ;d but threw this together quickly for work, thought I should share it back.

ISSUE TYPE
  • New Module/Plugin Pull Request
COMPONENT NAME

gitlab_merge_request_rule

ADDITIONAL INFORMATION

Example task:

- name: Create merge request rule 'first-rule' on main and develop
  community.general.gitlab_merge_request_rule:
    api_url: "https://gitlab.company.com"
    api_token: "{{ api_token }}"
    validate_certs: false
    state: present
    project_group: 'group/subgroup'
    project_name: 'repo-name'
    rule_name: 'first-rule'
    approvals_required: 3
    applies_to_all_protected_branches: false
    protected_branch: main  # API states it can take a list, but it actually only allows a single branch, exception is not passing a branch name which sets to "All branches" or setting the above flag to true for all "protected_branches".
    usernames:
        - my_username
    user_ids:
        - 290
    groups:
        - 743  # developers group

mil1i avatar Apr 28 '25 17:04 mil1i

cc @Lunik @Shaps @lgatellier @marwatk @metanovii @nejch @scodeman @sh0shin @suukit @waheedi @zanssa click here for bot help

ansibullbot avatar Apr 28 '25 17:04 ansibullbot

The test ansible-test sanity --test compile --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:133:23: SyntaxError: self.rule_name: str = rule_name

The test ansible-test sanity --test import --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:133:23: traceback: SyntaxError: invalid syntax

The test ansible-test sanity --test pep8 [explain] failed with 30 errors:

plugins/modules/gitlab_merge_request_rule.py:241:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:241:19: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:292:1: E302: expected 2 blank lines, found 1
plugins/modules/gitlab_merge_request_rule.py:307:161: E501: line too long (163 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:311:21: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:319:25: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:348:161: E501: line too long (168 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:356:1: E303: too many blank lines (3)
plugins/modules/gitlab_merge_request_rule.py:399:15: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:399:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:26: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:14: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:32: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:34: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:23: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:25: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:36: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:38: E251: unexpected spaces around keyword / parameter equals

The test ansible-test sanity --test pep8 [explain] failed with 30 errors:

plugins/modules/gitlab_merge_request_rule.py:241:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:241:19: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:292:1: E302: expected 2 blank lines, found 1
plugins/modules/gitlab_merge_request_rule.py:307:161: E501: line too long (163 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:311:21: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:319:25: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:348:161: E501: line too long (168 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:356:1: E303: too many blank lines (3)
plugins/modules/gitlab_merge_request_rule.py:399:15: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:399:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:26: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:14: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:32: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:34: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:23: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:25: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:36: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:38: E251: unexpected spaces around keyword / parameter equals

The test ansible-test sanity --test pep8 [explain] failed with 30 errors:

plugins/modules/gitlab_merge_request_rule.py:241:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:241:19: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:292:1: E302: expected 2 blank lines, found 1
plugins/modules/gitlab_merge_request_rule.py:307:161: E501: line too long (163 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:311:21: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:319:25: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:348:161: E501: line too long (168 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:356:1: E303: too many blank lines (3)
plugins/modules/gitlab_merge_request_rule.py:399:15: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:399:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:26: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:14: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:32: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:34: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:23: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:25: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:36: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:38: E251: unexpected spaces around keyword / parameter equals

The test ansible-test sanity --test pep8 [explain] failed with 30 errors:

plugins/modules/gitlab_merge_request_rule.py:241:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:241:19: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:292:1: E302: expected 2 blank lines, found 1
plugins/modules/gitlab_merge_request_rule.py:307:161: E501: line too long (163 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:311:21: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:319:25: E117: over-indented
plugins/modules/gitlab_merge_request_rule.py:348:161: E501: line too long (168 > 160 characters)
plugins/modules/gitlab_merge_request_rule.py:356:1: E303: too many blank lines (3)
plugins/modules/gitlab_merge_request_rule.py:399:15: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:399:17: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:400:26: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:14: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:401:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:16: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:402:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:18: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:403:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:32: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:404:34: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:23: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:405:25: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:406:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:20: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:407:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:22: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:408:24: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:36: E251: unexpected spaces around keyword / parameter equals
plugins/modules/gitlab_merge_request_rule.py:409:38: E251: unexpected spaces around keyword / parameter equals

The test ansible-test sanity --test pylint [explain] failed with 7 errors:

plugins/modules/gitlab_merge_request_rule.py:134:26: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:136:28: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:137:25: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:139:28: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:155:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:421:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:436:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 15 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: nonexistent-parameter-documented: Argument 'protected_branches' is listed in DOCUMENTATION.options, but not accepted by the module argument_spec
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-type-not-in-doc: Argument 'protected_branch' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/gitlab_merge_request_rule.py:0:0: undocumented-parameter: Argument 'protected_branch' is listed in the argument_spec, but not documented in the module documentation

The test ansible-test sanity --test validate-modules [explain] failed with 15 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: nonexistent-parameter-documented: Argument 'protected_branches' is listed in DOCUMENTATION.options, but not accepted by the module argument_spec
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-type-not-in-doc: Argument 'protected_branch' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/gitlab_merge_request_rule.py:0:0: undocumented-parameter: Argument 'protected_branch' is listed in the argument_spec, but not documented in the module documentation

The test ansible-test sanity --test pylint [explain] failed with 3 errors:

plugins/modules/gitlab_merge_request_rule.py:155:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:421:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:436:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test pylint [explain] failed with 3 errors:

plugins/modules/gitlab_merge_request_rule.py:155:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:421:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:436:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 15 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: nonexistent-parameter-documented: Argument 'protected_branches' is listed in DOCUMENTATION.options, but not accepted by the module argument_spec
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-type-not-in-doc: Argument 'protected_branch' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/gitlab_merge_request_rule.py:0:0: undocumented-parameter: Argument 'protected_branch' is listed in the argument_spec, but not documented in the module documentation

The test ansible-test sanity --test pylint [explain] failed with 7 errors:

plugins/modules/gitlab_merge_request_rule.py:134:26: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:136:28: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:137:25: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:139:28: unsupported-binary-operation: unsupported operand type(s) for |
plugins/modules/gitlab_merge_request_rule.py:155:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:421:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:436:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 15 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: nonexistent-parameter-documented: Argument 'protected_branches' is listed in DOCUMENTATION.options, but not accepted by the module argument_spec
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-type-not-in-doc: Argument 'protected_branch' in argument_spec defines type as 'str' but documentation doesn't define type
plugins/modules/gitlab_merge_request_rule.py:0:0: undocumented-parameter: Argument 'protected_branch' is listed in the argument_spec, but not documented in the module documentation

click here for bot help

ansibullbot avatar Apr 28 '25 17:04 ansibullbot

The test ansible-test sanity --test pylint [explain] failed with 4 errors:

plugins/modules/gitlab_merge_request_rule.py:129:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:173:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:499:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:516:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test compile --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:149:23: SyntaxError: self.rule_name: str = rule_name

The test ansible-test sanity --test import --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:149:23: traceback: SyntaxError: invalid syntax

The test ansible-test sanity --test pylint [explain] failed with 4 errors:

plugins/modules/gitlab_merge_request_rule.py:129:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:173:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:499:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:516:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 13 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:16:0: import-before-documentation: Import found before documentation variables. All imports must appear below DOCUMENTATION/EXAMPLES/RETURN.

The test ansible-test sanity --test validate-modules [explain] failed with 13 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:16:0: import-before-documentation: Import found before documentation variables. All imports must appear below DOCUMENTATION/EXAMPLES/RETURN.

The test ansible-test sanity --test pylint [explain] failed with 4 errors:

plugins/modules/gitlab_merge_request_rule.py:129:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:173:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:499:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:516:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 13 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:16:0: import-before-documentation: Import found before documentation variables. All imports must appear below DOCUMENTATION/EXAMPLES/RETURN.

The test ansible-test sanity --test pylint [explain] failed with 4 errors:

plugins/modules/gitlab_merge_request_rule.py:129:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:173:20: ansible-bad-function: Call module.log or module.debug instead of builtins.print
plugins/modules/gitlab_merge_request_rule.py:499:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:516:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 13 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as ([]) but documentation defines default as (None)
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'approvals_required' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-required-mismatch: Argument 'rule_name' in argument_spec is required, but is not documented as being required
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:16:0: import-before-documentation: Import found before documentation variables. All imports must appear below DOCUMENTATION/EXAMPLES/RETURN.

click here for bot help

ansibullbot avatar Apr 28 '25 19:04 ansibullbot

The test ansible-test sanity --test compile --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:155:23: SyntaxError: self.rule_name: str = rule_name

The test ansible-test sanity --test import --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:155:23: traceback: SyntaxError: invalid syntax

The test ansible-test sanity --test pylint [explain] failed with 3 errors:

plugins/modules/gitlab_merge_request_rule.py:135:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:508:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:525:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 9 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('[]')
plugins/modules/gitlab_merge_request_rule.py:0:0: incompatible-default-type: DOCUMENTATION.options.protected_branch: Argument defines default as ([]) but this is incompatible with parameter type str: Value must be string for dictionary value @ data['options']['protected_branch']. Got {'description': ['A protected branch name or branch id for this rule to apply to.', 'Defaults to ALL branches if none specified.'], 'default': [], 'type': 'str'}
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}

The test ansible-test sanity --test validate-modules [explain] failed with 9 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('[]')
plugins/modules/gitlab_merge_request_rule.py:0:0: incompatible-default-type: DOCUMENTATION.options.protected_branch: Argument defines default as ([]) but this is incompatible with parameter type str: Value must be string for dictionary value @ data['options']['protected_branch']. Got {'description': ['A protected branch name or branch id for this rule to apply to.', 'Defaults to ALL branches if none specified.'], 'default': [], 'type': 'str'}
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}

The test ansible-test sanity --test pylint [explain] failed with 3 errors:

plugins/modules/gitlab_merge_request_rule.py:135:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:508:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:525:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test pylint [explain] failed with 3 errors:

plugins/modules/gitlab_merge_request_rule.py:135:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:508:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:525:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 9 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('[]')
plugins/modules/gitlab_merge_request_rule.py:0:0: incompatible-default-type: DOCUMENTATION.options.protected_branch: Argument defines default as ([]) but this is incompatible with parameter type str: Value must be string for dictionary value @ data['options']['protected_branch']. Got {'description': ['A protected branch name or branch id for this rule to apply to.', 'Defaults to ALL branches if none specified.'], 'default': [], 'type': 'str'}
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}

The test ansible-test sanity --test pylint [explain] failed with 3 errors:

plugins/modules/gitlab_merge_request_rule.py:135:4: dangerous-default-value: Dangerous default value [] as argument
plugins/modules/gitlab_merge_request_rule.py:508:12: disallowed-name: Disallowed name "_"
plugins/modules/gitlab_merge_request_rule.py:525:12: disallowed-name: Disallowed name "_"

The test ansible-test sanity --test validate-modules [explain] failed with 9 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('[]')
plugins/modules/gitlab_merge_request_rule.py:0:0: incompatible-default-type: DOCUMENTATION.options.protected_branch: Argument defines default as ([]) but this is incompatible with parameter type str: Value must be string for dictionary value @ data['options']['protected_branch']. Got {'description': ['A protected branch name or branch id for this rule to apply to.', 'Defaults to ALL branches if none specified.'], 'default': [], 'type': 'str'}
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['mil1i']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': [], 'type': 'list'}

click here for bot help

ansibullbot avatar Apr 28 '25 20:04 ansibullbot

The test ansible-test sanity --test compile --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:155:23: SyntaxError: self.rule_name: str = rule_name

The test ansible-test sanity --test import --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:155:23: traceback: SyntaxError: invalid syntax

The test ansible-test sanity --test validate-modules [explain] failed with 11 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('None')
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['(@mil1i) [[email protected]]']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}

The test ansible-test sanity --test validate-modules [explain] failed with 11 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('None')
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['(@mil1i) [[email protected]]']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}

The test ansible-test sanity --test validate-modules [explain] failed with 11 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('None')
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['(@mil1i) [[email protected]]']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}

The test ansible-test sanity --test validate-modules [explain] failed with 11 errors:

plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'groups' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'protected_branch' in argument_spec defines default as (None) but documentation defines default as ('None')
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'user_ids' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: doc-default-does-not-match-spec: Argument 'usernames' in argument_spec defines default as (None) but documentation defines default as (['None'])
plugins/modules/gitlab_merge_request_rule.py:0:0: invalid-documentation: DOCUMENTATION.author: Invalid author for dictionary value @ data['author']. Got ['(@mil1i) [[email protected]]']
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'groups' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'user_ids' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: Argument 'usernames' in argument_spec defines type as list but elements is not defined
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.groups: Argument defines type as list but elements is not defined for dictionary value @ data['options']['groups']. Got {'description': ['List of group names (full path) or group ids of members who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.user_ids: Argument defines type as list but elements is not defined for dictionary value @ data['options']['user_ids']. Got {'description': ['List of user_ids of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}
plugins/modules/gitlab_merge_request_rule.py:0:0: parameter-list-no-elements: DOCUMENTATION.options.usernames: Argument defines type as list but elements is not defined for dictionary value @ data['options']['usernames']. Got {'description': ['List of usernames of who can approve merge requests for this rule.'], 'default': 'None', 'type': 'list'}

click here for bot help

ansibullbot avatar Apr 28 '25 23:04 ansibullbot

The test ansible-test sanity --test compile --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:189:82: SyntaxError: msg=f"Failed to find protected branch id for branch ({b})",

The test ansible-test sanity --test import --python 2.7 [explain] failed with 1 error:

plugins/modules/gitlab_merge_request_rule.py:189:82: traceback: SyntaxError: invalid syntax

click here for bot help

ansibullbot avatar Apr 28 '25 23:04 ansibullbot

Thanks for your contribution! As a first quick comment, please take a look at https://github.com/ansible-collections/community.general/blob/main/CONTRIBUTING.md#creating-new-modules-or-plugins if you haven't.

felixfontein avatar Apr 29 '25 21:04 felixfontein

Hey thank you. I will take a look over the comments and adjust when I get a moment.

At least with the comment on the extra brackets, I had wrote it the way you suggested. However my editors formatter altered it to the way it is. Assuming due to line length.

mil1i avatar May 06 '25 14:05 mil1i

You probably have some auto-formatting enabled in your editor (the extra brackets are something that black or ruff tend to insert to shorten long lines). It's probably best to disable the formatter.

felixfontein avatar May 06 '25 20:05 felixfontein

PIng @mil1i

felixfontein avatar May 24 '25 13:05 felixfontein

needs_info

felixfontein avatar Jun 13 '25 19:06 felixfontein

@mil1i This pullrequest is waiting for your response. Please respond or the pullrequest will be closed.

click here for bot help

ansibullbot avatar Jul 18 '25 18:07 ansibullbot

@mil1i You have not responded to information requests in this pullrequest so we will assume it no longer affects you. If you are still interested in this, please create a new pullrequest with the requested information.

click here for bot help

ansibullbot avatar Aug 19 '25 18:08 ansibullbot