{"action":"created","comment":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments/71112001","id":71112001,"diff_hunk":"@@ -0,0 +1,639 @@\n+/*\n+ * Copyright (C) 2016 TriaGnoSys GmbH\n+ *\n+ * This file is subject to the terms and conditions of the GNU Lesser\n+ * General Public License v2.1. See the file LICENSE in the top level\n+ * directory for more details.\n+ */\n+\n+/**\n+ * @ingroup  drivers_pn532\n+ *\n+ * @{\n+ * @file\n+ * @brief   PN532 driver\n+ *\n+ * @author  Víctor Ariño <victor.arino@triagnosys.com>\n+ * @}\n+ */\n+\n+#include <stdio.h>\n+#include <string.h>\n+\n+#include \"xtimer.h\"\n+#include \"mutex.h\"\n+#include \"pn532.h\"\n+#include \"periph/gpio.h\"\n+#include \"periph/i2c.h\"\n+\n+#define ENABLE_DEBUG    (0)\n+#include \"debug.h\"\n+\n+#define PN532_I2C_ADDRESS             (0x24)\n+\n+/* Commands */\n+#define CMD_FIRMWARE_VERSION          (0x02)\n+#define CMD_READ_REG                  (0x06)\n+#define CMD_WRITE_REG                 (0x08)\n+#define CMD_READ_GPIO                 (0x0c)\n+#define CMD_WRITE_GPIO                (0x0E)\n+#define CMD_SAM_CONFIG                (0x14)\n+#define CMD_RF_CONFIG                 (0x32)\n+#define CMD_DATA_EXCHANGE             (0x40)\n+#define CMD_DESELECT                  (0x44)\n+#define CMD_LIST_PASSIVE              (0x4a)\n+#define CMD_RELEASE                   (0x52)\n+\n+/* Mifare specific commands */\n+#define MIFARE_CMD_READ               (0x30)\n+#define MIFARE_CMD_WRITE              (0xA0)\n+\n+/* RF register settings */\n+#define RF_CONFIG_MAX_RETRIES         (0x05)\n+\n+/* Buffer operations */\n+#define BUFF_CMD_START                (6)\n+#define BUFF_DATA_START               (BUFF_CMD_START + 1)\n+#define RAPDU_DATA_BEGIN              (1)\n+#define RAPDU_MAX_DATA_LEN            (PN532_BUFFER_LEN - BUFF_DATA_START - 5)\n+#define CAPDU_MAX_DATA_LEN            (PN532_BUFFER_LEN - BUFF_DATA_START - 1)\n+\n+/* Length for passive listings */\n+#define LIST_PASSIVE_LEN_14443(num)   (num * 20)\n+\n+#if ENABLE_DEBUG\n+#define PRINTBUFF printbuff\n+static void printbuff(char *buff, unsigned len)\n+{\n+    while (len) {\n+        len--;\n+        printf(\"%02x \", *buff++);\n+    }\n+    printf(\"\\n\");\n+}\n+#else\n+#define PRINTBUFF(...)\n+#endif\n+\n+static void _nfc_event(void *dev)\n+{\n+    mutex_unlock(&((pn532_t *)dev)->trap);\n+}\n+\n+void pn532_reset(pn532_t *dev)\n+{\n+    DEBUG(\"pn532: reset\\n\");\n+    gpio_clear(dev->conf->reset);\n+    xtimer_usleep(400000);\n+    gpio_set(dev->conf->reset);\n+    xtimer_usleep(10000);\n+}\n+\n+int pn532_init(pn532_t *dev, const pn532_params_t *params)\n+{\n+    int ret;\n+\n+    dev->conf = params;\n+\n+    gpio_init_int(dev->conf->irq, GPIO_IN_PU, GPIO_FALLING,\n+                  _nfc_event, (void *)dev);\n+\n+    gpio_init(dev->conf->reset, GPIO_OUT);\n+    gpio_set(dev->conf->reset);\n+\n+    ret = i2c_init_master(dev->conf->i2c, I2C_SPEED_NORMAL);\n+    if (ret == 0) {\n+        pn532_reset(dev);\n+    }\n+\n+    mutex_init(&dev->trap);\n+    mutex_lock(&dev->trap);\n+\n+    return ret;\n+}\n+\n+static unsigned char chksum(char *b, unsigned len)\n+{\n+    unsigned char c = 0x00;\n+\n+    while (len--) {\n+        c -= *b++;\n+    }\n+    return c;\n+}\n+\n+static int _write(pn532_t *dev, char *buff, unsigned len)\n+{\n+    int ret;\n+\n+    i2c_acquire(dev->conf->i2c);\n+    DEBUG(\"pn532: -> \");\n+    PRINTBUFF(buff, len);\n+    ret = i2c_write_bytes(dev->conf->i2c, PN532_I2C_ADDRESS, buff, len);\n+    i2c_release(dev->conf->i2c);\n+    return ret;\n+}\n+\n+static int _read(pn532_t *dev, char *buff, unsigned len)\n+{\n+    /* len, +1 for 0x01 after read is accepted */\n+    int ret;\n+\n+    i2c_acquire(dev->conf->i2c);\n+    ret = i2c_read_bytes(dev->conf->i2c, PN532_I2C_ADDRESS, buff, len + 1);\n+    i2c_release(dev->conf->i2c);\n+\n+    DEBUG(\"pn532: <- \");\n+    PRINTBUFF(buff, r);\n+    return ret;\n+}\n+\n+static int send_cmd(pn532_t *dev, char *buff, unsigned len)\n+{\n+/*\n+ * PN532 information frame format\n+ *\n+ * 0  1  2  3  4  5  6            M\n+ * +--+--+--+--+--+--+--+--+---+--+--+--+\n+ * |00|00|FF|LP|LC|FI|D0|D1|...|Dn|CS|00|\n+ * +--+--+--+--+--+--+--+--+---+--+--+--+\n+ * 00: 0x00\n+ * FF: 0xFF\n+ * LP: packet length (including FI)\n+ * LC: packet length checksum [LEN + LCS] = 0x00\n+ * FI: frame identifier (D4: host -> controller, D5: controller -> host)\n+ * Dx: data\n+ * CS: checksum [FI+D0+D1+...+Dn+CS] = 0x00\n+ */\n+    unsigned pos, checksum;\n+\n+    buff[0] = 0x00;\n+    buff[1] = 0x00;\n+    buff[2] = 0xFF;\n+\n+    len += 1;\n+    if (len < 0xff) {\n+        buff[3] = (char)len;\n+        buff[4] = 0x00 - buff[3];\n+        pos = 5;\n+\n+    }\n+    else {\n+        buff[3] = 0xff;\n+        buff[4] = 0xff;\n+        buff[5] = (len >> 8) & 0xff;\n+        buff[6] = (len) & 0xff;\n+        buff[7] = 0x00 - buff[5] - buff[6];\n+        pos = 8;\n+    }\n+\n+    buff[pos] = 0xD4;\n+    checksum = chksum(&buff[pos], len);\n+\n+    len += pos;\n+    buff[len++] = checksum;\n+    buff[len++] = 0x00;\n+\n+    return _write(dev, buff, len);\n+}\n+\n+static void wait_ready(pn532_t *dev)\n+{\n+    mutex_lock(&dev->trap);\n+}\n+\n+/* Returns >0 payload len (or <0 received len but not as expected */","path":"drivers/pn532/pn532.c","position":205,"original_position":205,"commit_id":"a239ababa18201cd6ef28ef4209667aadb1543bd","original_commit_id":"a239ababa18201cd6ef28ef4209667aadb1543bd","user":{"login":"BytesGalore","id":3903215,"avatar_url":"https://avatars.githubusercontent.com/u/3903215?v=3","gravatar_id":"","url":"https://api.github.com/users/BytesGalore","html_url":"https://github.com/BytesGalore","followers_url":"https://api.github.com/users/BytesGalore/followers","following_url":"https://api.github.com/users/BytesGalore/following{/other_user}","gists_url":"https://api.github.com/users/BytesGalore/gists{/gist_id}","starred_url":"https://api.github.com/users/BytesGalore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BytesGalore/subscriptions","organizations_url":"https://api.github.com/users/BytesGalore/orgs","repos_url":"https://api.github.com/users/BytesGalore/repos","events_url":"https://api.github.com/users/BytesGalore/events{/privacy}","received_events_url":"https://api.github.com/users/BytesGalore/received_events","type":"User","site_admin":false},"body":"`)`","created_at":"2016-07-18T08:18:04Z","updated_at":"2016-07-18T08:18:04Z","html_url":"https://github.com/RIOT-OS/RIOT/pull/5573#discussion_r71112001","pull_request_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573","_links":{"self":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments/71112001"},"html":{"href":"https://github.com/RIOT-OS/RIOT/pull/5573#discussion_r71112001"},"pull_request":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573"}}},"pull_request":{"url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573","id":75277662,"html_url":"https://github.com/RIOT-OS/RIOT/pull/5573","diff_url":"https://github.com/RIOT-OS/RIOT/pull/5573.diff","patch_url":"https://github.com/RIOT-OS/RIOT/pull/5573.patch","issue_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5573","number":5573,"state":"open","locked":false,"title":"Implementation of PN532 NFC reader","user":{"login":"lebrush","id":1437538,"avatar_url":"https://avatars.githubusercontent.com/u/1437538?v=3","gravatar_id":"","url":"https://api.github.com/users/lebrush","html_url":"https://github.com/lebrush","followers_url":"https://api.github.com/users/lebrush/followers","following_url":"https://api.github.com/users/lebrush/following{/other_user}","gists_url":"https://api.github.com/users/lebrush/gists{/gist_id}","starred_url":"https://api.github.com/users/lebrush/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lebrush/subscriptions","organizations_url":"https://api.github.com/users/lebrush/orgs","repos_url":"https://api.github.com/users/lebrush/repos","events_url":"https://api.github.com/users/lebrush/events{/privacy}","received_events_url":"https://api.github.com/users/lebrush/received_events","type":"User","site_admin":false},"body":"This is a driver for the PN532 based on i2c we have been using for a while. The SPI protocol is very similar, making the driver work with both should not be difficult (mostly replacing the `_write` and `_read` methods). \r\n\r\nThe driver has been adapted to the \"new\" gpio API and to be able to handle multiple PN532 devices. I can't test these because I don't have the PN532 anymore...  but they are small changes and should simply work...right? :-)\r\n\r\nRelated: #2692","created_at":"2016-06-27T09:07:20Z","updated_at":"2016-07-18T08:18:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7b37f935f6d455911e6893a8709c7a24c073d607","assignee":{"login":"PeterKietzmann","id":7765855,"avatar_url":"https://avatars.githubusercontent.com/u/7765855?v=3","gravatar_id":"","url":"https://api.github.com/users/PeterKietzmann","html_url":"https://github.com/PeterKietzmann","followers_url":"https://api.github.com/users/PeterKietzmann/followers","following_url":"https://api.github.com/users/PeterKietzmann/following{/other_user}","gists_url":"https://api.github.com/users/PeterKietzmann/gists{/gist_id}","starred_url":"https://api.github.com/users/PeterKietzmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeterKietzmann/subscriptions","organizations_url":"https://api.github.com/users/PeterKietzmann/orgs","repos_url":"https://api.github.com/users/PeterKietzmann/repos","events_url":"https://api.github.com/users/PeterKietzmann/events{/privacy}","received_events_url":"https://api.github.com/users/PeterKietzmann/received_events","type":"User","site_admin":false},"assignees":[{"login":"PeterKietzmann","id":7765855,"avatar_url":"https://avatars.githubusercontent.com/u/7765855?v=3","gravatar_id":"","url":"https://api.github.com/users/PeterKietzmann","html_url":"https://github.com/PeterKietzmann","followers_url":"https://api.github.com/users/PeterKietzmann/followers","following_url":"https://api.github.com/users/PeterKietzmann/following{/other_user}","gists_url":"https://api.github.com/users/PeterKietzmann/gists{/gist_id}","starred_url":"https://api.github.com/users/PeterKietzmann/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PeterKietzmann/subscriptions","organizations_url":"https://api.github.com/users/PeterKietzmann/orgs","repos_url":"https://api.github.com/users/PeterKietzmann/repos","events_url":"https://api.github.com/users/PeterKietzmann/events{/privacy}","received_events_url":"https://api.github.com/users/PeterKietzmann/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573/commits","review_comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573/comments","review_comment_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments{/number}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5573/comments","statuses_url":"https://api.github.com/repos/RIOT-OS/RIOT/statuses/a239ababa18201cd6ef28ef4209667aadb1543bd","head":{"label":"lebrush:pn532","ref":"pn532","sha":"a239ababa18201cd6ef28ef4209667aadb1543bd","user":{"login":"lebrush","id":1437538,"avatar_url":"https://avatars.githubusercontent.com/u/1437538?v=3","gravatar_id":"","url":"https://api.github.com/users/lebrush","html_url":"https://github.com/lebrush","followers_url":"https://api.github.com/users/lebrush/followers","following_url":"https://api.github.com/users/lebrush/following{/other_user}","gists_url":"https://api.github.com/users/lebrush/gists{/gist_id}","starred_url":"https://api.github.com/users/lebrush/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lebrush/subscriptions","organizations_url":"https://api.github.com/users/lebrush/orgs","repos_url":"https://api.github.com/users/lebrush/repos","events_url":"https://api.github.com/users/lebrush/events{/privacy}","received_events_url":"https://api.github.com/users/lebrush/received_events","type":"User","site_admin":false},"repo":{"id":26221916,"name":"RIOT","full_name":"lebrush/RIOT","owner":{"login":"lebrush","id":1437538,"avatar_url":"https://avatars.githubusercontent.com/u/1437538?v=3","gravatar_id":"","url":"https://api.github.com/users/lebrush","html_url":"https://github.com/lebrush","followers_url":"https://api.github.com/users/lebrush/followers","following_url":"https://api.github.com/users/lebrush/following{/other_user}","gists_url":"https://api.github.com/users/lebrush/gists{/gist_id}","starred_url":"https://api.github.com/users/lebrush/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lebrush/subscriptions","organizations_url":"https://api.github.com/users/lebrush/orgs","repos_url":"https://api.github.com/users/lebrush/repos","events_url":"https://api.github.com/users/lebrush/events{/privacy}","received_events_url":"https://api.github.com/users/lebrush/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/lebrush/RIOT","description":"RIOT -  The friendly OS for IoT","fork":true,"url":"https://api.github.com/repos/lebrush/RIOT","forks_url":"https://api.github.com/repos/lebrush/RIOT/forks","keys_url":"https://api.github.com/repos/lebrush/RIOT/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lebrush/RIOT/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lebrush/RIOT/teams","hooks_url":"https://api.github.com/repos/lebrush/RIOT/hooks","issue_events_url":"https://api.github.com/repos/lebrush/RIOT/issues/events{/number}","events_url":"https://api.github.com/repos/lebrush/RIOT/events","assignees_url":"https://api.github.com/repos/lebrush/RIOT/assignees{/user}","branches_url":"https://api.github.com/repos/lebrush/RIOT/branches{/branch}","tags_url":"https://api.github.com/repos/lebrush/RIOT/tags","blobs_url":"https://api.github.com/repos/lebrush/RIOT/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lebrush/RIOT/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lebrush/RIOT/git/refs{/sha}","trees_url":"https://api.github.com/repos/lebrush/RIOT/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lebrush/RIOT/statuses/{sha}","languages_url":"https://api.github.com/repos/lebrush/RIOT/languages","stargazers_url":"https://api.github.com/repos/lebrush/RIOT/stargazers","contributors_url":"https://api.github.com/repos/lebrush/RIOT/contributors","subscribers_url":"https://api.github.com/repos/lebrush/RIOT/subscribers","subscription_url":"https://api.github.com/repos/lebrush/RIOT/subscription","commits_url":"https://api.github.com/repos/lebrush/RIOT/commits{/sha}","git_commits_url":"https://api.github.com/repos/lebrush/RIOT/git/commits{/sha}","comments_url":"https://api.github.com/repos/lebrush/RIOT/comments{/number}","issue_comment_url":"https://api.github.com/repos/lebrush/RIOT/issues/comments{/number}","contents_url":"https://api.github.com/repos/lebrush/RIOT/contents/{+path}","compare_url":"https://api.github.com/repos/lebrush/RIOT/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lebrush/RIOT/merges","archive_url":"https://api.github.com/repos/lebrush/RIOT/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lebrush/RIOT/downloads","issues_url":"https://api.github.com/repos/lebrush/RIOT/issues{/number}","pulls_url":"https://api.github.com/repos/lebrush/RIOT/pulls{/number}","milestones_url":"https://api.github.com/repos/lebrush/RIOT/milestones{/number}","notifications_url":"https://api.github.com/repos/lebrush/RIOT/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lebrush/RIOT/labels{/name}","releases_url":"https://api.github.com/repos/lebrush/RIOT/releases{/id}","deployments_url":"https://api.github.com/repos/lebrush/RIOT/deployments","created_at":"2014-11-05T13:59:35Z","updated_at":"2015-12-01T15:18:52Z","pushed_at":"2016-07-18T07:01:08Z","git_url":"git://github.com/lebrush/RIOT.git","ssh_url":"git@github.com:lebrush/RIOT.git","clone_url":"https://github.com/lebrush/RIOT.git","svn_url":"https://github.com/lebrush/RIOT","homepage":"https://github.com/RIOT-OS/RIOT/wiki","size":30656,"stargazers_count":0,"watchers_count":0,"language":"C","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"RIOT-OS:master","ref":"master","sha":"4d7664c357c754496e92378dd74ad4aba45096c4","user":{"login":"RIOT-OS","id":3079480,"avatar_url":"https://avatars.githubusercontent.com/u/3079480?v=3","gravatar_id":"","url":"https://api.github.com/users/RIOT-OS","html_url":"https://github.com/RIOT-OS","followers_url":"https://api.github.com/users/RIOT-OS/followers","following_url":"https://api.github.com/users/RIOT-OS/following{/other_user}","gists_url":"https://api.github.com/users/RIOT-OS/gists{/gist_id}","starred_url":"https://api.github.com/users/RIOT-OS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIOT-OS/subscriptions","organizations_url":"https://api.github.com/users/RIOT-OS/orgs","repos_url":"https://api.github.com/users/RIOT-OS/repos","events_url":"https://api.github.com/users/RIOT-OS/events{/privacy}","received_events_url":"https://api.github.com/users/RIOT-OS/received_events","type":"Organization","site_admin":false},"repo":{"id":7370241,"name":"RIOT","full_name":"RIOT-OS/RIOT","owner":{"login":"RIOT-OS","id":3079480,"avatar_url":"https://avatars.githubusercontent.com/u/3079480?v=3","gravatar_id":"","url":"https://api.github.com/users/RIOT-OS","html_url":"https://github.com/RIOT-OS","followers_url":"https://api.github.com/users/RIOT-OS/followers","following_url":"https://api.github.com/users/RIOT-OS/following{/other_user}","gists_url":"https://api.github.com/users/RIOT-OS/gists{/gist_id}","starred_url":"https://api.github.com/users/RIOT-OS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RIOT-OS/subscriptions","organizations_url":"https://api.github.com/users/RIOT-OS/orgs","repos_url":"https://api.github.com/users/RIOT-OS/repos","events_url":"https://api.github.com/users/RIOT-OS/events{/privacy}","received_events_url":"https://api.github.com/users/RIOT-OS/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/RIOT-OS/RIOT","description":"RIOT -  The friendly OS for IoT","fork":false,"url":"https://api.github.com/repos/RIOT-OS/RIOT","forks_url":"https://api.github.com/repos/RIOT-OS/RIOT/forks","keys_url":"https://api.github.com/repos/RIOT-OS/RIOT/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RIOT-OS/RIOT/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RIOT-OS/RIOT/teams","hooks_url":"https://api.github.com/repos/RIOT-OS/RIOT/hooks","issue_events_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/events{/number}","events_url":"https://api.github.com/repos/RIOT-OS/RIOT/events","assignees_url":"https://api.github.com/repos/RIOT-OS/RIOT/assignees{/user}","branches_url":"https://api.github.com/repos/RIOT-OS/RIOT/branches{/branch}","tags_url":"https://api.github.com/repos/RIOT-OS/RIOT/tags","blobs_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/refs{/sha}","trees_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RIOT-OS/RIOT/statuses/{sha}","languages_url":"https://api.github.com/repos/RIOT-OS/RIOT/languages","stargazers_url":"https://api.github.com/repos/RIOT-OS/RIOT/stargazers","contributors_url":"https://api.github.com/repos/RIOT-OS/RIOT/contributors","subscribers_url":"https://api.github.com/repos/RIOT-OS/RIOT/subscribers","subscription_url":"https://api.github.com/repos/RIOT-OS/RIOT/subscription","commits_url":"https://api.github.com/repos/RIOT-OS/RIOT/commits{/sha}","git_commits_url":"https://api.github.com/repos/RIOT-OS/RIOT/git/commits{/sha}","comments_url":"https://api.github.com/repos/RIOT-OS/RIOT/comments{/number}","issue_comment_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues/comments{/number}","contents_url":"https://api.github.com/repos/RIOT-OS/RIOT/contents/{+path}","compare_url":"https://api.github.com/repos/RIOT-OS/RIOT/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RIOT-OS/RIOT/merges","archive_url":"https://api.github.com/repos/RIOT-OS/RIOT/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RIOT-OS/RIOT/downloads","issues_url":"https://api.github.com/repos/RIOT-OS/RIOT/issues{/number}","pulls_url":"https://api.github.com/repos/RIOT-OS/RIOT/pulls{/number}","milestones_url":"https://api.github.com/repos/RIOT-OS/RIOT/milestones{/number}","notifications_url":"https://api.github.com/repos/RIOT-OS/RIOT/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RIOT-OS/RIOT/labels{/name}","releases_url":"https://api.github.com/repos/RIOT-OS/RIOT/releases{/id}","deployments_url":"https://api.github.com/repos/RIOT-OS/RIOT/deployments","created_at":"2012-12-29T20:38:40Z","updated_at":"2016-07-17T14:01:42Z","pushed_at":"2016-07-18T07:22:34Z","git_url":"git://github.com/RIOT-OS/RIOT.git","ssh_url":"git@github.com:RIOT-OS/RIOT.git","clone_url":"https://github.com/RIOT-OS/RIOT.git","svn_url":"https://github.com/RIOT-OS/RIOT","homepage":"https://github.com/RIOT-OS/RIOT/wiki","size":95444,"stargazers_count":829,"watchers_count":829,"language":"C","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":583,"mirror_url":null,"open_issues_count":503,"forks":583,"open_issues":503,"watchers":829,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573"},"html":{"href":"https://github.com/RIOT-OS/RIOT/pull/5573"},"issue":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5573"},"comments":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/issues/5573/comments"},"review_comments":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573/comments"},"review_comment":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/pulls/5573/commits"},"statuses":{"href":"https://api.github.com/repos/RIOT-OS/RIOT/statuses/a239ababa18201cd6ef28ef4209667aadb1543bd"}}}}
{"actor":{"display_login":"BytesGalore"}}