{"action":"created","comment":{"url":"https://api.github.com/repos/esp8266/Arduino/pulls/comments/204612880","pull_request_review_id":139720817,"id":204612880,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNDYxMjg4MA==","diff_hunk":"@@ -1,50 +1,129 @@\n #include <ESP8266WiFi.h>\n #include <ESP8266WiFiMesh.h>\n \n+String mesh_name = \"Mesh_Node\";\n+\n unsigned int request_i = 0;\n unsigned int response_i = 0;\n \n-String manageRequest(String request);\n+String manageRequest(String request, ESP8266WiFiMesh *mesh_instance);\n+transmission_status_t manageResponse(String response, ESP8266WiFiMesh *mesh_instance);\n+void networkFilter(int number_of_networks, ESP8266WiFiMesh *mesh_instance);\n \n /* Create the mesh node object */\n-ESP8266WiFiMesh mesh_node = ESP8266WiFiMesh(ESP.getChipId(), manageRequest);\n+ESP8266WiFiMesh mesh_node = ESP8266WiFiMesh(manageRequest, manageResponse, networkFilter, \"ChangeThisWiFiPassword_TODO\", mesh_name, \"\", true);\n \n /**\n-   Callback for when other nodes send you data\n+   Callback for when other nodes send you a request\n \n-   @request The string received from another node in the mesh\n+   @param request The request string received from another node in the mesh\n+   @param mesh_instance The \"this\" pointer of the ESP8266WiFiMesh instance that called the function.\n    @returns The string to send back to the other node\n */\n-String manageRequest(String request) {\n+String manageRequest(String request, ESP8266WiFiMesh *mesh_instance) {\n   /* Print out received message */\n-  Serial.print(\"received: \");\n+  Serial.print(\"Request received: \");\n   Serial.println(request);\n \n   /* return a string to send back */\n   char response[60];\n-  sprintf(response, \"Hello world response #%d from Mesh_Node%d.\", response_i++, ESP.getChipId());\n+  sprintf(response, \"Hello world response #%d from %s%s.\", response_i++, mesh_instance->getMeshName().c_str(), mesh_instance->getNodeID().c_str());\n   return response;\n }\n \n+/**\n+   Callback used to decide which networks to connect to once a WiFi scan has been completed.\n+\n+   @param number_of_networks The number of networks found in the WiFi scan.\n+   @param mesh_instance The \"this\" pointer of the ESP8266WiFiMesh instance that called the function.\n+*/\n+void networkFilter(int number_of_networks, ESP8266WiFiMesh *mesh_instance) {\n+  for (int i = 0; i < number_of_networks; ++i) {\n+    String current_ssid = WiFi.SSID(i);\n+    int mesh_name_index = current_ssid.indexOf(mesh_instance->getMeshName());\n+\n+    /* Connect to any _suitable_ APs which contain mesh_instance->getMeshName() */\n+    if (mesh_name_index >= 0) {\n+      uint64_t target_node_id = ESP8266WiFiMesh::StringToUint64(current_ssid.substring(mesh_name_index + mesh_instance->getMeshName().length()));\n+\n+      if (target_node_id < ESP8266WiFiMesh::StringToUint64(mesh_instance->getNodeID())) {\n+        ESP8266WiFiMesh::connection_queue.push_back(NetworkInfo(i));\n+      }\n+    }\n+  }\n+}\n+\n+/**\n+   Callback for when you get a response from other nodes\n+\n+   @param response The response string received from another node in the mesh\n+   @param mesh_instance The \"this\" pointer of the ESP8266WiFiMesh instance that called the function.\n+   @returns The status code resulting from the response, as an int\n+*/\n+transmission_status_t manageResponse(String response, ESP8266WiFiMesh *mesh_instance) {\n+  transmission_status_t status_code = TS_TRANSMISSION_COMPLETE;\n+\n+  /* Print out received message */\n+  Serial.print(\"Request sent: \");\n+  Serial.println(mesh_instance->getMessage());\n+  Serial.print(\"Response received: \");\n+  Serial.println(response);\n+\n+  // Our last request got a response, so time to create a new request.\n+  mesh_instance->setMessage(\"Hello world request #\" + String(++request_i) + \" from \" + mesh_instance->getMeshName() + mesh_instance->getNodeID() + \".\");\n+\n+  // (void)mesh_instance; // This is useful to remove a \"unused parameter\" compiler warning. Does nothing else.\n+  return status_code;\n+}\n+\n void setup() {\n+  // Prevents the flash memory from being worn out, see: https://github.com/esp8266/Arduino/issues/1054 .\n+  // This will however delay node WiFi start-up by about 700 ms. The delay is 900 ms if we otherwise would have stored the WiFi network we want to connect to.\n+  WiFi.persistent(false);\n+\n   Serial.begin(115200);\n-  delay(10);\n+  delay(50); // Wait for Serial.\n+\n+  //yield(); // Use this if you don't want to wait for Serial.\n \n   Serial.println();\n   Serial.println();\n+\n+  Serial.println(\"Note that this library can use static IP:s for the nodes to speed up connection times.\\n\"\n+                 \"Use the setStaticIP method to enable this and ensure that nodes connecting to the same AP have distinct static IP:s.\\n\"\n+                 \"Also, remember to change the default mesh network password!\\n\\n\");\n+\n   Serial.println(\"Setting up mesh node...\");\n \n   /* Initialise the mesh node */\n   mesh_node.begin();\n+  mesh_node.activateAP(); // Each AP requires a separate server port.\n+  mesh_node.setStaticIP(IPAddress(192, 168, 4, 22)); // Activate static IP mode to speed up connection times.\n }\n \n+int32_t time_of_last_scan = -10000;\n void loop() {\n-  /* Accept any incoming connections */\n-  mesh_node.acceptRequest();\n-\n-  /* Scan for other nodes and send them a message */\n-  char request[60];\n-  sprintf(request, \"Hello world request #%d from Mesh_Node%d.\", request_i++, ESP.getChipId());\n-  mesh_node.attemptScan(request);\n-  delay(1000);\n+  if (millis() - time_of_last_scan > 3000 // Give other nodes some time to connect between data transfers.\n+      || (WiFi.status() != WL_CONNECTED && millis() - time_of_last_scan > 2000)) { // Scan for networks with two second intervals when not already connected.\n+    char request[60];\n+    sprintf(request, \"Hello world request #%d from %s%s.\", request_i, mesh_node.getMeshName().c_str(), mesh_node.getNodeID().c_str());\n+    mesh_node.attemptTransmission(request, false);\n+    time_of_last_scan = millis();\n+\n+    if (ESP8266WiFiMesh::latest_transmission_outcomes.empty()) {\n+      Serial.println(\"No mesh AP found.\");\n+    } else {\n+      for (TransmissionResult &transmission_result : ESP8266WiFiMesh::latest_transmission_outcomes) {\n+        if (transmission_result.transmission_status == TS_TRANSMISSION_FAILED) {\n+          Serial.println(\"Transmission failed to mesh AP \" + transmission_result.ssid);\n+        } else if (transmission_result.transmission_status == TS_CONNECTION_FAILED) {\n+          Serial.println(\"Connection failed to mesh AP \" + transmission_result.ssid);\n+        }","path":"libraries/ESP8266WiFiMesh/examples/HelloMesh/HelloMesh.ino","position":137,"original_position":137,"commit_id":"7f853a5e0ab5eab0af89c5399fe6c115eede86e2","original_commit_id":"7f853a5e0ab5eab0af89c5399fe6c115eede86e2","user":{"login":"devyte","id":16824838,"node_id":"MDQ6VXNlcjE2ODI0ODM4","avatar_url":"https://avatars0.githubusercontent.com/u/16824838?v=4","gravatar_id":"","url":"https://api.github.com/users/devyte","html_url":"https://github.com/devyte","followers_url":"https://api.github.com/users/devyte/followers","following_url":"https://api.github.com/users/devyte/following{/other_user}","gists_url":"https://api.github.com/users/devyte/gists{/gist_id}","starred_url":"https://api.github.com/users/devyte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/devyte/subscriptions","organizations_url":"https://api.github.com/users/devyte/orgs","repos_url":"https://api.github.com/users/devyte/repos","events_url":"https://api.github.com/users/devyte/events{/privacy}","received_events_url":"https://api.github.com/users/devyte/received_events","type":"User","site_admin":false},"body":"else ? (Robustness)","created_at":"2018-07-24T03:18:46Z","updated_at":"2018-07-24T03:53:51Z","html_url":"https://github.com/esp8266/Arduino/pull/4718#discussion_r204612880","pull_request_url":"https://api.github.com/repos/esp8266/Arduino/pulls/4718","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/esp8266/Arduino/pulls/comments/204612880"},"html":{"href":"https://github.com/esp8266/Arduino/pull/4718#discussion_r204612880"},"pull_request":{"href":"https://api.github.com/repos/esp8266/Arduino/pulls/4718"}}},"pull_request":{"url":"https://api.github.com/repos/esp8266/Arduino/pulls/4718","id":187162668,"node_id":"MDExOlB1bGxSZXF1ZXN0MTg3MTYyNjY4","html_url":"https://github.com/esp8266/Arduino/pull/4718","diff_url":"https://github.com/esp8266/Arduino/pull/4718.diff","patch_url":"https://github.com/esp8266/Arduino/pull/4718.patch","issue_url":"https://api.github.com/repos/esp8266/Arduino/issues/4718","number":4718,"state":"open","locked":false,"title":"Update of mesh network library.","user":{"login":"aerlon","id":39123666,"node_id":"MDQ6VXNlcjM5MTIzNjY2","avatar_url":"https://avatars1.githubusercontent.com/u/39123666?v=4","gravatar_id":"","url":"https://api.github.com/users/aerlon","html_url":"https://github.com/aerlon","followers_url":"https://api.github.com/users/aerlon/followers","following_url":"https://api.github.com/users/aerlon/following{/other_user}","gists_url":"https://api.github.com/users/aerlon/gists{/gist_id}","starred_url":"https://api.github.com/users/aerlon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aerlon/subscriptions","organizations_url":"https://api.github.com/users/aerlon/orgs","repos_url":"https://api.github.com/users/aerlon/repos","events_url":"https://api.github.com/users/aerlon/events{/privacy}","received_events_url":"https://api.github.com/users/aerlon/received_events","type":"User","site_admin":false},"body":"The mesh network library was not working well, so I took a look at it and managed to improve it to a relatively well working state.\r\n\r\nAs noted in the new library readme: The library has been tested and works with Arduino core for ESP8266 version 2.3.0 (with default lwIP) and 2.4.1 (with lwIP 1.4). Random disconnects and crashes seem to happen with the most recent master branch, so better stick to the release builds for now. Also, nodes seem to be unable to connect to more than one other node when using lwIP 2.0.","created_at":"2018-05-10T10:59:22Z","updated_at":"2018-07-24T03:53:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7a1ac1f1c287f40b187178b0c29d25e84eda6b13","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":194072130,"node_id":"MDU6TGFiZWwxOTQwNzIxMzA=","url":"https://api.github.com/repos/esp8266/Arduino/labels/component:%20libraries","name":"component: libraries","color":"c7def8","default":false},{"id":192608391,"node_id":"MDU6TGFiZWwxOTI2MDgzOTE=","url":"https://api.github.com/repos/esp8266/Arduino/labels/type:%20bug","name":"type: bug","color":"fc2929","default":false}],"milestone":{"url":"https://api.github.com/repos/esp8266/Arduino/milestones/13","html_url":"https://github.com/esp8266/Arduino/milestone/13","labels_url":"https://api.github.com/repos/esp8266/Arduino/milestones/13/labels","id":3390223,"node_id":"MDk6TWlsZXN0b25lMzM5MDIyMw==","number":13,"title":"2.4.2","description":"fix stability issues left in 2.4.1","creator":{"login":"d-a-v","id":4800356,"node_id":"MDQ6VXNlcjQ4MDAzNTY=","avatar_url":"https://avatars3.githubusercontent.com/u/4800356?v=4","gravatar_id":"","url":"https://api.github.com/users/d-a-v","html_url":"https://github.com/d-a-v","followers_url":"https://api.github.com/users/d-a-v/followers","following_url":"https://api.github.com/users/d-a-v/following{/other_user}","gists_url":"https://api.github.com/users/d-a-v/gists{/gist_id}","starred_url":"https://api.github.com/users/d-a-v/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/d-a-v/subscriptions","organizations_url":"https://api.github.com/users/d-a-v/orgs","repos_url":"https://api.github.com/users/d-a-v/repos","events_url":"https://api.github.com/users/d-a-v/events{/privacy}","received_events_url":"https://api.github.com/users/d-a-v/received_events","type":"User","site_admin":false},"open_issues":16,"closed_issues":19,"state":"open","created_at":"2018-05-31T12:32:22Z","updated_at":"2018-07-22T01:46:52Z","due_on":"2018-08-01T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/esp8266/Arduino/pulls/4718/commits","review_comments_url":"https://api.github.com/repos/esp8266/Arduino/pulls/4718/comments","review_comment_url":"https://api.github.com/repos/esp8266/Arduino/pulls/comments{/number}","comments_url":"https://api.github.com/repos/esp8266/Arduino/issues/4718/comments","statuses_url":"https://api.github.com/repos/esp8266/Arduino/statuses/7f853a5e0ab5eab0af89c5399fe6c115eede86e2","head":{"label":"aerlon:wifi_mesh_update","ref":"wifi_mesh_update","sha":"7f853a5e0ab5eab0af89c5399fe6c115eede86e2","user":{"login":"aerlon","id":39123666,"node_id":"MDQ6VXNlcjM5MTIzNjY2","avatar_url":"https://avatars1.githubusercontent.com/u/39123666?v=4","gravatar_id":"","url":"https://api.github.com/users/aerlon","html_url":"https://github.com/aerlon","followers_url":"https://api.github.com/users/aerlon/followers","following_url":"https://api.github.com/users/aerlon/following{/other_user}","gists_url":"https://api.github.com/users/aerlon/gists{/gist_id}","starred_url":"https://api.github.com/users/aerlon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aerlon/subscriptions","organizations_url":"https://api.github.com/users/aerlon/orgs","repos_url":"https://api.github.com/users/aerlon/repos","events_url":"https://api.github.com/users/aerlon/events{/privacy}","received_events_url":"https://api.github.com/users/aerlon/received_events","type":"User","site_admin":false},"repo":{"id":132791220,"node_id":"MDEwOlJlcG9zaXRvcnkxMzI3OTEyMjA=","name":"Arduino","full_name":"aerlon/Arduino","owner":{"login":"aerlon","id":39123666,"node_id":"MDQ6VXNlcjM5MTIzNjY2","avatar_url":"https://avatars1.githubusercontent.com/u/39123666?v=4","gravatar_id":"","url":"https://api.github.com/users/aerlon","html_url":"https://github.com/aerlon","followers_url":"https://api.github.com/users/aerlon/followers","following_url":"https://api.github.com/users/aerlon/following{/other_user}","gists_url":"https://api.github.com/users/aerlon/gists{/gist_id}","starred_url":"https://api.github.com/users/aerlon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aerlon/subscriptions","organizations_url":"https://api.github.com/users/aerlon/orgs","repos_url":"https://api.github.com/users/aerlon/repos","events_url":"https://api.github.com/users/aerlon/events{/privacy}","received_events_url":"https://api.github.com/users/aerlon/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/aerlon/Arduino","description":"ESP8266 core for Arduino","fork":true,"url":"https://api.github.com/repos/aerlon/Arduino","forks_url":"https://api.github.com/repos/aerlon/Arduino/forks","keys_url":"https://api.github.com/repos/aerlon/Arduino/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aerlon/Arduino/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aerlon/Arduino/teams","hooks_url":"https://api.github.com/repos/aerlon/Arduino/hooks","issue_events_url":"https://api.github.com/repos/aerlon/Arduino/issues/events{/number}","events_url":"https://api.github.com/repos/aerlon/Arduino/events","assignees_url":"https://api.github.com/repos/aerlon/Arduino/assignees{/user}","branches_url":"https://api.github.com/repos/aerlon/Arduino/branches{/branch}","tags_url":"https://api.github.com/repos/aerlon/Arduino/tags","blobs_url":"https://api.github.com/repos/aerlon/Arduino/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aerlon/Arduino/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aerlon/Arduino/git/refs{/sha}","trees_url":"https://api.github.com/repos/aerlon/Arduino/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aerlon/Arduino/statuses/{sha}","languages_url":"https://api.github.com/repos/aerlon/Arduino/languages","stargazers_url":"https://api.github.com/repos/aerlon/Arduino/stargazers","contributors_url":"https://api.github.com/repos/aerlon/Arduino/contributors","subscribers_url":"https://api.github.com/repos/aerlon/Arduino/subscribers","subscription_url":"https://api.github.com/repos/aerlon/Arduino/subscription","commits_url":"https://api.github.com/repos/aerlon/Arduino/commits{/sha}","git_commits_url":"https://api.github.com/repos/aerlon/Arduino/git/commits{/sha}","comments_url":"https://api.github.com/repos/aerlon/Arduino/comments{/number}","issue_comment_url":"https://api.github.com/repos/aerlon/Arduino/issues/comments{/number}","contents_url":"https://api.github.com/repos/aerlon/Arduino/contents/{+path}","compare_url":"https://api.github.com/repos/aerlon/Arduino/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aerlon/Arduino/merges","archive_url":"https://api.github.com/repos/aerlon/Arduino/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aerlon/Arduino/downloads","issues_url":"https://api.github.com/repos/aerlon/Arduino/issues{/number}","pulls_url":"https://api.github.com/repos/aerlon/Arduino/pulls{/number}","milestones_url":"https://api.github.com/repos/aerlon/Arduino/milestones{/number}","notifications_url":"https://api.github.com/repos/aerlon/Arduino/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aerlon/Arduino/labels{/name}","releases_url":"https://api.github.com/repos/aerlon/Arduino/releases{/id}","deployments_url":"https://api.github.com/repos/aerlon/Arduino/deployments","created_at":"2018-05-09T17:28:58Z","updated_at":"2018-07-15T19:35:28Z","pushed_at":"2018-07-23T14:48:03Z","git_url":"git://github.com/aerlon/Arduino.git","ssh_url":"git@github.com:aerlon/Arduino.git","clone_url":"https://github.com/aerlon/Arduino.git","svn_url":"https://github.com/aerlon/Arduino","homepage":"","size":47469,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1","node_id":"MDc6TGljZW5zZTEx"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"esp8266:master","ref":"master","sha":"bde83e8ea29ab7cd64acc60fb57fbc6463795e7a","user":{"login":"esp8266","id":8943775,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg5NDM3NzU=","avatar_url":"https://avatars1.githubusercontent.com/u/8943775?v=4","gravatar_id":"","url":"https://api.github.com/users/esp8266","html_url":"https://github.com/esp8266","followers_url":"https://api.github.com/users/esp8266/followers","following_url":"https://api.github.com/users/esp8266/following{/other_user}","gists_url":"https://api.github.com/users/esp8266/gists{/gist_id}","starred_url":"https://api.github.com/users/esp8266/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/esp8266/subscriptions","organizations_url":"https://api.github.com/users/esp8266/orgs","repos_url":"https://api.github.com/users/esp8266/repos","events_url":"https://api.github.com/users/esp8266/events{/privacy}","received_events_url":"https://api.github.com/users/esp8266/received_events","type":"Organization","site_admin":false},"repo":{"id":32969220,"node_id":"MDEwOlJlcG9zaXRvcnkzMjk2OTIyMA==","name":"Arduino","full_name":"esp8266/Arduino","owner":{"login":"esp8266","id":8943775,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg5NDM3NzU=","avatar_url":"https://avatars1.githubusercontent.com/u/8943775?v=4","gravatar_id":"","url":"https://api.github.com/users/esp8266","html_url":"https://github.com/esp8266","followers_url":"https://api.github.com/users/esp8266/followers","following_url":"https://api.github.com/users/esp8266/following{/other_user}","gists_url":"https://api.github.com/users/esp8266/gists{/gist_id}","starred_url":"https://api.github.com/users/esp8266/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/esp8266/subscriptions","organizations_url":"https://api.github.com/users/esp8266/orgs","repos_url":"https://api.github.com/users/esp8266/repos","events_url":"https://api.github.com/users/esp8266/events{/privacy}","received_events_url":"https://api.github.com/users/esp8266/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/esp8266/Arduino","description":"ESP8266 core for Arduino","fork":false,"url":"https://api.github.com/repos/esp8266/Arduino","forks_url":"https://api.github.com/repos/esp8266/Arduino/forks","keys_url":"https://api.github.com/repos/esp8266/Arduino/keys{/key_id}","collaborators_url":"https://api.github.com/repos/esp8266/Arduino/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/esp8266/Arduino/teams","hooks_url":"https://api.github.com/repos/esp8266/Arduino/hooks","issue_events_url":"https://api.github.com/repos/esp8266/Arduino/issues/events{/number}","events_url":"https://api.github.com/repos/esp8266/Arduino/events","assignees_url":"https://api.github.com/repos/esp8266/Arduino/assignees{/user}","branches_url":"https://api.github.com/repos/esp8266/Arduino/branches{/branch}","tags_url":"https://api.github.com/repos/esp8266/Arduino/tags","blobs_url":"https://api.github.com/repos/esp8266/Arduino/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/esp8266/Arduino/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/esp8266/Arduino/git/refs{/sha}","trees_url":"https://api.github.com/repos/esp8266/Arduino/git/trees{/sha}","statuses_url":"https://api.github.com/repos/esp8266/Arduino/statuses/{sha}","languages_url":"https://api.github.com/repos/esp8266/Arduino/languages","stargazers_url":"https://api.github.com/repos/esp8266/Arduino/stargazers","contributors_url":"https://api.github.com/repos/esp8266/Arduino/contributors","subscribers_url":"https://api.github.com/repos/esp8266/Arduino/subscribers","subscription_url":"https://api.github.com/repos/esp8266/Arduino/subscription","commits_url":"https://api.github.com/repos/esp8266/Arduino/commits{/sha}","git_commits_url":"https://api.github.com/repos/esp8266/Arduino/git/commits{/sha}","comments_url":"https://api.github.com/repos/esp8266/Arduino/comments{/number}","issue_comment_url":"https://api.github.com/repos/esp8266/Arduino/issues/comments{/number}","contents_url":"https://api.github.com/repos/esp8266/Arduino/contents/{+path}","compare_url":"https://api.github.com/repos/esp8266/Arduino/compare/{base}...{head}","merges_url":"https://api.github.com/repos/esp8266/Arduino/merges","archive_url":"https://api.github.com/repos/esp8266/Arduino/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/esp8266/Arduino/downloads","issues_url":"https://api.github.com/repos/esp8266/Arduino/issues{/number}","pulls_url":"https://api.github.com/repos/esp8266/Arduino/pulls{/number}","milestones_url":"https://api.github.com/repos/esp8266/Arduino/milestones{/number}","notifications_url":"https://api.github.com/repos/esp8266/Arduino/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/esp8266/Arduino/labels{/name}","releases_url":"https://api.github.com/repos/esp8266/Arduino/releases{/id}","deployments_url":"https://api.github.com/repos/esp8266/Arduino/deployments","created_at":"2015-03-27T05:22:06Z","updated_at":"2018-07-24T00:58:21Z","pushed_at":"2018-07-23T20:32:11Z","git_url":"git://github.com/esp8266/Arduino.git","ssh_url":"git@github.com:esp8266/Arduino.git","clone_url":"https://github.com/esp8266/Arduino.git","svn_url":"https://github.com/esp8266/Arduino","homepage":"","size":47414,"stargazers_count":7663,"watchers_count":7663,"language":"C","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":4987,"mirror_url":null,"archived":false,"open_issues_count":598,"license":{"key":"lgpl-2.1","name":"GNU Lesser General Public License v2.1","spdx_id":"LGPL-2.1","url":"https://api.github.com/licenses/lgpl-2.1","node_id":"MDc6TGljZW5zZTEx"},"forks":4987,"open_issues":598,"watchers":7663,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/esp8266/Arduino/pulls/4718"},"html":{"href":"https://github.com/esp8266/Arduino/pull/4718"},"issue":{"href":"https://api.github.com/repos/esp8266/Arduino/issues/4718"},"comments":{"href":"https://api.github.com/repos/esp8266/Arduino/issues/4718/comments"},"review_comments":{"href":"https://api.github.com/repos/esp8266/Arduino/pulls/4718/comments"},"review_comment":{"href":"https://api.github.com/repos/esp8266/Arduino/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/esp8266/Arduino/pulls/4718/commits"},"statuses":{"href":"https://api.github.com/repos/esp8266/Arduino/statuses/7f853a5e0ab5eab0af89c5399fe6c115eede86e2"}},"author_association":"NONE"}}
{"actor":{"display_login":"devyte"}}