{"action":"created","comment":{"url":"https://api.github.com/repos/dotnet/buildtools/pulls/comments/156176420","pull_request_review_id":82611710,"id":156176420,"diff_hunk":"@@ -0,0 +1,138 @@\n+﻿// Licensed to the .NET Foundation under one or more agreements.\n+// The .NET Foundation licenses this file to you under the MIT license.\n+// See the LICENSE file in the project root for more information.\n+\n+using Microsoft.Build.Framework;\n+using System;\n+using System.Linq;\n+using System.Threading.Tasks;\n+using System.Collections.Generic;\n+using MSBuild = Microsoft.Build.Utilities;\n+using Microsoft.WindowsAzure.Storage;\n+using Microsoft.WindowsAzure.Storage.Blob;\n+\n+namespace Microsoft.DotNet.Build.Tasks.Feed\n+{\n+    public sealed class CopyBlobDirectory : MSBuild.Task\n+    {\n+        [Required]\n+        public string SourceBlobDirectory { get; set; }\n+\n+        [Required]\n+        public string TargetBlobDirectory { get; set; }\n+\n+        [Required]\n+        public string AccountKey { get; set; }\n+\n+        public bool Overwrite { get; set; }\n+\n+        public bool SkipCreateContainer { get; set; } = false;\n+\n+        public bool SkipIfMissing { get; set; } = true;\n+\n+        public override bool Execute()\n+        {\n+            return ExecuteAsync().GetAwaiter().GetResult();\n+            \n+        }\n+\n+        private string GetCanonicalStorageUri(string uri, string subPath)","path":"src/Microsoft.DotNet.Build.Tasks.Feed/CopyBlobDirectory.cs","position":39,"original_position":39,"commit_id":"bd513b8f2ace88f659918968c3ced83183329f3e","original_commit_id":"ae08bb5fbb096413483dc9cb5db4b3bc7bbf763d","user":{"login":"mmitche","id":8725170,"avatar_url":"https://avatars1.githubusercontent.com/u/8725170?v=4","gravatar_id":"","url":"https://api.github.com/users/mmitche","html_url":"https://github.com/mmitche","followers_url":"https://api.github.com/users/mmitche/followers","following_url":"https://api.github.com/users/mmitche/following{/other_user}","gists_url":"https://api.github.com/users/mmitche/gists{/gist_id}","starred_url":"https://api.github.com/users/mmitche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmitche/subscriptions","organizations_url":"https://api.github.com/users/mmitche/orgs","repos_url":"https://api.github.com/users/mmitche/repos","events_url":"https://api.github.com/users/mmitche/events{/privacy}","received_events_url":"https://api.github.com/users/mmitche/received_events","type":"User","site_admin":false},"body":"fixed","created_at":"2017-12-11T19:34:31Z","updated_at":"2017-12-11T19:34:31Z","html_url":"https://github.com/dotnet/buildtools/pull/1831#discussion_r156176420","pull_request_url":"https://api.github.com/repos/dotnet/buildtools/pulls/1831","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/comments/156176420"},"html":{"href":"https://github.com/dotnet/buildtools/pull/1831#discussion_r156176420"},"pull_request":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/1831"}},"in_reply_to_id":156124092},"pull_request":{"url":"https://api.github.com/repos/dotnet/buildtools/pulls/1831","id":157145509,"html_url":"https://github.com/dotnet/buildtools/pull/1831","diff_url":"https://github.com/dotnet/buildtools/pull/1831.diff","patch_url":"https://github.com/dotnet/buildtools/pull/1831.patch","issue_url":"https://api.github.com/repos/dotnet/buildtools/issues/1831","number":1831,"state":"open","locked":false,"title":"Merging feed/blob tasks","user":{"login":"mmitche","id":8725170,"avatar_url":"https://avatars1.githubusercontent.com/u/8725170?v=4","gravatar_id":"","url":"https://api.github.com/users/mmitche","html_url":"https://github.com/mmitche","followers_url":"https://api.github.com/users/mmitche/followers","following_url":"https://api.github.com/users/mmitche/following{/other_user}","gists_url":"https://api.github.com/users/mmitche/gists{/gist_id}","starred_url":"https://api.github.com/users/mmitche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmitche/subscriptions","organizations_url":"https://api.github.com/users/mmitche/orgs","repos_url":"https://api.github.com/users/mmitche/repos","events_url":"https://api.github.com/users/mmitche/events{/privacy}","received_events_url":"https://api.github.com/users/mmitche/received_events","type":"User","site_admin":false},"body":"Two tasks are implemented in here:\r\n    1) Copies a set of blobs from a set of folders to a target URL\r\n    2) Parses a blob url to obtain the interesting bits of the URI (account name, container, blob path)\r\nThis supports a future PR (currently staged in the pipeline repo but will be moved to buildtools.  Which merges a set of feeds and feed related items (like assets) for product construction","created_at":"2017-12-08T01:42:27Z","updated_at":"2017-12-11T19:34:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"639f62ea1a4347eb92bf6fa6f9ef2232b4513522","assignee":null,"assignees":[],"requested_reviewers":[{"login":"dagood","id":12819531,"avatar_url":"https://avatars3.githubusercontent.com/u/12819531?v=4","gravatar_id":"","url":"https://api.github.com/users/dagood","html_url":"https://github.com/dagood","followers_url":"https://api.github.com/users/dagood/followers","following_url":"https://api.github.com/users/dagood/following{/other_user}","gists_url":"https://api.github.com/users/dagood/gists{/gist_id}","starred_url":"https://api.github.com/users/dagood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dagood/subscriptions","organizations_url":"https://api.github.com/users/dagood/orgs","repos_url":"https://api.github.com/users/dagood/repos","events_url":"https://api.github.com/users/dagood/events{/privacy}","received_events_url":"https://api.github.com/users/dagood/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/dotnet/buildtools/pulls/1831/commits","review_comments_url":"https://api.github.com/repos/dotnet/buildtools/pulls/1831/comments","review_comment_url":"https://api.github.com/repos/dotnet/buildtools/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dotnet/buildtools/issues/1831/comments","statuses_url":"https://api.github.com/repos/dotnet/buildtools/statuses/bd513b8f2ace88f659918968c3ced83183329f3e","head":{"label":"mmitche:feed-merging","ref":"feed-merging","sha":"bd513b8f2ace88f659918968c3ced83183329f3e","user":{"login":"mmitche","id":8725170,"avatar_url":"https://avatars1.githubusercontent.com/u/8725170?v=4","gravatar_id":"","url":"https://api.github.com/users/mmitche","html_url":"https://github.com/mmitche","followers_url":"https://api.github.com/users/mmitche/followers","following_url":"https://api.github.com/users/mmitche/following{/other_user}","gists_url":"https://api.github.com/users/mmitche/gists{/gist_id}","starred_url":"https://api.github.com/users/mmitche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmitche/subscriptions","organizations_url":"https://api.github.com/users/mmitche/orgs","repos_url":"https://api.github.com/users/mmitche/repos","events_url":"https://api.github.com/users/mmitche/events{/privacy}","received_events_url":"https://api.github.com/users/mmitche/received_events","type":"User","site_admin":false},"repo":{"id":26651320,"name":"buildtools","full_name":"mmitche/buildtools","owner":{"login":"mmitche","id":8725170,"avatar_url":"https://avatars1.githubusercontent.com/u/8725170?v=4","gravatar_id":"","url":"https://api.github.com/users/mmitche","html_url":"https://github.com/mmitche","followers_url":"https://api.github.com/users/mmitche/followers","following_url":"https://api.github.com/users/mmitche/following{/other_user}","gists_url":"https://api.github.com/users/mmitche/gists{/gist_id}","starred_url":"https://api.github.com/users/mmitche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmitche/subscriptions","organizations_url":"https://api.github.com/users/mmitche/orgs","repos_url":"https://api.github.com/users/mmitche/repos","events_url":"https://api.github.com/users/mmitche/events{/privacy}","received_events_url":"https://api.github.com/users/mmitche/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mmitche/buildtools","description":"Build tools that are necessary for building the .NET Core projects","fork":true,"url":"https://api.github.com/repos/mmitche/buildtools","forks_url":"https://api.github.com/repos/mmitche/buildtools/forks","keys_url":"https://api.github.com/repos/mmitche/buildtools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mmitche/buildtools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mmitche/buildtools/teams","hooks_url":"https://api.github.com/repos/mmitche/buildtools/hooks","issue_events_url":"https://api.github.com/repos/mmitche/buildtools/issues/events{/number}","events_url":"https://api.github.com/repos/mmitche/buildtools/events","assignees_url":"https://api.github.com/repos/mmitche/buildtools/assignees{/user}","branches_url":"https://api.github.com/repos/mmitche/buildtools/branches{/branch}","tags_url":"https://api.github.com/repos/mmitche/buildtools/tags","blobs_url":"https://api.github.com/repos/mmitche/buildtools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mmitche/buildtools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mmitche/buildtools/git/refs{/sha}","trees_url":"https://api.github.com/repos/mmitche/buildtools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mmitche/buildtools/statuses/{sha}","languages_url":"https://api.github.com/repos/mmitche/buildtools/languages","stargazers_url":"https://api.github.com/repos/mmitche/buildtools/stargazers","contributors_url":"https://api.github.com/repos/mmitche/buildtools/contributors","subscribers_url":"https://api.github.com/repos/mmitche/buildtools/subscribers","subscription_url":"https://api.github.com/repos/mmitche/buildtools/subscription","commits_url":"https://api.github.com/repos/mmitche/buildtools/commits{/sha}","git_commits_url":"https://api.github.com/repos/mmitche/buildtools/git/commits{/sha}","comments_url":"https://api.github.com/repos/mmitche/buildtools/comments{/number}","issue_comment_url":"https://api.github.com/repos/mmitche/buildtools/issues/comments{/number}","contents_url":"https://api.github.com/repos/mmitche/buildtools/contents/{+path}","compare_url":"https://api.github.com/repos/mmitche/buildtools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mmitche/buildtools/merges","archive_url":"https://api.github.com/repos/mmitche/buildtools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mmitche/buildtools/downloads","issues_url":"https://api.github.com/repos/mmitche/buildtools/issues{/number}","pulls_url":"https://api.github.com/repos/mmitche/buildtools/pulls{/number}","milestones_url":"https://api.github.com/repos/mmitche/buildtools/milestones{/number}","notifications_url":"https://api.github.com/repos/mmitche/buildtools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mmitche/buildtools/labels{/name}","releases_url":"https://api.github.com/repos/mmitche/buildtools/releases{/id}","deployments_url":"https://api.github.com/repos/mmitche/buildtools/deployments","created_at":"2014-11-14T18:17:05Z","updated_at":"2015-03-23T17:11:56Z","pushed_at":"2017-12-11T19:22:31Z","git_url":"git://github.com/mmitche/buildtools.git","ssh_url":"git@github.com:mmitche/buildtools.git","clone_url":"https://github.com/mmitche/buildtools.git","svn_url":"https://github.com/mmitche/buildtools","homepage":"","size":5786,"stargazers_count":0,"watchers_count":0,"language":"C#","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dotnet:master","ref":"master","sha":"1547e7292e1fc29d7726df25e314fea73dcd6bf7","user":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"repo":{"id":26295349,"name":"buildtools","full_name":"dotnet/buildtools","owner":{"login":"dotnet","id":9141961,"avatar_url":"https://avatars0.githubusercontent.com/u/9141961?v=4","gravatar_id":"","url":"https://api.github.com/users/dotnet","html_url":"https://github.com/dotnet","followers_url":"https://api.github.com/users/dotnet/followers","following_url":"https://api.github.com/users/dotnet/following{/other_user}","gists_url":"https://api.github.com/users/dotnet/gists{/gist_id}","starred_url":"https://api.github.com/users/dotnet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dotnet/subscriptions","organizations_url":"https://api.github.com/users/dotnet/orgs","repos_url":"https://api.github.com/users/dotnet/repos","events_url":"https://api.github.com/users/dotnet/events{/privacy}","received_events_url":"https://api.github.com/users/dotnet/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dotnet/buildtools","description":"Build tools that are necessary for building the .NET Core projects","fork":false,"url":"https://api.github.com/repos/dotnet/buildtools","forks_url":"https://api.github.com/repos/dotnet/buildtools/forks","keys_url":"https://api.github.com/repos/dotnet/buildtools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dotnet/buildtools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dotnet/buildtools/teams","hooks_url":"https://api.github.com/repos/dotnet/buildtools/hooks","issue_events_url":"https://api.github.com/repos/dotnet/buildtools/issues/events{/number}","events_url":"https://api.github.com/repos/dotnet/buildtools/events","assignees_url":"https://api.github.com/repos/dotnet/buildtools/assignees{/user}","branches_url":"https://api.github.com/repos/dotnet/buildtools/branches{/branch}","tags_url":"https://api.github.com/repos/dotnet/buildtools/tags","blobs_url":"https://api.github.com/repos/dotnet/buildtools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dotnet/buildtools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dotnet/buildtools/git/refs{/sha}","trees_url":"https://api.github.com/repos/dotnet/buildtools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dotnet/buildtools/statuses/{sha}","languages_url":"https://api.github.com/repos/dotnet/buildtools/languages","stargazers_url":"https://api.github.com/repos/dotnet/buildtools/stargazers","contributors_url":"https://api.github.com/repos/dotnet/buildtools/contributors","subscribers_url":"https://api.github.com/repos/dotnet/buildtools/subscribers","subscription_url":"https://api.github.com/repos/dotnet/buildtools/subscription","commits_url":"https://api.github.com/repos/dotnet/buildtools/commits{/sha}","git_commits_url":"https://api.github.com/repos/dotnet/buildtools/git/commits{/sha}","comments_url":"https://api.github.com/repos/dotnet/buildtools/comments{/number}","issue_comment_url":"https://api.github.com/repos/dotnet/buildtools/issues/comments{/number}","contents_url":"https://api.github.com/repos/dotnet/buildtools/contents/{+path}","compare_url":"https://api.github.com/repos/dotnet/buildtools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dotnet/buildtools/merges","archive_url":"https://api.github.com/repos/dotnet/buildtools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dotnet/buildtools/downloads","issues_url":"https://api.github.com/repos/dotnet/buildtools/issues{/number}","pulls_url":"https://api.github.com/repos/dotnet/buildtools/pulls{/number}","milestones_url":"https://api.github.com/repos/dotnet/buildtools/milestones{/number}","notifications_url":"https://api.github.com/repos/dotnet/buildtools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dotnet/buildtools/labels{/name}","releases_url":"https://api.github.com/repos/dotnet/buildtools/releases{/id}","deployments_url":"https://api.github.com/repos/dotnet/buildtools/deployments","created_at":"2014-11-06T23:43:05Z","updated_at":"2017-12-06T22:56:30Z","pushed_at":"2017-12-11T19:22:32Z","git_url":"git://github.com/dotnet/buildtools.git","ssh_url":"git@github.com:dotnet/buildtools.git","clone_url":"https://github.com/dotnet/buildtools.git","svn_url":"https://github.com/dotnet/buildtools","homepage":"","size":5928,"stargazers_count":453,"watchers_count":453,"language":"C#","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":254,"mirror_url":null,"archived":false,"open_issues_count":151,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":254,"open_issues":151,"watchers":453,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/1831"},"html":{"href":"https://github.com/dotnet/buildtools/pull/1831"},"issue":{"href":"https://api.github.com/repos/dotnet/buildtools/issues/1831"},"comments":{"href":"https://api.github.com/repos/dotnet/buildtools/issues/1831/comments"},"review_comments":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/1831/comments"},"review_comment":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dotnet/buildtools/pulls/1831/commits"},"statuses":{"href":"https://api.github.com/repos/dotnet/buildtools/statuses/bd513b8f2ace88f659918968c3ced83183329f3e"}},"author_association":"OWNER"}}
{"actor":{"display_login":"mmitche"}}