{"action":"created","comment":{"url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/comments/208353310","pull_request_review_id":144145122,"id":208353310,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwODM1MzMxMA==","diff_hunk":"@@ -0,0 +1,381 @@\n+import { Build, BuildGetLogResult, BuildListResult, BuildTaskListResult, Registry, RegistryListResult, RegistryNameStatus } from \"azure-arm-containerregistry/lib/models\";\n+import { BlobService, createBlobServiceWithSas } from \"azure-storage\";\n+import * as path from 'path';\n+import * as vscode from \"vscode\";\n+import { AzureImageNode, AzureLoadingNode, AzureNotSignedInNode, AzureRegistryNode, AzureRepositoryNode } from '../../explorer/models/azureRegistryNodes';\n+import ContainerRegistryManagementClient from \"../../node_modules/azure-arm-containerregistry\";\n+import { Subscription } from \"../../node_modules/azure-arm-resource/lib/subscription/models\";\n+import { getSubscriptionFromRegistry } from '../../utils/Azure/acrTools';\n+import { AzureCredentialsManager } from '../../utils/azureCredentialsManager';\n+import { quickPickACRRegistry } from '../utils/quick-pick-azure'\n+\n+const teleCmdId: string = 'vscode-docker.buildTaskLog';\n+\n+/**  This command is used through a right click on an azure registry, repository or image in the Docker Explorer. It is used to view build logs for a given item. */\n+export async function viewBuildLogs(context: AzureRegistryNode | AzureRepositoryNode | AzureImageNode): Promise<void> {\n+    let registry: Registry;\n+    let subscription: Subscription;\n+    if (!context) {\n+        registry = await quickPickACRRegistry();\n+        if (!registry) { return; }\n+        subscription = getSubscriptionFromRegistry(registry);\n+    } else {\n+        registry = context.registry;\n+        subscription = context.subscription;\n+    }\n+    let resourceGroup: string = registry.id.slice(registry.id.search('resourceGroups/') + 'resourceGroups/'.length, registry.id.search('/providers/'));\n+\n+    const client = AzureCredentialsManager.getInstance().getContainerRegistryManagementClient(subscription);\n+    let logData: LogData = new LogData(client, registry, resourceGroup);\n+    const filterFunction = context ? getFilterFunction(context) : undefined;\n+    try {\n+        await logData.loadMoreLogs(filterFunction);\n+    } catch (error) {\n+        if (error.code !== \"NoRegisteredProviderFound\") {\n+            throw error;\n+        }\n+    }\n+\n+    if (logData.logs.length === 0) {\n+        let itemType: string;\n+        if (context && context instanceof AzureRepositoryNode) {\n+            itemType = 'repository';\n+        } else if (context && context instanceof AzureRepositoryNode) {\n+            itemType = 'image';\n+        } else {\n+            itemType = 'registry';\n+        }\n+        vscode.window.showErrorMessage(`This ${itemType} has no associated build logs`);\n+        return;\n+    }\n+\n+    let links: { url?: string, id: number }[] = [];\n+\n+    links.sort((a, b): number => { return a.id - b.id });\n+    let webViewTitle: string = registry.name;\n+    if (context instanceof AzureRepositoryNode || context instanceof AzureImageNode) {\n+        webViewTitle += (context ? '/' + context.label : '');\n+    }\n+    createWebview(webViewTitle, logData);\n+\n+}\n+\n+//# WEBVIEW COMPONENTS\n+/** Generate the webview to display the logs */\n+function createWebview(webviewName: string, logData: LogData): void {\n+    //Creating the panel in which to show the logs\n+    const panel = vscode.window.createWebviewPanel('log Viewer', webviewName, vscode.ViewColumn.One, { enableScripts: true, retainContextWhenHidden: true });\n+\n+    //Get path to resource on disk\n+    let extensionPath = vscode.extensions.getExtension(\"PeterJausovec.vscode-docker\").extensionPath;\n+    const scriptPath = vscode.Uri.file(path.join(extensionPath, 'commands', 'azureCommands', 'acr-build-logs-utils', 'logScripts.js'));\n+    const scriptFile = scriptPath.with({ scheme: 'vscode-resource' });\n+    const stylePath = vscode.Uri.file(path.join(extensionPath, 'commands', 'azureCommands', 'acr-build-logs-utils', 'stylesheet.css'));\n+    const styleFile = stylePath.with({ scheme: 'vscode-resource' });\n+\n+    //Populate Webview\n+    panel.webview.html = getWebviewContent(scriptFile, styleFile);\n+    addLogsToWebView(panel, logData);\n+}\n+/** Communicates with the webview javascript file through post requests to populate the log table */\n+function addLogsToWebView(panel: vscode.WebviewPanel, logData: LogData, startItem?: number): void {\n+    const begin = startItem ? startItem : 0;\n+    if (!startItem) { setupCommunication(panel, logData); }\n+    for (let i = begin; i < logData.logs.length; i++) {\n+        const log = logData.logs[i];\n+        const buildTask: string = log.buildTask ? log.buildTask : '?';\n+        const startTime: string = log.startTime ? log.startTime.toLocaleString() : '?';\n+        const finishTime: string = log.finishTime ? log.finishTime.toLocaleString() : '?';\n+        const osType: string = log.platform.osType ? log.platform.osType : '?';\n+        const name: string = log.name ? log.name : '?';\n+        let imageOutput: string = '';\n+\n+        let needsNA: boolean = false;\n+        if (logData.logs[i].outputImages) {\n+            for (const img of log.outputImages) {\n+                if (img) {\n+                    const tag: string = img.tag ? img.tag : '?';\n+                    const repository: string = img.repository ? img.repository : '?';\n+                    const registry: string = img.registry ? img.registry : '?';\n+                    const digest: string = img.digest ? img.digest : '?';\n+                    imageOutput += `<tr>\n+                                    <td>${tag}</td>\n+                                    <td>${repository}</td>\n+                                    <td>${registry}</td>\n+                                    <td>${digest}</td>\n+                                </tr>`;\n+                }\n+            }\n+            if (!log.outputImages[0]) {\n+                needsNA = true;\n+            }\n+        } else {\n+            needsNA = true;\n+        }\n+        if (needsNA) {\n+            imageOutput += `<tr>\n+                                <td>NA</td>\n+                                <td>NA</td>\n+                                <td>NA</td>\n+                                <td>NA</td>\n+                            </tr>`;\n+        }\n+\n+        panel.webview.postMessage({\n+            'type': 'populate',\n+            'id': i,\n+            'logComponent': `\n+                    <div class = \"holder\">\n+                        <button id= \"btn${i}\" class=\"accordion\">\n+                            <table>\n+                                <tr>\n+                                    <td class = 'widthControl'>${name}</td>\n+                                    <td class = 'widthControl'>${buildTask}</td>\n+                                    <td class ='status widthControl ${log.status}'>${log.status}</td>\n+                                    <td class = 'widthControl'>${startTime}</td>\n+                                    <td class = 'widthControl'>${finishTime}</td>\n+                                    <td class = 'widthControl'>${osType}</td>\n+                                    <td><div class = \"arrow\"></div></td>\n+                                </tr>\n+                            </table>\n+                        </button>\n+                        <div class=\"panel\">\n+                            <table class=\"overallTable\">\n+                                <tr>\n+                                    <td colspan=\"4\">Output Images</td>\n+                                </tr>\n+                                <tr>\n+                                    <td>Tag</th>\n+                                    <td>Repository</td>\n+                                    <td>Registry</td>\n+                                    <td>Digest</td>\n+                                </tr>\n+                                ${imageOutput}\n+                            </table>\n+                                <div class = 'button-holder'>\n+                                    <button id= \"log${i}\" class=\"viewLog\">Open Logs</button>\n+                                </div>\n+                        </div>\n+                    </div>`\n+        });\n+    }\n+    if (startItem) {\n+        panel.webview.postMessage({ 'type': 'endContinued' });\n+    } else {\n+        panel.webview.postMessage({ 'type': 'end' });\n+    }\n+}\n+/** Create the table in which to push the build logs */\n+function getWebviewContent(scriptFile: vscode.Uri, stylesheet: vscode.Uri): string {\n+    return `<!DOCTYPE html>\n+    <html lang=\"en\">\n+    <head>\n+        <link rel=\"stylesheet\" type=\"text/css\" href=\"${stylesheet}\">\n+        <meta charset=\"UTF-8\">\n+        <meta http-equiv=\"Content-Security-Policy\" content=\"frame-src vscode-resource:; img-src vscode-resource: https:; script-src vscode-resource:; style-src vscode-resource:;\">\n+        <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n+        <title>Logs</title>\n+    </head>\n+\n+    <body>\n+        <div id = \"header\">\n+            <table id=\"headerTable\">\n+                <th class = 'widthControl'>Build Name </th>\n+                <th class = 'widthControl'>BuildTask </th>\n+                <th class = 'widthControl'>Status </th>\n+                <th class = 'widthControl'>Start Time </th>\n+                <th class = 'widthControl'>Finish Time </th>\n+                <th class = 'widthControl'>Platform </th>\n+                <td></td>\n+            </table>\n+        </div>\n+        <div id = 'core'>\n+        </div>\n+        <div class = 'loadMoreBtn'>\n+            <button id= \"loadBtn\" class=\"viewLog\">Load More Logs</button>","path":"commands/azureCommands/acr-build-logs.ts","position":195,"original_position":195,"commit_id":"836f193ade883f6999d5dfd9fbb44a5d5d610c5d","original_commit_id":"836f193ade883f6999d5dfd9fbb44a5d5d610c5d","user":{"login":"rsamai","id":24214524,"node_id":"MDQ6VXNlcjI0MjE0NTI0","avatar_url":"https://avatars1.githubusercontent.com/u/24214524?v=4","gravatar_id":"","url":"https://api.github.com/users/rsamai","html_url":"https://github.com/rsamai","followers_url":"https://api.github.com/users/rsamai/followers","following_url":"https://api.github.com/users/rsamai/following{/other_user}","gists_url":"https://api.github.com/users/rsamai/gists{/gist_id}","starred_url":"https://api.github.com/users/rsamai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsamai/subscriptions","organizations_url":"https://api.github.com/users/rsamai/orgs","repos_url":"https://api.github.com/users/rsamai/repos","events_url":"https://api.github.com/users/rsamai/events{/privacy}","received_events_url":"https://api.github.com/users/rsamai/received_events","type":"User","site_admin":false},"body":"Nit: Can you increase the upper padding between the logs and the Load More Logs button? Doubling the current padding might help","created_at":"2018-08-07T19:15:27Z","updated_at":"2018-08-07T19:15:27Z","html_url":"https://github.com/AzureCR/vscode-docker/pull/41#discussion_r208353310","pull_request_url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/comments/208353310"},"html":{"href":"https://github.com/AzureCR/vscode-docker/pull/41#discussion_r208353310"},"pull_request":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41"}}},"pull_request":{"url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41","id":206787377,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA2Nzg3Mzc3","html_url":"https://github.com/AzureCR/vscode-docker/pull/41","diff_url":"https://github.com/AzureCR/vscode-docker/pull/41.diff","patch_url":"https://github.com/AzureCR/vscode-docker/pull/41.patch","issue_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues/41","number":41,"state":"open","locked":false,"title":"Estebanreyl/build logs","user":{"login":"estebanreyl","id":25871335,"node_id":"MDQ6VXNlcjI1ODcxMzM1","avatar_url":"https://avatars1.githubusercontent.com/u/25871335?v=4","gravatar_id":"","url":"https://api.github.com/users/estebanreyl","html_url":"https://github.com/estebanreyl","followers_url":"https://api.github.com/users/estebanreyl/followers","following_url":"https://api.github.com/users/estebanreyl/following{/other_user}","gists_url":"https://api.github.com/users/estebanreyl/gists{/gist_id}","starred_url":"https://api.github.com/users/estebanreyl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/estebanreyl/subscriptions","organizations_url":"https://api.github.com/users/estebanreyl/orgs","repos_url":"https://api.github.com/users/estebanreyl/repos","events_url":"https://api.github.com/users/estebanreyl/events{/privacy}","received_events_url":"https://api.github.com/users/estebanreyl/received_events","type":"User","site_admin":false},"body":"Rather large PR containing all that has been done for ACR build log visualization. Would appreciate any feedback. @sajayantony , @northtyphoon  \r\n\r\nAdded ACR build log support\r\n- 4 ways to activate\r\n   - Right click on Registry\r\n    - Right click on Repository\r\n    - Right click on tag\r\n    - ctrl +p => select registry from dropdown\r\n\r\nOpens a webview that is sorted based on the location selected (e.g. if right click on a repository it will only show builds that generated images in that repository).\r\n\r\nWebView features:\r\n- View logs\r\n- Build Name, Build Task, Status, start time, Finish Time, Platform\r\n- Animated Dropdown on click\r\n     - Output Images\r\n     - Open Logs\r\n- Sort Logs by any of name, task, status, start time, finish time and platform\r\n- Theme adaptable, adapts to different visual studio themes\r\n\r\nLogView features:\r\n- Visualize a log in a separate window\r\n- Simples but helpful coloring of errors and successes","created_at":"2018-08-07T18:28:13Z","updated_at":"2018-08-07T19:15:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b1f7a2680b4b8f075ba4ee636a2318f2b90ea262","assignee":{"login":"estebanreyl","id":25871335,"node_id":"MDQ6VXNlcjI1ODcxMzM1","avatar_url":"https://avatars1.githubusercontent.com/u/25871335?v=4","gravatar_id":"","url":"https://api.github.com/users/estebanreyl","html_url":"https://github.com/estebanreyl","followers_url":"https://api.github.com/users/estebanreyl/followers","following_url":"https://api.github.com/users/estebanreyl/following{/other_user}","gists_url":"https://api.github.com/users/estebanreyl/gists{/gist_id}","starred_url":"https://api.github.com/users/estebanreyl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/estebanreyl/subscriptions","organizations_url":"https://api.github.com/users/estebanreyl/orgs","repos_url":"https://api.github.com/users/estebanreyl/repos","events_url":"https://api.github.com/users/estebanreyl/events{/privacy}","received_events_url":"https://api.github.com/users/estebanreyl/received_events","type":"User","site_admin":false},"assignees":[{"login":"estebanreyl","id":25871335,"node_id":"MDQ6VXNlcjI1ODcxMzM1","avatar_url":"https://avatars1.githubusercontent.com/u/25871335?v=4","gravatar_id":"","url":"https://api.github.com/users/estebanreyl","html_url":"https://github.com/estebanreyl","followers_url":"https://api.github.com/users/estebanreyl/followers","following_url":"https://api.github.com/users/estebanreyl/following{/other_user}","gists_url":"https://api.github.com/users/estebanreyl/gists{/gist_id}","starred_url":"https://api.github.com/users/estebanreyl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/estebanreyl/subscriptions","organizations_url":"https://api.github.com/users/estebanreyl/orgs","repos_url":"https://api.github.com/users/estebanreyl/repos","events_url":"https://api.github.com/users/estebanreyl/events{/privacy}","received_events_url":"https://api.github.com/users/estebanreyl/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"sajayantony","id":1821104,"node_id":"MDQ6VXNlcjE4MjExMDQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1821104?v=4","gravatar_id":"","url":"https://api.github.com/users/sajayantony","html_url":"https://github.com/sajayantony","followers_url":"https://api.github.com/users/sajayantony/followers","following_url":"https://api.github.com/users/sajayantony/following{/other_user}","gists_url":"https://api.github.com/users/sajayantony/gists{/gist_id}","starred_url":"https://api.github.com/users/sajayantony/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sajayantony/subscriptions","organizations_url":"https://api.github.com/users/sajayantony/orgs","repos_url":"https://api.github.com/users/sajayantony/repos","events_url":"https://api.github.com/users/sajayantony/events{/privacy}","received_events_url":"https://api.github.com/users/sajayantony/received_events","type":"User","site_admin":false},{"login":"northtyphoon","id":2686301,"node_id":"MDQ6VXNlcjI2ODYzMDE=","avatar_url":"https://avatars3.githubusercontent.com/u/2686301?v=4","gravatar_id":"","url":"https://api.github.com/users/northtyphoon","html_url":"https://github.com/northtyphoon","followers_url":"https://api.github.com/users/northtyphoon/followers","following_url":"https://api.github.com/users/northtyphoon/following{/other_user}","gists_url":"https://api.github.com/users/northtyphoon/gists{/gist_id}","starred_url":"https://api.github.com/users/northtyphoon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/northtyphoon/subscriptions","organizations_url":"https://api.github.com/users/northtyphoon/orgs","repos_url":"https://api.github.com/users/northtyphoon/repos","events_url":"https://api.github.com/users/northtyphoon/events{/privacy}","received_events_url":"https://api.github.com/users/northtyphoon/received_events","type":"User","site_admin":false},{"login":"jvstokes","id":40584422,"node_id":"MDQ6VXNlcjQwNTg0NDIy","avatar_url":"https://avatars1.githubusercontent.com/u/40584422?v=4","gravatar_id":"","url":"https://api.github.com/users/jvstokes","html_url":"https://github.com/jvstokes","followers_url":"https://api.github.com/users/jvstokes/followers","following_url":"https://api.github.com/users/jvstokes/following{/other_user}","gists_url":"https://api.github.com/users/jvstokes/gists{/gist_id}","starred_url":"https://api.github.com/users/jvstokes/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jvstokes/subscriptions","organizations_url":"https://api.github.com/users/jvstokes/orgs","repos_url":"https://api.github.com/users/jvstokes/repos","events_url":"https://api.github.com/users/jvstokes/events{/privacy}","received_events_url":"https://api.github.com/users/jvstokes/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41/commits","review_comments_url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41/comments","review_comment_url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues/41/comments","statuses_url":"https://api.github.com/repos/AzureCR/vscode-docker/statuses/836f193ade883f6999d5dfd9fbb44a5d5d610c5d","head":{"label":"AzureCR:estebanreyl/build-logs","ref":"estebanreyl/build-logs","sha":"836f193ade883f6999d5dfd9fbb44a5d5d610c5d","user":{"login":"AzureCR","id":8304256,"node_id":"MDEyOk9yZ2FuaXphdGlvbjgzMDQyNTY=","avatar_url":"https://avatars1.githubusercontent.com/u/8304256?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureCR","html_url":"https://github.com/AzureCR","followers_url":"https://api.github.com/users/AzureCR/followers","following_url":"https://api.github.com/users/AzureCR/following{/other_user}","gists_url":"https://api.github.com/users/AzureCR/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureCR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureCR/subscriptions","organizations_url":"https://api.github.com/users/AzureCR/orgs","repos_url":"https://api.github.com/users/AzureCR/repos","events_url":"https://api.github.com/users/AzureCR/events{/privacy}","received_events_url":"https://api.github.com/users/AzureCR/received_events","type":"Organization","site_admin":false},"repo":{"id":138809054,"node_id":"MDEwOlJlcG9zaXRvcnkxMzg4MDkwNTQ=","name":"vscode-docker","full_name":"AzureCR/vscode-docker","owner":{"login":"AzureCR","id":8304256,"node_id":"MDEyOk9yZ2FuaXphdGlvbjgzMDQyNTY=","avatar_url":"https://avatars1.githubusercontent.com/u/8304256?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureCR","html_url":"https://github.com/AzureCR","followers_url":"https://api.github.com/users/AzureCR/followers","following_url":"https://api.github.com/users/AzureCR/following{/other_user}","gists_url":"https://api.github.com/users/AzureCR/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureCR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureCR/subscriptions","organizations_url":"https://api.github.com/users/AzureCR/orgs","repos_url":"https://api.github.com/users/AzureCR/repos","events_url":"https://api.github.com/users/AzureCR/events{/privacy}","received_events_url":"https://api.github.com/users/AzureCR/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AzureCR/vscode-docker","description":"Docker extension for VS Code.","fork":true,"url":"https://api.github.com/repos/AzureCR/vscode-docker","forks_url":"https://api.github.com/repos/AzureCR/vscode-docker/forks","keys_url":"https://api.github.com/repos/AzureCR/vscode-docker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AzureCR/vscode-docker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AzureCR/vscode-docker/teams","hooks_url":"https://api.github.com/repos/AzureCR/vscode-docker/hooks","issue_events_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues/events{/number}","events_url":"https://api.github.com/repos/AzureCR/vscode-docker/events","assignees_url":"https://api.github.com/repos/AzureCR/vscode-docker/assignees{/user}","branches_url":"https://api.github.com/repos/AzureCR/vscode-docker/branches{/branch}","tags_url":"https://api.github.com/repos/AzureCR/vscode-docker/tags","blobs_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/refs{/sha}","trees_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AzureCR/vscode-docker/statuses/{sha}","languages_url":"https://api.github.com/repos/AzureCR/vscode-docker/languages","stargazers_url":"https://api.github.com/repos/AzureCR/vscode-docker/stargazers","contributors_url":"https://api.github.com/repos/AzureCR/vscode-docker/contributors","subscribers_url":"https://api.github.com/repos/AzureCR/vscode-docker/subscribers","subscription_url":"https://api.github.com/repos/AzureCR/vscode-docker/subscription","commits_url":"https://api.github.com/repos/AzureCR/vscode-docker/commits{/sha}","git_commits_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/commits{/sha}","comments_url":"https://api.github.com/repos/AzureCR/vscode-docker/comments{/number}","issue_comment_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues/comments{/number}","contents_url":"https://api.github.com/repos/AzureCR/vscode-docker/contents/{+path}","compare_url":"https://api.github.com/repos/AzureCR/vscode-docker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AzureCR/vscode-docker/merges","archive_url":"https://api.github.com/repos/AzureCR/vscode-docker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AzureCR/vscode-docker/downloads","issues_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues{/number}","pulls_url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls{/number}","milestones_url":"https://api.github.com/repos/AzureCR/vscode-docker/milestones{/number}","notifications_url":"https://api.github.com/repos/AzureCR/vscode-docker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AzureCR/vscode-docker/labels{/name}","releases_url":"https://api.github.com/repos/AzureCR/vscode-docker/releases{/id}","deployments_url":"https://api.github.com/repos/AzureCR/vscode-docker/deployments","created_at":"2018-06-27T00:34:07Z","updated_at":"2018-08-07T19:13:17Z","pushed_at":"2018-08-07T19:13:15Z","git_url":"git://github.com/AzureCR/vscode-docker.git","ssh_url":"git@github.com:AzureCR/vscode-docker.git","clone_url":"https://github.com/AzureCR/vscode-docker.git","svn_url":"https://github.com/AzureCR/vscode-docker","homepage":null,"size":15860,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","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":18,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":18,"watchers":0,"default_branch":"dev"}},"base":{"label":"AzureCR:dev","ref":"dev","sha":"b80af87cc20b7ffcb072bfb90c54f3d9fc71b0f3","user":{"login":"AzureCR","id":8304256,"node_id":"MDEyOk9yZ2FuaXphdGlvbjgzMDQyNTY=","avatar_url":"https://avatars1.githubusercontent.com/u/8304256?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureCR","html_url":"https://github.com/AzureCR","followers_url":"https://api.github.com/users/AzureCR/followers","following_url":"https://api.github.com/users/AzureCR/following{/other_user}","gists_url":"https://api.github.com/users/AzureCR/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureCR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureCR/subscriptions","organizations_url":"https://api.github.com/users/AzureCR/orgs","repos_url":"https://api.github.com/users/AzureCR/repos","events_url":"https://api.github.com/users/AzureCR/events{/privacy}","received_events_url":"https://api.github.com/users/AzureCR/received_events","type":"Organization","site_admin":false},"repo":{"id":138809054,"node_id":"MDEwOlJlcG9zaXRvcnkxMzg4MDkwNTQ=","name":"vscode-docker","full_name":"AzureCR/vscode-docker","owner":{"login":"AzureCR","id":8304256,"node_id":"MDEyOk9yZ2FuaXphdGlvbjgzMDQyNTY=","avatar_url":"https://avatars1.githubusercontent.com/u/8304256?v=4","gravatar_id":"","url":"https://api.github.com/users/AzureCR","html_url":"https://github.com/AzureCR","followers_url":"https://api.github.com/users/AzureCR/followers","following_url":"https://api.github.com/users/AzureCR/following{/other_user}","gists_url":"https://api.github.com/users/AzureCR/gists{/gist_id}","starred_url":"https://api.github.com/users/AzureCR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AzureCR/subscriptions","organizations_url":"https://api.github.com/users/AzureCR/orgs","repos_url":"https://api.github.com/users/AzureCR/repos","events_url":"https://api.github.com/users/AzureCR/events{/privacy}","received_events_url":"https://api.github.com/users/AzureCR/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/AzureCR/vscode-docker","description":"Docker extension for VS Code.","fork":true,"url":"https://api.github.com/repos/AzureCR/vscode-docker","forks_url":"https://api.github.com/repos/AzureCR/vscode-docker/forks","keys_url":"https://api.github.com/repos/AzureCR/vscode-docker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AzureCR/vscode-docker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AzureCR/vscode-docker/teams","hooks_url":"https://api.github.com/repos/AzureCR/vscode-docker/hooks","issue_events_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues/events{/number}","events_url":"https://api.github.com/repos/AzureCR/vscode-docker/events","assignees_url":"https://api.github.com/repos/AzureCR/vscode-docker/assignees{/user}","branches_url":"https://api.github.com/repos/AzureCR/vscode-docker/branches{/branch}","tags_url":"https://api.github.com/repos/AzureCR/vscode-docker/tags","blobs_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/refs{/sha}","trees_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AzureCR/vscode-docker/statuses/{sha}","languages_url":"https://api.github.com/repos/AzureCR/vscode-docker/languages","stargazers_url":"https://api.github.com/repos/AzureCR/vscode-docker/stargazers","contributors_url":"https://api.github.com/repos/AzureCR/vscode-docker/contributors","subscribers_url":"https://api.github.com/repos/AzureCR/vscode-docker/subscribers","subscription_url":"https://api.github.com/repos/AzureCR/vscode-docker/subscription","commits_url":"https://api.github.com/repos/AzureCR/vscode-docker/commits{/sha}","git_commits_url":"https://api.github.com/repos/AzureCR/vscode-docker/git/commits{/sha}","comments_url":"https://api.github.com/repos/AzureCR/vscode-docker/comments{/number}","issue_comment_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues/comments{/number}","contents_url":"https://api.github.com/repos/AzureCR/vscode-docker/contents/{+path}","compare_url":"https://api.github.com/repos/AzureCR/vscode-docker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AzureCR/vscode-docker/merges","archive_url":"https://api.github.com/repos/AzureCR/vscode-docker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AzureCR/vscode-docker/downloads","issues_url":"https://api.github.com/repos/AzureCR/vscode-docker/issues{/number}","pulls_url":"https://api.github.com/repos/AzureCR/vscode-docker/pulls{/number}","milestones_url":"https://api.github.com/repos/AzureCR/vscode-docker/milestones{/number}","notifications_url":"https://api.github.com/repos/AzureCR/vscode-docker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AzureCR/vscode-docker/labels{/name}","releases_url":"https://api.github.com/repos/AzureCR/vscode-docker/releases{/id}","deployments_url":"https://api.github.com/repos/AzureCR/vscode-docker/deployments","created_at":"2018-06-27T00:34:07Z","updated_at":"2018-08-07T19:13:17Z","pushed_at":"2018-08-07T19:13:15Z","git_url":"git://github.com/AzureCR/vscode-docker.git","ssh_url":"git@github.com:AzureCR/vscode-docker.git","clone_url":"https://github.com/AzureCR/vscode-docker.git","svn_url":"https://github.com/AzureCR/vscode-docker","homepage":null,"size":15860,"stargazers_count":0,"watchers_count":0,"language":"TypeScript","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":18,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":18,"watchers":0,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41"},"html":{"href":"https://github.com/AzureCR/vscode-docker/pull/41"},"issue":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/issues/41"},"comments":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/issues/41/comments"},"review_comments":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41/comments"},"review_comment":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/pulls/41/commits"},"statuses":{"href":"https://api.github.com/repos/AzureCR/vscode-docker/statuses/836f193ade883f6999d5dfd9fbb44a5d5d610c5d"}},"author_association":"NONE"}}
{"actor":{"display_login":"rsamai"}}