{"action":"created","comment":{"url":"https://api.github.com/repos/ansible/ansible/pulls/comments/204483178","pull_request_review_id":139568304,"id":204483178,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNDQ4MzE3OA==","diff_hunk":"@@ -0,0 +1,217 @@\n+#!/usr/bin/python\n+# Copyright: Ansible Project\n+# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)\n+\n+from __future__ import absolute_import, division, print_function\n+__metaclass__ = type\n+\n+\n+ANSIBLE_METADATA = {'metadata_version': '1.1',\n+                    'status': ['preview'],\n+                    'supported_by': 'network'}\n+\n+\n+DOCUMENTATION = \"\"\"\n+---\n+module: cli_command\n+version_added: \"2.7\"\n+author: \"Nathaniel Case (@qalthos)\"\n+short_description: Run arbitrary commands on cli-based network devices\n+description:\n+  - Sends an arbitrary set of commands to a network device and returns the\n+    results read from the device.  This module includes an argument that\n+    will cause the module to wait for a specific condition before returning\n+    or timing out if the condition is not met.\n+notes:\n+  - Tested against EOS 4.15\n+options:\n+  commands:\n+    description:\n+      - The commands to send to the remote EOS device over the\n+        configured provider.  The resulting output from the command\n+        is returned.  If the I(wait_for) argument is provided, the\n+        module is not returned until the condition is satisfied or\n+        the number of I(retries) has been exceeded.\n+    required: true\n+  wait_for:\n+    description:\n+      - Specifies what to evaluate from the output of the command\n+        and what conditionals to apply.  This argument will cause\n+        the task to wait for a particular conditional to be true\n+        before moving forward.   If the conditional is not true\n+        by the configured retries, the task fails.\n+        Note - With I(wait_for) the value in C(result['stdout']) can be accessed\n+        using C(result), that is to access C(result['stdout'][0]) use C(result[0]) See examples.\n+    aliases: ['waitfor']\n+    version_added: \"2.2\"\n+  match:\n+    description:\n+      - The I(match) argument is used in conjunction with the\n+        I(wait_for) argument to specify the match policy.  Valid\n+        values are C(all) or C(any).  If the value is set to C(all)\n+        then all conditionals in the I(wait_for) must be satisfied.  If\n+        the value is set to C(any) then only one of the values must be\n+        satisfied.\n+    default: all\n+    choices: ['any', 'all']\n+    version_added: \"2.2\"\n+  retries:\n+    description:\n+      - Specifies the number of retries a command should be tried\n+        before it is considered failed.  The command is run on the\n+        target device every retry and evaluated against the I(wait_for)\n+        conditionals.\n+    default: 10\n+  interval:\n+    description:\n+      - Configures the interval in seconds to wait between retries\n+        of the command.  If the command does not pass the specified\n+        conditional, the interval indicates how to long to wait before\n+        trying the command again.\n+    default: 1\n+\"\"\"\n+\n+EXAMPLES = \"\"\"\n+- name: run show version on remote devices\n+  cli_command:\n+    commands: show version\n+\n+- name: run show version and check to see if output contains Arista\n+  cli_command:\n+    commands: show version\n+    wait_for: result[0] contains Arista\n+\n+- name: run multiple commands on remote nodes\n+  cli_command:\n+    commands:\n+      - show version\n+      - show interfaces\n+\n+- name: run multiple commands and evaluate the output\n+  cli_command:\n+    commands:\n+      - show version\n+      - show interfaces\n+    wait_for:\n+      - result[0] contains Arista\n+      - result[1] contains Loopback0\n+\n+- name: run commands and specify the output format\n+  cli_command:\n+    commands:\n+      - command: show version\n+        output: json\n+\"\"\"\n+\n+RETURN = \"\"\"\n+stdout:\n+  description: The set of responses from the commands\n+  returned: always apart from low level errors (such as action plugin)\n+  type: list\n+  sample: ['...', '...']\n+stdout_lines:\n+  description: The value of stdout split into a list\n+  returned: always apart from low level errors (such as action plugin)\n+  type: list\n+  sample: [['...', '...'], ['...'], ['...']]\n+failed_conditions:\n+  description: The list of conditionals that have failed\n+  returned: failed\n+  type: list\n+  sample: ['...', '...']\n+\"\"\"\n+import time\n+\n+from ansible.module_utils._text import to_native\n+from ansible.module_utils.basic import AnsibleModule\n+from ansible.module_utils.connection import Connection\n+from ansible.module_utils.network.common.parsing import Conditional\n+from ansible.module_utils.network.common.utils import ComplexList, to_lines\n+\n+VALID_KEYS = ['command', 'output', 'prompt', 'response']\n+\n+\n+def parse_commands(module, warnings):\n+    transform = ComplexList(dict(\n+        command=dict(key=True),\n+        output=dict(),\n+        prompt=dict(),\n+        answer=dict()\n+    ), module)\n+\n+    commands = transform(module.params['commands'])\n+\n+    if module.check_mode:\n+        for item in list(commands):\n+            if not item['command'].startswith('show'):\n+                warnings.append(\n+                    'Only show commands are supported when using check_mode, not '","path":"lib/ansible/modules/network/cli/cli_command.py","position":148,"original_position":148,"commit_id":"443b7ebb60fa2dba5d4740a48dcfde3e1f265c31","original_commit_id":"078ea4b008f2bd82724c5709d55412dff5444076","user":{"login":"ganeshrn","id":5292461,"node_id":"MDQ6VXNlcjUyOTI0NjE=","avatar_url":"https://avatars0.githubusercontent.com/u/5292461?v=4","gravatar_id":"","url":"https://api.github.com/users/ganeshrn","html_url":"https://github.com/ganeshrn","followers_url":"https://api.github.com/users/ganeshrn/followers","following_url":"https://api.github.com/users/ganeshrn/following{/other_user}","gists_url":"https://api.github.com/users/ganeshrn/gists{/gist_id}","starred_url":"https://api.github.com/users/ganeshrn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ganeshrn/subscriptions","organizations_url":"https://api.github.com/users/ganeshrn/orgs","repos_url":"https://api.github.com/users/ganeshrn/repos","events_url":"https://api.github.com/users/ganeshrn/events{/privacy}","received_events_url":"https://api.github.com/users/ganeshrn/received_events","type":"User","site_admin":false},"body":"I missed the check_mode condition. Please ignore above comment","created_at":"2018-07-23T17:06:38Z","updated_at":"2018-07-23T17:06:38Z","html_url":"https://github.com/ansible/ansible/pull/42916#discussion_r204483178","pull_request_url":"https://api.github.com/repos/ansible/ansible/pulls/42916","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/ansible/ansible/pulls/comments/204483178"},"html":{"href":"https://github.com/ansible/ansible/pull/42916#discussion_r204483178"},"pull_request":{"href":"https://api.github.com/repos/ansible/ansible/pulls/42916"}},"in_reply_to_id":203374080},"pull_request":{"url":"https://api.github.com/repos/ansible/ansible/pulls/42916","id":202075643,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAyMDc1NjQz","html_url":"https://github.com/ansible/ansible/pull/42916","diff_url":"https://github.com/ansible/ansible/pull/42916.diff","patch_url":"https://github.com/ansible/ansible/pull/42916.patch","issue_url":"https://api.github.com/repos/ansible/ansible/issues/42916","number":42916,"state":"open","locked":false,"title":"[WIP] cli_command module","user":{"login":"Qalthos","id":649648,"node_id":"MDQ6VXNlcjY0OTY0OA==","avatar_url":"https://avatars2.githubusercontent.com/u/649648?v=4","gravatar_id":"","url":"https://api.github.com/users/Qalthos","html_url":"https://github.com/Qalthos","followers_url":"https://api.github.com/users/Qalthos/followers","following_url":"https://api.github.com/users/Qalthos/following{/other_user}","gists_url":"https://api.github.com/users/Qalthos/gists{/gist_id}","starred_url":"https://api.github.com/users/Qalthos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Qalthos/subscriptions","organizations_url":"https://api.github.com/users/Qalthos/orgs","repos_url":"https://api.github.com/users/Qalthos/repos","events_url":"https://api.github.com/users/Qalthos/events{/privacy}","received_events_url":"https://api.github.com/users/Qalthos/received_events","type":"User","site_admin":false},"body":"##### SUMMARY\r\n<!--- Describe the change, including rationale and design decisions -->\r\n\r\n<!--- If you are fixing an existing issue, please include \"Fixes #nnn\" in your\r\ncommit message and your description; but you should still explain what\r\nthe change does.-->\r\nCloses #39284\r\n\r\n##### ISSUE TYPE\r\n<!--- Pick one below and delete the rest: -->\r\n - New Module Pull Request\r\n\r\n##### COMPONENT NAME\r\n<!--- Name of the module, plugin, module or task -->\r\ncli_command\r\n\r\n##### ANSIBLE VERSION\r\n<!--- Paste verbatim output from \"ansible --version\" between quotes below -->\r\n```\r\n2.7\r\n```\r\n","created_at":"2018-07-17T21:30:08Z","updated_at":"2018-07-23T17:06:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"2c89aadb61c672dd3d0e6135f46b405ae1231aa6","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":529643857,"node_id":"MDU6TGFiZWw1Mjk2NDM4NTc=","url":"https://api.github.com/repos/ansible/ansible/labels/WIP","name":"WIP","color":"fef2c0","default":false},{"id":947190508,"node_id":"MDU6TGFiZWw5NDcxOTA1MDg=","url":"https://api.github.com/repos/ansible/ansible/labels/affects_2.7","name":"affects_2.7","color":"ededed","default":false},{"id":496359346,"node_id":"MDU6TGFiZWw0OTYzNTkzNDY=","url":"https://api.github.com/repos/ansible/ansible/labels/module","name":"module","color":"1d76db","default":false},{"id":339653091,"node_id":"MDU6TGFiZWwzMzk2NTMwOTE=","url":"https://api.github.com/repos/ansible/ansible/labels/networking","name":"networking","color":"c7def8","default":false},{"id":473225334,"node_id":"MDU6TGFiZWw0NzMyMjUzMzQ=","url":"https://api.github.com/repos/ansible/ansible/labels/new_module","name":"new_module","color":"c2e0c6","default":false},{"id":153577825,"node_id":"MDU6TGFiZWwxNTM1Nzc4MjU=","url":"https://api.github.com/repos/ansible/ansible/labels/new_plugin","name":"new_plugin","color":"bfe5bf","default":false},{"id":731809659,"node_id":"MDU6TGFiZWw3MzE4MDk2NTk=","url":"https://api.github.com/repos/ansible/ansible/labels/nxos","name":"nxos","color":"c7def8","default":false},{"id":636327968,"node_id":"MDU6TGFiZWw2MzYzMjc5Njg=","url":"https://api.github.com/repos/ansible/ansible/labels/support:community","name":"support:community","color":"ededed","default":false},{"id":636352796,"node_id":"MDU6TGFiZWw2MzYzNTI3OTY=","url":"https://api.github.com/repos/ansible/ansible/labels/support:core","name":"support:core","color":"ededed","default":false},{"id":468273802,"node_id":"MDU6TGFiZWw0NjgyNzM4MDI=","url":"https://api.github.com/repos/ansible/ansible/labels/test","name":"test","color":"0e8a16","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ansible/ansible/pulls/42916/commits","review_comments_url":"https://api.github.com/repos/ansible/ansible/pulls/42916/comments","review_comment_url":"https://api.github.com/repos/ansible/ansible/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ansible/ansible/issues/42916/comments","statuses_url":"https://api.github.com/repos/ansible/ansible/statuses/443b7ebb60fa2dba5d4740a48dcfde3e1f265c31","head":{"label":"Qalthos:cli-command","ref":"cli-command","sha":"443b7ebb60fa2dba5d4740a48dcfde3e1f265c31","user":{"login":"Qalthos","id":649648,"node_id":"MDQ6VXNlcjY0OTY0OA==","avatar_url":"https://avatars2.githubusercontent.com/u/649648?v=4","gravatar_id":"","url":"https://api.github.com/users/Qalthos","html_url":"https://github.com/Qalthos","followers_url":"https://api.github.com/users/Qalthos/followers","following_url":"https://api.github.com/users/Qalthos/following{/other_user}","gists_url":"https://api.github.com/users/Qalthos/gists{/gist_id}","starred_url":"https://api.github.com/users/Qalthos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Qalthos/subscriptions","organizations_url":"https://api.github.com/users/Qalthos/orgs","repos_url":"https://api.github.com/users/Qalthos/repos","events_url":"https://api.github.com/users/Qalthos/events{/privacy}","received_events_url":"https://api.github.com/users/Qalthos/received_events","type":"User","site_admin":false},"repo":{"id":54669617,"node_id":"MDEwOlJlcG9zaXRvcnk1NDY2OTYxNw==","name":"ansible","full_name":"Qalthos/ansible","owner":{"login":"Qalthos","id":649648,"node_id":"MDQ6VXNlcjY0OTY0OA==","avatar_url":"https://avatars2.githubusercontent.com/u/649648?v=4","gravatar_id":"","url":"https://api.github.com/users/Qalthos","html_url":"https://github.com/Qalthos","followers_url":"https://api.github.com/users/Qalthos/followers","following_url":"https://api.github.com/users/Qalthos/following{/other_user}","gists_url":"https://api.github.com/users/Qalthos/gists{/gist_id}","starred_url":"https://api.github.com/users/Qalthos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Qalthos/subscriptions","organizations_url":"https://api.github.com/users/Qalthos/orgs","repos_url":"https://api.github.com/users/Qalthos/repos","events_url":"https://api.github.com/users/Qalthos/events{/privacy}","received_events_url":"https://api.github.com/users/Qalthos/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Qalthos/ansible","description":"Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications— automate in a language that approaches plain English, using SSH, with no agents to install on remote systems.","fork":true,"url":"https://api.github.com/repos/Qalthos/ansible","forks_url":"https://api.github.com/repos/Qalthos/ansible/forks","keys_url":"https://api.github.com/repos/Qalthos/ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Qalthos/ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Qalthos/ansible/teams","hooks_url":"https://api.github.com/repos/Qalthos/ansible/hooks","issue_events_url":"https://api.github.com/repos/Qalthos/ansible/issues/events{/number}","events_url":"https://api.github.com/repos/Qalthos/ansible/events","assignees_url":"https://api.github.com/repos/Qalthos/ansible/assignees{/user}","branches_url":"https://api.github.com/repos/Qalthos/ansible/branches{/branch}","tags_url":"https://api.github.com/repos/Qalthos/ansible/tags","blobs_url":"https://api.github.com/repos/Qalthos/ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Qalthos/ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Qalthos/ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/Qalthos/ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Qalthos/ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/Qalthos/ansible/languages","stargazers_url":"https://api.github.com/repos/Qalthos/ansible/stargazers","contributors_url":"https://api.github.com/repos/Qalthos/ansible/contributors","subscribers_url":"https://api.github.com/repos/Qalthos/ansible/subscribers","subscription_url":"https://api.github.com/repos/Qalthos/ansible/subscription","commits_url":"https://api.github.com/repos/Qalthos/ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/Qalthos/ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/Qalthos/ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/Qalthos/ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/Qalthos/ansible/contents/{+path}","compare_url":"https://api.github.com/repos/Qalthos/ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Qalthos/ansible/merges","archive_url":"https://api.github.com/repos/Qalthos/ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Qalthos/ansible/downloads","issues_url":"https://api.github.com/repos/Qalthos/ansible/issues{/number}","pulls_url":"https://api.github.com/repos/Qalthos/ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/Qalthos/ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/Qalthos/ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Qalthos/ansible/labels{/name}","releases_url":"https://api.github.com/repos/Qalthos/ansible/releases{/id}","deployments_url":"https://api.github.com/repos/Qalthos/ansible/deployments","created_at":"2016-03-24T19:45:04Z","updated_at":"2018-07-09T14:27:24Z","pushed_at":"2018-07-23T16:31:10Z","git_url":"git://github.com/Qalthos/ansible.git","ssh_url":"git@github.com:Qalthos/ansible.git","clone_url":"https://github.com/Qalthos/ansible.git","svn_url":"https://github.com/Qalthos/ansible","homepage":"http://ansible.com/","size":122591,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"devel"}},"base":{"label":"ansible:devel","ref":"devel","sha":"95a117090880906b757ba0643cd277b499e34048","user":{"login":"ansible","id":1507452,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MDc0NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1507452?v=4","gravatar_id":"","url":"https://api.github.com/users/ansible","html_url":"https://github.com/ansible","followers_url":"https://api.github.com/users/ansible/followers","following_url":"https://api.github.com/users/ansible/following{/other_user}","gists_url":"https://api.github.com/users/ansible/gists{/gist_id}","starred_url":"https://api.github.com/users/ansible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ansible/subscriptions","organizations_url":"https://api.github.com/users/ansible/orgs","repos_url":"https://api.github.com/users/ansible/repos","events_url":"https://api.github.com/users/ansible/events{/privacy}","received_events_url":"https://api.github.com/users/ansible/received_events","type":"Organization","site_admin":false},"repo":{"id":3638964,"node_id":"MDEwOlJlcG9zaXRvcnkzNjM4OTY0","name":"ansible","full_name":"ansible/ansible","owner":{"login":"ansible","id":1507452,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE1MDc0NTI=","avatar_url":"https://avatars2.githubusercontent.com/u/1507452?v=4","gravatar_id":"","url":"https://api.github.com/users/ansible","html_url":"https://github.com/ansible","followers_url":"https://api.github.com/users/ansible/followers","following_url":"https://api.github.com/users/ansible/following{/other_user}","gists_url":"https://api.github.com/users/ansible/gists{/gist_id}","starred_url":"https://api.github.com/users/ansible/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ansible/subscriptions","organizations_url":"https://api.github.com/users/ansible/orgs","repos_url":"https://api.github.com/users/ansible/repos","events_url":"https://api.github.com/users/ansible/events{/privacy}","received_events_url":"https://api.github.com/users/ansible/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ansible/ansible","description":"Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy. Avoid writing scripts or custom code to deploy and update your applications — automate in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com/ansible/","fork":false,"url":"https://api.github.com/repos/ansible/ansible","forks_url":"https://api.github.com/repos/ansible/ansible/forks","keys_url":"https://api.github.com/repos/ansible/ansible/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ansible/ansible/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ansible/ansible/teams","hooks_url":"https://api.github.com/repos/ansible/ansible/hooks","issue_events_url":"https://api.github.com/repos/ansible/ansible/issues/events{/number}","events_url":"https://api.github.com/repos/ansible/ansible/events","assignees_url":"https://api.github.com/repos/ansible/ansible/assignees{/user}","branches_url":"https://api.github.com/repos/ansible/ansible/branches{/branch}","tags_url":"https://api.github.com/repos/ansible/ansible/tags","blobs_url":"https://api.github.com/repos/ansible/ansible/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ansible/ansible/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ansible/ansible/git/refs{/sha}","trees_url":"https://api.github.com/repos/ansible/ansible/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ansible/ansible/statuses/{sha}","languages_url":"https://api.github.com/repos/ansible/ansible/languages","stargazers_url":"https://api.github.com/repos/ansible/ansible/stargazers","contributors_url":"https://api.github.com/repos/ansible/ansible/contributors","subscribers_url":"https://api.github.com/repos/ansible/ansible/subscribers","subscription_url":"https://api.github.com/repos/ansible/ansible/subscription","commits_url":"https://api.github.com/repos/ansible/ansible/commits{/sha}","git_commits_url":"https://api.github.com/repos/ansible/ansible/git/commits{/sha}","comments_url":"https://api.github.com/repos/ansible/ansible/comments{/number}","issue_comment_url":"https://api.github.com/repos/ansible/ansible/issues/comments{/number}","contents_url":"https://api.github.com/repos/ansible/ansible/contents/{+path}","compare_url":"https://api.github.com/repos/ansible/ansible/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ansible/ansible/merges","archive_url":"https://api.github.com/repos/ansible/ansible/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ansible/ansible/downloads","issues_url":"https://api.github.com/repos/ansible/ansible/issues{/number}","pulls_url":"https://api.github.com/repos/ansible/ansible/pulls{/number}","milestones_url":"https://api.github.com/repos/ansible/ansible/milestones{/number}","notifications_url":"https://api.github.com/repos/ansible/ansible/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ansible/ansible/labels{/name}","releases_url":"https://api.github.com/repos/ansible/ansible/releases{/id}","deployments_url":"https://api.github.com/repos/ansible/ansible/deployments","created_at":"2012-03-06T14:58:02Z","updated_at":"2018-07-23T17:02:57Z","pushed_at":"2018-07-23T17:06:26Z","git_url":"git://github.com/ansible/ansible.git","ssh_url":"git@github.com:ansible/ansible.git","clone_url":"https://github.com/ansible/ansible.git","svn_url":"https://github.com/ansible/ansible","homepage":"https://www.ansible.com/","size":135879,"stargazers_count":31527,"watchers_count":31527,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":12112,"mirror_url":null,"archived":false,"open_issues_count":5332,"license":{"key":"gpl-3.0","name":"GNU General Public License v3.0","spdx_id":"GPL-3.0","url":"https://api.github.com/licenses/gpl-3.0","node_id":"MDc6TGljZW5zZTk="},"forks":12112,"open_issues":5332,"watchers":31527,"default_branch":"devel"}},"_links":{"self":{"href":"https://api.github.com/repos/ansible/ansible/pulls/42916"},"html":{"href":"https://github.com/ansible/ansible/pull/42916"},"issue":{"href":"https://api.github.com/repos/ansible/ansible/issues/42916"},"comments":{"href":"https://api.github.com/repos/ansible/ansible/issues/42916/comments"},"review_comments":{"href":"https://api.github.com/repos/ansible/ansible/pulls/42916/comments"},"review_comment":{"href":"https://api.github.com/repos/ansible/ansible/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ansible/ansible/pulls/42916/commits"},"statuses":{"href":"https://api.github.com/repos/ansible/ansible/statuses/443b7ebb60fa2dba5d4740a48dcfde3e1f265c31"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"ganeshrn"}}