{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/comments/230872872","pull_request_review_id":171705524,"id":230872872,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzMDg3Mjg3Mg==","diff_hunk":"@@ -0,0 +1,112 @@\n+Static Linkage Checker\n+======================\n+\n+Static Linkage Checker identifies the\n+[linkage conflicts](../library-best-practices/glossary.md#types-of-conflicts-and-compatibility)\n+that would be caused by 3rd-party dependencies of Java projects at runtime. The tool scans\n+the class files for references to other classes, and verifies the availability of the implementation\n+through the classpath of the dependencies.\n+\n+### Use Cases\n+\n+There are three use cases for Static Linkage Checker:\n+\n+-  **For organizations** that provide multiple libraries (through BOM) developed by different teams,\n+  the tool helps to ensure that there is no static linkage conflicts among the libraries and their\n+  dependencies when some of them are used at the same time.\n+\n+- **For library developers**, the tool ensures that the users of the library will not suffer the\n+  static linkage conflicts caused solely by the dependencies of the library.\n+\n+- (future plan) **For application developers** consuming 3rd-party libraries, the tool will\n+  assess the risk of static linkage conflicts among the application's dependencies, and will help\n+  to use appropriate versions of libraries to avoid runtime errors.\n+\n+### Approach\n+\n+1. Given an input, the tool prepares a _linkage classpath_, from which the tool inspects Java\n+  classes.\n+\n+2. The tool extracts all _references_ from the class files in the classpath.\n+\n+3. The tool checks the linkage compatibility of the references through the classpath.\n+  \n+4. The tool traverses a _class usage graph_ to annotate the linkage errors with _reachability_.\n+\n+5. At the end, the tool outputs the report on linkage errors.\n+\n+### Output\n+\n+- **Static Linkage Errors** are reported by the tool. A static linkage error is either\n+  a _dangling reference_ or a _static linkage conflict_.\n+\n+  A _dangling reference_ is a reference where its destination class does not exist in the \n+  linkage classpath. This error happens when a class is removed in a different version of a library\n+  , or there is a dependency missed when constructing the linkage classpath.\n+  \n+  A _static linkage conflict_ is described in [glossary.md](../library-best-practices/glossary.md).\n+  In short, this error happens when the destination class's implementation is not compatible from\n+  what it was available at the time of compilation of the source class, in a way that such \n+  incompatibility causes `NoSuchFieldException`, `MethodNotFoundException`, or `LinkageError` when\n+  Java Virtual Machine tries to use the implementation.\n+\n+\n+### Class Usage Graph and Reachability\n+\n+- **Linkage Classpath** is a list of jar files from which the tool inspects Java classes when\n+  running the tool against a project. A linkage classpath corresponds to the transitive dependencies\n+  induced by the direct dependencies in the target project's pom.xml file. This includes the\n+  dependencies marked as `provided` or `optional: true`.\n+\n+- **Class Usage Graph**\n+\n+  In order to provide better diagnosis on the output report, the tool builds _class usage\n+  graphs_. The nodes (vertex) of the graph correspond to Java classes and the directed edges are\n+  references between classes. For example, when 'Class A' has reference to 'Class B' on calling\n+  a method X, the tool builds a graph holding an edge between two nodes:\n+\n+    [Class A] --(method X of class B)-> [Class B]\n+\n+  In this case, 'Class A' is called the _source class_ of the reference and 'Class B' is called\n+  the _destination class_.\n+\n+- **A reference** between two classes is either _class reference_, _method reference_\n+  or _field reference_.\n+\n+  A _method reference_ indicates the source class uses the (static or non-static) method of\n+  the destination class.\n+\n+  A _field reference_ indicates the source class accesses the (static or non-static) field of\n+  the destination class.\n+\n+  A _class reference_ indicates the source class uses the destination class without specific field \n+  or method (e.g., inheritance).\n+\n+  A reference is called _linkage conflicting_ when there is a linkage conflict","path":"dependencies/README.md","position":null,"original_position":85,"commit_id":"96447f6901b2d342ba4afbe6c4b6de0eb95f9cad","original_commit_id":"54164f8ee746ac4270194f2b962ac79c06fc08ee","user":{"login":"suztomo","id":28604,"node_id":"MDQ6VXNlcjI4NjA0","avatar_url":"https://avatars3.githubusercontent.com/u/28604?v=4","gravatar_id":"","url":"https://api.github.com/users/suztomo","html_url":"https://github.com/suztomo","followers_url":"https://api.github.com/users/suztomo/followers","following_url":"https://api.github.com/users/suztomo/following{/other_user}","gists_url":"https://api.github.com/users/suztomo/gists{/gist_id}","starred_url":"https://api.github.com/users/suztomo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/suztomo/subscriptions","organizations_url":"https://api.github.com/users/suztomo/orgs","repos_url":"https://api.github.com/users/suztomo/repos","events_url":"https://api.github.com/users/suztomo/events{/privacy}","received_events_url":"https://api.github.com/users/suztomo/received_events","type":"User","site_admin":false},"body":"How about \"A reference is called to have a linkage conflict\" ?","created_at":"2018-11-05T19:04:28Z","updated_at":"2018-11-05T19:42:50Z","html_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java/pull/214#discussion_r230872872","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/comments/230872872"},"html":{"href":"https://github.com/GoogleCloudPlatform/cloud-opensource-java/pull/214#discussion_r230872872"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214"}},"in_reply_to_id":230851936},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214","id":228410409,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4NDEwNDA5","html_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java/pull/214","diff_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java/pull/214.diff","patch_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java/pull/214.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/214","number":214,"state":"open","locked":false,"title":"Readme for Static Linkage Checker","user":{"login":"suztomo","id":28604,"node_id":"MDQ6VXNlcjI4NjA0","avatar_url":"https://avatars3.githubusercontent.com/u/28604?v=4","gravatar_id":"","url":"https://api.github.com/users/suztomo","html_url":"https://github.com/suztomo","followers_url":"https://api.github.com/users/suztomo/followers","following_url":"https://api.github.com/users/suztomo/following{/other_user}","gists_url":"https://api.github.com/users/suztomo/gists{/gist_id}","starred_url":"https://api.github.com/users/suztomo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/suztomo/subscriptions","organizations_url":"https://api.github.com/users/suztomo/orgs","repos_url":"https://api.github.com/users/suztomo/repos","events_url":"https://api.github.com/users/suztomo/events{/privacy}","received_events_url":"https://api.github.com/users/suztomo/received_events","type":"User","site_admin":false},"body":"I added concept of \"class, method, and field reference\", \"entry point classes\", \"reachability\", \"dangling reference\", and \"static linkage error\". They were useful when we discussed the concept of Static Linkage Checker.\r\n\r\nAlthough this README introduces \"static linkage error\" specific to the tool, I tried to make it compatible with \"static linkage conflict\" (it's subclass of static linkage error).\r\n\r\nFixes #212 \r\n","created_at":"2018-11-05T16:24:25Z","updated_at":"2018-11-05T19:42:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"10f46745bd419a24514f1e8e14ec912851ef3740","assignee":null,"assignees":[],"requested_reviewers":[{"login":"netdpb","id":4306377,"node_id":"MDQ6VXNlcjQzMDYzNzc=","avatar_url":"https://avatars0.githubusercontent.com/u/4306377?v=4","gravatar_id":"","url":"https://api.github.com/users/netdpb","html_url":"https://github.com/netdpb","followers_url":"https://api.github.com/users/netdpb/followers","following_url":"https://api.github.com/users/netdpb/following{/other_user}","gists_url":"https://api.github.com/users/netdpb/gists{/gist_id}","starred_url":"https://api.github.com/users/netdpb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/netdpb/subscriptions","organizations_url":"https://api.github.com/users/netdpb/orgs","repos_url":"https://api.github.com/users/netdpb/repos","events_url":"https://api.github.com/users/netdpb/events{/privacy}","received_events_url":"https://api.github.com/users/netdpb/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":1101521265,"node_id":"MDU6TGFiZWwxMTAxNTIxMjY1","url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/labels/cla:%20yes","name":"cla: yes","color":"a3ffa8","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/214/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/statuses/96447f6901b2d342ba4afbe6c4b6de0eb95f9cad","head":{"label":"GoogleCloudPlatform:readme_slc","ref":"readme_slc","sha":"96447f6901b2d342ba4afbe6c4b6de0eb95f9cad","user":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":134450682,"node_id":"MDEwOlJlcG9zaXRvcnkxMzQ0NTA2ODI=","name":"cloud-opensource-java","full_name":"GoogleCloudPlatform/cloud-opensource-java","private":false,"owner":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java","description":"Code health dashboard for GCP open source projects","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/deployments","created_at":"2018-05-22T17:24:30Z","updated_at":"2018-11-03T07:03:09Z","pushed_at":"2018-11-05T19:38:54Z","git_url":"git://github.com/GoogleCloudPlatform/cloud-opensource-java.git","ssh_url":"git@github.com:GoogleCloudPlatform/cloud-opensource-java.git","clone_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java.git","svn_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java","homepage":"","size":5991,"stargazers_count":5,"watchers_count":5,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":58,"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":5,"open_issues":58,"watchers":5,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"835ce2ae2c1f6e4c26fe25276a73d0330e1e412f","user":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":134450682,"node_id":"MDEwOlJlcG9zaXRvcnkxMzQ0NTA2ODI=","name":"cloud-opensource-java","full_name":"GoogleCloudPlatform/cloud-opensource-java","private":false,"owner":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java","description":"Code health dashboard for GCP open source projects","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/deployments","created_at":"2018-05-22T17:24:30Z","updated_at":"2018-11-03T07:03:09Z","pushed_at":"2018-11-05T19:38:54Z","git_url":"git://github.com/GoogleCloudPlatform/cloud-opensource-java.git","ssh_url":"git@github.com:GoogleCloudPlatform/cloud-opensource-java.git","clone_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java.git","svn_url":"https://github.com/GoogleCloudPlatform/cloud-opensource-java","homepage":"","size":5991,"stargazers_count":5,"watchers_count":5,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"archived":false,"open_issues_count":58,"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":5,"open_issues":58,"watchers":5,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214"},"html":{"href":"https://github.com/GoogleCloudPlatform/cloud-opensource-java/pull/214"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/214"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/issues/214/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/pulls/214/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/cloud-opensource-java/statuses/96447f6901b2d342ba4afbe6c4b6de0eb95f9cad"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"suztomo"}}