Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Heroku collaborator module #39001

Merged
merged 1 commit into from
May 22, 2018
Merged

Conversation

marns93
Copy link
Contributor

@marns93 marns93 commented Apr 19, 2018

SUMMARY

This module allows managing Heroku app collaborators. Heroku doesn't offer an interface that provides overview across all organization apps, therefore managing collaborators without Ansible is difficult and error-prone. The module solves this problem.

ISSUE TYPE
  • New Module Pull Request
COMPONENT NAME

heroku_collaborator

@ansibot
Copy link
Contributor

ansibot commented Apr 19, 2018

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

lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import AVAILABLE_HASH_ALGORITHMS from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import AnsibleFallbackNotFound from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import BOOLEANS_FALSE from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import BOOLEANS_TRUE from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import DEFAULT_PERM from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import EXEC_PERM_BITS from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import FILE_ATTRIBUTES from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import FILE_COMMON_ARGUMENTS from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import HAS_SYSLOG from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import HAVE_SELINUX from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import KeysView from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import MODE_OPERATOR_RE from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import Mapping from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import MutableMapping from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import MutableSequence from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import MutableSet from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import NUMBERTYPES from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import NoneType from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PASSWD_ARG_RE from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PASSWORD_MATCH from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PASS_BOOLS from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PASS_VARS from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PERMS_RE from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PERM_BITS from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PY2 from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import PY3 from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import SEQUENCETYPE from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import SIZE_RANGES from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import Sequence from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import Set from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import USERS_RE from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import algorithm from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import algorithms from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import attribute from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import b from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import basestring from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import binary_type from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import boolean from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import bytes from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import bytes_to_human from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import chain from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import datetime from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import deque from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import env_fallback from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import errno from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import format_attributes from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import get_all_subclasses from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import get_distribution from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import get_distribution_version from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import get_exception from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import get_flags_from_attributes from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import get_module_path from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import get_platform from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import grp from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import has_journal from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import hashlib from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import heuristic_log_sanitize from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import human_to_bytes from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import imap from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import integer_types from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import is_executable from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import iteritems from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import journal from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import json from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import json_dict_bytes_to_unicode from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import json_dict_unicode_to_bytes from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import jsonify from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import literal_eval from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import load_platform_subclass from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import locale from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import map from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import md5 from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import platform from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import pwd from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import re from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import reduce from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import remove_values from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import repeat from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import return_values from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import select from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import selinux from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import sha from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import shlex from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import shlex_quote from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import shutil from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import sj_version from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import stat from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import string_types from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import subprocess from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import sys from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import syslog from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import tempfile from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import text_type from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import time from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import to_bytes from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import to_native from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import to_text from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import traceback from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import types from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: unused-wildcard-import Unused import unicode from wildcard import
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: wildcard-import Wildcard import ansible.module_utils.basic

The test ansible-test sanity --test boilerplate [explain] failed with 2 errors:

lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: missing: __metaclass__ = type
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: missing: from __future__ import (absolute_import, division, print_function)

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

lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E105 GPLv3 license header not found in the first 20 lines of the module
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E305 DOCUMENTATION.version_added: required key not provided @ data['version_added']. Got None
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E307 version_added should be 2.6. Currently 0.0
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E312 No RETURN provided
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E324 Value for "default" from the argument_spec (None) for "api_key" does not match the documentation ('no')
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E324 Value for "default" from the argument_spec (None) for "apps" does not match the documentation (['no'])
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E324 Value for "default" from the argument_spec (None) for "user" does not match the documentation ('no')
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E325 argument_spec for "suppress_invitation" defines type="bool" but documentation does not
lib/ansible/modules/cloud/heroku/heroku_collaborator.py:75:0: E208 module_utils imports should import specific components, not "*"
lib/ansible/modules/cloud/heroku:0:0: E502 Ansible module subdirectories must contain an __init__.py

click here for bot help

