{"action":"created","comment":{"url":"https://api.github.com/repos/gibson042/pdns/pulls/comments/217320166","pull_request_review_id":154998686,"id":217320166,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNzMyMDE2Ng==","diff_hunk":"@@ -40,35 +87,257 @@ def testTrailingAllowed(self):\n                                     dns.rdatatype.A,\n                                     '127.0.0.1')\n         response.answer.append(rrset)\n+        expectedResponse = dns.message.make_response(query)\n+        expectedResponse.set_rcode(dns.rcode.REFUSED)\n \n         raw = query.to_wire()\n         raw = raw + b'A'* 20\n-        (receivedQuery, receivedResponse) = self.sendUDPQuery(raw, response, rawQuery=True)\n-        self.assertTrue(receivedQuery)\n-        self.assertTrue(receivedResponse)\n-        receivedQuery.id = query.id\n-        self.assertEquals(query, receivedQuery)\n-        self.assertEquals(response, receivedResponse)\n-\n-        (receivedQuery, receivedResponse) = self.sendTCPQuery(raw, response, rawQuery=True)\n-        self.assertTrue(receivedQuery)\n-        self.assertTrue(receivedResponse)\n-        receivedQuery.id = query.id\n-        self.assertEquals(query, receivedQuery)\n-        self.assertEquals(response, receivedResponse)\n+\n+        for method in (\"sendUDPQuery\", \"sendTCPQuery\"):\n+            sender = getattr(self, method)\n+            # (receivedQuery, receivedResponse) = self.sendUDPQuery(raw, response, rawQuery=True)\n+            # (receivedQuery, receivedResponse) = self.sendTCPQuery(raw, response, rawQuery=True)\n+            (receivedQuery, receivedResponse) = sender(raw, response, rawQuery=True)\n+            self.assertTrue(receivedQuery)\n+            self.assertTrue(receivedResponse)\n+            receivedQuery.id = query.id\n+            self.assertEquals(receivedQuery, query)\n+            self.assertEquals(receivedResponse, expectedResponse)\n+\n+    def testTrailingCapacity(self):\n+        \"\"\"\n+        Trailing data: Fill buffer\n+\n+        \"\"\"\n+        name = 'max.trailing.tests.powerdns.com.'\n+        query = dns.message.make_query(name, 'A', 'IN')\n+        response = dns.message.make_response(query)\n+        rrset = dns.rrset.from_text(name,\n+                                    3600,\n+                                    dns.rdataclass.IN,\n+                                    dns.rdatatype.A,\n+                                    '127.0.0.1')\n+        response.answer.append(rrset)\n+        expectedResponse = dns.message.make_response(query)\n+        expectedResponse.set_rcode(dns.rcode.REFUSED)\n+\n+        for method in (\"sendUDPQuery\", \"sendTCPQuery\"):\n+            sender = getattr(self, method)\n+            # (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)\n+            # (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)\n+            (receivedQuery, receivedResponse) = sender(query, response)\n+            self.assertTrue(receivedQuery)\n+            self.assertTrue(receivedResponse)\n+            receivedQuery.id = query.id\n+            self.assertEquals(receivedQuery, query)\n+            self.assertEquals(receivedResponse, expectedResponse)\n+\n+    def testTrailingLimited(self):\n+        \"\"\"\n+        Trailing data: Reject buffer overflows\n+\n+        \"\"\"\n+        name = 'limited.trailing.tests.powerdns.com.'\n+        query = dns.message.make_query(name, 'A', 'IN')\n+        response = dns.message.make_response(query)\n+        rrset = dns.rrset.from_text(name,\n+                                    3600,\n+                                    dns.rdataclass.IN,\n+                                    dns.rdatatype.A,\n+                                    '127.0.0.1')\n+        response.answer.append(rrset)\n+        expectedResponse = dns.message.make_response(query)\n+        expectedResponse.set_rcode(dns.rcode.SERVFAIL)\n+\n+        for method in (\"sendUDPQuery\", \"sendTCPQuery\"):\n+            sender = getattr(self, method)\n+            # (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)\n+            # (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)\n+            (_, receivedResponse) = sender(query, response)\n+            self.assertTrue(receivedResponse)\n+            self.assertEquals(receivedResponse, expectedResponse)\n+\n+    def testTrailingAdded(self):\n+        \"\"\"\n+        Trailing data: Add\n+\n+        \"\"\"\n+        name = 'added.trailing.tests.powerdns.com.'\n+        query = dns.message.make_query(name, 'A', 'IN')\n+        response = dns.message.make_response(query)\n+        rrset = dns.rrset.from_text(name,\n+                                    3600,\n+                                    dns.rdataclass.IN,\n+                                    dns.rdatatype.A,\n+                                    '127.0.0.1')\n+        response.answer.append(rrset)\n+        expectedResponse = dns.message.make_response(query)\n+        expectedResponse.set_rcode(dns.rcode.REFUSED)\n+\n+        for method in (\"sendUDPQuery\", \"sendTCPQuery\"):\n+            sender = getattr(self, method)\n+            # (receivedQuery, receivedResponse) = self.sendUDPQuery(query, response)\n+            # (receivedQuery, receivedResponse) = self.sendTCPQuery(query, response)\n+            (receivedQuery, receivedResponse) = sender(query, response)\n+            self.assertTrue(receivedQuery)\n+            self.assertTrue(receivedResponse)\n+            receivedQuery.id = query.id\n+            self.assertEquals(receivedQuery, query)\n+            self.assertEquals(receivedResponse, expectedResponse)\n+\n+class TestTrailingDataToDnsdist(DNSDistTest):\n+    _config_template = \"\"\"\n+    newServer{address=\"127.0.0.1:%s\"}\n+\n+    addAction(AndRule({QNameRule(\"dropped.trailing.tests.powerdns.com.\"), TrailingDataRule()}), DropAction())\n+\n+    function removeTrailingData(dq)\n+        local success = dq:setTrailingData({})\n+        if not success then\n+            return DNSAction.ServFail, \"\"\n+        end\n+        return DNSAction.None, \"\"\n+    end\n+    addLuaAction(\"removed.trailing.tests.powerdns.com.\", removeTrailingData)\n+\n+    function reportTrailingData(dq)\n+        local tailBytes = dq:getTrailingData()\n+        local tailChars = string.char(unpack(tailBytes))\n+        return DNSAction.Spoof, \"-\" .. tailChars .. \".echoed.trailing.tests.powerdns.com.\"\n+    end\n+    addLuaAction(\"echoed.trailing.tests.powerdns.com.\", reportTrailingData)\n+\n+    function replaceTrailingData(dq)\n+        local success = dq:setTrailingData({65, 66, 67}) -- \"ABC\"\n+        if not success then\n+            return DNSAction.ServFail, \"\"\n+        end\n+        return DNSAction.None, \"\"\n+    end\n+    addLuaAction(\"replaced.trailing.tests.powerdns.com.\", replaceTrailingData)\n+    addLuaAction(\"replaced.trailing.tests.powerdns.com.\", reportTrailingData)\n+    \"\"\"\n \n     def testTrailingDropped(self):\n         \"\"\"\n-        Trailing: dropped\n+        Trailing data: Drop query\n \n         \"\"\"\n         name = 'dropped.trailing.tests.powerdns.com.'\n-        query = dns.message.make_query(name, 'AAAA', 'IN')\n+        query = dns.message.make_query(name, 'A', 'IN')","path":"regression-tests.dnsdist/test_Trailing.py","position":245,"original_position":245,"commit_id":"d4de01b29046ca79ca2edd000187f71e5effc005","original_commit_id":"d4de01b29046ca79ca2edd000187f71e5effc005","user":{"login":"the-oracle-at-uithoorn","id":43172991,"node_id":"MDQ6VXNlcjQzMTcyOTkx","avatar_url":"https://avatars3.githubusercontent.com/u/43172991?v=4","gravatar_id":"","url":"https://api.github.com/users/the-oracle-at-uithoorn","html_url":"https://github.com/the-oracle-at-uithoorn","followers_url":"https://api.github.com/users/the-oracle-at-uithoorn/followers","following_url":"https://api.github.com/users/the-oracle-at-uithoorn/following{/other_user}","gists_url":"https://api.github.com/users/the-oracle-at-uithoorn/gists{/gist_id}","starred_url":"https://api.github.com/users/the-oracle-at-uithoorn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/the-oracle-at-uithoorn/subscriptions","organizations_url":"https://api.github.com/users/the-oracle-at-uithoorn/orgs","repos_url":"https://api.github.com/users/the-oracle-at-uithoorn/repos","events_url":"https://api.github.com/users/the-oracle-at-uithoorn/events{/privacy}","received_events_url":"https://api.github.com/users/the-oracle-at-uithoorn/received_events","type":"User","site_admin":false},"body":"Why change the RTYPE? Just curious...","created_at":"2018-09-13T09:34:11Z","updated_at":"2018-09-13T09:35:04Z","html_url":"https://github.com/gibson042/pdns/pull/1#discussion_r217320166","pull_request_url":"https://api.github.com/repos/gibson042/pdns/pulls/1","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/gibson042/pdns/pulls/comments/217320166"},"html":{"href":"https://github.com/gibson042/pdns/pull/1#discussion_r217320166"},"pull_request":{"href":"https://api.github.com/repos/gibson042/pdns/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/gibson042/pdns/pulls/1","id":214662254,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE0NjYyMjU0","html_url":"https://github.com/gibson042/pdns/pull/1","diff_url":"https://github.com/gibson042/pdns/pull/1.diff","patch_url":"https://github.com/gibson042/pdns/pull/1.patch","issue_url":"https://api.github.com/repos/gibson042/pdns/issues/1","number":1,"state":"open","locked":false,"title":"Expose trailing data","user":{"login":"gibson042","id":1199584,"node_id":"MDQ6VXNlcjExOTk1ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1199584?v=4","gravatar_id":"","url":"https://api.github.com/users/gibson042","html_url":"https://github.com/gibson042","followers_url":"https://api.github.com/users/gibson042/followers","following_url":"https://api.github.com/users/gibson042/following{/other_user}","gists_url":"https://api.github.com/users/gibson042/gists{/gist_id}","starred_url":"https://api.github.com/users/gibson042/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gibson042/subscriptions","organizations_url":"https://api.github.com/users/gibson042/orgs","repos_url":"https://api.github.com/users/gibson042/repos","events_url":"https://api.github.com/users/gibson042/events{/privacy}","received_events_url":"https://api.github.com/users/gibson042/received_events","type":"User","site_admin":false},"body":"### Short description\r\nExpose data following a DNS message to Lua for both reading and writing. Fixes # 6846.\r\n\r\n### Checklist\r\n<!-- please indicate if any of these things are done/included with this Pull Request. Not all boxes need to be checked for the Pull Request to be accepted -->\r\nI have:\r\n- [x] read the [CONTRIBUTING.md](https://github.com/PowerDNS/pdns/blob/master/CONTRIBUTING.md) document\r\n- [x] compiled this code\r\n- [x] tested this code\r\n- [x] included documentation (including possible behaviour changes)\r\n- [x] documented the code\r\n- [x] added or modified regression test(s)\r\n- [ ] added or modified unit test(s)\r\n","created_at":"2018-09-11T14:56:43Z","updated_at":"2018-09-13T09:35:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d563e82f47db4a36fa47cd7d319b4c36992fd177","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/gibson042/pdns/pulls/1/commits","review_comments_url":"https://api.github.com/repos/gibson042/pdns/pulls/1/comments","review_comment_url":"https://api.github.com/repos/gibson042/pdns/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gibson042/pdns/issues/1/comments","statuses_url":"https://api.github.com/repos/gibson042/pdns/statuses/d4de01b29046ca79ca2edd000187f71e5effc005","head":{"label":"gibson042:2018-08-trailing-data","ref":"2018-08-trailing-data","sha":"d4de01b29046ca79ca2edd000187f71e5effc005","user":{"login":"gibson042","id":1199584,"node_id":"MDQ6VXNlcjExOTk1ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1199584?v=4","gravatar_id":"","url":"https://api.github.com/users/gibson042","html_url":"https://github.com/gibson042","followers_url":"https://api.github.com/users/gibson042/followers","following_url":"https://api.github.com/users/gibson042/following{/other_user}","gists_url":"https://api.github.com/users/gibson042/gists{/gist_id}","starred_url":"https://api.github.com/users/gibson042/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gibson042/subscriptions","organizations_url":"https://api.github.com/users/gibson042/orgs","repos_url":"https://api.github.com/users/gibson042/repos","events_url":"https://api.github.com/users/gibson042/events{/privacy}","received_events_url":"https://api.github.com/users/gibson042/received_events","type":"User","site_admin":false},"repo":{"id":146137890,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzc4OTA=","name":"pdns","full_name":"gibson042/pdns","owner":{"login":"gibson042","id":1199584,"node_id":"MDQ6VXNlcjExOTk1ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1199584?v=4","gravatar_id":"","url":"https://api.github.com/users/gibson042","html_url":"https://github.com/gibson042","followers_url":"https://api.github.com/users/gibson042/followers","following_url":"https://api.github.com/users/gibson042/following{/other_user}","gists_url":"https://api.github.com/users/gibson042/gists{/gist_id}","starred_url":"https://api.github.com/users/gibson042/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gibson042/subscriptions","organizations_url":"https://api.github.com/users/gibson042/orgs","repos_url":"https://api.github.com/users/gibson042/repos","events_url":"https://api.github.com/users/gibson042/events{/privacy}","received_events_url":"https://api.github.com/users/gibson042/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gibson042/pdns","description":"PowerDNS","fork":true,"url":"https://api.github.com/repos/gibson042/pdns","forks_url":"https://api.github.com/repos/gibson042/pdns/forks","keys_url":"https://api.github.com/repos/gibson042/pdns/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gibson042/pdns/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gibson042/pdns/teams","hooks_url":"https://api.github.com/repos/gibson042/pdns/hooks","issue_events_url":"https://api.github.com/repos/gibson042/pdns/issues/events{/number}","events_url":"https://api.github.com/repos/gibson042/pdns/events","assignees_url":"https://api.github.com/repos/gibson042/pdns/assignees{/user}","branches_url":"https://api.github.com/repos/gibson042/pdns/branches{/branch}","tags_url":"https://api.github.com/repos/gibson042/pdns/tags","blobs_url":"https://api.github.com/repos/gibson042/pdns/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gibson042/pdns/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gibson042/pdns/git/refs{/sha}","trees_url":"https://api.github.com/repos/gibson042/pdns/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gibson042/pdns/statuses/{sha}","languages_url":"https://api.github.com/repos/gibson042/pdns/languages","stargazers_url":"https://api.github.com/repos/gibson042/pdns/stargazers","contributors_url":"https://api.github.com/repos/gibson042/pdns/contributors","subscribers_url":"https://api.github.com/repos/gibson042/pdns/subscribers","subscription_url":"https://api.github.com/repos/gibson042/pdns/subscription","commits_url":"https://api.github.com/repos/gibson042/pdns/commits{/sha}","git_commits_url":"https://api.github.com/repos/gibson042/pdns/git/commits{/sha}","comments_url":"https://api.github.com/repos/gibson042/pdns/comments{/number}","issue_comment_url":"https://api.github.com/repos/gibson042/pdns/issues/comments{/number}","contents_url":"https://api.github.com/repos/gibson042/pdns/contents/{+path}","compare_url":"https://api.github.com/repos/gibson042/pdns/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gibson042/pdns/merges","archive_url":"https://api.github.com/repos/gibson042/pdns/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gibson042/pdns/downloads","issues_url":"https://api.github.com/repos/gibson042/pdns/issues{/number}","pulls_url":"https://api.github.com/repos/gibson042/pdns/pulls{/number}","milestones_url":"https://api.github.com/repos/gibson042/pdns/milestones{/number}","notifications_url":"https://api.github.com/repos/gibson042/pdns/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gibson042/pdns/labels{/name}","releases_url":"https://api.github.com/repos/gibson042/pdns/releases{/id}","deployments_url":"https://api.github.com/repos/gibson042/pdns/deployments","created_at":"2018-08-25T23:55:54Z","updated_at":"2018-08-31T02:16:53Z","pushed_at":"2018-09-11T14:56:43Z","git_url":"git://github.com/gibson042/pdns.git","ssh_url":"git@github.com:gibson042/pdns.git","clone_url":"https://github.com/gibson042/pdns.git","svn_url":"https://github.com/gibson042/pdns","homepage":null,"size":44215,"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":1,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"gibson042:master","ref":"master","sha":"13eb5ac7f5bff2d48bd67149306a276feee89cba","user":{"login":"gibson042","id":1199584,"node_id":"MDQ6VXNlcjExOTk1ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1199584?v=4","gravatar_id":"","url":"https://api.github.com/users/gibson042","html_url":"https://github.com/gibson042","followers_url":"https://api.github.com/users/gibson042/followers","following_url":"https://api.github.com/users/gibson042/following{/other_user}","gists_url":"https://api.github.com/users/gibson042/gists{/gist_id}","starred_url":"https://api.github.com/users/gibson042/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gibson042/subscriptions","organizations_url":"https://api.github.com/users/gibson042/orgs","repos_url":"https://api.github.com/users/gibson042/repos","events_url":"https://api.github.com/users/gibson042/events{/privacy}","received_events_url":"https://api.github.com/users/gibson042/received_events","type":"User","site_admin":false},"repo":{"id":146137890,"node_id":"MDEwOlJlcG9zaXRvcnkxNDYxMzc4OTA=","name":"pdns","full_name":"gibson042/pdns","owner":{"login":"gibson042","id":1199584,"node_id":"MDQ6VXNlcjExOTk1ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1199584?v=4","gravatar_id":"","url":"https://api.github.com/users/gibson042","html_url":"https://github.com/gibson042","followers_url":"https://api.github.com/users/gibson042/followers","following_url":"https://api.github.com/users/gibson042/following{/other_user}","gists_url":"https://api.github.com/users/gibson042/gists{/gist_id}","starred_url":"https://api.github.com/users/gibson042/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gibson042/subscriptions","organizations_url":"https://api.github.com/users/gibson042/orgs","repos_url":"https://api.github.com/users/gibson042/repos","events_url":"https://api.github.com/users/gibson042/events{/privacy}","received_events_url":"https://api.github.com/users/gibson042/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/gibson042/pdns","description":"PowerDNS","fork":true,"url":"https://api.github.com/repos/gibson042/pdns","forks_url":"https://api.github.com/repos/gibson042/pdns/forks","keys_url":"https://api.github.com/repos/gibson042/pdns/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gibson042/pdns/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gibson042/pdns/teams","hooks_url":"https://api.github.com/repos/gibson042/pdns/hooks","issue_events_url":"https://api.github.com/repos/gibson042/pdns/issues/events{/number}","events_url":"https://api.github.com/repos/gibson042/pdns/events","assignees_url":"https://api.github.com/repos/gibson042/pdns/assignees{/user}","branches_url":"https://api.github.com/repos/gibson042/pdns/branches{/branch}","tags_url":"https://api.github.com/repos/gibson042/pdns/tags","blobs_url":"https://api.github.com/repos/gibson042/pdns/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gibson042/pdns/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gibson042/pdns/git/refs{/sha}","trees_url":"https://api.github.com/repos/gibson042/pdns/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gibson042/pdns/statuses/{sha}","languages_url":"https://api.github.com/repos/gibson042/pdns/languages","stargazers_url":"https://api.github.com/repos/gibson042/pdns/stargazers","contributors_url":"https://api.github.com/repos/gibson042/pdns/contributors","subscribers_url":"https://api.github.com/repos/gibson042/pdns/subscribers","subscription_url":"https://api.github.com/repos/gibson042/pdns/subscription","commits_url":"https://api.github.com/repos/gibson042/pdns/commits{/sha}","git_commits_url":"https://api.github.com/repos/gibson042/pdns/git/commits{/sha}","comments_url":"https://api.github.com/repos/gibson042/pdns/comments{/number}","issue_comment_url":"https://api.github.com/repos/gibson042/pdns/issues/comments{/number}","contents_url":"https://api.github.com/repos/gibson042/pdns/contents/{+path}","compare_url":"https://api.github.com/repos/gibson042/pdns/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gibson042/pdns/merges","archive_url":"https://api.github.com/repos/gibson042/pdns/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gibson042/pdns/downloads","issues_url":"https://api.github.com/repos/gibson042/pdns/issues{/number}","pulls_url":"https://api.github.com/repos/gibson042/pdns/pulls{/number}","milestones_url":"https://api.github.com/repos/gibson042/pdns/milestones{/number}","notifications_url":"https://api.github.com/repos/gibson042/pdns/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gibson042/pdns/labels{/name}","releases_url":"https://api.github.com/repos/gibson042/pdns/releases{/id}","deployments_url":"https://api.github.com/repos/gibson042/pdns/deployments","created_at":"2018-08-25T23:55:54Z","updated_at":"2018-08-31T02:16:53Z","pushed_at":"2018-09-11T14:56:43Z","git_url":"git://github.com/gibson042/pdns.git","ssh_url":"git@github.com:gibson042/pdns.git","clone_url":"https://github.com/gibson042/pdns.git","svn_url":"https://github.com/gibson042/pdns","homepage":null,"size":44215,"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":1,"license":{"key":"gpl-2.0","name":"GNU General Public License v2.0","spdx_id":"GPL-2.0","url":"https://api.github.com/licenses/gpl-2.0","node_id":"MDc6TGljZW5zZTg="},"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gibson042/pdns/pulls/1"},"html":{"href":"https://github.com/gibson042/pdns/pull/1"},"issue":{"href":"https://api.github.com/repos/gibson042/pdns/issues/1"},"comments":{"href":"https://api.github.com/repos/gibson042/pdns/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/gibson042/pdns/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/gibson042/pdns/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gibson042/pdns/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/gibson042/pdns/statuses/d4de01b29046ca79ca2edd000187f71e5effc005"}},"author_association":"OWNER"}}
{"actor":{"display_login":"the-oracle-at-uithoorn"}}