Ability to restrict running manual gitlab-ci tasks to specific users

Problem to solve

Like this issue, but for users.

User experience goal

Only specific given users (usernames) able to run manual actions whom have necessary accesses on gitlab-ci.yaml.

Proposal

deploy_production:
  stage: deploy
  script:
    - echo "Deploy to production"
  when: manual
    only:
      users:
        - maintainer2
        - maintainer4

Further details

We can not combine with the roles.

maintainer: (rule)

  • (maintainer) maintainer1
  • (maintainer) maintainer2 (only this user can make deploy)
  • (maintainer) maintainer3
  • (maintainer) maintainer4 (only this user can make deploy)

If we use:

      roles:
        - maintainer

...then it should be override users sections and should warn us something like: "Hey, you're trying to override roles over users!"

Waiting for your thoughts. :)