{"action":"created","comment":{"url":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/comments/204851579","pull_request_review_id":140006743,"id":204851579,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNDg1MTU3OQ==","diff_hunk":"@@ -0,0 +1,231 @@\n+# -*- coding: utf-8 -*-\n+\"\"\"A model of an Infrastructure PhysicalSwitch in CFME.\"\"\"\n+import attr\n+\n+from navmazing import NavigateToAttribute\n+from cached_property import cached_property\n+\n+from cfme.common import PolicyProfileAssignable, Taggable\n+from cfme.common.physical_switch_views import (\n+    PhysicalSwitchDetailsView,\n+    PhysicalSwitchesView\n+)\n+from cfme.exceptions import ItemNotFound\n+from cfme.modeling.base import BaseEntity, BaseCollection\n+from cfme.utils.appliance.implementations.ui import CFMENavigateStep, navigate_to, navigator\n+from cfme.utils.log import logger\n+from cfme.utils.pretty import Pretty\n+from cfme.utils.providers import get_crud_by_name\n+from cfme.utils.update import Updateable\n+from cfme.utils.varmeth import variable\n+from cfme.utils.wait import wait_for\n+\n+\n+@attr.s\n+class PhysicalSwitch(BaseEntity, Updateable, Pretty, PolicyProfileAssignable, Taggable):\n+    \"\"\"Model of an Physical Switch in cfme.\n+\n+    Args:\n+        name: Name of the physical Switch.\n+\n+    Usage:\n+\n+        myswitch = PhysicalSwitch(name='sample_switch')\n+        myswitch.create()\n+\n+    \"\"\"\n+    pretty_attrs = ['name']\n+\n+    name = attr.ib()\n+    provider = attr.ib(default=None)\n+\n+    INVENTORY_TO_MATCH = ['power_state', 'part_number', 'serial_number', 'description',\n+                          'manufacturer']\n+\n+    def load_details(self, refresh=False):\n+        \"\"\"To be compatible with the Taggable and PolicyProfileAssignable mixins.\n+\n+        Args:\n+            refresh (bool): Whether to perform the page refresh, defaults to False\n+        \"\"\"\n+        view = navigate_to(self, \"Details\")\n+        if refresh:\n+            view.browser.refresh()\n+            view.flush_widget_cache()\n+\n+    def _execute_button(self, button, option, handle_alert=False):\n+        view = navigate_to(self, \"Details\")\n+        view.toolbar.custom_button(button).item_select(option, handle_alert=handle_alert)\n+        return view\n+\n+    def _execute_action_button(self, button, option, handle_alert=True, **kwargs):\n+        target = kwargs.get(\"target\", None)\n+        provider = kwargs.get(\"provider\", None)\n+        desired_state = kwargs.get(\"desired_state\", None)\n+\n+        view = self._execute_button(button, option, handle_alert=handle_alert)\n+\n+        if desired_state:\n+            self._wait_for_state_change(desired_state, target, provider, view)\n+        elif handle_alert:\n+            wait_for(\n+                lambda: view.flash.is_displayed,\n+                message=\"Wait for the handle alert to appear...\",\n+                num_sec=5,\n+                delay=2\n+            )\n+\n+    @variable(alias='ui')\n+    def power_state(self):\n+        view = navigate_to(self, \"Details\")\n+        return view.entities.power_management.get_text_of(\"Power State\")\n+\n+    @variable(alias='ui')\n+    def part_number(self):\n+        view = navigate_to(self, \"Details\")\n+        return view.entities.properties.get_text_of(\"Part Number\")\n+\n+    @variable(alias='ui')\n+    def serial_number(self):\n+        view = navigate_to(self, \"Details\")\n+        return view.entities.properties.get_text_of(\"Serial Number\")\n+\n+    @variable(alias='ui')\n+    def description(self):\n+        view = navigate_to(self, \"Details\")\n+        return view.entities.properties.get_text_of(\"Description\")\n+\n+    @variable(alias='ui')\n+    def manufacturer(self):\n+        view = navigate_to(self, \"Details\")\n+        return view.entities.properties.get_text_of(\"Manufacturer\")\n+\n+    def _wait_for_state_change(self, desired_state, target, provider, view, timeout=300, delay=10):\n+        \"\"\"Wait for the Physical Switch to reach the desired state. This function waits an amount\n+           of time due to wait_for.\n+\n+        Args:\n+            desired_state (str): 'on' or 'off'\n+            target (str): The name of the method that most be used to compare with the desired_state\n+            provider (object): 'LenovoProvider'\n+            view (object): The view that most be refreshed to verify if the value was changed\n+            timeout (int): Specify amount of time (in seconds) to wait until TimedOutError is raised\n+            delay (int): Specify amount of time (in seconds) to repeat each time.\n+        \"\"\"\n+\n+        def _is_state_changed():\n+            self.refresh(provider, handle_alert=True)\n+            return desired_state == getattr(self, target)()\n+\n+        wait_for(_is_state_changed, fail_func=view.browser.refresh, num_sec=timeout, delay=delay)\n+\n+    @property\n+    def exists(self):\n+        \"\"\"Checks if the physical_switch exists in the UI.\n+\n+        Returns: :py:class:`bool`\n+        \"\"\"\n+        view = navigate_to(self.parent, \"All\")\n+        try:\n+            view.entities.get_entity(name=self.name, surf_pages=True)\n+        except ItemNotFound:\n+            return False\n+        else:\n+            return True\n+\n+    @cached_property\n+    def db_id(self):\n+        return self.appliance.physical_switch_id(self.name)\n+\n+    def wait_to_appear(self):\n+        \"\"\"Waits for the Switch to appear in the UI.\"\"\"\n+        view = navigate_to(self.parent, \"All\")\n+        logger.info(\"Waiting for the Switch to appear...\")\n+        wait_for(\n+            lambda: self.exists,\n+            message=\"Wait for the Switch to appear\",\n+            num_sec=1000,\n+            fail_func=view.browser.refresh\n+        )\n+\n+    def wait_for_delete(self):\n+        \"\"\"Waits for the Switch to remove from the UI.\"\"\"\n+        view = navigate_to(self.parent, \"All\")\n+        logger.info(\"Waiting for the Switch to delete...\")\n+        wait_for(\n+            lambda: not self.exists,\n+            message=\"Wait for the Switch to disappear\",\n+            num_sec=500,\n+            fail_func=view.browser.refresh\n+        )\n+\n+\n+@attr.s\n+class PhysicalSwitchCollection(BaseCollection):\n+    \"\"\"Collection object for the :py:class:`cfme.infrastructure.host.PhysicalSwitch`.\"\"\"\n+\n+    ENTITY = PhysicalSwitch\n+\n+    def select_entity_rows(self, *physical_switches):\n+        \"\"\" Select all physical Switch objects \"\"\"\n+        physical_switches = list(physical_switches)\n+        checked_physical_switches = list()\n+        view = navigate_to(self, 'All')\n+\n+        for physical_switch in physical_switches:\n+            view.entities.get_entity(name=physical_switch.name, surf_pages=True).check()\n+            checked_physical_switches.append(physical_switch)\n+        return view\n+\n+    def all(self):\n+        \"\"\"returning all physical_switches objects\"\"\"\n+        physical_switch_table = self.appliance.db.client['switches']\n+        ems_table = self.appliance.db.client['ext_management_systems']\n+        physical_switch_query = (\n+            self.appliance.db.client.session\n+                .query(physical_switch_table.name, ems_table.name)\n+                .join(ems_table, physical_switch_table.ems_id == ems_table.id))\n+\n+        provider = self.filters.get('provider')\n+        if provider:\n+            physical_switch_query = physical_switch_query.filter(ems_table.name == provider.name)\n+        physical_switches = []\n+        for name, ems_name in physical_switch_query.all():\n+            physical_switches.append(self.instantiate(name=name,\n+                                    provider=provider or get_crud_by_name(ems_name)))\n+        return physical_switches\n+\n+    def find_by(self, ph_name, provider=None):\n+        \"\"\"returning all physical_switches objects\"\"\"\n+        physical_switch_table = self.appliance.db.client['switches']\n+        ems_table = self.appliance.db.client['ext_management_systems']\n+        physical_switch_query = (\n+            self.appliance.db.client.session\n+                .query(physical_switch_table.name, ems_table.name)\n+                .join(ems_table, physical_switch_table.ems_id == ems_table.id))\n+\n+        if self.filters.get('provider'):\n+            provider = self.filters.get('provider')\n+            physical_switch_query = physical_switch_query.filter(ems_table.name == provider.name)\n+\n+        for name, ems_name in physical_switch_query.all():\n+            if ph_name == name:\n+                return self.instantiate(name=name, provider=provider or get_crud_by_name(ems_name))\n+\n+\n+@navigator.register(PhysicalSwitchCollection)","path":"cfme/physical/physical_switch.py","position":211,"original_position":216,"commit_id":"02ec524414df6dcbc63324b6920e39ee3c6378ba","original_commit_id":"ca3d36fdacde3d3c20b53d6d381b641492ea14c2","user":{"login":"matheuscmelo","id":19214410,"node_id":"MDQ6VXNlcjE5MjE0NDEw","avatar_url":"https://avatars0.githubusercontent.com/u/19214410?v=4","gravatar_id":"","url":"https://api.github.com/users/matheuscmelo","html_url":"https://github.com/matheuscmelo","followers_url":"https://api.github.com/users/matheuscmelo/followers","following_url":"https://api.github.com/users/matheuscmelo/following{/other_user}","gists_url":"https://api.github.com/users/matheuscmelo/gists{/gist_id}","starred_url":"https://api.github.com/users/matheuscmelo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matheuscmelo/subscriptions","organizations_url":"https://api.github.com/users/matheuscmelo/orgs","repos_url":"https://api.github.com/users/matheuscmelo/repos","events_url":"https://api.github.com/users/matheuscmelo/events{/privacy}","received_events_url":"https://api.github.com/users/matheuscmelo/received_events","type":"User","site_admin":false},"body":"@psav apparently, override the ``am_i_here`` method is unnecessary, since it's already inherited from ``CFMENavigateStep``\r\nhttps://github.com/ManageIQ/integration_tests/blob/6b09a70d1463ad410c09e46fc27bd0eedb21653f/cfme/utils/appliance/implementations/ui.py#L275-L279","created_at":"2018-07-24T17:50:41Z","updated_at":"2018-07-24T17:50:41Z","html_url":"https://github.com/ManageIQ/integration_tests/pull/7422#discussion_r204851579","pull_request_url":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/comments/204851579"},"html":{"href":"https://github.com/ManageIQ/integration_tests/pull/7422#discussion_r204851579"},"pull_request":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422"}},"in_reply_to_id":202613729},"pull_request":{"url":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422","id":198970564,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk4OTcwNTY0","html_url":"https://github.com/ManageIQ/integration_tests/pull/7422","diff_url":"https://github.com/ManageIQ/integration_tests/pull/7422.diff","patch_url":"https://github.com/ManageIQ/integration_tests/pull/7422.patch","issue_url":"https://api.github.com/repos/ManageIQ/integration_tests/issues/7422","number":7422,"state":"open","locked":false,"title":"[1LP][WIP] Adding Physical Switches basic UI tests","user":{"login":"saulotoledo","id":5031156,"node_id":"MDQ6VXNlcjUwMzExNTY=","avatar_url":"https://avatars1.githubusercontent.com/u/5031156?v=4","gravatar_id":"","url":"https://api.github.com/users/saulotoledo","html_url":"https://github.com/saulotoledo","followers_url":"https://api.github.com/users/saulotoledo/followers","following_url":"https://api.github.com/users/saulotoledo/following{/other_user}","gists_url":"https://api.github.com/users/saulotoledo/gists{/gist_id}","starred_url":"https://api.github.com/users/saulotoledo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saulotoledo/subscriptions","organizations_url":"https://api.github.com/users/saulotoledo/orgs","repos_url":"https://api.github.com/users/saulotoledo/repos","events_url":"https://api.github.com/users/saulotoledo/events{/privacy}","received_events_url":"https://api.github.com/users/saulotoledo/received_events","type":"User","site_admin":false},"body":"Purpose or Intent\r\n=================\r\n\r\n__Adding tests__ for Physical Switches to cover basic UI test cases.","created_at":"2018-07-03T13:51:28Z","updated_at":"2018-07-24T17:50:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"588354c7fd786cd923b70e44849010b489edb543","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":66915689,"node_id":"MDU6TGFiZWw2NjkxNTY4OQ==","url":"https://api.github.com/repos/ManageIQ/integration_tests/labels/WIP","name":"WIP","color":"fbca04","default":false},{"id":118192651,"node_id":"MDU6TGFiZWwxMTgxOTI2NTE=","url":"https://api.github.com/repos/ManageIQ/integration_tests/labels/needs-lint","name":"needs-lint","color":"111111","default":false},{"id":469132575,"node_id":"MDU6TGFiZWw0NjkxMzI1NzU=","url":"https://api.github.com/repos/ManageIQ/integration_tests/labels/new-test-or-feature","name":"new-test-or-feature","color":"ffff55","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422/commits","review_comments_url":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422/comments","review_comment_url":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ManageIQ/integration_tests/issues/7422/comments","statuses_url":"https://api.github.com/repos/ManageIQ/integration_tests/statuses/02ec524414df6dcbc63324b6920e39ee3c6378ba","head":{"label":"saulotoledo:adding_phisical_switches_basic_ui_tests","ref":"adding_phisical_switches_basic_ui_tests","sha":"02ec524414df6dcbc63324b6920e39ee3c6378ba","user":{"login":"saulotoledo","id":5031156,"node_id":"MDQ6VXNlcjUwMzExNTY=","avatar_url":"https://avatars1.githubusercontent.com/u/5031156?v=4","gravatar_id":"","url":"https://api.github.com/users/saulotoledo","html_url":"https://github.com/saulotoledo","followers_url":"https://api.github.com/users/saulotoledo/followers","following_url":"https://api.github.com/users/saulotoledo/following{/other_user}","gists_url":"https://api.github.com/users/saulotoledo/gists{/gist_id}","starred_url":"https://api.github.com/users/saulotoledo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saulotoledo/subscriptions","organizations_url":"https://api.github.com/users/saulotoledo/orgs","repos_url":"https://api.github.com/users/saulotoledo/repos","events_url":"https://api.github.com/users/saulotoledo/events{/privacy}","received_events_url":"https://api.github.com/users/saulotoledo/received_events","type":"User","site_admin":false},"repo":{"id":134903456,"node_id":"MDEwOlJlcG9zaXRvcnkxMzQ5MDM0NTY=","name":"integration_tests","full_name":"saulotoledo/integration_tests","owner":{"login":"saulotoledo","id":5031156,"node_id":"MDQ6VXNlcjUwMzExNTY=","avatar_url":"https://avatars1.githubusercontent.com/u/5031156?v=4","gravatar_id":"","url":"https://api.github.com/users/saulotoledo","html_url":"https://github.com/saulotoledo","followers_url":"https://api.github.com/users/saulotoledo/followers","following_url":"https://api.github.com/users/saulotoledo/following{/other_user}","gists_url":"https://api.github.com/users/saulotoledo/gists{/gist_id}","starred_url":"https://api.github.com/users/saulotoledo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/saulotoledo/subscriptions","organizations_url":"https://api.github.com/users/saulotoledo/orgs","repos_url":"https://api.github.com/users/saulotoledo/repos","events_url":"https://api.github.com/users/saulotoledo/events{/privacy}","received_events_url":"https://api.github.com/users/saulotoledo/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/saulotoledo/integration_tests","description":"ManageIQ integration tests","fork":true,"url":"https://api.github.com/repos/saulotoledo/integration_tests","forks_url":"https://api.github.com/repos/saulotoledo/integration_tests/forks","keys_url":"https://api.github.com/repos/saulotoledo/integration_tests/keys{/key_id}","collaborators_url":"https://api.github.com/repos/saulotoledo/integration_tests/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/saulotoledo/integration_tests/teams","hooks_url":"https://api.github.com/repos/saulotoledo/integration_tests/hooks","issue_events_url":"https://api.github.com/repos/saulotoledo/integration_tests/issues/events{/number}","events_url":"https://api.github.com/repos/saulotoledo/integration_tests/events","assignees_url":"https://api.github.com/repos/saulotoledo/integration_tests/assignees{/user}","branches_url":"https://api.github.com/repos/saulotoledo/integration_tests/branches{/branch}","tags_url":"https://api.github.com/repos/saulotoledo/integration_tests/tags","blobs_url":"https://api.github.com/repos/saulotoledo/integration_tests/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/saulotoledo/integration_tests/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/saulotoledo/integration_tests/git/refs{/sha}","trees_url":"https://api.github.com/repos/saulotoledo/integration_tests/git/trees{/sha}","statuses_url":"https://api.github.com/repos/saulotoledo/integration_tests/statuses/{sha}","languages_url":"https://api.github.com/repos/saulotoledo/integration_tests/languages","stargazers_url":"https://api.github.com/repos/saulotoledo/integration_tests/stargazers","contributors_url":"https://api.github.com/repos/saulotoledo/integration_tests/contributors","subscribers_url":"https://api.github.com/repos/saulotoledo/integration_tests/subscribers","subscription_url":"https://api.github.com/repos/saulotoledo/integration_tests/subscription","commits_url":"https://api.github.com/repos/saulotoledo/integration_tests/commits{/sha}","git_commits_url":"https://api.github.com/repos/saulotoledo/integration_tests/git/commits{/sha}","comments_url":"https://api.github.com/repos/saulotoledo/integration_tests/comments{/number}","issue_comment_url":"https://api.github.com/repos/saulotoledo/integration_tests/issues/comments{/number}","contents_url":"https://api.github.com/repos/saulotoledo/integration_tests/contents/{+path}","compare_url":"https://api.github.com/repos/saulotoledo/integration_tests/compare/{base}...{head}","merges_url":"https://api.github.com/repos/saulotoledo/integration_tests/merges","archive_url":"https://api.github.com/repos/saulotoledo/integration_tests/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/saulotoledo/integration_tests/downloads","issues_url":"https://api.github.com/repos/saulotoledo/integration_tests/issues{/number}","pulls_url":"https://api.github.com/repos/saulotoledo/integration_tests/pulls{/number}","milestones_url":"https://api.github.com/repos/saulotoledo/integration_tests/milestones{/number}","notifications_url":"https://api.github.com/repos/saulotoledo/integration_tests/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/saulotoledo/integration_tests/labels{/name}","releases_url":"https://api.github.com/repos/saulotoledo/integration_tests/releases{/id}","deployments_url":"https://api.github.com/repos/saulotoledo/integration_tests/deployments","created_at":"2018-05-25T20:48:13Z","updated_at":"2018-06-22T19:59:39Z","pushed_at":"2018-07-20T17:40:37Z","git_url":"git://github.com/saulotoledo/integration_tests.git","ssh_url":"git@github.com:saulotoledo/integration_tests.git","clone_url":"https://github.com/saulotoledo/integration_tests.git","svn_url":"https://github.com/saulotoledo/integration_tests","homepage":"","size":27140,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ManageIQ:master","ref":"master","sha":"9268a78bbc717ffee8255101c06e3db2d58130c3","user":{"login":"ManageIQ","id":1125575,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjU1NzU=","avatar_url":"https://avatars0.githubusercontent.com/u/1125575?v=4","gravatar_id":"","url":"https://api.github.com/users/ManageIQ","html_url":"https://github.com/ManageIQ","followers_url":"https://api.github.com/users/ManageIQ/followers","following_url":"https://api.github.com/users/ManageIQ/following{/other_user}","gists_url":"https://api.github.com/users/ManageIQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ManageIQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ManageIQ/subscriptions","organizations_url":"https://api.github.com/users/ManageIQ/orgs","repos_url":"https://api.github.com/users/ManageIQ/repos","events_url":"https://api.github.com/users/ManageIQ/events{/privacy}","received_events_url":"https://api.github.com/users/ManageIQ/received_events","type":"Organization","site_admin":false},"repo":{"id":8061086,"node_id":"MDEwOlJlcG9zaXRvcnk4MDYxMDg2","name":"integration_tests","full_name":"ManageIQ/integration_tests","owner":{"login":"ManageIQ","id":1125575,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjU1NzU=","avatar_url":"https://avatars0.githubusercontent.com/u/1125575?v=4","gravatar_id":"","url":"https://api.github.com/users/ManageIQ","html_url":"https://github.com/ManageIQ","followers_url":"https://api.github.com/users/ManageIQ/followers","following_url":"https://api.github.com/users/ManageIQ/following{/other_user}","gists_url":"https://api.github.com/users/ManageIQ/gists{/gist_id}","starred_url":"https://api.github.com/users/ManageIQ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ManageIQ/subscriptions","organizations_url":"https://api.github.com/users/ManageIQ/orgs","repos_url":"https://api.github.com/users/ManageIQ/repos","events_url":"https://api.github.com/users/ManageIQ/events{/privacy}","received_events_url":"https://api.github.com/users/ManageIQ/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ManageIQ/integration_tests","description":"ManageIQ integration tests","fork":false,"url":"https://api.github.com/repos/ManageIQ/integration_tests","forks_url":"https://api.github.com/repos/ManageIQ/integration_tests/forks","keys_url":"https://api.github.com/repos/ManageIQ/integration_tests/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ManageIQ/integration_tests/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ManageIQ/integration_tests/teams","hooks_url":"https://api.github.com/repos/ManageIQ/integration_tests/hooks","issue_events_url":"https://api.github.com/repos/ManageIQ/integration_tests/issues/events{/number}","events_url":"https://api.github.com/repos/ManageIQ/integration_tests/events","assignees_url":"https://api.github.com/repos/ManageIQ/integration_tests/assignees{/user}","branches_url":"https://api.github.com/repos/ManageIQ/integration_tests/branches{/branch}","tags_url":"https://api.github.com/repos/ManageIQ/integration_tests/tags","blobs_url":"https://api.github.com/repos/ManageIQ/integration_tests/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ManageIQ/integration_tests/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ManageIQ/integration_tests/git/refs{/sha}","trees_url":"https://api.github.com/repos/ManageIQ/integration_tests/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ManageIQ/integration_tests/statuses/{sha}","languages_url":"https://api.github.com/repos/ManageIQ/integration_tests/languages","stargazers_url":"https://api.github.com/repos/ManageIQ/integration_tests/stargazers","contributors_url":"https://api.github.com/repos/ManageIQ/integration_tests/contributors","subscribers_url":"https://api.github.com/repos/ManageIQ/integration_tests/subscribers","subscription_url":"https://api.github.com/repos/ManageIQ/integration_tests/subscription","commits_url":"https://api.github.com/repos/ManageIQ/integration_tests/commits{/sha}","git_commits_url":"https://api.github.com/repos/ManageIQ/integration_tests/git/commits{/sha}","comments_url":"https://api.github.com/repos/ManageIQ/integration_tests/comments{/number}","issue_comment_url":"https://api.github.com/repos/ManageIQ/integration_tests/issues/comments{/number}","contents_url":"https://api.github.com/repos/ManageIQ/integration_tests/contents/{+path}","compare_url":"https://api.github.com/repos/ManageIQ/integration_tests/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ManageIQ/integration_tests/merges","archive_url":"https://api.github.com/repos/ManageIQ/integration_tests/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ManageIQ/integration_tests/downloads","issues_url":"https://api.github.com/repos/ManageIQ/integration_tests/issues{/number}","pulls_url":"https://api.github.com/repos/ManageIQ/integration_tests/pulls{/number}","milestones_url":"https://api.github.com/repos/ManageIQ/integration_tests/milestones{/number}","notifications_url":"https://api.github.com/repos/ManageIQ/integration_tests/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ManageIQ/integration_tests/labels{/name}","releases_url":"https://api.github.com/repos/ManageIQ/integration_tests/releases{/id}","deployments_url":"https://api.github.com/repos/ManageIQ/integration_tests/deployments","created_at":"2013-02-06T21:59:17Z","updated_at":"2018-07-24T13:42:32Z","pushed_at":"2018-07-24T16:08:33Z","git_url":"git://github.com/ManageIQ/integration_tests.git","ssh_url":"git@github.com:ManageIQ/integration_tests.git","clone_url":"https://github.com/ManageIQ/integration_tests.git","svn_url":"https://github.com/ManageIQ/integration_tests","homepage":"","size":27490,"stargazers_count":61,"watchers_count":61,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":140,"mirror_url":null,"archived":false,"open_issues_count":181,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":140,"open_issues":181,"watchers":61,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422"},"html":{"href":"https://github.com/ManageIQ/integration_tests/pull/7422"},"issue":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/issues/7422"},"comments":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/issues/7422/comments"},"review_comments":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422/comments"},"review_comment":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/pulls/7422/commits"},"statuses":{"href":"https://api.github.com/repos/ManageIQ/integration_tests/statuses/02ec524414df6dcbc63324b6920e39ee3c6378ba"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"matheuscmelo"}}