{"action":"created","comment":{"url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/comments/234728004","pull_request_review_id":176432020,"id":234728004,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNDcyODAwNA==","diff_hunk":"@@ -0,0 +1,82 @@\n+#! /usr/bin/env python3\n+\n+# Author: Thomas Gruber\n+# Version: 0.8, 11/06/18\n+\n+from http.server import HTTPServer, BaseHTTPRequestHandler\n+\n+import io\n+import json\n+import time\n+\n+\n+class ControlHandler (BaseHTTPRequestHandler):\n+    SERVER_PATH = '/terradrone'\n+    CHAR_ENCODING = 'utf-8'\n+\n+    # commands should correspond to those written in Android application\n+    CMD_ERROR                                                   = 0\n+    CMD_TEST                                                    = 1\n+    CMD_FORWARD_START                                           = 100\n+    CMD_FORWARD_STOP                                            = 101\n+    CMD_BACKWARD_START                                          = 102\n+    CMD_BACKWARD_STOP                                           = 103\n+    CMD_ROTATE_RIGHT_START                                      = 104\n+    CMD_ROTATE_RIGHT_STOP                                       = 105\n+    CMD_ROTATE_LEFT_START                                       = 106\n+    CMD_ROTATE_LEFT_STOP                                        = 107\n+    CMD_COLLECT                                                 = 200\n+\n+\n+    def do_GET(self):\n+        # deny request\n+        self.send_error(418)\n+\n+\n+    def do_POST(self):\n+        content_length = int(self.headers['Content-Length'])\n+        json_bytes = self.rfile.read(content_length).decode(self.CHAR_ENCODING)\n+\n+        request = json.loads(json_bytes)\n+        request_type = request['command']\n+\n+        # only allow requests with correct path (weak security feature)\n+        if self.path == self.SERVER_PATH:\n+            if request_type == self.CMD_TEST:\n+                response = {\n+                    'time': int(round(time.time() * 1e3)),\n+                    'command': self.CMD_TEST\n+                }\n+\n+                json_response = json.dumps(response).encode(self.CHAR_ENCODING)\n+\n+                content_buffer = io.BytesIO()\n+                response_length = content_buffer.write(json_response)\n+\n+                self.send_response(202)\n+                self.send_header('Content-Length', response_length)\n+                self.send_header('Content-Type', 'application/json; charset=' + self.CHAR_ENCODING)\n+                self.send_header('Connection', 'close')\n+                self.end_headers()\n+\n+                self.wfile.write(content_buffer.getvalue())\n+                content_buffer.close()\n+            else:\n+                # invalid command type\n+                self.send_error(400)\n+        else:\n+            print(self.path)\n+            self.send_error(401)\n+\n+        # default to closing all connections\n+        self.close_connection = True\n+\n+\n+def main():\n+    # must be ran with 'sudo' to run on port 80\n+    httpd = HTTPServer(('', 80), ControlHandler)","path":"server.py","position":77,"original_position":77,"commit_id":"5e9d755eaeb0851dc9b39f72867d2fc95eaf6e54","original_commit_id":"5e9d755eaeb0851dc9b39f72867d2fc95eaf6e54","user":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"body":"I did not have to install any extra libraries. Either it came preinstalled on the Pi or with the Python installation.","created_at":"2018-11-19T18:19:19Z","updated_at":"2018-11-19T18:19:20Z","html_url":"https://github.com/GrubeCube/terradrone-pi/pull/13#discussion_r234728004","pull_request_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/comments/234728004"},"html":{"href":"https://github.com/GrubeCube/terradrone-pi/pull/13#discussion_r234728004"},"pull_request":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13"}},"in_reply_to_id":234062934},"pull_request":{"url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13","id":228918644,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI4OTE4NjQ0","html_url":"https://github.com/GrubeCube/terradrone-pi/pull/13","diff_url":"https://github.com/GrubeCube/terradrone-pi/pull/13.diff","patch_url":"https://github.com/GrubeCube/terradrone-pi/pull/13.patch","issue_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/13","number":13,"state":"open","locked":false,"title":"Add control server for taking commands from Android app #11     |","user":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"body":"A control server that can communicate with the Android\r\napplication to take commands for movement and collection is\r\nadded. Currently, the server only handles test requests, but is\r\ndesigned to implement more requests.\r\n\r\nIn order for the devices to communicate, both must be on the\r\nsame router. If disconnection becomes a consistent issue, then\r\noptions for communication outside the LAN should be explored.\r\n\r\nServer provides basic functionality and issue should be\r\nrevisited to implement other command types.","created_at":"2018-11-07T05:01:47Z","updated_at":"2018-11-19T18:19:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c5fe4e01bfb09a5eff53b07f1e3800a489a49075","assignee":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"assignees":[{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1068865055,"node_id":"MDU6TGFiZWwxMDY4ODY1MDU1","url":"https://api.github.com/repos/GrubeCube/terradrone-pi/labels/High%20Priority","name":"High Priority","color":"ef4747","default":false}],"milestone":{"url":"https://api.github.com/repos/GrubeCube/terradrone-pi/milestones/7","html_url":"https://github.com/GrubeCube/terradrone-pi/milestone/7","labels_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/milestones/7/labels","id":3687305,"node_id":"MDk6TWlsZXN0b25lMzY4NzMwNQ==","number":7,"title":"Communication Between App and Controller","description":"Communication between Android application and Raspberry Pi is complete and commands (command parsing) is able to start development.","creator":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"open_issues":3,"closed_issues":0,"state":"open","created_at":"2018-09-25T14:07:20Z","updated_at":"2018-11-07T05:07:41Z","due_on":"2018-09-17T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13/commits","review_comments_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13/comments","review_comment_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/13/comments","statuses_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/statuses/5e9d755eaeb0851dc9b39f72867d2fc95eaf6e54","head":{"label":"GrubeCube:11-bluetooth-communication-with-Android-Application","ref":"11-bluetooth-communication-with-Android-Application","sha":"5e9d755eaeb0851dc9b39f72867d2fc95eaf6e54","user":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"repo":{"id":149822819,"node_id":"MDEwOlJlcG9zaXRvcnkxNDk4MjI4MTk=","name":"terradrone-pi","full_name":"GrubeCube/terradrone-pi","private":false,"owner":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"html_url":"https://github.com/GrubeCube/terradrone-pi","description":"CEG4981 - Team Projects II: Development for AUGER controlled software on the Raspberry Pi 3.","fork":false,"url":"https://api.github.com/repos/GrubeCube/terradrone-pi","forks_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/forks","keys_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/teams","hooks_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/hooks","issue_events_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/events{/number}","events_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/events","assignees_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/assignees{/user}","branches_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/branches{/branch}","tags_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/tags","blobs_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/refs{/sha}","trees_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/statuses/{sha}","languages_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/languages","stargazers_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/stargazers","contributors_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/contributors","subscribers_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/subscribers","subscription_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/subscription","commits_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/commits{/sha}","git_commits_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/commits{/sha}","comments_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/comments{/number}","issue_comment_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/comments{/number}","contents_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/contents/{+path}","compare_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/merges","archive_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/downloads","issues_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues{/number}","pulls_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls{/number}","milestones_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/milestones{/number}","notifications_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/labels{/name}","releases_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/releases{/id}","deployments_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/deployments","created_at":"2018-09-21T22:02:09Z","updated_at":"2018-10-02T12:31:17Z","pushed_at":"2018-11-07T05:08:07Z","git_url":"git://github.com/GrubeCube/terradrone-pi.git","ssh_url":"git@github.com:GrubeCube/terradrone-pi.git","clone_url":"https://github.com/GrubeCube/terradrone-pi.git","svn_url":"https://github.com/GrubeCube/terradrone-pi","homepage":null,"size":6,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":13,"license":null,"forks":0,"open_issues":13,"watchers":0,"default_branch":"master"}},"base":{"label":"GrubeCube:master","ref":"master","sha":"ae3654137f6748e1009696a70d0de87819b86903","user":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"repo":{"id":149822819,"node_id":"MDEwOlJlcG9zaXRvcnkxNDk4MjI4MTk=","name":"terradrone-pi","full_name":"GrubeCube/terradrone-pi","private":false,"owner":{"login":"GrubeCube","id":42899554,"node_id":"MDQ6VXNlcjQyODk5NTU0","avatar_url":"https://avatars2.githubusercontent.com/u/42899554?v=4","gravatar_id":"","url":"https://api.github.com/users/GrubeCube","html_url":"https://github.com/GrubeCube","followers_url":"https://api.github.com/users/GrubeCube/followers","following_url":"https://api.github.com/users/GrubeCube/following{/other_user}","gists_url":"https://api.github.com/users/GrubeCube/gists{/gist_id}","starred_url":"https://api.github.com/users/GrubeCube/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GrubeCube/subscriptions","organizations_url":"https://api.github.com/users/GrubeCube/orgs","repos_url":"https://api.github.com/users/GrubeCube/repos","events_url":"https://api.github.com/users/GrubeCube/events{/privacy}","received_events_url":"https://api.github.com/users/GrubeCube/received_events","type":"User","site_admin":false},"html_url":"https://github.com/GrubeCube/terradrone-pi","description":"CEG4981 - Team Projects II: Development for AUGER controlled software on the Raspberry Pi 3.","fork":false,"url":"https://api.github.com/repos/GrubeCube/terradrone-pi","forks_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/forks","keys_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/teams","hooks_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/hooks","issue_events_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/events{/number}","events_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/events","assignees_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/assignees{/user}","branches_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/branches{/branch}","tags_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/tags","blobs_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/refs{/sha}","trees_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/statuses/{sha}","languages_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/languages","stargazers_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/stargazers","contributors_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/contributors","subscribers_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/subscribers","subscription_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/subscription","commits_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/commits{/sha}","git_commits_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/git/commits{/sha}","comments_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/comments{/number}","issue_comment_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/comments{/number}","contents_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/contents/{+path}","compare_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/merges","archive_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/downloads","issues_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues{/number}","pulls_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls{/number}","milestones_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/milestones{/number}","notifications_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/labels{/name}","releases_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/releases{/id}","deployments_url":"https://api.github.com/repos/GrubeCube/terradrone-pi/deployments","created_at":"2018-09-21T22:02:09Z","updated_at":"2018-10-02T12:31:17Z","pushed_at":"2018-11-07T05:08:07Z","git_url":"git://github.com/GrubeCube/terradrone-pi.git","ssh_url":"git@github.com:GrubeCube/terradrone-pi.git","clone_url":"https://github.com/GrubeCube/terradrone-pi.git","svn_url":"https://github.com/GrubeCube/terradrone-pi","homepage":null,"size":6,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":13,"license":null,"forks":0,"open_issues":13,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13"},"html":{"href":"https://github.com/GrubeCube/terradrone-pi/pull/13"},"issue":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/13"},"comments":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/issues/13/comments"},"review_comments":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13/comments"},"review_comment":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/pulls/13/commits"},"statuses":{"href":"https://api.github.com/repos/GrubeCube/terradrone-pi/statuses/5e9d755eaeb0851dc9b39f72867d2fc95eaf6e54"}},"author_association":"OWNER"}}
{"actor":{"display_login":"GrubeCube"}}