@ansibot ansibot added cloud module This issue/PR relates to a module. needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. needs_triage Needs a first human triage before being processed. new_contributor This PR is the first contribution by a new community member. new_module This PR includes a new module. new_plugin This PR includes a new plugin. support:community This issue/PR relates to code supported by the Ansible community. support:core This issue/PR relates to code supported by the Ansible Engineering Team. labels Apr 19, 2018
@ansibot
Copy link
Contributor

ansibot commented Apr 19, 2018

The test ansible-test sanity --test validate-modules [explain] failed with 1 error:

lib/ansible/modules/cloud/heroku/heroku_collaborator.py:0:0: E312 No RETURN provided

click here for bot help

@ansibot ansibot added the ci_verified Changes made in this PR are causing tests to fail. label Apr 19, 2018
@ansibot ansibot removed the ci_verified Changes made in this PR are causing tests to fail. label Apr 19, 2018
@marns93
Copy link
Contributor Author

marns93 commented Apr 19, 2018

ready_for_review

@ansibot ansibot added core_review In order to be merged, this PR must follow the core review workflow. and removed needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. labels Apr 19, 2018
Copy link
Member

@Akasurde Akasurde left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for PR.

@@ -0,0 +1,142 @@
#!/usr/bin/python

# Copyright: Ansible Project
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copyright: (c) 2018, Ansible Project

required: true
state:
description:
- Create or remove the heroku collaborator
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add description like with all possible combinations -

If set to C(present) and heroku user is already collaborator, then ...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you, we added requested documentation.

default: "present"
notes:
- C(HEROKU_API_KEY) and C(TF_VAR_HEROKU_API_KEY) env variable can be used instead setting c(api_key).
- If you use I(--check), you can also pass the I(-v) flag to see affected apps in msg.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New person will be confused when you refer to msg, adding a brief description will help.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, we tried to add more documentation, but after several tries couldn't get YAML to validate. If you think that our current suggestion is still not acceptable, we would appreciate your help.

- { user: 'x.y@example.com', apps: ["heroku-example-app"] }
'''

RETURN = ''' # '''
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Return is not compulsory but will help end user to understand return value of module.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The documentation says:

If your module doesn't return anything (apart from the standard returns), you can use ``RETURN = ''' # '''``.

Our module indeed doesn't return anything apart from the standard returns (msg). If you think that we should document something we would appreciate further hints.


import os

DEPENDENCY_CHECK = True
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might want to change to HAS_HEROKU to match other Ansible modules code.

