{"action":"created","comment":{"url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/comments/23080442","id":23080442,"diff_hunk":"@@ -0,0 +1,187 @@\n+# Copyright (c) 2014 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 sgtk\n+from sgtk import TankError\n+import os\n+import re\n+\n+HookBaseClass = sgtk.get_hook_baseclass()\n+\n+class ExportSettings(HookBaseClass):\n+    \"\"\"\n+    This hook controls the settings that flame will use when it exports the quicktimes \n+    prior to uploading them to Shotgun. It also lets a user control where on disk temporary\n+    quicktime files will be located.\n+    \"\"\"\n+\n+    def get_export_preset(self):\n+        \"\"\"\n+        Return the path to a flame export preset that should be used when generating \n+        a sequence quicktime.\n+        \n+        :returns: Path on disk to flame export preset \n+        \"\"\"\n+        return self._generate_profile_xml()\n+\n+    ###############################################################################################\n+    # helper methods and internals\n+    \n+    def _write_content_to_file(self, content, file_name):\n+        \"\"\"\n+        Helper method. Writes content to file and returns the path.\n+        The content will be written to the app specific cache location \n+        on disk, organized by app instance name. The rationale is that \n+        each app instance holds its own configuration, and the configuration\n+        generates one set of unique xml files.\n+        \n+        :param content: Data to write to the file\n+        :param file_name: The name of the file to create\n+        :returns: path to the created file\n+        \"\"\"\n+        # determine location\n+        file_path = os.path.join(self.parent.cache_location, self.parent.instance_name, file_name)\n+        folder = os.path.dirname(file_path)\n+\n+        # create folders\n+        if not os.path.exists(folder):\n+            old_umask = os.umask(0)\n+            os.makedirs(folder, 0777)\n+            os.umask(old_umask)\n+        \n+        # write data\n+        fh = open(file_path, \"wt\")\n+        fh.write(content)\n+        fh.close()\n+        \n+        self.parent.log_debug(\"Wrote temporary file '%s'\" % file_path)\n+        return file_path\n+        \n+    def _generate_quicktime_settings(self):\n+        \"\"\"\n+        Generate quicktime codec presets and return the path to \n+        the generated file.\n+        \n+        :returns: path to quicktime codec presets (.cdxprof) xml file\n+        \"\"\" \n+\n+        xml = \"\"\"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n+<codecprofile version=\"1.0\">\n+   <format name=\"QuickTime\">\n+      <essence name=\"video\">\n+         <provider name=\"libquicktime\">\n+            <codec name=\"H264E\" longname=\"H264\" type=\"video\" description=\"Main Concept H264 Codec\">\n+               <params presetName=\"High_Blu_Ray_8Mbits\">\n+                  <param name=\"Target preset\" internalname=\"target_preset\" description=\"\" type=\"enum\" value=\"H264_BD\" />\n+                  <param name=\"Frame-type options\" internalname=\"frame_type\" description=\"\" type=\"section\" />\n+                  <param name=\"GOP size\" internalname=\"idr_interval\" description=\"\" type=\"int\" min=\"1\" max=\"300\" value=\"30\" />\n+                  <param name=\"B-Frames\" internalname=\"numBframes\" description=\"Number of B-frames between I and P\" type=\"int\" min=\"0\" max=\"3\" value=\"2\" />\n+                  <param name=\"Adaptive B-frame decision\" internalname=\"adaptive_b_frames\" description=\"\" type=\"bool\" value=\"1\" />\n+                  <param name=\"Automatic scene detection\" internalname=\"vcsd_mode\" description=\"\" type=\"bool\" value=\"1\" />\n+                  <param name=\"Rate control\" internalname=\"ratecontrol\" description=\"\" type=\"section\" />\n+                  <param name=\"Rate control method\" internalname=\"bit_rate_mode\" description=\"\" type=\"enum\" value=\"Average bitrate\" />\n+                  <param name=\"Bitrate\" internalname=\"bit_rate\" description=\"Bitrate in kbit/s. (Used in bitrate mode.)\" type=\"int\" min=\"1\" max=\"1000000\" value=\"8000\" />\n+                  <param name=\"Max bitrate\" internalname=\"max_bit_rate\" description=\"Max bitrate in kbit/s. Must be greater than the bitrate. (Used in bitrate mode.)\" type=\"int\" min=\"1\" max=\"1000000\" value=\"9999\" />\n+                  <param name=\"I-frame quantizer\" internalname=\"quant_pI\" description=\"Quantization value for I-frames. (Used in quantizer mode.)\" type=\"int\" min=\"1\" max=\"51\" value=\"24\" />\n+                  <param name=\"P-frame quantizer\" internalname=\"quant_pP\" description=\"Quantization value for P-frames. (Used in quantizer mode.)\" type=\"int\" min=\"1\" max=\"51\" value=\"25\" />\n+                  <param name=\"B-frame quantizer\" internalname=\"quant_pB\" description=\"Quantization value for B-frames. (Used in quantizer mode.)\" type=\"int\" min=\"1\" max=\"51\" value=\"27\" />\n+                  <param name=\"Minimum quantizer\" internalname=\"min_quant\" description=\"Minimum quantization value. (Used in both mode.)\" type=\"int\" min=\"1\" max=\"51\" value=\"0\" />\n+                  <param name=\"Maximum quantizer\" internalname=\"max_quant\" description=\"Maximum quantization value. (Used in both mode.)\" type=\"int\" min=\"1\" max=\"51\" value=\"51\" />\n+                  <param name=\"Advanced\" internalname=\"advanced\" description=\"\" type=\"section\" />\n+                  <param name=\"Optimize rate-distortion cost\" internalname=\"rd_optimization\" description=\"\" type=\"bool\" value=\"1\" />\n+               </params>\n+            </codec>\n+         </provider>\n+      </essence>\n+   </format>\n+</codecprofile>\n+        \"\"\"\n+        \n+        path = self._write_content_to_file(xml, \"quicktime_settings.cdxprof\")\n+        return path\n+    \n+    def _generate_profile_xml(self):\n+        \"\"\"\n+        Generate flame export profile settings suitable for generating a single quicktime \n+        file to represent an entire sequence.\n+        \n+        :returns: path to export preset xml file\n+        \"\"\"\n+        \n+        # this profile is a 8-bit QuickTime file (H.264 1280x720 8Mbits) with \n+        # preset High_Blu_Ray_8Mbits, suitable for upload to Shotgun Review.\n+        #\n+        # for more details around quicktime settings and shotgun, see\n+        # https://support.shotgunsoftware.com/entries/26303513-Transcoding\n+        \n+        xml = \"\"\"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n+<preset version=\"4\">\n+   <type>movie</type>\n+   <comment>Creates an 8-bit QuickTime file (H.264 1280x720 8Mbits).</comment>\n+   <movie>\n+      <fileType>QuickTime</fileType>\n+      <namePattern></namePattern>\n+      <yuvHeadroom>False</yuvHeadroom>\n+      <yuvColourSpace>PCS_UNKNOWN</yuvColourSpace>\n+      <operationalPattern>None</operationalPattern>\n+      <companyName>Autodesk</companyName>\n+      <productName />\n+      <versionName />\n+   </movie>\n+   <video>\n+      <fileType>QuickTime</fileType>\n+      <codec>33622016</codec>\n+      <codecProfile>{CODE_PROFILE_PATH}</codecProfile>\n+      <namePattern></namePattern>\n+      <compressionQuality>50</compressionQuality>\n+      <transferCharacteristic>2</transferCharacteristic>\n+      <colorimetricSpecification>4</colorimetricSpecification>\n+      <publishLinked>False</publishLinked>\n+      <foregroundPublish>False</foregroundPublish>\n+      <overwriteWithVersions>False</overwriteWithVersions>\n+      <resize>\n+         <resizeType>fit</resizeType>\n+         <resizeFilter>lanczos</resizeFilter>\n+         <width>1280</width>\n+         <height>720</height>\n+         <bitsPerChannel>8</bitsPerChannel>\n+         <numChannels>3</numChannels>\n+         <floatingPoint>False</floatingPoint>\n+         <bigEndian>True</bigEndian>\n+         <pixelRatio>1</pixelRatio>\n+         <scanFormat>P</scanFormat>\n+      </resize>\n+   </video>\n+   <audio>\n+      <fileType>QuickTime</fileType>\n+      <codec>4026601474</codec>\n+      <codecProfile />\n+      <namePattern></namePattern>\n+      <mixdown>AsIs</mixdown>\n+      <sampleRate>48000</sampleRate>\n+      <bitRate>128</bitRate>\n+      <bitDepth>-1</bitDepth>\n+   </audio>\n+   <name>\n+      <framePadding>8</framePadding>\n+      <startFrame>0</startFrame>\n+      <useTimecode>False</useTimecode>\n+   </name>\n+</preset>\n+        \"\"\"\n+        # first generate the quicktime presets and bind this up to the content above\n+        quicktime_settings_path = self._generate_quicktime_settings()\n+        # plug in the path to the quicktime preset\n+        resolved_xml = xml.replace(\"{CODE_PROFILE_PATH}\", quicktime_settings_path)","path":"hooks/settings.py","position":182,"original_position":182,"commit_id":"8b6368ec390eefe773999643bcd5437b394e1b63","original_commit_id":"8b6368ec390eefe773999643bcd5437b394e1b63","user":{"login":"sgsteph","id":7289580,"avatar_url":"https://avatars.githubusercontent.com/u/7289580?v=3","gravatar_id":"","url":"https://api.github.com/users/sgsteph","html_url":"https://github.com/sgsteph","followers_url":"https://api.github.com/users/sgsteph/followers","following_url":"https://api.github.com/users/sgsteph/following{/other_user}","gists_url":"https://api.github.com/users/sgsteph/gists{/gist_id}","starred_url":"https://api.github.com/users/sgsteph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgsteph/subscriptions","organizations_url":"https://api.github.com/users/sgsteph/orgs","repos_url":"https://api.github.com/users/sgsteph/repos","events_url":"https://api.github.com/users/sgsteph/events{/privacy}","received_events_url":"https://api.github.com/users/sgsteph/received_events","type":"User","site_admin":false},"body":"Why not using a standard string formatter, like %s ? What if other values need to be set before writing the data ?","created_at":"2015-01-16T13:44:19Z","updated_at":"2015-01-16T13:44:19Z","html_url":"https://github.com/shotgunsoftware/tk-flame-review/pull/2#discussion_r23080442","pull_request_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2","_links":{"self":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/comments/23080442"},"html":{"href":"https://github.com/shotgunsoftware/tk-flame-review/pull/2#discussion_r23080442"},"pull_request":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2","id":27497022,"html_url":"https://github.com/shotgunsoftware/tk-flame-review/pull/2","diff_url":"https://github.com/shotgunsoftware/tk-flame-review/pull/2.diff","patch_url":"https://github.com/shotgunsoftware/tk-flame-review/pull/2.patch","issue_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/2","number":2,"state":"open","locked":false,"title":"Initial code review","user":{"login":"sgsteph","id":7289580,"avatar_url":"https://avatars.githubusercontent.com/u/7289580?v=3","gravatar_id":"","url":"https://api.github.com/users/sgsteph","html_url":"https://github.com/sgsteph","followers_url":"https://api.github.com/users/sgsteph/followers","following_url":"https://api.github.com/users/sgsteph/following{/other_user}","gists_url":"https://api.github.com/users/sgsteph/gists{/gist_id}","starred_url":"https://api.github.com/users/sgsteph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgsteph/subscriptions","organizations_url":"https://api.github.com/users/sgsteph/orgs","repos_url":"https://api.github.com/users/sgsteph/repos","events_url":"https://api.github.com/users/sgsteph/events{/privacy}","received_events_url":"https://api.github.com/users/sgsteph/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-01-16T10:43:12Z","updated_at":"2015-01-16T13:44:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3efb9fa6629f92135dea50b96e6fb0e18b738eea","assignee":{"login":"sgsteph","id":7289580,"avatar_url":"https://avatars.githubusercontent.com/u/7289580?v=3","gravatar_id":"","url":"https://api.github.com/users/sgsteph","html_url":"https://github.com/sgsteph","followers_url":"https://api.github.com/users/sgsteph/followers","following_url":"https://api.github.com/users/sgsteph/following{/other_user}","gists_url":"https://api.github.com/users/sgsteph/gists{/gist_id}","starred_url":"https://api.github.com/users/sgsteph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sgsteph/subscriptions","organizations_url":"https://api.github.com/users/sgsteph/orgs","repos_url":"https://api.github.com/users/sgsteph/repos","events_url":"https://api.github.com/users/sgsteph/events{/privacy}","received_events_url":"https://api.github.com/users/sgsteph/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2/commits","review_comments_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2/comments","review_comment_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/comments/{number}","comments_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/2/comments","statuses_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/statuses/8b6368ec390eefe773999643bcd5437b394e1b63","head":{"label":"shotgunsoftware:master","ref":"master","sha":"8b6368ec390eefe773999643bcd5437b394e1b63","user":{"login":"shotgunsoftware","id":317894,"avatar_url":"https://avatars.githubusercontent.com/u/317894?v=3","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":24864920,"name":"tk-flame-review","full_name":"shotgunsoftware/tk-flame-review","owner":{"login":"shotgunsoftware","id":317894,"avatar_url":"https://avatars.githubusercontent.com/u/317894?v=3","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-flame-review","description":"Send content to review from Flame.","fork":false,"url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review","forks_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/forks","keys_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/teams","hooks_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/hooks","issue_events_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/events{/number}","events_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/events","assignees_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/assignees{/user}","branches_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/branches{/branch}","tags_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/tags","blobs_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/refs{/sha}","trees_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/statuses/{sha}","languages_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/languages","stargazers_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/stargazers","contributors_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/contributors","subscribers_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/subscribers","subscription_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/subscription","commits_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/commits{/sha}","git_commits_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/commits{/sha}","comments_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/comments{/number}","issue_comment_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/comments/{number}","contents_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/contents/{+path}","compare_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/merges","archive_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/downloads","issues_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues{/number}","pulls_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls{/number}","milestones_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/milestones{/number}","notifications_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/labels{/name}","releases_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/releases{/id}","created_at":"2014-10-06T21:08:01Z","updated_at":"2014-10-22T17:17:15Z","pushed_at":"2015-01-16T10:41:44Z","git_url":"git://github.com/shotgunsoftware/tk-flame-review.git","ssh_url":"git@github.com:shotgunsoftware/tk-flame-review.git","clone_url":"https://github.com/shotgunsoftware/tk-flame-review.git","svn_url":"https://github.com/shotgunsoftware/tk-flame-review","homepage":"","size":23955,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"shotgunsoftware:26904_initial_code_review","ref":"26904_initial_code_review","sha":"deee564012787987add4eba9eaca5936b0039358","user":{"login":"shotgunsoftware","id":317894,"avatar_url":"https://avatars.githubusercontent.com/u/317894?v=3","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":24864920,"name":"tk-flame-review","full_name":"shotgunsoftware/tk-flame-review","owner":{"login":"shotgunsoftware","id":317894,"avatar_url":"https://avatars.githubusercontent.com/u/317894?v=3","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-flame-review","description":"Send content to review from Flame.","fork":false,"url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review","forks_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/forks","keys_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/teams","hooks_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/hooks","issue_events_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/events{/number}","events_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/events","assignees_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/assignees{/user}","branches_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/branches{/branch}","tags_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/tags","blobs_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/refs{/sha}","trees_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/statuses/{sha}","languages_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/languages","stargazers_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/stargazers","contributors_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/contributors","subscribers_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/subscribers","subscription_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/subscription","commits_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/commits{/sha}","git_commits_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/git/commits{/sha}","comments_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/comments{/number}","issue_comment_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/comments/{number}","contents_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/contents/{+path}","compare_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/merges","archive_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/downloads","issues_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues{/number}","pulls_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls{/number}","milestones_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/milestones{/number}","notifications_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/labels{/name}","releases_url":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/releases{/id}","created_at":"2014-10-06T21:08:01Z","updated_at":"2014-10-22T17:17:15Z","pushed_at":"2015-01-16T10:41:44Z","git_url":"git://github.com/shotgunsoftware/tk-flame-review.git","ssh_url":"git@github.com:shotgunsoftware/tk-flame-review.git","clone_url":"https://github.com/shotgunsoftware/tk-flame-review.git","svn_url":"https://github.com/shotgunsoftware/tk-flame-review","homepage":"","size":23955,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2"},"html":{"href":"https://github.com/shotgunsoftware/tk-flame-review/pull/2"},"issue":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/2"},"comments":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/shotgunsoftware/tk-flame-review/statuses/8b6368ec390eefe773999643bcd5437b394e1b63"}}}}