{"action":"created","comment":{"url":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/comments/236020257","pull_request_review_id":178026590,"id":236020257,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNjAyMDI1Nw==","diff_hunk":"@@ -0,0 +1,469 @@\n+/* mbed Microcontroller Library\n+ * Copyright (c) 2018 ARM Limited\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *     http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+#include \"ble/gap/AdvertisingDataBuilder.h\"\n+\n+namespace ble {\n+\n+AdvertisingDataBuilder::AdvertisingDataBuilder(mbed::Span<uint8_t> buffer) :\n+    _buffer(buffer),\n+    _payload_length(0) {\n+}\n+\n+AdvertisingDataBuilder::AdvertisingDataBuilder(uint8_t* buffer, size_t buffer_size) :\n+    _buffer(buffer, buffer_size),\n+    _payload_length(0) {\n+}\n+\n+mbed::Span<const uint8_t> AdvertisingDataBuilder::getAdvertisingData() const {\n+    return _buffer.first(_payload_length);\n+}\n+\n+ble_error_t AdvertisingDataBuilder::addData(\n+    adv_data_type_t advDataType,\n+    mbed::Span<const uint8_t> fieldData\n+) {\n+    if (findField(advDataType)) {\n+        return BLE_ERROR_OPERATION_NOT_PERMITTED;\n+    } else {\n+        return addField(advDataType, fieldData);\n+    }\n+}\n+\n+ble_error_t AdvertisingDataBuilder::replaceData(\n+    adv_data_type_t advDataType,\n+    mbed::Span<const uint8_t> fieldData\n+) {\n+    uint8_t* field = findField(advDataType);\n+\n+    if (field) {\n+        return replaceField(advDataType, fieldData, field);\n+    } else {\n+        return BLE_ERROR_NOT_FOUND;\n+    }\n+}\n+\n+ble_error_t AdvertisingDataBuilder::appendData(\n+    adv_data_type_t advDataType,\n+    mbed::Span<const uint8_t> fieldData\n+) {\n+    uint8_t* field = findField(advDataType);\n+\n+    if (field) {\n+        return appendToField(fieldData, field);\n+    } else {\n+        return BLE_ERROR_NOT_FOUND;\n+    }\n+}\n+\n+ble_error_t AdvertisingDataBuilder::removeData(\n+    adv_data_type_t advDataType\n+) {\n+    uint8_t* field = findField(advDataType);\n+\n+    if (field) {\n+        return removeField(field);\n+    } else {\n+        return BLE_ERROR_NOT_FOUND;\n+    }\n+}\n+\n+ble_error_t AdvertisingDataBuilder::addOrReplaceData(\n+    adv_data_type_t advDataType,\n+    mbed::Span<const uint8_t> fieldData\n+) {\n+    uint8_t* field = findField(advDataType);\n+\n+    if (field) {\n+        return replaceField(advDataType, fieldData, field);\n+    } else {\n+        return addField(advDataType, fieldData);\n+    }\n+}\n+\n+ble_error_t AdvertisingDataBuilder::addOrAppendData(\n+    adv_data_type_t advDataType,\n+    mbed::Span<const uint8_t> fieldData\n+) {\n+    uint8_t* field = findField(advDataType);\n+\n+    if (field) {\n+        return appendToField(fieldData, field);\n+    } else {\n+        return addField(advDataType, fieldData);\n+    }\n+}\n+\n+void AdvertisingDataBuilder::clear() {\n+    memset(_buffer.data(), 0, _buffer.size());\n+    _payload_length = 0;\n+}\n+\n+ble_error_t AdvertisingDataBuilder::setAppearance(\n+    adv_data_appearance_t appearance\n+) {\n+    uint8_t appearence_byte = appearance.value();\n+    mbed::Span<const uint8_t> appearance_span((const uint8_t*) &appearence_byte, 2);\n+    return addOrReplaceData(adv_data_type_t::APPEARANCE, appearance_span);\n+}\n+\n+ble_error_t AdvertisingDataBuilder::setFlags(\n+    adv_data_flags_t flags\n+) {\n+    uint8_t flags_byte = flags.value();\n+    mbed::Span<const uint8_t> flags_span((const uint8_t*) &flags_byte, 1);\n+    return addOrReplaceData(adv_data_type_t::FLAGS, flags_span);\n+}\n+\n+ble_error_t AdvertisingDataBuilder::setTxPowerAdvertised(\n+    advertising_power_t txPower\n+) {\n+    mbed::Span<const uint8_t> power_span((const uint8_t*) &txPower, 1);\n+    return addOrReplaceData(adv_data_type_t::TX_POWER_LEVEL, power_span);\n+}\n+\n+ble_error_t AdvertisingDataBuilder::setName(\n+    const char* name,\n+    bool complete\n+) {\n+    mbed::Span<const uint8_t> power_span((const uint8_t*)name, strlen(name));\n+\n+    if (complete) {\n+        return addOrReplaceData(adv_data_type_t::COMPLETE_LOCAL_NAME, power_span);\n+    } else {\n+        return addOrReplaceData(adv_data_type_t::SHORTENED_LOCAL_NAME, power_span);\n+    }\n+}\n+\n+ble_error_t AdvertisingDataBuilder::setManufacturerSpecificData(\n+    mbed::Span<const uint8_t> data\n+) {\n+    if (data.size() < 2) {\n+        return BLE_ERROR_INVALID_PARAM;\n+    }\n+\n+    return addOrReplaceData(adv_data_type_t::MANUFACTURER_SPECIFIC_DATA, data);\n+}\n+\n+ble_error_t AdvertisingDataBuilder::setAdvertisingInterval(\n+    adv_interval_t interval\n+) {\n+    if (interval.value() > 0xFFFF) {\n+        return BLE_ERROR_INVALID_PARAM;\n+    }\n+\n+    return addOrReplaceData(\n+        adv_data_type_t::ADVERTISING_INTERVAL,\n+        mbed::make_Span((const uint8_t*)interval.storage(), 2)\n+    );\n+}\n+\n+ble_error_t AdvertisingDataBuilder::setConnectionIntervalPreference(\n+    conn_interval_t min,\n+    conn_interval_t max\n+) {\n+    uint32_t interval =  max.value();\n+    interval = interval << 16;\n+    interval |= min.value();\n+    return addOrReplaceData(\n+        adv_data_type_t::SLAVE_CONNECTION_INTERVAL_RANGE,\n+        mbed::make_Span((const uint8_t*)&interval, 4)","path":"features/FEATURE_BLE/source/gap/AdvertisingDataBuilder.cpp","position":null,"original_position":183,"commit_id":"dfaea0cbc473fdbf89357e3d70845d2adac98956","original_commit_id":"53ab1e99b2077228fc926350a85bedef29ca3cca","user":{"login":"pan-","id":409941,"node_id":"MDQ6VXNlcjQwOTk0MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/409941?v=4","gravatar_id":"","url":"https://api.github.com/users/pan-","html_url":"https://github.com/pan-","followers_url":"https://api.github.com/users/pan-/followers","following_url":"https://api.github.com/users/pan-/following{/other_user}","gists_url":"https://api.github.com/users/pan-/gists{/gist_id}","starred_url":"https://api.github.com/users/pan-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pan-/subscriptions","organizations_url":"https://api.github.com/users/pan-/orgs","repos_url":"https://api.github.com/users/pan-/repos","events_url":"https://api.github.com/users/pan-/events{/privacy}","received_events_url":"https://api.github.com/users/pan-/received_events","type":"User","site_admin":false},"body":"Fixed.","created_at":"2018-11-23T21:30:56Z","updated_at":"2018-11-23T21:30:57Z","html_url":"https://github.com/ARMmbed/mbed-os/pull/8738#discussion_r236020257","pull_request_url":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/comments/236020257"},"html":{"href":"https://github.com/ARMmbed/mbed-os/pull/8738#discussion_r236020257"},"pull_request":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738"}},"in_reply_to_id":235925203},"pull_request":{"url":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738","id":230800213,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMwODAwMjEz","html_url":"https://github.com/ARMmbed/mbed-os/pull/8738","diff_url":"https://github.com/ARMmbed/mbed-os/pull/8738.diff","patch_url":"https://github.com/ARMmbed/mbed-os/pull/8738.patch","issue_url":"https://api.github.com/repos/ARMmbed/mbed-os/issues/8738","number":8738,"state":"open","locked":false,"title":"Ble extended advertising","user":{"login":"pan-","id":409941,"node_id":"MDQ6VXNlcjQwOTk0MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/409941?v=4","gravatar_id":"","url":"https://api.github.com/users/pan-","html_url":"https://github.com/pan-","followers_url":"https://api.github.com/users/pan-/followers","following_url":"https://api.github.com/users/pan-/following{/other_user}","gists_url":"https://api.github.com/users/pan-/gists{/gist_id}","starred_url":"https://api.github.com/users/pan-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pan-/subscriptions","organizations_url":"https://api.github.com/users/pan-/orgs","repos_url":"https://api.github.com/users/pan-/repos","events_url":"https://api.github.com/users/pan-/events{/privacy}","received_events_url":"https://api.github.com/users/pan-/received_events","type":"User","site_admin":false},"body":"### Description\r\n\r\nThis PR introduce extended and periodic advertising management in mbed-os BLE API. These two features have been introduced in Bluetooth 5 and greatly improve advertisement capabilities of compatible devices. \r\n\r\n#### Extended Advertising \r\n\r\nWith extended advertising, devices are not limited to a single payload advertised and a single scan response. Devices can manage multiple concurrent advertisement data called advertising sets as they contain their own data and operate according to their own parameters. \r\n\r\n Other noticeable improvement of extended advertising are: \r\n* Advertising on Coded PHY for long range advertisement on the main channel. All phys are available to the secondary channel. \r\n* Increased payload size: from 31 byte to 251 in a single packet and up to 1560 byte when fragmentation is used. \r\n* Control of TX power.\r\n\r\n#### Periodic Advertising \r\n\r\nPeriodic advertising is a new kind of advertising that allows a device to stream data at a fixed rate. Peers can sync on the data stream and listen to it. Internally it is very similar to a unidirectional connection. \r\n\r\n#### Integration \r\n\r\nOn many aspects it wasn't possible to add this new feature on the top of the previous GAP advertisement API. Defects such as (incorrect) global address type, global filter policies, state bookkeeping and global scanning/advertisement parameters mutable in a non atomic way would have make it memory heavy and not very usable as it would have been full of corner cases (it already is!) due to the global state held in it if we wanted to preserve backward compatibility.  \r\n\r\nThe new API introduced is basically a version two of the GAP Advertisement/Scanning/Connection API. It is **not** compatible with the old subsystem. You have to use one or the other but it is forbidden to use both concurrently. That way we preserve complete backward compatibility and prepare a clean ground to build upcoming Bluetooth features.\r\n\r\n#### TODO\r\n\r\n- [ ] Review\r\n- [ ] Add deprecated notices where relevant\r\n- [ ] Improve documentation\r\n- [ ] Move deprecated code around (nice to have)\r\n\r\n\r\n### Pull request type\r\n\r\n<!-- \r\n    Required\r\n    Please add only one X to one of the following types. Do not fill multiple types (split the pull request otherwise).\r\n    Please note this is not a GitHub task list, indenting the boxes or changing the format to add a '.' or '*' in front\r\n    of them would change the meaning incorrectly. The only changes to be made are to add a description text under the\r\n    description heading and to add a 'x' to the correct box.\r\n-->\r\n    [ ] Fix\r\n    [ ] Refactor\r\n    [ ] Target update\r\n    [X] Functionality change\r\n    [ ] Docs update\r\n    [ ] Test update\r\n    [ ] Breaking change\r\n\r\n","created_at":"2018-11-14T11:24:39Z","updated_at":"2018-11-23T21:30:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"61941ebf3d9f729ac22df1b394abe74457e1b5e1","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":944537435,"node_id":"MDU6TGFiZWw5NDQ1Mzc0MzU=","url":"https://api.github.com/repos/ARMmbed/mbed-os/labels/A","name":"A","color":"efc777","default":false},{"id":1088606146,"node_id":"MDU6TGFiZWwxMDg4NjA2MTQ2","url":"https://api.github.com/repos/ARMmbed/mbed-os/labels/Priority-High","name":"Priority-High","color":"ed1e2c","default":false},{"id":144902129,"node_id":"MDU6TGFiZWwxNDQ5MDIxMjk=","url":"https://api.github.com/repos/ARMmbed/mbed-os/labels/needs:%20work","name":"needs: work","color":"fbca04","default":false},{"id":1033865428,"node_id":"MDU6TGFiZWwxMDMzODY1NDI4","url":"https://api.github.com/repos/ARMmbed/mbed-os/labels/release-version:%205.11.0-rc1","name":"release-version: 5.11.0-rc1","color":"fef2c0","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738/commits","review_comments_url":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738/comments","review_comment_url":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ARMmbed/mbed-os/issues/8738/comments","statuses_url":"https://api.github.com/repos/ARMmbed/mbed-os/statuses/dfaea0cbc473fdbf89357e3d70845d2adac98956","head":{"label":"pan-:ble-extended-advertising","ref":"ble-extended-advertising","sha":"dfaea0cbc473fdbf89357e3d70845d2adac98956","user":{"login":"pan-","id":409941,"node_id":"MDQ6VXNlcjQwOTk0MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/409941?v=4","gravatar_id":"","url":"https://api.github.com/users/pan-","html_url":"https://github.com/pan-","followers_url":"https://api.github.com/users/pan-/followers","following_url":"https://api.github.com/users/pan-/following{/other_user}","gists_url":"https://api.github.com/users/pan-/gists{/gist_id}","starred_url":"https://api.github.com/users/pan-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pan-/subscriptions","organizations_url":"https://api.github.com/users/pan-/orgs","repos_url":"https://api.github.com/users/pan-/repos","events_url":"https://api.github.com/users/pan-/events{/privacy}","received_events_url":"https://api.github.com/users/pan-/received_events","type":"User","site_admin":false},"repo":{"id":59667574,"node_id":"MDEwOlJlcG9zaXRvcnk1OTY2NzU3NA==","name":"mbed","full_name":"pan-/mbed","private":false,"owner":{"login":"pan-","id":409941,"node_id":"MDQ6VXNlcjQwOTk0MQ==","avatar_url":"https://avatars3.githubusercontent.com/u/409941?v=4","gravatar_id":"","url":"https://api.github.com/users/pan-","html_url":"https://github.com/pan-","followers_url":"https://api.github.com/users/pan-/followers","following_url":"https://api.github.com/users/pan-/following{/other_user}","gists_url":"https://api.github.com/users/pan-/gists{/gist_id}","starred_url":"https://api.github.com/users/pan-/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pan-/subscriptions","organizations_url":"https://api.github.com/users/pan-/orgs","repos_url":"https://api.github.com/users/pan-/repos","events_url":"https://api.github.com/users/pan-/events{/privacy}","received_events_url":"https://api.github.com/users/pan-/received_events","type":"User","site_admin":false},"html_url":"https://github.com/pan-/mbed","description":"mbed libraries and tools (Classic). For mbed OS, look here: https://www.mbed.com/en/development/software/mbed-os/","fork":true,"url":"https://api.github.com/repos/pan-/mbed","forks_url":"https://api.github.com/repos/pan-/mbed/forks","keys_url":"https://api.github.com/repos/pan-/mbed/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pan-/mbed/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pan-/mbed/teams","hooks_url":"https://api.github.com/repos/pan-/mbed/hooks","issue_events_url":"https://api.github.com/repos/pan-/mbed/issues/events{/number}","events_url":"https://api.github.com/repos/pan-/mbed/events","assignees_url":"https://api.github.com/repos/pan-/mbed/assignees{/user}","branches_url":"https://api.github.com/repos/pan-/mbed/branches{/branch}","tags_url":"https://api.github.com/repos/pan-/mbed/tags","blobs_url":"https://api.github.com/repos/pan-/mbed/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pan-/mbed/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pan-/mbed/git/refs{/sha}","trees_url":"https://api.github.com/repos/pan-/mbed/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pan-/mbed/statuses/{sha}","languages_url":"https://api.github.com/repos/pan-/mbed/languages","stargazers_url":"https://api.github.com/repos/pan-/mbed/stargazers","contributors_url":"https://api.github.com/repos/pan-/mbed/contributors","subscribers_url":"https://api.github.com/repos/pan-/mbed/subscribers","subscription_url":"https://api.github.com/repos/pan-/mbed/subscription","commits_url":"https://api.github.com/repos/pan-/mbed/commits{/sha}","git_commits_url":"https://api.github.com/repos/pan-/mbed/git/commits{/sha}","comments_url":"https://api.github.com/repos/pan-/mbed/comments{/number}","issue_comment_url":"https://api.github.com/repos/pan-/mbed/issues/comments{/number}","contents_url":"https://api.github.com/repos/pan-/mbed/contents/{+path}","compare_url":"https://api.github.com/repos/pan-/mbed/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pan-/mbed/merges","archive_url":"https://api.github.com/repos/pan-/mbed/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pan-/mbed/downloads","issues_url":"https://api.github.com/repos/pan-/mbed/issues{/number}","pulls_url":"https://api.github.com/repos/pan-/mbed/pulls{/number}","milestones_url":"https://api.github.com/repos/pan-/mbed/milestones{/number}","notifications_url":"https://api.github.com/repos/pan-/mbed/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pan-/mbed/labels{/name}","releases_url":"https://api.github.com/repos/pan-/mbed/releases{/id}","deployments_url":"https://api.github.com/repos/pan-/mbed/deployments","created_at":"2016-05-25T13:56:37Z","updated_at":"2018-11-14T10:51:20Z","pushed_at":"2018-11-23T21:28:40Z","git_url":"git://github.com/pan-/mbed.git","ssh_url":"git@github.com:pan-/mbed.git","clone_url":"https://github.com/pan-/mbed.git","svn_url":"https://github.com/pan-/mbed","homepage":"","size":238891,"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":1,"mirror_url":null,"archived":false,"open_issues_count":1,"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":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"ARMmbed:master","ref":"master","sha":"70dfbbfee461a7c2a47676556425bd73ec6cffba","user":{"login":"ARMmbed","id":8916057,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg5MTYwNTc=","avatar_url":"https://avatars3.githubusercontent.com/u/8916057?v=4","gravatar_id":"","url":"https://api.github.com/users/ARMmbed","html_url":"https://github.com/ARMmbed","followers_url":"https://api.github.com/users/ARMmbed/followers","following_url":"https://api.github.com/users/ARMmbed/following{/other_user}","gists_url":"https://api.github.com/users/ARMmbed/gists{/gist_id}","starred_url":"https://api.github.com/users/ARMmbed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ARMmbed/subscriptions","organizations_url":"https://api.github.com/users/ARMmbed/orgs","repos_url":"https://api.github.com/users/ARMmbed/repos","events_url":"https://api.github.com/users/ARMmbed/events{/privacy}","received_events_url":"https://api.github.com/users/ARMmbed/received_events","type":"Organization","site_admin":false},"repo":{"id":8270972,"node_id":"MDEwOlJlcG9zaXRvcnk4MjcwOTcy","name":"mbed-os","full_name":"ARMmbed/mbed-os","private":false,"owner":{"login":"ARMmbed","id":8916057,"node_id":"MDEyOk9yZ2FuaXphdGlvbjg5MTYwNTc=","avatar_url":"https://avatars3.githubusercontent.com/u/8916057?v=4","gravatar_id":"","url":"https://api.github.com/users/ARMmbed","html_url":"https://github.com/ARMmbed","followers_url":"https://api.github.com/users/ARMmbed/followers","following_url":"https://api.github.com/users/ARMmbed/following{/other_user}","gists_url":"https://api.github.com/users/ARMmbed/gists{/gist_id}","starred_url":"https://api.github.com/users/ARMmbed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ARMmbed/subscriptions","organizations_url":"https://api.github.com/users/ARMmbed/orgs","repos_url":"https://api.github.com/users/ARMmbed/repos","events_url":"https://api.github.com/users/ARMmbed/events{/privacy}","received_events_url":"https://api.github.com/users/ARMmbed/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/ARMmbed/mbed-os","description":"Arm Mbed OS is a platform operating system designed for the internet of things","fork":false,"url":"https://api.github.com/repos/ARMmbed/mbed-os","forks_url":"https://api.github.com/repos/ARMmbed/mbed-os/forks","keys_url":"https://api.github.com/repos/ARMmbed/mbed-os/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ARMmbed/mbed-os/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ARMmbed/mbed-os/teams","hooks_url":"https://api.github.com/repos/ARMmbed/mbed-os/hooks","issue_events_url":"https://api.github.com/repos/ARMmbed/mbed-os/issues/events{/number}","events_url":"https://api.github.com/repos/ARMmbed/mbed-os/events","assignees_url":"https://api.github.com/repos/ARMmbed/mbed-os/assignees{/user}","branches_url":"https://api.github.com/repos/ARMmbed/mbed-os/branches{/branch}","tags_url":"https://api.github.com/repos/ARMmbed/mbed-os/tags","blobs_url":"https://api.github.com/repos/ARMmbed/mbed-os/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ARMmbed/mbed-os/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ARMmbed/mbed-os/git/refs{/sha}","trees_url":"https://api.github.com/repos/ARMmbed/mbed-os/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ARMmbed/mbed-os/statuses/{sha}","languages_url":"https://api.github.com/repos/ARMmbed/mbed-os/languages","stargazers_url":"https://api.github.com/repos/ARMmbed/mbed-os/stargazers","contributors_url":"https://api.github.com/repos/ARMmbed/mbed-os/contributors","subscribers_url":"https://api.github.com/repos/ARMmbed/mbed-os/subscribers","subscription_url":"https://api.github.com/repos/ARMmbed/mbed-os/subscription","commits_url":"https://api.github.com/repos/ARMmbed/mbed-os/commits{/sha}","git_commits_url":"https://api.github.com/repos/ARMmbed/mbed-os/git/commits{/sha}","comments_url":"https://api.github.com/repos/ARMmbed/mbed-os/comments{/number}","issue_comment_url":"https://api.github.com/repos/ARMmbed/mbed-os/issues/comments{/number}","contents_url":"https://api.github.com/repos/ARMmbed/mbed-os/contents/{+path}","compare_url":"https://api.github.com/repos/ARMmbed/mbed-os/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ARMmbed/mbed-os/merges","archive_url":"https://api.github.com/repos/ARMmbed/mbed-os/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ARMmbed/mbed-os/downloads","issues_url":"https://api.github.com/repos/ARMmbed/mbed-os/issues{/number}","pulls_url":"https://api.github.com/repos/ARMmbed/mbed-os/pulls{/number}","milestones_url":"https://api.github.com/repos/ARMmbed/mbed-os/milestones{/number}","notifications_url":"https://api.github.com/repos/ARMmbed/mbed-os/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ARMmbed/mbed-os/labels{/name}","releases_url":"https://api.github.com/repos/ARMmbed/mbed-os/releases{/id}","deployments_url":"https://api.github.com/repos/ARMmbed/mbed-os/deployments","created_at":"2013-02-18T15:23:11Z","updated_at":"2018-11-23T20:59:30Z","pushed_at":"2018-11-23T21:28:45Z","git_url":"git://github.com/ARMmbed/mbed-os.git","ssh_url":"git@github.com:ARMmbed/mbed-os.git","clone_url":"https://github.com/ARMmbed/mbed-os.git","svn_url":"https://github.com/ARMmbed/mbed-os","homepage":"https://mbed.com","size":244271,"stargazers_count":2072,"watchers_count":2072,"language":"C","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1688,"mirror_url":null,"archived":false,"open_issues_count":456,"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":1688,"open_issues":456,"watchers":2072,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738"},"html":{"href":"https://github.com/ARMmbed/mbed-os/pull/8738"},"issue":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/issues/8738"},"comments":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/issues/8738/comments"},"review_comments":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738/comments"},"review_comment":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/pulls/8738/commits"},"statuses":{"href":"https://api.github.com/repos/ARMmbed/mbed-os/statuses/dfaea0cbc473fdbf89357e3d70845d2adac98956"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"pan-"}}