{"action":"created","comment":{"url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/comments/55210301","id":55210301,"diff_hunk":"@@ -0,0 +1,244 @@\n+[CmdletBinding()]\n+param()\n+\n+# import the module before initializing the test library to avoid \"import-module\" being mocked\n+Import-Module -Name \"$PSScriptRoot\\..\\..\\..\\..\\Tasks\\SonarQubePostTest\\PRCA\\PostComments-Module.psm1\" -Verbose\n+\n+. $PSScriptRoot\\..\\..\\..\\lib\\Initialize-Test.ps1\n+\n+#\n+# The tests do not have access to the TFS client assemblies because those live only on the build agent. As such instead of mocking \n+# types such as DiscussionThread, these need to be completly replaced. Since the client API is binary compatible with future versions, this \n+# should not cause a test hole. \n+#\n+$source = @\"\n+\n+using System.Collections;\n+using System.Collections.Generic;\n+\n+namespace Microsoft.VisualStudio.Services.WebApi\n+{\n+    public class PropertiesCollection : Dictionary<string, object>\n+    {\n+        \n+    }\n+}\n+\n+namespace Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi\n+{\n+    public enum DiscussionStatus\n+    {\n+        Unknown = 0,\n+        Active = 1,\n+        Fixed = 2,\n+        WontFix = 3,\n+        Closed = 4,\n+        ByDesign = 5,\n+        Pending = 6\n+    }\n+    \n+    public class DiscussionThreadPropertyNames\n+    {\n+        public const string EndLine = \"Microsoft.TeamFoundation.Discussion.Position.EndLine\";\n+        public const string ItemPath = \"Microsoft.TeamFoundation.Discussion.ItemPath\";\n+        public const string PositionContext = \"Microsoft.TeamFoundation.Discussion.Position.PositionContext\";\n+        public const string StartColumn = \"Microsoft.TeamFoundation.Discussion.Position.StartColumn\";\n+        public const string StartLine = \"Microsoft.TeamFoundation.Discussion.Position.StartLine\";\n+    }\n+    \n+    public class DiscussionThread\n+    {\n+        public string ArtifactUri { get; set; }\n+        public int DiscussionId { get; set; }\n+        public DiscussionStatus Status { get; set; }\n+        \n+        public DiscussionComment[] Comments { get; set; }\n+        \n+        public Microsoft.VisualStudio.Services.WebApi.PropertiesCollection Properties { get; set; }\n+    }\n+    \n+    public class ArtifactDiscussionThread : DiscussionThread\n+    {\n+        \n+    }\n+    \n+    public class DiscussionThreadCollection : List<DiscussionThread>\n+    {\n+        \n+    }\n+           \n+    public enum CommentType\n+    {\n+        Unknown = 0,\n+        Text = 1,\n+        CodeChange = 2,\n+        System = 3\n+    }\n+    \n+    public class DiscussionComment\n+    {\n+        public short CommentId { get; set; }\n+        public CommentType CommentType { get; set; }\n+        public string Content { get; set; }\n+        public bool IsDeleted { get; set; }\n+    }\n+}\n+\n+namespace Microsoft.TeamFoundation.SourceControl.WebApi\n+{\n+    public class GitHttpClient\n+    {\n+        \n+    }\n+    \n+    public class GitPullRequest\n+    {\n+        public int CodeReviewId { get; set; }\n+        \n+        // These are actually of type GitCommitRef, but for test purposes strings are enough\n+        public string LastMergeSourceCommit { get; set; }\n+        public string LastMergeTargetCommit { get; set; }\n+    }\n+}\n+\"@\n+\n+Add-Type -TypeDefinition $source -Language CSharp\n+\n+# Builds the input, similar to the ReportProcessor module output \n+function BuildTestComment \n+{\n+    param ($message, $line, $relativePath, $priority)\n+    \n+    $properties = @{\n+            Content = $message\n+            Line = $line\n+            RelativePath = $relativePath\n+            Priority = $priority \n+        }\n+        \n+    $comment = new-object PSObject -Property $properties\n+    return $comment\n+}\n+\n+#\n+# Validates the discussion threads that are to be posted to the PR\n+#\n+function ValidateDiscussionThreadCollection\n+{\n+    param ([Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionThreadCollection]$threadCollection, [Array]$inputComments)\n+    \n+    $endLineName = [Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionThreadPropertyNames]::EndLine\n+    $startLineName = [Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionThreadPropertyNames]::StartLine\n+    $itemPathName = [Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionThreadPropertyNames]::ItemPath\n+    \n+    ValidateCommonThreadAttributes $threadCollection\n+    Assert-AreEqual $inputComments.Count $threadCollection.Count \"Inconsistent number of threads. There should be 1 thread for each comment.\"    \n+    foreach ($inputComment in $inputComments)\n+    {\n+        $thread = $threadCollection | Where-Object {\n+            ($_.Comments[0].Content -eq $inputComment.Content) -and \n+            ($_.Properties[$startLineName] -eq $inputComment.Line) }\n+            \n+        Assert-IsNotNullOrEmpty $thread \"Could not find a thread associated with the comment on line $($inputComment.Line) with message $($inputComment.Content)\"\n+        Assert-AreEqual $inputComment.RelativePath $thread.Properties[$itemPathName] \"Invalid ItemPath property\"\n+        Assert-AreEqual $inputComment.Line $thread.Properties[$endLineName] \"The EndLine should be the same as the comment's line\"\n+    }\n+    \n+    return $true\n+}\n+\n+#\n+# Validates static thread properties that are not tied to the original comment  \n+#\n+function ValidateCommonThreadAttributes\n+{\n+    param ([Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionThreadCollection]$threadCollection)\n+    \n+    $startColumnName = [Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionThreadPropertyNames]::StartColumn\n+    $positionContextName = [Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionThreadPropertyNames]::PositionContext\n+    \n+    $threadCollection | ForEach-Object {Assert-AreEqual \"artifact uri\" $_.ArtifactUri \"Each thread should have the same ArtifactUri\"}\n+    $threadCollection | ForEach-Object {\n+        Assert-AreEqual \n+        [Microsoft.VisualStudio.Services.CodeReview.Discussion.WebApi.DiscussionStatus]::Active \n+        $_.Status \n+        \"Each thread should be active\"}\n+    $threadCollection | ForEach-Object {Assert-AreEqual 1 $_.Comments.Count \"Each thread should have a single comment\"}\n+    $threadCollection | ForEach-Object {Assert-AreEqual $false $_.Comments.IsDeleted \"Each thread should be marked as not deleted\"}\n+    \n+    $threadCollection | ForEach-Object {Assert-AreEqual 8 $_.Properties.Count \"Each thread should have 8 properties\"}\n+    \n+    $threadCollection | ForEach-Object {Assert-AreEqual \"Source Commit\" $_.Properties[\"CodeReviewSourceCommit\"] \"Invalid CodeReviewSourceCommit property\"}\n+    $threadCollection | ForEach-Object {Assert-AreEqual \"Target Commit\" $_.Properties[\"CodeReviewTargetCommit\"] \"Invalid CodeReviewTargetCommit property\"}\n+    $threadCollection | ForEach-Object { Assert-AreEqual 1 $_.Properties[$startColumnName] \"Invalid StartColumn property.\"}\n+    $threadCollection | ForEach-Object { Assert-AreEqual \"RightBuffer\" $_.Properties[$positionContextName] \"Invalid PositionContext property.\"}\n+    $threadCollection | ForEach-Object { Assert-AreEqual \"CodeAnalysisIssue\" $_.Properties[\"CodeAnalysisThreadType\"] \"Invalid CodeAnalysisThreadType property.\"}\n+}\n+\n+function InitPostCommentsModule \n+{\n+    $mockGitClient = New-Object -TypeName \"Microsoft.TeamFoundation.SourceControl.WebApi.GitHttpClient\"\n+    $mockPullRequest = New-Object -TypeName \"Microsoft.TeamFoundation.SourceControl.WebApi.GitPullRequest\"\n+\n+    # Legacy PR\n+    $mockPullRequest.CodeReviewId = 0\n+    $mockPullRequest.LastMergeSourceCommit = \"Source Commit\"\n+    $mockPullRequest.LastMergeTargetCommit = \"Target Commit\"\n+\n+    Test-InitPostCommentsModule $mockGitClient $mockPullRequest \"artifact uri\"\n+}\n+\n+InitPostCommentsModule\n+\n+# Test 1 (happy path) - Post 2 comments \n+\n+# Arrange\n+Register-Mock PostDiscussionThreads","path":"Tests/L0/SonarQubePostTest/PRCA/PostCommentsTests.ps1","position":196,"original_position":196,"commit_id":"317e289ac72705412fb2fe99e1b59e3afd06b346","original_commit_id":"317e289ac72705412fb2fe99e1b59e3afd06b346","user":{"login":"bgavrilMS","id":12273384,"avatar_url":"https://avatars.githubusercontent.com/u/12273384?v=3","gravatar_id":"","url":"https://api.github.com/users/bgavrilMS","html_url":"https://github.com/bgavrilMS","followers_url":"https://api.github.com/users/bgavrilMS/followers","following_url":"https://api.github.com/users/bgavrilMS/following{/other_user}","gists_url":"https://api.github.com/users/bgavrilMS/gists{/gist_id}","starred_url":"https://api.github.com/users/bgavrilMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgavrilMS/subscriptions","organizations_url":"https://api.github.com/users/bgavrilMS/orgs","repos_url":"https://api.github.com/users/bgavrilMS/repos","events_url":"https://api.github.com/users/bgavrilMS/events{/privacy}","received_events_url":"https://api.github.com/users/bgavrilMS/received_events","type":"User","site_admin":false},"body":"PostDiscussionThreads have very little logic but creates some rather complex objects (Threading Tasks, generics) so I'd rather completely mock it to make the tests simpler to read. ","created_at":"2016-03-07T14:32:50Z","updated_at":"2016-03-07T14:32:50Z","html_url":"https://github.com/Microsoft/vso-agent-tasks/pull/1362#discussion_r55210301","pull_request_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362","_links":{"self":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/comments/55210301"},"html":{"href":"https://github.com/Microsoft/vso-agent-tasks/pull/1362#discussion_r55210301"},"pull_request":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362"}}},"pull_request":{"url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362","id":61922112,"html_url":"https://github.com/Microsoft/vso-agent-tasks/pull/1362","diff_url":"https://github.com/Microsoft/vso-agent-tasks/pull/1362.diff","patch_url":"https://github.com/Microsoft/vso-agent-tasks/pull/1362.patch","issue_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/1362","number":1362,"state":"open","locked":false,"title":"PRCA - Add Comments to PR","user":{"login":"bgavrilMS","id":12273384,"avatar_url":"https://avatars.githubusercontent.com/u/12273384?v=3","gravatar_id":"","url":"https://api.github.com/users/bgavrilMS","html_url":"https://github.com/bgavrilMS","followers_url":"https://api.github.com/users/bgavrilMS/followers","following_url":"https://api.github.com/users/bgavrilMS/following{/other_user}","gists_url":"https://api.github.com/users/bgavrilMS/gists{/gist_id}","starred_url":"https://api.github.com/users/bgavrilMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bgavrilMS/subscriptions","organizations_url":"https://api.github.com/users/bgavrilMS/orgs","repos_url":"https://api.github.com/users/bgavrilMS/repos","events_url":"https://api.github.com/users/bgavrilMS/events{/privacy}","received_events_url":"https://api.github.com/users/bgavrilMS/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-03-07T14:14:40Z","updated_at":"2016-03-07T14:32:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7986e22217c4ecdc4d4438cae5e95f0dbe69d9f2","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362/commits","review_comments_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362/comments","review_comment_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/1362/comments","statuses_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/statuses/317e289ac72705412fb2fe99e1b59e3afd06b346","head":{"label":"Microsoft:users/bgavril/prca-addcomments","ref":"users/bgavril/prca-addcomments","sha":"317e289ac72705412fb2fe99e1b59e3afd06b346","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":27631673,"name":"vso-agent-tasks","full_name":"Microsoft/vso-agent-tasks","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/vso-agent-tasks","description":"Build and Release Tasks for Visual Studio Online and Team Foundation Server","fork":false,"url":"https://api.github.com/repos/Microsoft/vso-agent-tasks","forks_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/forks","keys_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/teams","hooks_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/events","assignees_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/tags","blobs_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/languages","stargazers_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/subscription","commits_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/merges","archive_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/downloads","issues_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/deployments","created_at":"2014-12-06T11:11:46Z","updated_at":"2016-03-07T13:22:27Z","pushed_at":"2016-03-07T14:14:40Z","git_url":"git://github.com/Microsoft/vso-agent-tasks.git","ssh_url":"git@github.com:Microsoft/vso-agent-tasks.git","clone_url":"https://github.com/Microsoft/vso-agent-tasks.git","svn_url":"https://github.com/Microsoft/vso-agent-tasks","homepage":" https://www.visualstudio.com/features/devops-vs","size":8392,"stargazers_count":265,"watchers_count":265,"language":"PowerShell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":196,"mirror_url":null,"open_issues_count":173,"forks":196,"open_issues":173,"watchers":265,"default_branch":"master"}},"base":{"label":"Microsoft:users/bgavril/prca","ref":"users/bgavril/prca","sha":"a9416aac2521bd7cc1e4e6fea420f0b0595934e2","user":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"repo":{"id":27631673,"name":"vso-agent-tasks","full_name":"Microsoft/vso-agent-tasks","owner":{"login":"Microsoft","id":6154722,"avatar_url":"https://avatars.githubusercontent.com/u/6154722?v=3","gravatar_id":"","url":"https://api.github.com/users/Microsoft","html_url":"https://github.com/Microsoft","followers_url":"https://api.github.com/users/Microsoft/followers","following_url":"https://api.github.com/users/Microsoft/following{/other_user}","gists_url":"https://api.github.com/users/Microsoft/gists{/gist_id}","starred_url":"https://api.github.com/users/Microsoft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Microsoft/subscriptions","organizations_url":"https://api.github.com/users/Microsoft/orgs","repos_url":"https://api.github.com/users/Microsoft/repos","events_url":"https://api.github.com/users/Microsoft/events{/privacy}","received_events_url":"https://api.github.com/users/Microsoft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Microsoft/vso-agent-tasks","description":"Build and Release Tasks for Visual Studio Online and Team Foundation Server","fork":false,"url":"https://api.github.com/repos/Microsoft/vso-agent-tasks","forks_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/forks","keys_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/teams","hooks_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/hooks","issue_events_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/events{/number}","events_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/events","assignees_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/assignees{/user}","branches_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/branches{/branch}","tags_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/tags","blobs_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/refs{/sha}","trees_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/statuses/{sha}","languages_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/languages","stargazers_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/stargazers","contributors_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/contributors","subscribers_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/subscribers","subscription_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/subscription","commits_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/commits{/sha}","git_commits_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/git/commits{/sha}","comments_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/comments{/number}","issue_comment_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/comments{/number}","contents_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/contents/{+path}","compare_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/merges","archive_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/downloads","issues_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues{/number}","pulls_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls{/number}","milestones_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/milestones{/number}","notifications_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/labels{/name}","releases_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/releases{/id}","deployments_url":"https://api.github.com/repos/Microsoft/vso-agent-tasks/deployments","created_at":"2014-12-06T11:11:46Z","updated_at":"2016-03-07T13:22:27Z","pushed_at":"2016-03-07T14:14:40Z","git_url":"git://github.com/Microsoft/vso-agent-tasks.git","ssh_url":"git@github.com:Microsoft/vso-agent-tasks.git","clone_url":"https://github.com/Microsoft/vso-agent-tasks.git","svn_url":"https://github.com/Microsoft/vso-agent-tasks","homepage":" https://www.visualstudio.com/features/devops-vs","size":8392,"stargazers_count":265,"watchers_count":265,"language":"PowerShell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":196,"mirror_url":null,"open_issues_count":173,"forks":196,"open_issues":173,"watchers":265,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362"},"html":{"href":"https://github.com/Microsoft/vso-agent-tasks/pull/1362"},"issue":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/1362"},"comments":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/issues/1362/comments"},"review_comments":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362/comments"},"review_comment":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/pulls/1362/commits"},"statuses":{"href":"https://api.github.com/repos/Microsoft/vso-agent-tasks/statuses/317e289ac72705412fb2fe99e1b59e3afd06b346"}}}}