{"action":"created","comment":{"url":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/comments/193142890","pull_request_review_id":126056981,"id":193142890,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5MzE0Mjg5MA==","diff_hunk":"@@ -32,6 +32,148 @@ compile 'io.opencensus:opencensus-api:0.13.2'\n compile 'io.opencensus:opencensus-contrib-http-util:0.13.2'\n ```\n \n+## Instrumenting HTTP libraries/frameworks\n+\n+### customization for libraries/frameworks\n+\n+Users can implement `HttpExtractor` to customize what information are extracted from the HTTP\n+request/response entity.\n+\n+If context propagation is enabled, users need to provide framework specific `TextFormat.Setter`\n+and `TextFormat.Getter`. They are used to inject/extract information into/from the `Carrier` of\n+the request. The `Carrier` can be the request itself or other objects, as long as it provides\n+functionalities of setting/getting HTTP attributes.\n+\n+Below is an example of how the customization for libraries/frameworks should be done:\n+\n+```java\n+// // Http request entity in the library/framework.\n+// public class HttpRequest {\n+//   ...\n+// }\n+//\n+// // Http response entity in the library/framework.\n+// public class HttpResponse {\n+//   ...\n+// }\n+\n+// use the HttpRequest itself as Carrier.\n+TextFormat.Setter<HttpRequest> myTextFormatSetter =\n+    new TextFormat.Setter<HttpRequest>() {\n+      @Override\n+      public void put(HttpRequest carrier, String key, String value) {\n+        carrier.setHeader(key, value);\n+      }\n+    };\n+TextFormat.Getter<HttpRequest> myTextFormatGetter =\n+    new TextFormat.Getter<HttpRequest>() {\n+      @Override\n+      public String get(HttpRequest carrier, String key) {\n+        return carrier.getHeader(key);\n+      }\n+    };\n+HttpExtractor<HttpRequest, HttpResponse> extractor =\n+    new HttpExtractor<HttpRequest, HttpResponse>() {\n+      @Override\n+      public Integer getStatusCode(HttpResponse response) {\n+        return response.getStatusCode();\n+      }\n+\n+      // other methods that need to be overridden\n+      // ...\n+    };\n+```\n+\n+### client\n+\n+Users can create a `HttpClientHandler` to help instrument client-side HTTP request/response.\n+\n+An example usage of the handler would be:\n+\n+```java\n+HttpClientHandler<HttpRequest, HttpResponse, HttpRequest> handler =\n+    new HttpClientHandler<HttpRequest, HttpResponse>(\n+        tracer, extractor, customizer, myTextFormat, myTextFormatSetter);","path":"contrib/http_util/README.md","position":65,"original_position":65,"commit_id":"9ba39a87750c80737b215796d24abe440e0aaf88","original_commit_id":"9ba39a87750c80737b215796d24abe440e0aaf88","user":{"login":"HailongWen","id":7017904,"node_id":"MDQ6VXNlcjcwMTc5MDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7017904?v=4","gravatar_id":"","url":"https://api.github.com/users/HailongWen","html_url":"https://github.com/HailongWen","followers_url":"https://api.github.com/users/HailongWen/followers","following_url":"https://api.github.com/users/HailongWen/following{/other_user}","gists_url":"https://api.github.com/users/HailongWen/gists{/gist_id}","starred_url":"https://api.github.com/users/HailongWen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HailongWen/subscriptions","organizations_url":"https://api.github.com/users/HailongWen/orgs","repos_url":"https://api.github.com/users/HailongWen/repos","events_url":"https://api.github.com/users/HailongWen/events{/privacy}","received_events_url":"https://api.github.com/users/HailongWen/received_events","type":"User","site_admin":false},"body":"Thanks for pointing out. We decided to hide that and won't expose it now. I'll change the example.","created_at":"2018-06-05T16:42:40Z","updated_at":"2018-06-05T16:42:41Z","html_url":"https://github.com/census-instrumentation/opencensus-java/pull/1020#discussion_r193142890","pull_request_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/comments/193142890"},"html":{"href":"https://github.com/census-instrumentation/opencensus-java/pull/1020#discussion_r193142890"},"pull_request":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020"}},"in_reply_to_id":192210638},"pull_request":{"url":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020","id":171197606,"node_id":"MDExOlB1bGxSZXF1ZXN0MTcxMTk3NjA2","html_url":"https://github.com/census-instrumentation/opencensus-java/pull/1020","diff_url":"https://github.com/census-instrumentation/opencensus-java/pull/1020.diff","patch_url":"https://github.com/census-instrumentation/opencensus-java/pull/1020.patch","issue_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/issues/1020","number":1020,"state":"open","locked":false,"title":"Initial HTTP instrumentation helper commit. (closes #980)","user":{"login":"HailongWen","id":7017904,"node_id":"MDQ6VXNlcjcwMTc5MDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7017904?v=4","gravatar_id":"","url":"https://api.github.com/users/HailongWen","html_url":"https://github.com/HailongWen","followers_url":"https://api.github.com/users/HailongWen/followers","following_url":"https://api.github.com/users/HailongWen/following{/other_user}","gists_url":"https://api.github.com/users/HailongWen/gists{/gist_id}","starred_url":"https://api.github.com/users/HailongWen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HailongWen/subscriptions","organizations_url":"https://api.github.com/users/HailongWen/orgs","repos_url":"https://api.github.com/users/HailongWen/repos","events_url":"https://api.github.com/users/HailongWen/events{/privacy}","received_events_url":"https://api.github.com/users/HailongWen/received_events","type":"User","site_admin":false},"body":"This PR adds several helpers to instrument HTTP libraries/frameworks.\r\n\r\nThe helpers should:\r\n1. provide default implementation so we can use them to instrument existing libraries/frameworks in a consistent way, and minimize the effort.\r\n2. provide flexibility for users to customize and extend the functionalities.\r\n\r\nThe PR referenced the design of [zipkin http instrumentation helper](https://github.com/openzipkin/brave/blob/master/instrumentation/http), except for some minor simplifications:\r\n1. this PR does not have `HttpSampler` - I am not sure if current version of Open Census can provide different samplers for different route.\r\n2. only two kinds of classes - `HttpHandler` for OpenCensus to instrument framework (equivalent of `HttpHandler` in zipkin), and `HttpExtractor` as adaptor to help get information from framework specific classes (equivalent of `HttpAdaptor` and `HttpParser` in zipkin). \r\n\r\nThe instrumentation of send and recv are separated. For sync client/server instrumentation, the send/recv instrumentation code should be used in pair. For async client/server instrumentation, the send/recv instrumentation code should be used separately, and users should write extra code to manage the span/context. \r\n\r\nThings to address:\r\n- [x] use primitive int as statusCode.\r\n- [x] remove `getRoute` since it is not an HTTP attribute, and is only available at server-side after the route mapping.\r\n- [x] refactor instrumentation API - does not allow user to reuse an existing span as the HTTP span, and symmetrically remove the boolean `endSpan`.\r\n- [x] add `HttpSpanCustomizer` for span creation customization.\r\n- [x] extract the method of parsing status as a separate util.\r\n- [x] extract the log message event behavior as `handleMessageSent` and `handleMessageReceived`.\r\n- [x] doc enhancement (mention B3 format).\r\n- [x] javadoc enhancement (arguments for Q and P).\r\n- [x] modifier and annotation.\r\n- [x] move mock test class to testing.\r\n- [x] reuse the `MockableSpan` from #410 for test.\r\n- [x] add integration examples.","created_at":"2018-02-24T21:05:56Z","updated_at":"2018-06-05T16:42:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8352e40cb8675b27dc6e15e1a3be08707335fc74","assignee":{"login":"bogdandrutu","id":1373887,"node_id":"MDQ6VXNlcjEzNzM4ODc=","avatar_url":"https://avatars0.githubusercontent.com/u/1373887?v=4","gravatar_id":"","url":"https://api.github.com/users/bogdandrutu","html_url":"https://github.com/bogdandrutu","followers_url":"https://api.github.com/users/bogdandrutu/followers","following_url":"https://api.github.com/users/bogdandrutu/following{/other_user}","gists_url":"https://api.github.com/users/bogdandrutu/gists{/gist_id}","starred_url":"https://api.github.com/users/bogdandrutu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bogdandrutu/subscriptions","organizations_url":"https://api.github.com/users/bogdandrutu/orgs","repos_url":"https://api.github.com/users/bogdandrutu/repos","events_url":"https://api.github.com/users/bogdandrutu/events{/privacy}","received_events_url":"https://api.github.com/users/bogdandrutu/received_events","type":"User","site_admin":false},"assignees":[{"login":"bogdandrutu","id":1373887,"node_id":"MDQ6VXNlcjEzNzM4ODc=","avatar_url":"https://avatars0.githubusercontent.com/u/1373887?v=4","gravatar_id":"","url":"https://api.github.com/users/bogdandrutu","html_url":"https://github.com/bogdandrutu","followers_url":"https://api.github.com/users/bogdandrutu/followers","following_url":"https://api.github.com/users/bogdandrutu/following{/other_user}","gists_url":"https://api.github.com/users/bogdandrutu/gists{/gist_id}","starred_url":"https://api.github.com/users/bogdandrutu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bogdandrutu/subscriptions","organizations_url":"https://api.github.com/users/bogdandrutu/orgs","repos_url":"https://api.github.com/users/bogdandrutu/repos","events_url":"https://api.github.com/users/bogdandrutu/events{/privacy}","received_events_url":"https://api.github.com/users/bogdandrutu/received_events","type":"User","site_admin":false},{"login":"HailongWen","id":7017904,"node_id":"MDQ6VXNlcjcwMTc5MDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7017904?v=4","gravatar_id":"","url":"https://api.github.com/users/HailongWen","html_url":"https://github.com/HailongWen","followers_url":"https://api.github.com/users/HailongWen/followers","following_url":"https://api.github.com/users/HailongWen/following{/other_user}","gists_url":"https://api.github.com/users/HailongWen/gists{/gist_id}","starred_url":"https://api.github.com/users/HailongWen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HailongWen/subscriptions","organizations_url":"https://api.github.com/users/HailongWen/orgs","repos_url":"https://api.github.com/users/HailongWen/repos","events_url":"https://api.github.com/users/HailongWen/events{/privacy}","received_events_url":"https://api.github.com/users/HailongWen/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"songy23","id":10536136,"node_id":"MDQ6VXNlcjEwNTM2MTM2","avatar_url":"https://avatars3.githubusercontent.com/u/10536136?v=4","gravatar_id":"","url":"https://api.github.com/users/songy23","html_url":"https://github.com/songy23","followers_url":"https://api.github.com/users/songy23/followers","following_url":"https://api.github.com/users/songy23/following{/other_user}","gists_url":"https://api.github.com/users/songy23/gists{/gist_id}","starred_url":"https://api.github.com/users/songy23/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/songy23/subscriptions","organizations_url":"https://api.github.com/users/songy23/orgs","repos_url":"https://api.github.com/users/songy23/repos","events_url":"https://api.github.com/users/songy23/events{/privacy}","received_events_url":"https://api.github.com/users/songy23/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":912770383,"node_id":"MDU6TGFiZWw5MTI3NzAzODM=","url":"https://api.github.com/repos/census-instrumentation/opencensus-java/labels/action%20required","name":"action required","color":"6060ff","default":false},{"id":616301408,"node_id":"MDU6TGFiZWw2MTYzMDE0MDg=","url":"https://api.github.com/repos/census-instrumentation/opencensus-java/labels/cla:%20yes","name":"cla: yes","color":"0e8a16","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020/commits","review_comments_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020/comments","review_comment_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/comments{/number}","comments_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/issues/1020/comments","statuses_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/statuses/9ba39a87750c80737b215796d24abe440e0aaf88","head":{"label":"HailongWen:http-client-server-util","ref":"http-client-server-util","sha":"9ba39a87750c80737b215796d24abe440e0aaf88","user":{"login":"HailongWen","id":7017904,"node_id":"MDQ6VXNlcjcwMTc5MDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7017904?v=4","gravatar_id":"","url":"https://api.github.com/users/HailongWen","html_url":"https://github.com/HailongWen","followers_url":"https://api.github.com/users/HailongWen/followers","following_url":"https://api.github.com/users/HailongWen/following{/other_user}","gists_url":"https://api.github.com/users/HailongWen/gists{/gist_id}","starred_url":"https://api.github.com/users/HailongWen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HailongWen/subscriptions","organizations_url":"https://api.github.com/users/HailongWen/orgs","repos_url":"https://api.github.com/users/HailongWen/repos","events_url":"https://api.github.com/users/HailongWen/events{/privacy}","received_events_url":"https://api.github.com/users/HailongWen/received_events","type":"User","site_admin":false},"repo":{"id":111481748,"node_id":"MDEwOlJlcG9zaXRvcnkxMTE0ODE3NDg=","name":"opencensus-java","full_name":"HailongWen/opencensus-java","owner":{"login":"HailongWen","id":7017904,"node_id":"MDQ6VXNlcjcwMTc5MDQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7017904?v=4","gravatar_id":"","url":"https://api.github.com/users/HailongWen","html_url":"https://github.com/HailongWen","followers_url":"https://api.github.com/users/HailongWen/followers","following_url":"https://api.github.com/users/HailongWen/following{/other_user}","gists_url":"https://api.github.com/users/HailongWen/gists{/gist_id}","starred_url":"https://api.github.com/users/HailongWen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HailongWen/subscriptions","organizations_url":"https://api.github.com/users/HailongWen/orgs","repos_url":"https://api.github.com/users/HailongWen/repos","events_url":"https://api.github.com/users/HailongWen/events{/privacy}","received_events_url":"https://api.github.com/users/HailongWen/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/HailongWen/opencensus-java","description":"A stats collection and distributed tracing framework","fork":true,"url":"https://api.github.com/repos/HailongWen/opencensus-java","forks_url":"https://api.github.com/repos/HailongWen/opencensus-java/forks","keys_url":"https://api.github.com/repos/HailongWen/opencensus-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/HailongWen/opencensus-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/HailongWen/opencensus-java/teams","hooks_url":"https://api.github.com/repos/HailongWen/opencensus-java/hooks","issue_events_url":"https://api.github.com/repos/HailongWen/opencensus-java/issues/events{/number}","events_url":"https://api.github.com/repos/HailongWen/opencensus-java/events","assignees_url":"https://api.github.com/repos/HailongWen/opencensus-java/assignees{/user}","branches_url":"https://api.github.com/repos/HailongWen/opencensus-java/branches{/branch}","tags_url":"https://api.github.com/repos/HailongWen/opencensus-java/tags","blobs_url":"https://api.github.com/repos/HailongWen/opencensus-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/HailongWen/opencensus-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/HailongWen/opencensus-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/HailongWen/opencensus-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/HailongWen/opencensus-java/statuses/{sha}","languages_url":"https://api.github.com/repos/HailongWen/opencensus-java/languages","stargazers_url":"https://api.github.com/repos/HailongWen/opencensus-java/stargazers","contributors_url":"https://api.github.com/repos/HailongWen/opencensus-java/contributors","subscribers_url":"https://api.github.com/repos/HailongWen/opencensus-java/subscribers","subscription_url":"https://api.github.com/repos/HailongWen/opencensus-java/subscription","commits_url":"https://api.github.com/repos/HailongWen/opencensus-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/HailongWen/opencensus-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/HailongWen/opencensus-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/HailongWen/opencensus-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/HailongWen/opencensus-java/contents/{+path}","compare_url":"https://api.github.com/repos/HailongWen/opencensus-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/HailongWen/opencensus-java/merges","archive_url":"https://api.github.com/repos/HailongWen/opencensus-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/HailongWen/opencensus-java/downloads","issues_url":"https://api.github.com/repos/HailongWen/opencensus-java/issues{/number}","pulls_url":"https://api.github.com/repos/HailongWen/opencensus-java/pulls{/number}","milestones_url":"https://api.github.com/repos/HailongWen/opencensus-java/milestones{/number}","notifications_url":"https://api.github.com/repos/HailongWen/opencensus-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/HailongWen/opencensus-java/labels{/name}","releases_url":"https://api.github.com/repos/HailongWen/opencensus-java/releases{/id}","deployments_url":"https://api.github.com/repos/HailongWen/opencensus-java/deployments","created_at":"2017-11-21T01:16:52Z","updated_at":"2018-03-30T07:03:17Z","pushed_at":"2018-05-31T07:38:24Z","git_url":"git://github.com/HailongWen/opencensus-java.git","ssh_url":"git@github.com:HailongWen/opencensus-java.git","clone_url":"https://github.com/HailongWen/opencensus-java.git","svn_url":"https://github.com/HailongWen/opencensus-java","homepage":"","size":4963,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"census-instrumentation:master","ref":"master","sha":"b8b56888c8df7f7640107eae8d67887ac5595f4a","user":{"login":"census-instrumentation","id":26944525,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI2OTQ0NTI1","avatar_url":"https://avatars0.githubusercontent.com/u/26944525?v=4","gravatar_id":"","url":"https://api.github.com/users/census-instrumentation","html_url":"https://github.com/census-instrumentation","followers_url":"https://api.github.com/users/census-instrumentation/followers","following_url":"https://api.github.com/users/census-instrumentation/following{/other_user}","gists_url":"https://api.github.com/users/census-instrumentation/gists{/gist_id}","starred_url":"https://api.github.com/users/census-instrumentation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/census-instrumentation/subscriptions","organizations_url":"https://api.github.com/users/census-instrumentation/orgs","repos_url":"https://api.github.com/users/census-instrumentation/repos","events_url":"https://api.github.com/users/census-instrumentation/events{/privacy}","received_events_url":"https://api.github.com/users/census-instrumentation/received_events","type":"Organization","site_admin":false},"repo":{"id":64431348,"node_id":"MDEwOlJlcG9zaXRvcnk2NDQzMTM0OA==","name":"opencensus-java","full_name":"census-instrumentation/opencensus-java","owner":{"login":"census-instrumentation","id":26944525,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI2OTQ0NTI1","avatar_url":"https://avatars0.githubusercontent.com/u/26944525?v=4","gravatar_id":"","url":"https://api.github.com/users/census-instrumentation","html_url":"https://github.com/census-instrumentation","followers_url":"https://api.github.com/users/census-instrumentation/followers","following_url":"https://api.github.com/users/census-instrumentation/following{/other_user}","gists_url":"https://api.github.com/users/census-instrumentation/gists{/gist_id}","starred_url":"https://api.github.com/users/census-instrumentation/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/census-instrumentation/subscriptions","organizations_url":"https://api.github.com/users/census-instrumentation/orgs","repos_url":"https://api.github.com/users/census-instrumentation/repos","events_url":"https://api.github.com/users/census-instrumentation/events{/privacy}","received_events_url":"https://api.github.com/users/census-instrumentation/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/census-instrumentation/opencensus-java","description":"A stats collection and distributed tracing framework","fork":false,"url":"https://api.github.com/repos/census-instrumentation/opencensus-java","forks_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/forks","keys_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/teams","hooks_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/hooks","issue_events_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/issues/events{/number}","events_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/events","assignees_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/assignees{/user}","branches_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/branches{/branch}","tags_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/tags","blobs_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/statuses/{sha}","languages_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/languages","stargazers_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/stargazers","contributors_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/contributors","subscribers_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/subscribers","subscription_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/subscription","commits_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/contents/{+path}","compare_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/merges","archive_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/downloads","issues_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/issues{/number}","pulls_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls{/number}","milestones_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/milestones{/number}","notifications_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/labels{/name}","releases_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/releases{/id}","deployments_url":"https://api.github.com/repos/census-instrumentation/opencensus-java/deployments","created_at":"2016-07-28T22:10:03Z","updated_at":"2018-06-05T16:30:00Z","pushed_at":"2018-06-05T16:31:09Z","git_url":"git://github.com/census-instrumentation/opencensus-java.git","ssh_url":"git@github.com:census-instrumentation/opencensus-java.git","clone_url":"https://github.com/census-instrumentation/opencensus-java.git","svn_url":"https://github.com/census-instrumentation/opencensus-java","homepage":"https://opencensus.io","size":4791,"stargazers_count":374,"watchers_count":374,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":89,"mirror_url":null,"archived":false,"open_issues_count":62,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":89,"open_issues":62,"watchers":374,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020"},"html":{"href":"https://github.com/census-instrumentation/opencensus-java/pull/1020"},"issue":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/issues/1020"},"comments":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/issues/1020/comments"},"review_comments":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020/comments"},"review_comment":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/pulls/1020/commits"},"statuses":{"href":"https://api.github.com/repos/census-instrumentation/opencensus-java/statuses/9ba39a87750c80737b215796d24abe440e0aaf88"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"HailongWen"}}