{"action":"created","comment":{"url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/comments/215608204","pull_request_review_id":152280294,"id":215608204,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNTYwODIwNA==","diff_hunk":"@@ -0,0 +1,627 @@\n+# Copyright (c) 2018 Shotgun Software Inc.\n+#\n+# CONFIDENTIAL AND PROPRIETARY\n+#\n+# This work is provided \"AS IS\" and subject to the Shotgun Pipeline Toolkit\n+# Source Code License included in this distribution package. See LICENSE.\n+# By accessing, using, copying or modifying this work you indicate your\n+# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights\n+# not expressly granted therein are reserved by Shotgun Software Inc.\n+\n+import fnmatch\n+\n+import sgtk\n+\n+from .tree import PublishTree\n+from .plugins import CollectorPluginInstance, PublishPluginInstance\n+\n+logger = sgtk.platform.get_logger(__name__)\n+\n+\n+class PublishManager(object):\n+    \"\"\"\n+    This class is used for managing and executing publishes.\n+    \"\"\"\n+\n+    ############################################################################\n+    # setting names\n+\n+    CONFIG_COLLECTOR_HOOK_PATH = \"collector\"\n+    CONFIG_COLLECTOR_SETTINGS = \"collector_settings\"\n+    CONFIG_PLUGIN_DEFINITIONS = \"publish_plugins\"\n+    CONFIG_POST_PHASE_HOOK_PATH = \"post_phase\"\n+\n+    ############################################################################\n+    # special item property keys\n+\n+    # this is the key we'll use to store a special property on items that\n+    # are collected via a file path. we can use this later on to determine which\n+    # items were added to the tree via path collection and what that original\n+    # path was (client code could add multiple items for a single path).\n+    PROPERTY_KEY_COLLECTED_FILE_PATH = \"__collected_file_path__\"\n+\n+    ############################################################################\n+    # instance methods\n+\n+    def __init__(self, publish_logger=None):\n+        \"\"\"\n+        Initialize the manager.\n+        \"\"\"\n+\n+        # the current bundle (the publisher instance)\n+        self._bundle = sgtk.platform.current_bundle()\n+\n+        # a logger to be used by the various collector/publish plugins\n+        self._logger = publish_logger or logger\n+\n+        # the underlying tree representation of the items to publish\n+        self._tree = PublishTree()\n+\n+        # collector instance for this context\n+        self._collector_instance = None\n+\n+        # a lookup of context to publish plugins.\n+        self._processed_contexts = {}\n+\n+        # initialize the collector plugin\n+        logger.debug(\"Loading collector plugin...\")\n+        self._load_collector()\n+\n+        # go ahead and load the plugins for the current context for efficiency\n+        logger.debug(\"Loading plugins for the current context...\")\n+        self._load_publish_plugins(self._bundle.context)\n+\n+        # load the phose phase hook\n+        logger.debug(\"Loading post phase hook...\")\n+        post_phase_hook_path = self._bundle.get_setting(\n+            self.CONFIG_POST_PHASE_HOOK_PATH)\n+        self._post_phase_hook = self._bundle.create_hook_instance(\n+            post_phase_hook_path,\n+            base_class=self._bundle.base_hooks.PostPhaseHook\n+        )\n+\n+    def attach_plugins(self, items):","path":"python/tk_multi_publish2/api/manager.py","position":83,"original_position":83,"commit_id":"60a390ab59887dbdd4d4f47849127490fbcf120b","original_commit_id":"08ab850712b762c6e83dd0a52d6c0d3ce5bc4ded","user":{"login":"josh-t","id":2604646,"node_id":"MDQ6VXNlcjI2MDQ2NDY=","avatar_url":"https://avatars3.githubusercontent.com/u/2604646?v=4","gravatar_id":"","url":"https://api.github.com/users/josh-t","html_url":"https://github.com/josh-t","followers_url":"https://api.github.com/users/josh-t/followers","following_url":"https://api.github.com/users/josh-t/following{/other_user}","gists_url":"https://api.github.com/users/josh-t/gists{/gist_id}","starred_url":"https://api.github.com/users/josh-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josh-t/subscriptions","organizations_url":"https://api.github.com/users/josh-t/orgs","repos_url":"https://api.github.com/users/josh-t/repos","events_url":"https://api.github.com/users/josh-t/events{/privacy}","received_events_url":"https://api.github.com/users/josh-t/received_events","type":"User","site_admin":false},"body":"done.","created_at":"2018-09-06T12:37:28Z","updated_at":"2018-09-06T12:40:07Z","html_url":"https://github.com/shotgunsoftware/tk-multi-publish2/pull/79#discussion_r215608204","pull_request_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/comments/215608204"},"html":{"href":"https://github.com/shotgunsoftware/tk-multi-publish2/pull/79#discussion_r215608204"},"pull_request":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79"}},"in_reply_to_id":214901076},"pull_request":{"url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79","id":212506330,"node_id":"MDExOlB1bGxSZXF1ZXN0MjEyNTA2MzMw","html_url":"https://github.com/shotgunsoftware/tk-multi-publish2/pull/79","diff_url":"https://github.com/shotgunsoftware/tk-multi-publish2/pull/79.diff","patch_url":"https://github.com/shotgunsoftware/tk-multi-publish2/pull/79.patch","issue_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/79","number":79,"state":"open","locked":false,"title":"SG-7259 Standalone Publish API","user":{"login":"josh-t","id":2604646,"node_id":"MDQ6VXNlcjI2MDQ2NDY=","avatar_url":"https://avatars3.githubusercontent.com/u/2604646?v=4","gravatar_id":"","url":"https://api.github.com/users/josh-t","html_url":"https://github.com/josh-t","followers_url":"https://api.github.com/users/josh-t/followers","following_url":"https://api.github.com/users/josh-t/following{/other_user}","gists_url":"https://api.github.com/users/josh-t/gists{/gist_id}","starred_url":"https://api.github.com/users/josh-t/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josh-t/subscriptions","organizations_url":"https://api.github.com/users/josh-t/orgs","repos_url":"https://api.github.com/users/josh-t/repos","events_url":"https://api.github.com/users/josh-t/events{/privacy}","received_events_url":"https://api.github.com/users/josh-t/received_events","type":"User","site_admin":false},"body":"This CR represents the full publish API code changes that should be merged. Much of this has already been reviewed so it's not quite as big as it seems. I've gone through and made notes of what is new and changed since the last review. Most of it is polish of API to get it ready for clients.\r\n\r\nThe other big change to note is that the UI is now calling the new API to handle validation/publish. This was tricky since the UI was previously traversing the tree widget structure to publish and update the display of the widgets. These changes introduce the idea that client code can provide their own \"task generator\" for iterating over tasks in any order and allowing the API to act on them. \r\n\r\nBy default the API will iterate over all active tasks for all active items. The UI provides its own generator to iterate over the checked items in the tree widget. The code makes use of python's `send()` functionality which allows the processing methods to send results back to the generator code, allowing it to respond to each iteration step in turn. This is what allows the UI to then update itself as each task is processed. \r\n\r\nThe end result is a publish API that gives some pretty interesting flexibility to client code. This generator pattern can now be used to iterate over the same publish tree structure but generate different tasks like, for example, when running locally or on the farm.\r\n\r\nLong term, @jfboismenu and I still think it's worth writing a new Qt model that uses the underlying tree structure as its data source. In the short term though, this feels like a good solution that doesn't require rewriting the publish UI. Curious to hear your thoughts after seeing the code.\r\n\r\nI still have testing to do and generate/polish new docs for the API. I'll be focusing on that today/tomorrow so I'll be tweaking things, but hopefully minimally.  \r\n\r\nUpdated example of serialized publish tree: [publish_tree.txt](https://github.com/shotgunsoftware/tk-multi-publish2/files/2350048/publish_tree.txt). You'll note that the values of all task settings and item properties are pickled strings. These two implementations inherit the same base that handles this. Perhaps this is overkill but, as mentioned below, it provides some flexibility to clients who want to serialize the publish tree after injecting complex objects into the item properties. As for settings, these are typically built-in types but, in theory, a client could store complex data via the custom UIs. This *should* allow that to work if serializing and processing elsewhere. \r\n","created_at":"2018-08-31T22:23:43Z","updated_at":"2018-09-06T12:40:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3a0e99d276b5e3ca50024959e21632afb1ac32f8","assignee":null,"assignees":[],"requested_reviewers":[{"login":"jfboismenu","id":8126447,"node_id":"MDQ6VXNlcjgxMjY0NDc=","avatar_url":"https://avatars0.githubusercontent.com/u/8126447?v=4","gravatar_id":"","url":"https://api.github.com/users/jfboismenu","html_url":"https://github.com/jfboismenu","followers_url":"https://api.github.com/users/jfboismenu/followers","following_url":"https://api.github.com/users/jfboismenu/following{/other_user}","gists_url":"https://api.github.com/users/jfboismenu/gists{/gist_id}","starred_url":"https://api.github.com/users/jfboismenu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jfboismenu/subscriptions","organizations_url":"https://api.github.com/users/jfboismenu/orgs","repos_url":"https://api.github.com/users/jfboismenu/repos","events_url":"https://api.github.com/users/jfboismenu/events{/privacy}","received_events_url":"https://api.github.com/users/jfboismenu/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79/commits","review_comments_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79/comments","review_comment_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/comments{/number}","comments_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/79/comments","statuses_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/statuses/60a390ab59887dbdd4d4f47849127490fbcf120b","head":{"label":"shotgunsoftware:SG-7259_publish_api","ref":"SG-7259_publish_api","sha":"60a390ab59887dbdd4d4f47849127490fbcf120b","user":{"login":"shotgunsoftware","id":317894,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzg5NA==","avatar_url":"https://avatars1.githubusercontent.com/u/317894?v=4","gravatar_id":"","url":"https://api.github.com/users/shotgunsoftware","html_url":"https://github.com/shotgunsoftware","followers_url":"https://api.github.com/users/shotgunsoftware/followers","following_url":"https://api.github.com/users/shotgunsoftware/following{/other_user}","gists_url":"https://api.github.com/users/shotgunsoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/shotgunsoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shotgunsoftware/subscriptions","organizations_url":"https://api.github.com/users/shotgunsoftware/orgs","repos_url":"https://api.github.com/users/shotgunsoftware/repos","events_url":"https://api.github.com/users/shotgunsoftware/events{/privacy}","received_events_url":"https://api.github.com/users/shotgunsoftware/received_events","type":"Organization","site_admin":false},"repo":{"id":79725622,"node_id":"MDEwOlJlcG9zaXRvcnk3OTcyNTYyMg==","name":"tk-multi-publish2","full_name":"shotgunsoftware/tk-multi-publish2","owner":{"login":"shotgunsoftware","id":317894,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzg5NA==","avatar_url":"https://avatars1.githubusercontent.com/u/317894?v=4","gravatar_id":"","url":"https://api.github.com/users/shotgunsoftware","html_url":"https://github.com/shotgunsoftware","followers_url":"https://api.github.com/users/shotgunsoftware/followers","following_url":"https://api.github.com/users/shotgunsoftware/following{/other_user}","gists_url":"https://api.github.com/users/shotgunsoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/shotgunsoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shotgunsoftware/subscriptions","organizations_url":"https://api.github.com/users/shotgunsoftware/orgs","repos_url":"https://api.github.com/users/shotgunsoftware/repos","events_url":"https://api.github.com/users/shotgunsoftware/events{/privacy}","received_events_url":"https://api.github.com/users/shotgunsoftware/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/shotgunsoftware/tk-multi-publish2","description":"Toolkit Publishing","fork":false,"url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2","forks_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/forks","keys_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/teams","hooks_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/hooks","issue_events_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/events{/number}","events_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/events","assignees_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/assignees{/user}","branches_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/branches{/branch}","tags_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/tags","blobs_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/refs{/sha}","trees_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/statuses/{sha}","languages_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/languages","stargazers_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/stargazers","contributors_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/contributors","subscribers_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/subscribers","subscription_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/subscription","commits_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/commits{/sha}","git_commits_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/commits{/sha}","comments_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/comments{/number}","issue_comment_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/comments{/number}","contents_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/contents/{+path}","compare_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/merges","archive_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/downloads","issues_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues{/number}","pulls_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls{/number}","milestones_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/milestones{/number}","notifications_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/labels{/name}","releases_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/releases{/id}","deployments_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/deployments","created_at":"2017-01-22T15:23:54Z","updated_at":"2018-08-31T01:44:01Z","pushed_at":"2018-09-05T19:58:43Z","git_url":"git://github.com/shotgunsoftware/tk-multi-publish2.git","ssh_url":"git@github.com:shotgunsoftware/tk-multi-publish2.git","clone_url":"https://github.com/shotgunsoftware/tk-multi-publish2.git","svn_url":"https://github.com/shotgunsoftware/tk-multi-publish2","homepage":null,"size":27925,"stargazers_count":6,"watchers_count":6,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":16,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":16,"open_issues":5,"watchers":6,"default_branch":"master"}},"base":{"label":"shotgunsoftware:master","ref":"master","sha":"8502afbcf7b032d4a97361aceb4c96440bc88aee","user":{"login":"shotgunsoftware","id":317894,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzg5NA==","avatar_url":"https://avatars1.githubusercontent.com/u/317894?v=4","gravatar_id":"","url":"https://api.github.com/users/shotgunsoftware","html_url":"https://github.com/shotgunsoftware","followers_url":"https://api.github.com/users/shotgunsoftware/followers","following_url":"https://api.github.com/users/shotgunsoftware/following{/other_user}","gists_url":"https://api.github.com/users/shotgunsoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/shotgunsoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shotgunsoftware/subscriptions","organizations_url":"https://api.github.com/users/shotgunsoftware/orgs","repos_url":"https://api.github.com/users/shotgunsoftware/repos","events_url":"https://api.github.com/users/shotgunsoftware/events{/privacy}","received_events_url":"https://api.github.com/users/shotgunsoftware/received_events","type":"Organization","site_admin":false},"repo":{"id":79725622,"node_id":"MDEwOlJlcG9zaXRvcnk3OTcyNTYyMg==","name":"tk-multi-publish2","full_name":"shotgunsoftware/tk-multi-publish2","owner":{"login":"shotgunsoftware","id":317894,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzg5NA==","avatar_url":"https://avatars1.githubusercontent.com/u/317894?v=4","gravatar_id":"","url":"https://api.github.com/users/shotgunsoftware","html_url":"https://github.com/shotgunsoftware","followers_url":"https://api.github.com/users/shotgunsoftware/followers","following_url":"https://api.github.com/users/shotgunsoftware/following{/other_user}","gists_url":"https://api.github.com/users/shotgunsoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/shotgunsoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shotgunsoftware/subscriptions","organizations_url":"https://api.github.com/users/shotgunsoftware/orgs","repos_url":"https://api.github.com/users/shotgunsoftware/repos","events_url":"https://api.github.com/users/shotgunsoftware/events{/privacy}","received_events_url":"https://api.github.com/users/shotgunsoftware/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/shotgunsoftware/tk-multi-publish2","description":"Toolkit Publishing","fork":false,"url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2","forks_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/forks","keys_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/teams","hooks_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/hooks","issue_events_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/events{/number}","events_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/events","assignees_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/assignees{/user}","branches_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/branches{/branch}","tags_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/tags","blobs_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/refs{/sha}","trees_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/statuses/{sha}","languages_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/languages","stargazers_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/stargazers","contributors_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/contributors","subscribers_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/subscribers","subscription_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/subscription","commits_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/commits{/sha}","git_commits_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/git/commits{/sha}","comments_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/comments{/number}","issue_comment_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/comments{/number}","contents_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/contents/{+path}","compare_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/merges","archive_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/downloads","issues_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues{/number}","pulls_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls{/number}","milestones_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/milestones{/number}","notifications_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/labels{/name}","releases_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/releases{/id}","deployments_url":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/deployments","created_at":"2017-01-22T15:23:54Z","updated_at":"2018-08-31T01:44:01Z","pushed_at":"2018-09-05T19:58:43Z","git_url":"git://github.com/shotgunsoftware/tk-multi-publish2.git","ssh_url":"git@github.com:shotgunsoftware/tk-multi-publish2.git","clone_url":"https://github.com/shotgunsoftware/tk-multi-publish2.git","svn_url":"https://github.com/shotgunsoftware/tk-multi-publish2","homepage":null,"size":27925,"stargazers_count":6,"watchers_count":6,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":16,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":16,"open_issues":5,"watchers":6,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79"},"html":{"href":"https://github.com/shotgunsoftware/tk-multi-publish2/pull/79"},"issue":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/79"},"comments":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/issues/79/comments"},"review_comments":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79/comments"},"review_comment":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/pulls/79/commits"},"statuses":{"href":"https://api.github.com/repos/shotgunsoftware/tk-multi-publish2/statuses/60a390ab59887dbdd4d4f47849127490fbcf120b"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"josh-t"}}