{"action":"created","comment":{"url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/comments/230108871","pull_request_review_id":170742194,"id":230108871,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMDEwODg3MQ==","diff_hunk":"@@ -0,0 +1,166 @@\n+# Copyright 2018 SUSE LLC\n+#\n+# This file is part of ec2imgutils\n+#\n+# ec2imgutils is free software: you can redistribute it and/or modify\n+# it under the terms of the GNU General Public License as published by\n+# the Free Software Foundation, either version 3 of the License, or\n+# (at your option) any later version.\n+#\n+# ec2imgutils is distributed in the hope that it will be useful,\n+# but WITHOUT ANY WARRANTY; without even the implied warranty of\n+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+# GNU General Public License for more details.\n+#\n+# You should have received a copy of the GNU General Public License\n+# along with ec2publishimg. If not, see <http://www.gnu.org/licenses/>.\n+\n+import boto3\n+import re\n+\n+import ec2imgutils.ec2utils as utils\n+from ec2imgutils.ec2imgutils import EC2ImgUtils\n+from ec2imgutils.ec2imgutilsExceptions import EC2RemoveImgException\n+\n+class EC2RemoveImage(EC2ImgUtils):\n+    \"\"\"Remove images from EC2.\"\"\"\n+\n+    # --------------------------------------------------------------------\n+    def __init__(\n+            self,\n+            access_key=None,\n+            image_id=None,\n+            image_name=None,\n+            image_name_fragment=None,\n+            image_name_match=None,\n+            keep_snap=False,\n+            no_confirm=None,\n+            remove_all=False,\n+            secret_key=None,\n+            verbose=None):\n+        EC2ImgUtils.__init__(self)\n+\n+        self.access_key = access_key\n+        self.image_id = image_id\n+        self.image_name = image_name\n+        self.image_name_fragment = image_name_fragment\n+        self.image_name_match = image_name_match\n+        self.keep_snap = keep_snap\n+        self.no_confirm = no_confirm\n+        self.remove_all = remove_all\n+        self.secret_key = secret_key\n+        self.verbose = verbose\n+\n+    # ---------------------------------------------------------------------\n+    def _check_images_boundary_condition(self, images):\n+        \"\"\"Check if the images found meet operating conditions:\n+           If all is true we delete all found images if not we should have\n+           found only one image\"\"\"\n+        \n+        if not images:\n+            print('No images to remove found in region', self.region)\n+            # Nothing to do, move on\n+            return True\n+\n+        if len(images) > 1 and not self.remove_all:\n+            msg = 'Found multiple images to remove, but \"all\" is '\n+            msg += 'not set. Cannot disambiguate images to remove'\n+            print(msg)\n+            return False\n+\n+        return True\n+\n+    # ---------------------------------------------------------------------\n+    def _get_images_to_remove(self):\n+        \"\"\"Find the images to remove\"\"\"\n+        owned_images = self._get_owned_images()\n+        if self.image_id:\n+            return utils.find_images_by_id(owned_images, self.image_id)\n+        elif self.image_name:\n+            return utils.find_images_by_name(owned_images, self.image_name)\n+        elif self.image_name_fragment:\n+            return utils.find_images_by_name_fragment(\n+                owned_images,\n+                self.image_name_fragment)\n+        elif self.image_name_match:\n+            try:\n+                return utils.find_images_by_name_regex_match(\n+                    owned_images,\n+                    self.image_name_match)\n+            except:\n+                msg = 'Unable to complie regular expression \"%s\"'\n+                msg = msg % self.image_name_match\n+                raise EC2RemoveImgException(msg)\n+        else:\n+            msg = 'No deprecation image condition set. Should not reach '\n+            msg += 'this point.'\n+            raise EC2RemoveImgException(msg)\n+\n+    # ---------------------------------------------------------------------\n+    def _get_snapshot_id(self, image):\n+        \"\"\"Get the snapshot id associated with this image\"\"\"\n+        device_map = image.get('BlockDeviceMappings')\n+        if not device_map:\n+            error_msg = 'Image \"%s\" has no device map' % image.get('Name')\n+            raise EC2RemoveImgException(error_msg)\n+        # The image snapshot should be the first device\n+        ebs_info = device_map[0].get('Ebs')\n+        if not ebs_info:\n+            error_msg = 'Image \"%s\" is not EBS backed'  % image.get('Name')\n+            raise EC2RemoveImgException(error_msg)\n+        snapshot_id = ebs_info.get('SnapshotId')\n+        if not snapshot_id:\n+            error_msg = 'No snapshot found for image \"%s\"'  % image.get('Name')\n+            raise EC2RemoveImgException(error_msg)\n+        return snapshot_id\n+\n+    # ---------------------------------------------------------------------\n+    def print_remove_info(self):\n+        \"\"\"Print information about images that would be deleted\"\"\"\n+        self._connect()\n+        images = self._get_images_to_remove()\n+        images_ok = self._check_images_boundary_condition(images)\n+\n+        if not images_ok:\n+            # While the boundary conditions are not met, we are just printing\n+            # information thus this is not considered a failure\n+            return True\n+        \n+        header_msg = 'Would remove image '\n+        if not self.keep_snap:\n+            header_msg += 'and snapshot '\n+        header_msg += 'in region: '\n+        print(header_msg, self.region)\n+        for image in images:\n+            if not self.keep_snap:\n+                snapshot = self._get_snapshot_id(image)\n+                print('\\t\\t%s\\t%s\\t%s' % (\n+                    image['ImageId'],\n+                    image['Name'],\n+                    snapshot\n+                ))\n+            else:\n+                print('\\t\\t%s\\t%s' % (image['ImageId'], image['Name']))\n+\n+        return True\n+\n+    # ---------------------------------------------------------------------\n+    def remove_images(self):\n+        \"\"\"Remove the images\"\"\"\n+        self._connect()\n+        images = self._get_images_to_remove()\n+        images_ok = self._check_images_boundary_condition(images)\n+\n+        if not images_ok:\n+            raise EC2RemoveImgException('Image ambiguity')\n+\n+        for image in images:\n+            self._connect().deregister_image(ImageId=image['ImageId'])","path":"lib/ec2imgutils/ec2removeimg.py","position":158,"original_position":158,"commit_id":"f9501cb1491b45a68db2cc4fe6bc8af7728471fa","original_commit_id":"f9501cb1491b45a68db2cc4fe6bc8af7728471fa","user":{"login":"smarlowucf","id":8006658,"node_id":"MDQ6VXNlcjgwMDY2NTg=","avatar_url":"https://avatars1.githubusercontent.com/u/8006658?v=4","gravatar_id":"","url":"https://api.github.com/users/smarlowucf","html_url":"https://github.com/smarlowucf","followers_url":"https://api.github.com/users/smarlowucf/followers","following_url":"https://api.github.com/users/smarlowucf/following{/other_user}","gists_url":"https://api.github.com/users/smarlowucf/gists{/gist_id}","starred_url":"https://api.github.com/users/smarlowucf/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarlowucf/subscriptions","organizations_url":"https://api.github.com/users/smarlowucf/orgs","repos_url":"https://api.github.com/users/smarlowucf/repos","events_url":"https://api.github.com/users/smarlowucf/events{/privacy}","received_events_url":"https://api.github.com/users/smarlowucf/received_events","type":"User","site_admin":false},"body":"Why not store the client from above and re-use it here and in 161?","created_at":"2018-11-01T16:35:56Z","updated_at":"2018-11-01T16:36:06Z","html_url":"https://github.com/SUSE-Enceladus/ec2imgutils/pull/7#discussion_r230108871","pull_request_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/comments/230108871"},"html":{"href":"https://github.com/SUSE-Enceladus/ec2imgutils/pull/7#discussion_r230108871"},"pull_request":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7"}}},"pull_request":{"url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7","id":227626274,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI3NjI2Mjc0","html_url":"https://github.com/SUSE-Enceladus/ec2imgutils/pull/7","diff_url":"https://github.com/SUSE-Enceladus/ec2imgutils/pull/7.diff","patch_url":"https://github.com/SUSE-Enceladus/ec2imgutils/pull/7.patch","issue_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/7","number":7,"state":"open","locked":false,"title":"- Implement ec2removeimg utility","user":{"login":"rjschwei","id":1087183,"node_id":"MDQ6VXNlcjEwODcxODM=","avatar_url":"https://avatars3.githubusercontent.com/u/1087183?v=4","gravatar_id":"","url":"https://api.github.com/users/rjschwei","html_url":"https://github.com/rjschwei","followers_url":"https://api.github.com/users/rjschwei/followers","following_url":"https://api.github.com/users/rjschwei/following{/other_user}","gists_url":"https://api.github.com/users/rjschwei/gists{/gist_id}","starred_url":"https://api.github.com/users/rjschwei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rjschwei/subscriptions","organizations_url":"https://api.github.com/users/rjschwei/orgs","repos_url":"https://api.github.com/users/rjschwei/repos","events_url":"https://api.github.com/users/rjschwei/events{/privacy}","received_events_url":"https://api.github.com/users/rjschwei/received_events","type":"User","site_admin":false},"body":"  + Fix python interpreter in ec2deprecateimg and ec2publishimg, Python 3\r\n  + Update setup.py and Makefile to include utility\r\n  + Set version to 7.0.0, first releasable as replacement of previously\r\n    seperated ec2deprecateimg, ec2publishimg, and ec2uploadimg","created_at":"2018-11-01T13:53:54Z","updated_at":"2018-11-01T16:36:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4019b7865f36f1b1135ad1ef0cc40a6d0079baee","assignee":null,"assignees":[],"requested_reviewers":[{"login":"edlane","id":2977256,"node_id":"MDQ6VXNlcjI5NzcyNTY=","avatar_url":"https://avatars2.githubusercontent.com/u/2977256?v=4","gravatar_id":"","url":"https://api.github.com/users/edlane","html_url":"https://github.com/edlane","followers_url":"https://api.github.com/users/edlane/followers","following_url":"https://api.github.com/users/edlane/following{/other_user}","gists_url":"https://api.github.com/users/edlane/gists{/gist_id}","starred_url":"https://api.github.com/users/edlane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edlane/subscriptions","organizations_url":"https://api.github.com/users/edlane/orgs","repos_url":"https://api.github.com/users/edlane/repos","events_url":"https://api.github.com/users/edlane/events{/privacy}","received_events_url":"https://api.github.com/users/edlane/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7/commits","review_comments_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7/comments","review_comment_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/comments{/number}","comments_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/7/comments","statuses_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/statuses/f9501cb1491b45a68db2cc4fe6bc8af7728471fa","head":{"label":"SUSE-Enceladus:rmImg","ref":"rmImg","sha":"f9501cb1491b45a68db2cc4fe6bc8af7728471fa","user":{"login":"SUSE-Enceladus","id":40608559,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwNjA4NTU5","avatar_url":"https://avatars0.githubusercontent.com/u/40608559?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE-Enceladus","html_url":"https://github.com/SUSE-Enceladus","followers_url":"https://api.github.com/users/SUSE-Enceladus/followers","following_url":"https://api.github.com/users/SUSE-Enceladus/following{/other_user}","gists_url":"https://api.github.com/users/SUSE-Enceladus/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE-Enceladus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE-Enceladus/subscriptions","organizations_url":"https://api.github.com/users/SUSE-Enceladus/orgs","repos_url":"https://api.github.com/users/SUSE-Enceladus/repos","events_url":"https://api.github.com/users/SUSE-Enceladus/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE-Enceladus/received_events","type":"Organization","site_admin":false},"repo":{"id":149345248,"node_id":"MDEwOlJlcG9zaXRvcnkxNDkzNDUyNDg=","name":"ec2imgutils","full_name":"SUSE-Enceladus/ec2imgutils","private":false,"owner":{"login":"SUSE-Enceladus","id":40608559,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwNjA4NTU5","avatar_url":"https://avatars0.githubusercontent.com/u/40608559?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE-Enceladus","html_url":"https://github.com/SUSE-Enceladus","followers_url":"https://api.github.com/users/SUSE-Enceladus/followers","following_url":"https://api.github.com/users/SUSE-Enceladus/following{/other_user}","gists_url":"https://api.github.com/users/SUSE-Enceladus/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE-Enceladus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE-Enceladus/subscriptions","organizations_url":"https://api.github.com/users/SUSE-Enceladus/orgs","repos_url":"https://api.github.com/users/SUSE-Enceladus/repos","events_url":"https://api.github.com/users/SUSE-Enceladus/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE-Enceladus/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/SUSE-Enceladus/ec2imgutils","description":"A collection of utility scripts to manage images","fork":false,"url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils","forks_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/forks","keys_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/teams","hooks_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/hooks","issue_events_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/events{/number}","events_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/events","assignees_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/assignees{/user}","branches_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/branches{/branch}","tags_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/tags","blobs_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/refs{/sha}","trees_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/statuses/{sha}","languages_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/languages","stargazers_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/stargazers","contributors_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/contributors","subscribers_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/subscribers","subscription_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/subscription","commits_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/commits{/sha}","git_commits_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/commits{/sha}","comments_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/comments{/number}","issue_comment_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/comments{/number}","contents_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/contents/{+path}","compare_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/merges","archive_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/downloads","issues_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues{/number}","pulls_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls{/number}","milestones_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/milestones{/number}","notifications_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/labels{/name}","releases_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/releases{/id}","deployments_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/deployments","created_at":"2018-09-18T20:02:25Z","updated_at":"2018-10-09T22:41:32Z","pushed_at":"2018-11-01T13:53:54Z","git_url":"git://github.com/SUSE-Enceladus/ec2imgutils.git","ssh_url":"git@github.com:SUSE-Enceladus/ec2imgutils.git","clone_url":"https://github.com/SUSE-Enceladus/ec2imgutils.git","svn_url":"https://github.com/SUSE-Enceladus/ec2imgutils","homepage":null,"size":292,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"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":1,"watchers":0,"default_branch":"master"}},"base":{"label":"SUSE-Enceladus:master","ref":"master","sha":"1389c171a46f7f17b8747e02aa6be608316c3256","user":{"login":"SUSE-Enceladus","id":40608559,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwNjA4NTU5","avatar_url":"https://avatars0.githubusercontent.com/u/40608559?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE-Enceladus","html_url":"https://github.com/SUSE-Enceladus","followers_url":"https://api.github.com/users/SUSE-Enceladus/followers","following_url":"https://api.github.com/users/SUSE-Enceladus/following{/other_user}","gists_url":"https://api.github.com/users/SUSE-Enceladus/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE-Enceladus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE-Enceladus/subscriptions","organizations_url":"https://api.github.com/users/SUSE-Enceladus/orgs","repos_url":"https://api.github.com/users/SUSE-Enceladus/repos","events_url":"https://api.github.com/users/SUSE-Enceladus/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE-Enceladus/received_events","type":"Organization","site_admin":false},"repo":{"id":149345248,"node_id":"MDEwOlJlcG9zaXRvcnkxNDkzNDUyNDg=","name":"ec2imgutils","full_name":"SUSE-Enceladus/ec2imgutils","private":false,"owner":{"login":"SUSE-Enceladus","id":40608559,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQwNjA4NTU5","avatar_url":"https://avatars0.githubusercontent.com/u/40608559?v=4","gravatar_id":"","url":"https://api.github.com/users/SUSE-Enceladus","html_url":"https://github.com/SUSE-Enceladus","followers_url":"https://api.github.com/users/SUSE-Enceladus/followers","following_url":"https://api.github.com/users/SUSE-Enceladus/following{/other_user}","gists_url":"https://api.github.com/users/SUSE-Enceladus/gists{/gist_id}","starred_url":"https://api.github.com/users/SUSE-Enceladus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SUSE-Enceladus/subscriptions","organizations_url":"https://api.github.com/users/SUSE-Enceladus/orgs","repos_url":"https://api.github.com/users/SUSE-Enceladus/repos","events_url":"https://api.github.com/users/SUSE-Enceladus/events{/privacy}","received_events_url":"https://api.github.com/users/SUSE-Enceladus/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/SUSE-Enceladus/ec2imgutils","description":"A collection of utility scripts to manage images","fork":false,"url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils","forks_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/forks","keys_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/teams","hooks_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/hooks","issue_events_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/events{/number}","events_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/events","assignees_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/assignees{/user}","branches_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/branches{/branch}","tags_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/tags","blobs_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/refs{/sha}","trees_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/statuses/{sha}","languages_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/languages","stargazers_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/stargazers","contributors_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/contributors","subscribers_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/subscribers","subscription_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/subscription","commits_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/commits{/sha}","git_commits_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/git/commits{/sha}","comments_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/comments{/number}","issue_comment_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/comments{/number}","contents_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/contents/{+path}","compare_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/merges","archive_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/downloads","issues_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues{/number}","pulls_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls{/number}","milestones_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/milestones{/number}","notifications_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/labels{/name}","releases_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/releases{/id}","deployments_url":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/deployments","created_at":"2018-09-18T20:02:25Z","updated_at":"2018-10-09T22:41:32Z","pushed_at":"2018-11-01T13:53:54Z","git_url":"git://github.com/SUSE-Enceladus/ec2imgutils.git","ssh_url":"git@github.com:SUSE-Enceladus/ec2imgutils.git","clone_url":"https://github.com/SUSE-Enceladus/ec2imgutils.git","svn_url":"https://github.com/SUSE-Enceladus/ec2imgutils","homepage":null,"size":292,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":1,"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":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7"},"html":{"href":"https://github.com/SUSE-Enceladus/ec2imgutils/pull/7"},"issue":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/7"},"comments":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/issues/7/comments"},"review_comments":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7/comments"},"review_comment":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/pulls/7/commits"},"statuses":{"href":"https://api.github.com/repos/SUSE-Enceladus/ec2imgutils/statuses/f9501cb1491b45a68db2cc4fe6bc8af7728471fa"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"smarlowucf"}}