{"action":"created","comment":{"url":"https://api.github.com/repos/PBSPro/pbspro/pulls/comments/173578681","pull_request_review_id":102802124,"id":173578681,"diff_hunk":"@@ -86,39 +87,80 @@ def test_single_mom_hook_failure_affects_vnode(self):\n         After this check if vnodes are marked offline.\r\n         In case of a single mom reporting vnodes, it should mark\r\n         all the vnodes and mom as offline.\r\n+        Once offlined, reset the mom by issueing pbsnodes -r\r\n+        and check if the job runs on one of the vnodes.\r\n         \"\"\"\r\n-        self.create_multi_vnodes(1, True)\r\n+        self.create_multi_vnodes(1)\r\n         self.create_mom_hook()\r\n+        # Remove the second node from the system (if any)\r\n+        try:\r\n+            self.server.manager(MGR_CMD_DELETE, NODE,\r\n+                                id=self.moms.values()[1].shortname)\r\n+        except PbsManagerError as e:\r\n+            self.assertTrue(\"Unknown node\" in e.msg[0])\r\n \r\n         j1 = Job(TEST_USER)\r\n         self.server.expect(NODE, {ATTR_NODE_state: 'free'},\r\n-                           id=self.moms.values()[0].shortname)\r\n+                           id=self.moms.values()[0].shortname, max_attempts=3,\r\n+                           interval=2)\r\n         j1.set_sleep_time(1000)\r\n         jid = self.server.submit(j1)\r\n-        self.server.manager(MGR_CMD_SET, SERVER, {'scheduling': 'False'})\r\n         self.server.expect(JOB, {ATTR_state: 'Q'}, id=jid)\r\n \r\n         self.server.expect(\r\n             NODE, {ATTR_NODE_state: 'offline'},\r\n-            id=self.moms.values()[0].shortname)\r\n+            id=self.moms.values()[0].shortname, max_attempts=3, interval=2)\r\n+\r\n+        vname = \"vnode[0]\"\r\n         if self.is_cray is True:\r\n             vlist = []\r\n+            first_vnode = 1\r\n             vnl = self.server.filter(\r\n                 VNODE, {'resources_available.vntype': 'cray_compute'})\r\n             vlist = vnl[\"resources_available.vntype=cray_compute\"]\r\n             # Loop through each compute vnode in the list and check if state =\r\n             # offline\r\n             for v1 in vlist:\r\n+                if first_vnode == 1:\r\n+                    first_vnode += 1\r\n+                    vname = v1\r\n                 # Check that the vnode is in offline state\r\n                 self.server.expect(\r\n                     VNODE, {'state': 'offline'}, id=v1, max_attempts=3,\r\n                     interval=2)\r\n \r\n         else:\r\n             self.server.expect(\r\n-                NODE, {ATTR_NODE_state: 'offline'}, id='vnode[0]')\r\n+                NODE, {ATTR_NODE_state: 'offline'}, id='vnode[0]',\r\n+                max_attempts=3, interval=2)\r\n             self.server.expect(\r\n-                NODE, {ATTR_NODE_state: 'offline'}, id='vnode[1]')\r\n+                NODE, {ATTR_NODE_state: 'offline'}, id='vnode[1]',\r\n+                max_attempts=3, interval=2)\r\n+\r\n+        mom_host = self.moms.values()[0].shortname\r\n+        pbs_exec = self.server.pbs_conf['PBS_EXEC']\r\n+        pbsnodes_cmd = os.path.join(pbs_exec, 'bin', 'pbsnodes')\r\n+        pbsnodes_reset = pbsnodes_cmd + ' -r ' + mom_host\r\n+\r\n+        # Set mom sync hook timeout to be a low value because if mom fails to\r\n+        # get the hook after disabling it then next sync will happen after\r\n+        # 2 minutes by default.\r\n+        self.server.manager(MGR_CMD_SET, SERVER,\r\n+                            {'sync_mom_hookfiles_timeout': '5'})\r\n+        self.server.manager(MGR_CMD_SET, HOOK, {'enabled': 'False'}, id=\"h1\")\r\n+        # Make sure that hook has been sent to mom\r\n+        self.server.log_match(\"successfully sent hook file\")\r\n+        self.du.run_cmd(self.server.hostname, cmd=pbsnodes_reset, sudo=True)\r\n+        self.server.delete(jid, wait=True)\r\n+\r\n+        j2 = Job(TEST_USER)\r\n+        j2.set_attributes({ATTR_l + '.select': '1:vnode=' + vname})\r\n+        jid2 = self.server.submit(j2)\r\n+        self.server.expect(NODE, {ATTR_NODE_state: 'free'},\r\n+                           id=self.moms.values()[0].shortname, max_attempts=3,\r\n+                           interval=2)\r\n+        self.server.manager(MGR_CMD_SET, SCHED, {'scheduling': 'True'})\r","path":"test/tests/functional/pbs_offline_vnodes.py","position":162,"original_position":107,"commit_id":"10d6033f3f207f9afc45764aa64dfb6e4891320f","original_commit_id":"10d6033f3f207f9afc45764aa64dfb6e4891320f","user":{"login":"arungrover","id":17924134,"avatar_url":"https://avatars0.githubusercontent.com/u/17924134?v=4","gravatar_id":"","url":"https://api.github.com/users/arungrover","html_url":"https://github.com/arungrover","followers_url":"https://api.github.com/users/arungrover/followers","following_url":"https://api.github.com/users/arungrover/following{/other_user}","gists_url":"https://api.github.com/users/arungrover/gists{/gist_id}","starred_url":"https://api.github.com/users/arungrover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arungrover/subscriptions","organizations_url":"https://api.github.com/users/arungrover/orgs","repos_url":"https://api.github.com/users/arungrover/repos","events_url":"https://api.github.com/users/arungrover/events{/privacy}","received_events_url":"https://api.github.com/users/arungrover/received_events","type":"User","site_admin":false},"body":"Yes this step is not needed.","created_at":"2018-03-09T21:56:51Z","updated_at":"2018-03-09T21:56:51Z","html_url":"https://github.com/PBSPro/pbspro/pull/582#discussion_r173578681","pull_request_url":"https://api.github.com/repos/PBSPro/pbspro/pulls/582","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/PBSPro/pbspro/pulls/comments/173578681"},"html":{"href":"https://github.com/PBSPro/pbspro/pull/582#discussion_r173578681"},"pull_request":{"href":"https://api.github.com/repos/PBSPro/pbspro/pulls/582"}},"in_reply_to_id":173026676},"pull_request":{"url":"https://api.github.com/repos/PBSPro/pbspro/pulls/582","id":172053839,"html_url":"https://github.com/PBSPro/pbspro/pull/582","diff_url":"https://github.com/PBSPro/pbspro/pull/582.diff","patch_url":"https://github.com/PBSPro/pbspro/pull/582.patch","issue_url":"https://api.github.com/repos/PBSPro/pbspro/issues/582","number":582,"state":"open","locked":false,"title":"pbsnodes -r does not clear mom state, offline_vnodes offline all vnodes","user":{"login":"arungrover","id":17924134,"avatar_url":"https://avatars0.githubusercontent.com/u/17924134?v=4","gravatar_id":"","url":"https://api.github.com/users/arungrover","html_url":"https://github.com/arungrover","followers_url":"https://api.github.com/users/arungrover/followers","following_url":"https://api.github.com/users/arungrover/following{/other_user}","gists_url":"https://api.github.com/users/arungrover/gists{/gist_id}","starred_url":"https://api.github.com/users/arungrover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arungrover/subscriptions","organizations_url":"https://api.github.com/users/arungrover/orgs","repos_url":"https://api.github.com/users/arungrover/repos","events_url":"https://api.github.com/users/arungrover/events{/privacy}","received_events_url":"https://api.github.com/users/arungrover/received_events","type":"User","site_admin":false},"body":"<!--- Please review your changes in preview mode -->\r\n<!--- Provide a general summary of your changes in the Title above -->\r\n\r\n#### Bug/feature Description\r\nThere are two problems we are dealing with here - \r\n   - when a mom hook fail action is set to offline_vnodes it offlines all the vnodes associating with that mom. It does not check whether or not the same vnodes are being reported by other moms as well and there would be a way to use these vnodes using other moms. \r\n   - When a mom has been offlined and admin issues 'pbsnodes -r' command for that mom host, pbs server resets the state of the node back to free but it does not clear the mom state internally which means that any job that ends up on that mom will not run.\r\n\r\nTo reproduce the problems mentioned above perform following steps\r\n - Have two moms having the same set of vnode definitions\r\n - Create a mom execjob_begin hook that sleeps for a long period of time\r\n - Set the fail action for this hook as 'offline_vnodes'\r\n - Set hook alarm smaller than the sleep time in the hook\r\n - Submit a job that runs on one of the moms\r\n - On a buggy build you will see the mom and all the vnodes being turned offline when the execjob_begin hook is alarmed out\r\n\r\nNow to reproduce pbsnode -r problem do all the steps mentioned above and \r\n - issue pbsnodes -r for the mom host that has been marked as offline\r\n - Submit another job which will run on the vnode that was previously marked as offline\r\n - On a buggy build you will notice that job stays in queued state even when pbsnodes is reporting it as free\r\n\r\n\r\n#### Affected Platform(s)\r\n* All platforms\r\n\r\n#### Analysis / Design\r\n*  [External design for offline_vnode problem](https://pbspro.atlassian.net/wiki/spaces/PD/pages/195002450/offline+vnodes+should+only+offline+vnodes+belonging+to+more+than+one+Mom+when+all+the+MoMs+are+offline)\r\n* [pbspro community forum discussion](http://community.pbspro.org/t/offline-vnodes-should-only-offline-vnodes-belonging-to-more-than-one-mom-when-all-the-moms-are-offline/864)\r\n\r\n\r\n#### Solution Description\r\n* Fix includes check to make sure that when vnodes are offlined it checks that all the moms are also marked offline. Fix also includes a change where while setting node state it also sets its mom state internally.\r\n\r\n#### Checklist:\r\n<!--- Use the preview button to see the checkboxes/links properly. -->\r\n<!--- Go over the following points, and put an `x` (without spaces around it) in the boxes that apply. -->\r\n<!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->\r\n- [x] I have joined the **[pbspro community forum](http://community.pbspro.org/)**.\r\n- [x] My pull request contains a **single, signed** commit. See **[setting up gpg signature](https://pbspro.atlassian.net/wiki/display/DG/Signing+Your+Git+Commits)**.\r\n- [x] My code follows the **[coding style](https://pbspro.atlassian.net/wiki/display/DG/Coding+Standards)** of this project.\r\n- [x] My change requires project documentation. See **[required documentation checklist](https://pbspro.atlassian.net/wiki/display/DG/Checklist+for+Developing+Features+and+Bug+Fixes)** for details.\r\n   - [x] I have added documentation in the **[project documentation area](https://pbspro.atlassian.net/wiki/spaces/PD/pages/195002450/Draft+offline+vnodes+should+only+offline+vnodes+belonging+to+more+than+one+Mom+when+all+the+MoMs+are+offline)**)\r\n\r\n- [x] I have added new **PTL test(s) to my commit**. (See **[using PTL for testing](https://pbspro.atlassian.net/wiki/display/DG/Using+PTL+for+Testing)**) *(or)*\r\n   - [ ] I have added  **manual test(s) to this pull request and explained why PTL is not appropriate** for this case.\r\n- [x] All new and existing automated tests have passed. (See **[running automated PTL tests](https://pbspro.atlassian.net/wiki/display/DG/PTL+Quick+Start+Guide)**).\r\n- [x] I have attached **test logs to this pull request** as evidence of testing/verification.\r\n\r\n\r\n__***For further information please visit the [Developer Guide Home](https://pbspro.atlassian.net/wiki/display/DG/Developer+Guide+Home).***__\r\n\r\n\r\n[ptl_dev_test.txt](https://github.com/PBSPro/pbspro/files/1768592/ptl_dev_test.txt)","created_at":"2018-02-28T19:47:49Z","updated_at":"2018-03-09T21:56:51Z","closed_at":null,"merged_at":null,"merge_commit_sha":"957399a0c9bafab30a165bb376c7f2af675200c6","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PBSPro/pbspro/pulls/582/commits","review_comments_url":"https://api.github.com/repos/PBSPro/pbspro/pulls/582/comments","review_comment_url":"https://api.github.com/repos/PBSPro/pbspro/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PBSPro/pbspro/issues/582/comments","statuses_url":"https://api.github.com/repos/PBSPro/pbspro/statuses/10d6033f3f207f9afc45764aa64dfb6e4891320f","head":{"label":"arungrover:node_offline_issue","ref":"node_offline_issue","sha":"10d6033f3f207f9afc45764aa64dfb6e4891320f","user":{"login":"arungrover","id":17924134,"avatar_url":"https://avatars0.githubusercontent.com/u/17924134?v=4","gravatar_id":"","url":"https://api.github.com/users/arungrover","html_url":"https://github.com/arungrover","followers_url":"https://api.github.com/users/arungrover/followers","following_url":"https://api.github.com/users/arungrover/following{/other_user}","gists_url":"https://api.github.com/users/arungrover/gists{/gist_id}","starred_url":"https://api.github.com/users/arungrover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arungrover/subscriptions","organizations_url":"https://api.github.com/users/arungrover/orgs","repos_url":"https://api.github.com/users/arungrover/repos","events_url":"https://api.github.com/users/arungrover/events{/privacy}","received_events_url":"https://api.github.com/users/arungrover/received_events","type":"User","site_admin":false},"repo":{"id":60597655,"name":"pbspro","full_name":"arungrover/pbspro","owner":{"login":"arungrover","id":17924134,"avatar_url":"https://avatars0.githubusercontent.com/u/17924134?v=4","gravatar_id":"","url":"https://api.github.com/users/arungrover","html_url":"https://github.com/arungrover","followers_url":"https://api.github.com/users/arungrover/followers","following_url":"https://api.github.com/users/arungrover/following{/other_user}","gists_url":"https://api.github.com/users/arungrover/gists{/gist_id}","starred_url":"https://api.github.com/users/arungrover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arungrover/subscriptions","organizations_url":"https://api.github.com/users/arungrover/orgs","repos_url":"https://api.github.com/users/arungrover/repos","events_url":"https://api.github.com/users/arungrover/events{/privacy}","received_events_url":"https://api.github.com/users/arungrover/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/arungrover/pbspro","description":null,"fork":true,"url":"https://api.github.com/repos/arungrover/pbspro","forks_url":"https://api.github.com/repos/arungrover/pbspro/forks","keys_url":"https://api.github.com/repos/arungrover/pbspro/keys{/key_id}","collaborators_url":"https://api.github.com/repos/arungrover/pbspro/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/arungrover/pbspro/teams","hooks_url":"https://api.github.com/repos/arungrover/pbspro/hooks","issue_events_url":"https://api.github.com/repos/arungrover/pbspro/issues/events{/number}","events_url":"https://api.github.com/repos/arungrover/pbspro/events","assignees_url":"https://api.github.com/repos/arungrover/pbspro/assignees{/user}","branches_url":"https://api.github.com/repos/arungrover/pbspro/branches{/branch}","tags_url":"https://api.github.com/repos/arungrover/pbspro/tags","blobs_url":"https://api.github.com/repos/arungrover/pbspro/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/arungrover/pbspro/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/arungrover/pbspro/git/refs{/sha}","trees_url":"https://api.github.com/repos/arungrover/pbspro/git/trees{/sha}","statuses_url":"https://api.github.com/repos/arungrover/pbspro/statuses/{sha}","languages_url":"https://api.github.com/repos/arungrover/pbspro/languages","stargazers_url":"https://api.github.com/repos/arungrover/pbspro/stargazers","contributors_url":"https://api.github.com/repos/arungrover/pbspro/contributors","subscribers_url":"https://api.github.com/repos/arungrover/pbspro/subscribers","subscription_url":"https://api.github.com/repos/arungrover/pbspro/subscription","commits_url":"https://api.github.com/repos/arungrover/pbspro/commits{/sha}","git_commits_url":"https://api.github.com/repos/arungrover/pbspro/git/commits{/sha}","comments_url":"https://api.github.com/repos/arungrover/pbspro/comments{/number}","issue_comment_url":"https://api.github.com/repos/arungrover/pbspro/issues/comments{/number}","contents_url":"https://api.github.com/repos/arungrover/pbspro/contents/{+path}","compare_url":"https://api.github.com/repos/arungrover/pbspro/compare/{base}...{head}","merges_url":"https://api.github.com/repos/arungrover/pbspro/merges","archive_url":"https://api.github.com/repos/arungrover/pbspro/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/arungrover/pbspro/downloads","issues_url":"https://api.github.com/repos/arungrover/pbspro/issues{/number}","pulls_url":"https://api.github.com/repos/arungrover/pbspro/pulls{/number}","milestones_url":"https://api.github.com/repos/arungrover/pbspro/milestones{/number}","notifications_url":"https://api.github.com/repos/arungrover/pbspro/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/arungrover/pbspro/labels{/name}","releases_url":"https://api.github.com/repos/arungrover/pbspro/releases{/id}","deployments_url":"https://api.github.com/repos/arungrover/pbspro/deployments","created_at":"2016-06-07T08:51:21Z","updated_at":"2016-11-03T18:04:32Z","pushed_at":"2018-03-07T17:51:20Z","git_url":"git://github.com/arungrover/pbspro.git","ssh_url":"git@github.com:arungrover/pbspro.git","clone_url":"https://github.com/arungrover/pbspro.git","svn_url":"https://github.com/arungrover/pbspro","homepage":null,"size":14578,"stargazers_count":0,"watchers_count":0,"language":"C","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":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"PBSPro:master","ref":"master","sha":"6d0856aaa1f36d3bfcde1eec7f50fb1a92a72967","user":{"login":"PBSPro","id":19280436,"avatar_url":"https://avatars2.githubusercontent.com/u/19280436?v=4","gravatar_id":"","url":"https://api.github.com/users/PBSPro","html_url":"https://github.com/PBSPro","followers_url":"https://api.github.com/users/PBSPro/followers","following_url":"https://api.github.com/users/PBSPro/following{/other_user}","gists_url":"https://api.github.com/users/PBSPro/gists{/gist_id}","starred_url":"https://api.github.com/users/PBSPro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PBSPro/subscriptions","organizations_url":"https://api.github.com/users/PBSPro/orgs","repos_url":"https://api.github.com/users/PBSPro/repos","events_url":"https://api.github.com/users/PBSPro/events{/privacy}","received_events_url":"https://api.github.com/users/PBSPro/received_events","type":"Organization","site_admin":false},"repo":{"id":59082072,"name":"pbspro","full_name":"PBSPro/pbspro","owner":{"login":"PBSPro","id":19280436,"avatar_url":"https://avatars2.githubusercontent.com/u/19280436?v=4","gravatar_id":"","url":"https://api.github.com/users/PBSPro","html_url":"https://github.com/PBSPro","followers_url":"https://api.github.com/users/PBSPro/followers","following_url":"https://api.github.com/users/PBSPro/following{/other_user}","gists_url":"https://api.github.com/users/PBSPro/gists{/gist_id}","starred_url":"https://api.github.com/users/PBSPro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PBSPro/subscriptions","organizations_url":"https://api.github.com/users/PBSPro/orgs","repos_url":"https://api.github.com/users/PBSPro/repos","events_url":"https://api.github.com/users/PBSPro/events{/privacy}","received_events_url":"https://api.github.com/users/PBSPro/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PBSPro/pbspro","description":"An HPC workload manager and job scheduler for desktops, clusters, and clouds.","fork":false,"url":"https://api.github.com/repos/PBSPro/pbspro","forks_url":"https://api.github.com/repos/PBSPro/pbspro/forks","keys_url":"https://api.github.com/repos/PBSPro/pbspro/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PBSPro/pbspro/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PBSPro/pbspro/teams","hooks_url":"https://api.github.com/repos/PBSPro/pbspro/hooks","issue_events_url":"https://api.github.com/repos/PBSPro/pbspro/issues/events{/number}","events_url":"https://api.github.com/repos/PBSPro/pbspro/events","assignees_url":"https://api.github.com/repos/PBSPro/pbspro/assignees{/user}","branches_url":"https://api.github.com/repos/PBSPro/pbspro/branches{/branch}","tags_url":"https://api.github.com/repos/PBSPro/pbspro/tags","blobs_url":"https://api.github.com/repos/PBSPro/pbspro/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PBSPro/pbspro/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PBSPro/pbspro/git/refs{/sha}","trees_url":"https://api.github.com/repos/PBSPro/pbspro/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PBSPro/pbspro/statuses/{sha}","languages_url":"https://api.github.com/repos/PBSPro/pbspro/languages","stargazers_url":"https://api.github.com/repos/PBSPro/pbspro/stargazers","contributors_url":"https://api.github.com/repos/PBSPro/pbspro/contributors","subscribers_url":"https://api.github.com/repos/PBSPro/pbspro/subscribers","subscription_url":"https://api.github.com/repos/PBSPro/pbspro/subscription","commits_url":"https://api.github.com/repos/PBSPro/pbspro/commits{/sha}","git_commits_url":"https://api.github.com/repos/PBSPro/pbspro/git/commits{/sha}","comments_url":"https://api.github.com/repos/PBSPro/pbspro/comments{/number}","issue_comment_url":"https://api.github.com/repos/PBSPro/pbspro/issues/comments{/number}","contents_url":"https://api.github.com/repos/PBSPro/pbspro/contents/{+path}","compare_url":"https://api.github.com/repos/PBSPro/pbspro/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PBSPro/pbspro/merges","archive_url":"https://api.github.com/repos/PBSPro/pbspro/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PBSPro/pbspro/downloads","issues_url":"https://api.github.com/repos/PBSPro/pbspro/issues{/number}","pulls_url":"https://api.github.com/repos/PBSPro/pbspro/pulls{/number}","milestones_url":"https://api.github.com/repos/PBSPro/pbspro/milestones{/number}","notifications_url":"https://api.github.com/repos/PBSPro/pbspro/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PBSPro/pbspro/labels{/name}","releases_url":"https://api.github.com/repos/PBSPro/pbspro/releases{/id}","deployments_url":"https://api.github.com/repos/PBSPro/pbspro/deployments","created_at":"2016-05-18T04:31:29Z","updated_at":"2018-03-03T00:50:31Z","pushed_at":"2018-03-09T15:35:12Z","git_url":"git://github.com/PBSPro/pbspro.git","ssh_url":"git@github.com:PBSPro/pbspro.git","clone_url":"https://github.com/PBSPro/pbspro.git","svn_url":"https://github.com/PBSPro/pbspro","homepage":"www.pbspro.org","size":14466,"stargazers_count":145,"watchers_count":145,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":126,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":126,"open_issues":11,"watchers":145,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PBSPro/pbspro/pulls/582"},"html":{"href":"https://github.com/PBSPro/pbspro/pull/582"},"issue":{"href":"https://api.github.com/repos/PBSPro/pbspro/issues/582"},"comments":{"href":"https://api.github.com/repos/PBSPro/pbspro/issues/582/comments"},"review_comments":{"href":"https://api.github.com/repos/PBSPro/pbspro/pulls/582/comments"},"review_comment":{"href":"https://api.github.com/repos/PBSPro/pbspro/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PBSPro/pbspro/pulls/582/commits"},"statuses":{"href":"https://api.github.com/repos/PBSPro/pbspro/statuses/10d6033f3f207f9afc45764aa64dfb6e4891320f"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"arungrover"}}