{"action":"created","comment":{"url":"https://api.github.com/repos/google/protobuf/pulls/comments/210187681","pull_request_review_id":146349496,"id":210187681,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxMDE4NzY4MQ==","diff_hunk":"@@ -315,6 +311,49 @@ private void CrossLink()\n             }\n         }\n \n+        /// <summary>\n+        /// Converts the given descriptor binary data into FileDescriptor objects.\n+        /// Note: reflection using the returned FileDescriptors is not currently supported.\n+        /// </summary>\n+        /// <param name=\"descriptorData\">The binary file descriptor proto data. Must not be null, and any\n+        /// dependencies must come before the descriptor which depends on them. (If A depends on B, and B\n+        /// depends on C, then the descriptors must be presented in the order C, B, A.) This is compatible\n+        /// with the order in which protoc provides descriptors to plugins.</param>\n+        /// <returns>The file descriptors corresponding to <paramref name=\"descriptorData\"/>.</returns>\n+        public static IReadOnlyList<FileDescriptor> FromDescriptorData(IEnumerable<ByteString> descriptorData)","path":"csharp/src/Google.Protobuf/Reflection/FileDescriptor.cs","position":76,"original_position":76,"commit_id":"b0425b6bbfb92f5edc9218c490db6b5b17fe3a04","original_commit_id":"b0425b6bbfb92f5edc9218c490db6b5b17fe3a04","user":{"login":"jskeet","id":17011,"node_id":"MDQ6VXNlcjE3MDEx","avatar_url":"https://avatars1.githubusercontent.com/u/17011?v=4","gravatar_id":"","url":"https://api.github.com/users/jskeet","html_url":"https://github.com/jskeet","followers_url":"https://api.github.com/users/jskeet/followers","following_url":"https://api.github.com/users/jskeet/following{/other_user}","gists_url":"https://api.github.com/users/jskeet/gists{/gist_id}","starred_url":"https://api.github.com/users/jskeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jskeet/subscriptions","organizations_url":"https://api.github.com/users/jskeet/orgs","repos_url":"https://api.github.com/users/jskeet/repos","events_url":"https://api.github.com/users/jskeet/events{/privacy}","received_events_url":"https://api.github.com/users/jskeet/received_events","type":"User","site_admin":false},"body":"I'd quite like `FromByteStrings` - we've used \"FromX\" in multiple places (e.g. `ByteString.FromBase64`) and that tends to be the convention in .NET rather than \"BuildFromX\". But definitely something indicating that it's bytes would be good as that leaves other names open for when we (hopefully) get to expose `FileDescriptorProto` when we support proto2.\r\n\r\nWould you be okay with `FromByteStrings`?","created_at":"2018-08-15T07:15:22Z","updated_at":"2018-08-15T07:15:22Z","html_url":"https://github.com/google/protobuf/pull/5021#discussion_r210187681","pull_request_url":"https://api.github.com/repos/google/protobuf/pulls/5021","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/google/protobuf/pulls/comments/210187681"},"html":{"href":"https://github.com/google/protobuf/pull/5021#discussion_r210187681"},"pull_request":{"href":"https://api.github.com/repos/google/protobuf/pulls/5021"}},"in_reply_to_id":209116642},"pull_request":{"url":"https://api.github.com/repos/google/protobuf/pulls/5021","id":207186106,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA3MTg2MTA2","html_url":"https://github.com/google/protobuf/pull/5021","diff_url":"https://github.com/google/protobuf/pull/5021.diff","patch_url":"https://github.com/google/protobuf/pull/5021.patch","issue_url":"https://api.github.com/repos/google/protobuf/issues/5021","number":5021,"state":"open","locked":false,"title":"Support creating FileDescriptors dynamically from binary data.","user":{"login":"jskeet","id":17011,"node_id":"MDQ6VXNlcjE3MDEx","avatar_url":"https://avatars1.githubusercontent.com/u/17011?v=4","gravatar_id":"","url":"https://api.github.com/users/jskeet","html_url":"https://github.com/jskeet","followers_url":"https://api.github.com/users/jskeet/followers","following_url":"https://api.github.com/users/jskeet/following{/other_user}","gists_url":"https://api.github.com/users/jskeet/gists{/gist_id}","starred_url":"https://api.github.com/users/jskeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jskeet/subscriptions","organizations_url":"https://api.github.com/users/jskeet/orgs","repos_url":"https://api.github.com/users/jskeet/repos","events_url":"https://api.github.com/users/jskeet/events{/privacy}","received_events_url":"https://api.github.com/users/jskeet/received_events","type":"User","site_admin":false},"body":"Related to #658 and #5007.\r\n\r\nThis doesn't yet implement DynamicMessage, but my intention is to do that next, as well as possibly including plugin.proto into the package (with a change, which I'll explain as I go). I'd include a sample protoc plugin too.\r\n\r\ncc @chrisbacon","created_at":"2018-08-09T02:54:08Z","updated_at":"2018-08-15T07:15:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"fbccf2fa73d6f48082e6a8a4860bd99b9319cd81","assignee":{"login":"anandolee","id":11618033,"node_id":"MDQ6VXNlcjExNjE4MDMz","avatar_url":"https://avatars0.githubusercontent.com/u/11618033?v=4","gravatar_id":"","url":"https://api.github.com/users/anandolee","html_url":"https://github.com/anandolee","followers_url":"https://api.github.com/users/anandolee/followers","following_url":"https://api.github.com/users/anandolee/following{/other_user}","gists_url":"https://api.github.com/users/anandolee/gists{/gist_id}","starred_url":"https://api.github.com/users/anandolee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anandolee/subscriptions","organizations_url":"https://api.github.com/users/anandolee/orgs","repos_url":"https://api.github.com/users/anandolee/repos","events_url":"https://api.github.com/users/anandolee/events{/privacy}","received_events_url":"https://api.github.com/users/anandolee/received_events","type":"User","site_admin":false},"assignees":[{"login":"anandolee","id":11618033,"node_id":"MDQ6VXNlcjExNjE4MDMz","avatar_url":"https://avatars0.githubusercontent.com/u/11618033?v=4","gravatar_id":"","url":"https://api.github.com/users/anandolee","html_url":"https://github.com/anandolee","followers_url":"https://api.github.com/users/anandolee/followers","following_url":"https://api.github.com/users/anandolee/following{/other_user}","gists_url":"https://api.github.com/users/anandolee/gists{/gist_id}","starred_url":"https://api.github.com/users/anandolee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anandolee/subscriptions","organizations_url":"https://api.github.com/users/anandolee/orgs","repos_url":"https://api.github.com/users/anandolee/repos","events_url":"https://api.github.com/users/anandolee/events{/privacy}","received_events_url":"https://api.github.com/users/anandolee/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":205322238,"node_id":"MDU6TGFiZWwyMDUzMjIyMzg=","url":"https://api.github.com/repos/google/protobuf/labels/c%23","name":"c#","color":"bfd4f2","default":false},{"id":151794609,"node_id":"MDU6TGFiZWwxNTE3OTQ2MDk=","url":"https://api.github.com/repos/google/protobuf/labels/cla:%20yes","name":"cla: yes","color":"009800","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/google/protobuf/pulls/5021/commits","review_comments_url":"https://api.github.com/repos/google/protobuf/pulls/5021/comments","review_comment_url":"https://api.github.com/repos/google/protobuf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/google/protobuf/issues/5021/comments","statuses_url":"https://api.github.com/repos/google/protobuf/statuses/b0425b6bbfb92f5edc9218c490db6b5b17fe3a04","head":{"label":"jskeet:file-descriptor","ref":"file-descriptor","sha":"b0425b6bbfb92f5edc9218c490db6b5b17fe3a04","user":{"login":"jskeet","id":17011,"node_id":"MDQ6VXNlcjE3MDEx","avatar_url":"https://avatars1.githubusercontent.com/u/17011?v=4","gravatar_id":"","url":"https://api.github.com/users/jskeet","html_url":"https://github.com/jskeet","followers_url":"https://api.github.com/users/jskeet/followers","following_url":"https://api.github.com/users/jskeet/following{/other_user}","gists_url":"https://api.github.com/users/jskeet/gists{/gist_id}","starred_url":"https://api.github.com/users/jskeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jskeet/subscriptions","organizations_url":"https://api.github.com/users/jskeet/orgs","repos_url":"https://api.github.com/users/jskeet/repos","events_url":"https://api.github.com/users/jskeet/events{/privacy}","received_events_url":"https://api.github.com/users/jskeet/received_events","type":"User","site_admin":false},"repo":{"id":34453396,"node_id":"MDEwOlJlcG9zaXRvcnkzNDQ1MzM5Ng==","name":"protobuf","full_name":"jskeet/protobuf","owner":{"login":"jskeet","id":17011,"node_id":"MDQ6VXNlcjE3MDEx","avatar_url":"https://avatars1.githubusercontent.com/u/17011?v=4","gravatar_id":"","url":"https://api.github.com/users/jskeet","html_url":"https://github.com/jskeet","followers_url":"https://api.github.com/users/jskeet/followers","following_url":"https://api.github.com/users/jskeet/following{/other_user}","gists_url":"https://api.github.com/users/jskeet/gists{/gist_id}","starred_url":"https://api.github.com/users/jskeet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jskeet/subscriptions","organizations_url":"https://api.github.com/users/jskeet/orgs","repos_url":"https://api.github.com/users/jskeet/repos","events_url":"https://api.github.com/users/jskeet/events{/privacy}","received_events_url":"https://api.github.com/users/jskeet/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jskeet/protobuf","description":"Protocol Buffers - Google's data interchange format","fork":true,"url":"https://api.github.com/repos/jskeet/protobuf","forks_url":"https://api.github.com/repos/jskeet/protobuf/forks","keys_url":"https://api.github.com/repos/jskeet/protobuf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jskeet/protobuf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jskeet/protobuf/teams","hooks_url":"https://api.github.com/repos/jskeet/protobuf/hooks","issue_events_url":"https://api.github.com/repos/jskeet/protobuf/issues/events{/number}","events_url":"https://api.github.com/repos/jskeet/protobuf/events","assignees_url":"https://api.github.com/repos/jskeet/protobuf/assignees{/user}","branches_url":"https://api.github.com/repos/jskeet/protobuf/branches{/branch}","tags_url":"https://api.github.com/repos/jskeet/protobuf/tags","blobs_url":"https://api.github.com/repos/jskeet/protobuf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jskeet/protobuf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jskeet/protobuf/git/refs{/sha}","trees_url":"https://api.github.com/repos/jskeet/protobuf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jskeet/protobuf/statuses/{sha}","languages_url":"https://api.github.com/repos/jskeet/protobuf/languages","stargazers_url":"https://api.github.com/repos/jskeet/protobuf/stargazers","contributors_url":"https://api.github.com/repos/jskeet/protobuf/contributors","subscribers_url":"https://api.github.com/repos/jskeet/protobuf/subscribers","subscription_url":"https://api.github.com/repos/jskeet/protobuf/subscription","commits_url":"https://api.github.com/repos/jskeet/protobuf/commits{/sha}","git_commits_url":"https://api.github.com/repos/jskeet/protobuf/git/commits{/sha}","comments_url":"https://api.github.com/repos/jskeet/protobuf/comments{/number}","issue_comment_url":"https://api.github.com/repos/jskeet/protobuf/issues/comments{/number}","contents_url":"https://api.github.com/repos/jskeet/protobuf/contents/{+path}","compare_url":"https://api.github.com/repos/jskeet/protobuf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jskeet/protobuf/merges","archive_url":"https://api.github.com/repos/jskeet/protobuf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jskeet/protobuf/downloads","issues_url":"https://api.github.com/repos/jskeet/protobuf/issues{/number}","pulls_url":"https://api.github.com/repos/jskeet/protobuf/pulls{/number}","milestones_url":"https://api.github.com/repos/jskeet/protobuf/milestones{/number}","notifications_url":"https://api.github.com/repos/jskeet/protobuf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jskeet/protobuf/labels{/name}","releases_url":"https://api.github.com/repos/jskeet/protobuf/releases{/id}","deployments_url":"https://api.github.com/repos/jskeet/protobuf/deployments","created_at":"2015-04-23T11:56:13Z","updated_at":"2018-04-23T13:46:20Z","pushed_at":"2018-08-09T02:51:30Z","git_url":"git://github.com/jskeet/protobuf.git","ssh_url":"git@github.com:jskeet/protobuf.git","clone_url":"https://github.com/jskeet/protobuf.git","svn_url":"https://github.com/jskeet/protobuf","homepage":"https://developers.google.com/protocol-buffers/","size":47501,"stargazers_count":2,"watchers_count":2,"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":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"google:master","ref":"master","sha":"9bbc4b1fab8262958c172f2d8e87b486c950a051","user":{"login":"google","id":1342004,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNDIwMDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1342004?v=4","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"repo":{"id":23357588,"node_id":"MDEwOlJlcG9zaXRvcnkyMzM1NzU4OA==","name":"protobuf","full_name":"google/protobuf","owner":{"login":"google","id":1342004,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEzNDIwMDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/1342004?v=4","gravatar_id":"","url":"https://api.github.com/users/google","html_url":"https://github.com/google","followers_url":"https://api.github.com/users/google/followers","following_url":"https://api.github.com/users/google/following{/other_user}","gists_url":"https://api.github.com/users/google/gists{/gist_id}","starred_url":"https://api.github.com/users/google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/google/subscriptions","organizations_url":"https://api.github.com/users/google/orgs","repos_url":"https://api.github.com/users/google/repos","events_url":"https://api.github.com/users/google/events{/privacy}","received_events_url":"https://api.github.com/users/google/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/google/protobuf","description":"Protocol Buffers - Google's data interchange format","fork":false,"url":"https://api.github.com/repos/google/protobuf","forks_url":"https://api.github.com/repos/google/protobuf/forks","keys_url":"https://api.github.com/repos/google/protobuf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/google/protobuf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/google/protobuf/teams","hooks_url":"https://api.github.com/repos/google/protobuf/hooks","issue_events_url":"https://api.github.com/repos/google/protobuf/issues/events{/number}","events_url":"https://api.github.com/repos/google/protobuf/events","assignees_url":"https://api.github.com/repos/google/protobuf/assignees{/user}","branches_url":"https://api.github.com/repos/google/protobuf/branches{/branch}","tags_url":"https://api.github.com/repos/google/protobuf/tags","blobs_url":"https://api.github.com/repos/google/protobuf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/google/protobuf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/google/protobuf/git/refs{/sha}","trees_url":"https://api.github.com/repos/google/protobuf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/google/protobuf/statuses/{sha}","languages_url":"https://api.github.com/repos/google/protobuf/languages","stargazers_url":"https://api.github.com/repos/google/protobuf/stargazers","contributors_url":"https://api.github.com/repos/google/protobuf/contributors","subscribers_url":"https://api.github.com/repos/google/protobuf/subscribers","subscription_url":"https://api.github.com/repos/google/protobuf/subscription","commits_url":"https://api.github.com/repos/google/protobuf/commits{/sha}","git_commits_url":"https://api.github.com/repos/google/protobuf/git/commits{/sha}","comments_url":"https://api.github.com/repos/google/protobuf/comments{/number}","issue_comment_url":"https://api.github.com/repos/google/protobuf/issues/comments{/number}","contents_url":"https://api.github.com/repos/google/protobuf/contents/{+path}","compare_url":"https://api.github.com/repos/google/protobuf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/google/protobuf/merges","archive_url":"https://api.github.com/repos/google/protobuf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/google/protobuf/downloads","issues_url":"https://api.github.com/repos/google/protobuf/issues{/number}","pulls_url":"https://api.github.com/repos/google/protobuf/pulls{/number}","milestones_url":"https://api.github.com/repos/google/protobuf/milestones{/number}","notifications_url":"https://api.github.com/repos/google/protobuf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/google/protobuf/labels{/name}","releases_url":"https://api.github.com/repos/google/protobuf/releases{/id}","deployments_url":"https://api.github.com/repos/google/protobuf/deployments","created_at":"2014-08-26T15:52:15Z","updated_at":"2018-08-15T04:03:19Z","pushed_at":"2018-08-14T21:32:43Z","git_url":"git://github.com/google/protobuf.git","ssh_url":"git@github.com:google/protobuf.git","clone_url":"https://github.com/google/protobuf.git","svn_url":"https://github.com/google/protobuf","homepage":"https://developers.google.com/protocol-buffers/","size":49116,"stargazers_count":28394,"watchers_count":28394,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":7918,"mirror_url":null,"archived":false,"open_issues_count":434,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":7918,"open_issues":434,"watchers":28394,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/google/protobuf/pulls/5021"},"html":{"href":"https://github.com/google/protobuf/pull/5021"},"issue":{"href":"https://api.github.com/repos/google/protobuf/issues/5021"},"comments":{"href":"https://api.github.com/repos/google/protobuf/issues/5021/comments"},"review_comments":{"href":"https://api.github.com/repos/google/protobuf/pulls/5021/comments"},"review_comment":{"href":"https://api.github.com/repos/google/protobuf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/google/protobuf/pulls/5021/commits"},"statuses":{"href":"https://api.github.com/repos/google/protobuf/statuses/b0425b6bbfb92f5edc9218c490db6b5b17fe3a04"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"jskeet"}}