def main():
module = AnsibleModule(
argument_spec=dict(
api_key=dict(default=os.getenv('HEROKU_API_KEY', os.getenv('TF_VAR_HEROKU_API_KEY')), type='str'),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use env_fallback

from ansible.module_utils.basic import env_fallback
...
api_key=dict(fallback=(env_fallback, ['HEROKU_API_KEY', TF_VAR_HEROKU_API_KEY']), type='str', no_log=True),

module.fail_json(msg='Heroku authentication failure, please check your API Key')

# Prevent API key from appearing in debug logs
del module.params['api_key']
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no_log=True is argument spec will handle this.

supports_check_mode=True
)

if not DEPENDENCY_CHECK:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One suggestion, it will be helpful to create a common library under module_utils so that in future all Heroku module will use same like DigitalOcean or influxdb.

@Akasurde Akasurde removed the needs_triage Needs a first human triage before being processed. label Apr 19, 2018
@ansibot ansibot added needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. and removed core_review In order to be merged, this PR must follow the core review workflow. labels Apr 19, 2018
@ansibot ansibot added stale_ci This PR has been tested by CI more than one week ago. Close and re-open this PR to get it retested. needs_ci This PR requires CI testing to be performed. Please close and re-open this PR to trigger CI. and removed stale_ci This PR has been tested by CI more than one week ago. Close and re-open this PR to get it retested. needs_ci This PR requires CI testing to be performed. Please close and re-open this PR to trigger CI. labels Apr 27, 2018
@marns93
Copy link
Contributor Author

marns93 commented Apr 27, 2018

@Akasurde thank you very much for your review and hints, we have implemented everything to the best of our knowledge.

ready_for_review

@ansibot ansibot added core_review In order to be merged, this PR must follow the core review workflow. and removed needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. labels Apr 27, 2018
@Akasurde
Copy link
Member

LGTM. We need one more person to take a look and then we are good to go.

@ansibot ansibot added the stale_ci This PR has been tested by CI more than one week ago. Close and re-open this PR to get it retested. label May 5, 2018
@zyv
Copy link
Contributor

zyv commented May 18, 2018

Hi @Akasurde, do you think you could help us to find a second reviewer? Quite honestly we're not quite sure as to how to proceed. Many thanks!

@ansibot ansibot added the affects_2.6 This issue/PR affects Ansible v2.6 label May 18, 2018
@Akasurde
Copy link
Member

@resmo @ryansb @willthames Could you please provide your valuable reviews ?

Copy link
Contributor

@resmo resmo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong license in module_utils is a blocker. Few minor things noted but would not hold it back. looks good to me when module_utils code is bsd licensed.

@@ -0,0 +1,38 @@
# Copyright: (c) 2018, Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
Copy link
Contributor

@resmo resmo May 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

blocker: code under module_utils/* has to be BSD licensed.

- If set to C(present) and heroku user is not collaborator, then add user to app.
- If set to C(absent) and heroku user is collaborator, then delete user from app.
author:
- Marcel Arns <marcel.arns@moneymeets.com>
Copy link
Contributor

@resmo resmo May 19, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not a blocker, but please replace your mail with your github handle.

- Suppress email invitation when creating collaborator
type: bool
required: false
default: "False"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not a blocker, but it looks better in the docs if you use (yes/no) for type bool.

api_key:
description:
- Heroku API key
required: false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not a blocker, but requried=false is the default and can be omitted.

@ansibot ansibot added needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html and removed core_review In order to be merged, this PR must follow the core review workflow. stale_ci This PR has been tested by CI more than one week ago. Close and re-open this PR to get it retested. labels May 19, 2018
@marns93 marns93 force-pushed the heroku-collaborator-module branch from 6f01c92 to 6c435d7 Compare May 22, 2018 09:14
@ansibot ansibot removed the needs_rebase https://docs.ansible.com/ansible/devel/dev_guide/developing_rebasing.html label May 22, 2018
@marns93
Copy link
Contributor Author

marns93 commented May 22, 2018

@resmo thank you for the review, we have addressed your comments in 6f01c92. We have also rebased the PR against latest devel and squashed fixup commits. We have noticed that changelogs are apparently automatically generated now, so we have removed the changelog commit. If we've got it wrong, we will appreciate further guidance on your part. Many thanks!

@resmo
Copy link
Contributor

resmo commented May 22, 2018

shipit

@ansibot ansibot added core_review In order to be merged, this PR must follow the core review workflow. and removed needs_revision This PR fails CI tests or a maintainer has requested a review/revision of the PR. labels May 22, 2018
@resmo resmo merged commit 26ea64c into ansible:devel May 22, 2018
achinthagunasekara pushed a commit to achinthagunasekara/ansible that referenced this pull request May 23, 2018
jacum pushed a commit to jacum/ansible that referenced this pull request Jun 26, 2018
ilicmilan pushed a commit to ilicmilan/ansible that referenced this pull request Nov 7, 2018
@ansible ansible locked and limited conversation to collaborators May 22, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
affects_2.6 This issue/PR affects Ansible v2.6 cloud core_review In order to be merged, this PR must follow the core review workflow. module This issue/PR relates to a module. new_contributor This PR is the first contribution by a new community member. new_module This PR includes a new module. new_plugin This PR includes a new plugin. support:community This issue/PR relates to code supported by the Ansible community. support:core This issue/PR relates to code supported by the Ansible Engineering Team.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants