{"action":"created","comment":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/comments/205396633","pull_request_review_id":140655722,"id":205396633,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNTM5NjYzMw==","diff_hunk":"@@ -0,0 +1,196 @@\n+package com.mapbox.mapboxsdk.http;","path":"platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/http/HttpRequestImpl.java","position":1,"original_position":1,"commit_id":"854ffc232b7962206d6f34f3f7ad2c8184fde13b","original_commit_id":"854ffc232b7962206d6f34f3f7ad2c8184fde13b","user":{"login":"tobrun","id":2151639,"node_id":"MDQ6VXNlcjIxNTE2Mzk=","avatar_url":"https://avatars0.githubusercontent.com/u/2151639?v=4","gravatar_id":"","url":"https://api.github.com/users/tobrun","html_url":"https://github.com/tobrun","followers_url":"https://api.github.com/users/tobrun/followers","following_url":"https://api.github.com/users/tobrun/following{/other_user}","gists_url":"https://api.github.com/users/tobrun/gists{/gist_id}","starred_url":"https://api.github.com/users/tobrun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobrun/subscriptions","organizations_url":"https://api.github.com/users/tobrun/orgs","repos_url":"https://api.github.com/users/tobrun/repos","events_url":"https://api.github.com/users/tobrun/events{/privacy}","received_events_url":"https://api.github.com/users/tobrun/received_events","type":"User","site_admin":false},"body":"Possible yes, but to completely exclude okhttp, the user would also have to exclude `com.mapbox.mapboxsdk.http.HttpRequestUtil` which we can't move due to semver. I'm suggesting postponing changing package names until next major release.","created_at":"2018-07-26T09:51:40Z","updated_at":"2018-07-26T09:51:40Z","html_url":"https://github.com/mapbox/mapbox-gl-native/pull/12468#discussion_r205396633","pull_request_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/comments/205396633"},"html":{"href":"https://github.com/mapbox/mapbox-gl-native/pull/12468#discussion_r205396633"},"pull_request":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468"}},"in_reply_to_id":205240303},"pull_request":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468","id":203537302,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzNTM3MzAy","html_url":"https://github.com/mapbox/mapbox-gl-native/pull/12468","diff_url":"https://github.com/mapbox/mapbox-gl-native/pull/12468.diff","patch_url":"https://github.com/mapbox/mapbox-gl-native/pull/12468.patch","issue_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/12468","number":12468,"state":"open","locked":false,"title":"Introduce abstract components","user":{"login":"tobrun","id":2151639,"node_id":"MDQ6VXNlcjIxNTE2Mzk=","avatar_url":"https://avatars0.githubusercontent.com/u/2151639?v=4","gravatar_id":"","url":"https://api.github.com/users/tobrun","html_url":"https://github.com/tobrun","followers_url":"https://api.github.com/users/tobrun/followers","following_url":"https://api.github.com/users/tobrun/following{/other_user}","gists_url":"https://api.github.com/users/tobrun/gists{/gist_id}","starred_url":"https://api.github.com/users/tobrun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobrun/subscriptions","organizations_url":"https://api.github.com/users/tobrun/orgs","repos_url":"https://api.github.com/users/tobrun/repos","events_url":"https://api.github.com/users/tobrun/events{/privacy}","received_events_url":"https://api.github.com/users/tobrun/received_events","type":"User","site_admin":false},"body":"Follow up from #12449 and #12391. \r\n\r\nThis PR makes the following components configurable:\r\n - logger\r\n - http client\r\n - telemetry\r\n\r\nThe logger configuration is handled at runtime and a own logger definition can be set with `Logger#setLoggerDefinition`, by default it will use the platform Log class and all native log invocations will be wired through `Logger.java`. \r\n\r\nHttp client and telemetry can be configured at compile time by excluding the related code and providing an own alternative implementation. The modules look like this:\r\n\r\n - `MapboxGLAndroidModuleBase`\r\n   - contains the interface definition of our modules + common constants \r\n - `MapboxGLAndroidModuleHttp`\r\n   - contains concrete OkHttp HttpRequest implementation.\r\n - `MapboxGLAndroidModuleTelemetry`\r\n   - contains a concrete telemetry implementation. \r\n\r\n### Example \r\n\r\nBelow an example of a compile time replacement of the http client.\r\n\r\n#### Step one: exclude old implemenation\r\n\r\nDeveloper uses build system (eg. gradle) to exclude module/folder/file:\r\n\r\n```gradle\r\n    implementation('com.mapbox.mapboxsdk:mapbox-android-sdk:6.4.0') {\r\n        exclude module: 'MapboxGLAndroidModuleHttp'\r\n    }\r\n```\r\n\r\nAbove results in not including the OkHttp dependency anymore and the specific implemantion we have of it in the SDK (`HttpRequestImpl.java`). \r\n\r\n#### Step two: provide alternative implementation \r\n\r\nCompilation will now result in not finding HttpRequestImpl and users need to provide an alternative of `HttpRequestImpl.java` in a `com.mapbox.mapboxsdk.http` package that extends the `HttpRequest.java` from the `MapboxGLAndroidModuleBase` module. \r\n\r\nFor example, an alternative http client using [ion](https://github.com/koush/ion):\r\n\r\n```java\r\npackage com.mapbox.mapboxsdk.http;\r\n\r\nimport com.koushikdutta.async.future.Future;\r\nimport com.koushikdutta.ion.Ion;\r\nimport com.koushikdutta.ion.Response;\r\nimport com.koushikdutta.ion.builder.Builders;\r\nimport com.mapbox.mapboxsdk.Mapbox;\r\n\r\nimport java.util.concurrent.ExecutionException;\r\n\r\npublic class HttpRequestImpl extends HttpRequest {\r\n\r\n  @Override\r\n  public void executeRequest(HttpRequestResponder httpRequest, long nativePtr, String resourceUrl,\r\n                             String etag, String modified) {\r\n    Builders.Any.B loadBuilder = Ion.with(Mapbox.getApplicationContext()).load(resourceUrl);\r\n    if (etag.length() > 0) {\r\n      loadBuilder.addHeader(\"If-None-Match\", etag);\r\n    } else if (modified.length() > 0) {\r\n      loadBuilder.addHeader(\"If-Modified-Since\", modified);\r\n    }\r\n    Future<Response<byte[]>> future = loadBuilder.asByteArray().withResponse();\r\n    try {\r\n      Response<byte[]> result = future.get();\r\n      int statusCode = result.getHeaders().code();\r\n      httpRequest.onResponse(statusCode, null, null, null, null, null, null, result.getResult());\r\n    } catch (InterruptedException interruptedException) {\r\n      interruptedException.printStackTrace();\r\n    } catch (ExecutionException executionException) {\r\n      executionException.printStackTrace();\r\n    }\r\n  }\r\n\r\n  @Override\r\n  public void cancelRequest() {\r\n    // do nothing\r\n    // TODO manage Future objects and execute Future#cancel\r\n  }\r\n}\r\n``` \r\n\r\n\r\n### TODO\r\n - [x] remove example ion http client replacement \r\n - [x] Logger.java javadoc\r\n - [x] LoggerDefinition.java javadoc\r\n - [x] TelemetryBase.java javadoc\r\n\r\n\r\n\r\n\r\n","created_at":"2018-07-24T14:00:21Z","updated_at":"2018-07-26T09:51:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1b1a26fa06e33ee24f88f137c69b98e1f839cdbe","assignee":{"login":"tobrun","id":2151639,"node_id":"MDQ6VXNlcjIxNTE2Mzk=","avatar_url":"https://avatars0.githubusercontent.com/u/2151639?v=4","gravatar_id":"","url":"https://api.github.com/users/tobrun","html_url":"https://github.com/tobrun","followers_url":"https://api.github.com/users/tobrun/followers","following_url":"https://api.github.com/users/tobrun/following{/other_user}","gists_url":"https://api.github.com/users/tobrun/gists{/gist_id}","starred_url":"https://api.github.com/users/tobrun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobrun/subscriptions","organizations_url":"https://api.github.com/users/tobrun/orgs","repos_url":"https://api.github.com/users/tobrun/repos","events_url":"https://api.github.com/users/tobrun/events{/privacy}","received_events_url":"https://api.github.com/users/tobrun/received_events","type":"User","site_admin":false},"assignees":[{"login":"tobrun","id":2151639,"node_id":"MDQ6VXNlcjIxNTE2Mzk=","avatar_url":"https://avatars0.githubusercontent.com/u/2151639?v=4","gravatar_id":"","url":"https://api.github.com/users/tobrun","html_url":"https://github.com/tobrun","followers_url":"https://api.github.com/users/tobrun/followers","following_url":"https://api.github.com/users/tobrun/following{/other_user}","gists_url":"https://api.github.com/users/tobrun/gists{/gist_id}","starred_url":"https://api.github.com/users/tobrun/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobrun/subscriptions","organizations_url":"https://api.github.com/users/tobrun/orgs","repos_url":"https://api.github.com/users/tobrun/repos","events_url":"https://api.github.com/users/tobrun/events{/privacy}","received_events_url":"https://api.github.com/users/tobrun/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":143173729,"node_id":"MDU6TGFiZWwxNDMxNzM3Mjk=","url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels/Android","name":"Android","color":"000000","default":false}],"milestone":{"url":"https://api.github.com/repos/mapbox/mapbox-gl-native/milestones/119","html_url":"https://github.com/mapbox/mapbox-gl-native/milestone/119","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/milestones/119/labels","id":3483095,"node_id":"MDk6TWlsZXN0b25lMzQ4MzA5NQ==","number":119,"title":"android-v6.4.0","description":null,"creator":{"login":"LukasPaczos","id":16925074,"node_id":"MDQ6VXNlcjE2OTI1MDc0","avatar_url":"https://avatars0.githubusercontent.com/u/16925074?v=4","gravatar_id":"","url":"https://api.github.com/users/LukasPaczos","html_url":"https://github.com/LukasPaczos","followers_url":"https://api.github.com/users/LukasPaczos/followers","following_url":"https://api.github.com/users/LukasPaczos/following{/other_user}","gists_url":"https://api.github.com/users/LukasPaczos/gists{/gist_id}","starred_url":"https://api.github.com/users/LukasPaczos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/LukasPaczos/subscriptions","organizations_url":"https://api.github.com/users/LukasPaczos/orgs","repos_url":"https://api.github.com/users/LukasPaczos/repos","events_url":"https://api.github.com/users/LukasPaczos/events{/privacy}","received_events_url":"https://api.github.com/users/LukasPaczos/received_events","type":"User","site_admin":false},"open_issues":10,"closed_issues":15,"state":"open","created_at":"2018-07-09T14:35:13Z","updated_at":"2018-07-25T17:41:42Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468/commits","review_comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468/comments","review_comment_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/12468/comments","statuses_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/statuses/854ffc232b7962206d6f34f3f7ad2c8184fde13b","head":{"label":"mapbox:tvn-modules","ref":"tvn-modules","sha":"854ffc232b7962206d6f34f3f7ad2c8184fde13b","user":{"login":"mapbox","id":600935,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMDkzNQ==","avatar_url":"https://avatars1.githubusercontent.com/u/600935?v=4","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"repo":{"id":16286131,"node_id":"MDEwOlJlcG9zaXRvcnkxNjI4NjEzMQ==","name":"mapbox-gl-native","full_name":"mapbox/mapbox-gl-native","owner":{"login":"mapbox","id":600935,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMDkzNQ==","avatar_url":"https://avatars1.githubusercontent.com/u/600935?v=4","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mapbox/mapbox-gl-native","description":"Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL","fork":false,"url":"https://api.github.com/repos/mapbox/mapbox-gl-native","forks_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/forks","keys_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/teams","hooks_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/hooks","issue_events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/events{/number}","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/events","assignees_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/assignees{/user}","branches_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/branches{/branch}","tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/tags","blobs_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/refs{/sha}","trees_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/statuses/{sha}","languages_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/languages","stargazers_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/stargazers","contributors_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/contributors","subscribers_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/subscribers","subscription_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/subscription","commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/commits{/sha}","git_commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/commits{/sha}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/comments{/number}","issue_comment_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/comments{/number}","contents_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/contents/{+path}","compare_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/merges","archive_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/downloads","issues_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues{/number}","pulls_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls{/number}","milestones_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/milestones{/number}","notifications_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels{/name}","releases_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/releases{/id}","deployments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/deployments","created_at":"2014-01-27T17:14:48Z","updated_at":"2018-07-26T05:53:24Z","pushed_at":"2018-07-26T09:48:38Z","git_url":"git://github.com/mapbox/mapbox-gl-native.git","ssh_url":"git@github.com:mapbox/mapbox-gl-native.git","clone_url":"https://github.com/mapbox/mapbox-gl-native.git","svn_url":"https://github.com/mapbox/mapbox-gl-native","homepage":"https://mapbox.com/mobile","size":209405,"stargazers_count":2778,"watchers_count":2778,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":858,"mirror_url":null,"archived":false,"open_issues_count":737,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":858,"open_issues":737,"watchers":2778,"default_branch":"master"}},"base":{"label":"mapbox:master","ref":"master","sha":"3a97734cd2fa1628c31237318caf34939d9ec26a","user":{"login":"mapbox","id":600935,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMDkzNQ==","avatar_url":"https://avatars1.githubusercontent.com/u/600935?v=4","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"repo":{"id":16286131,"node_id":"MDEwOlJlcG9zaXRvcnkxNjI4NjEzMQ==","name":"mapbox-gl-native","full_name":"mapbox/mapbox-gl-native","owner":{"login":"mapbox","id":600935,"node_id":"MDEyOk9yZ2FuaXphdGlvbjYwMDkzNQ==","avatar_url":"https://avatars1.githubusercontent.com/u/600935?v=4","gravatar_id":"","url":"https://api.github.com/users/mapbox","html_url":"https://github.com/mapbox","followers_url":"https://api.github.com/users/mapbox/followers","following_url":"https://api.github.com/users/mapbox/following{/other_user}","gists_url":"https://api.github.com/users/mapbox/gists{/gist_id}","starred_url":"https://api.github.com/users/mapbox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mapbox/subscriptions","organizations_url":"https://api.github.com/users/mapbox/orgs","repos_url":"https://api.github.com/users/mapbox/repos","events_url":"https://api.github.com/users/mapbox/events{/privacy}","received_events_url":"https://api.github.com/users/mapbox/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mapbox/mapbox-gl-native","description":"Interactive, thoroughly customizable maps in native Android, iOS, macOS, Node.js, and Qt applications, powered by vector tiles and OpenGL","fork":false,"url":"https://api.github.com/repos/mapbox/mapbox-gl-native","forks_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/forks","keys_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/teams","hooks_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/hooks","issue_events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/events{/number}","events_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/events","assignees_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/assignees{/user}","branches_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/branches{/branch}","tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/tags","blobs_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/refs{/sha}","trees_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/statuses/{sha}","languages_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/languages","stargazers_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/stargazers","contributors_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/contributors","subscribers_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/subscribers","subscription_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/subscription","commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/commits{/sha}","git_commits_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/git/commits{/sha}","comments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/comments{/number}","issue_comment_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/comments{/number}","contents_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/contents/{+path}","compare_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/merges","archive_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/downloads","issues_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues{/number}","pulls_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls{/number}","milestones_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/milestones{/number}","notifications_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/labels{/name}","releases_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/releases{/id}","deployments_url":"https://api.github.com/repos/mapbox/mapbox-gl-native/deployments","created_at":"2014-01-27T17:14:48Z","updated_at":"2018-07-26T05:53:24Z","pushed_at":"2018-07-26T09:48:38Z","git_url":"git://github.com/mapbox/mapbox-gl-native.git","ssh_url":"git@github.com:mapbox/mapbox-gl-native.git","clone_url":"https://github.com/mapbox/mapbox-gl-native.git","svn_url":"https://github.com/mapbox/mapbox-gl-native","homepage":"https://mapbox.com/mobile","size":209405,"stargazers_count":2778,"watchers_count":2778,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":858,"mirror_url":null,"archived":false,"open_issues_count":737,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":858,"open_issues":737,"watchers":2778,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468"},"html":{"href":"https://github.com/mapbox/mapbox-gl-native/pull/12468"},"issue":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/12468"},"comments":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/issues/12468/comments"},"review_comments":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468/comments"},"review_comment":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/pulls/12468/commits"},"statuses":{"href":"https://api.github.com/repos/mapbox/mapbox-gl-native/statuses/854ffc232b7962206d6f34f3f7ad2c8184fde13b"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"tobrun"}}