{"action":"created","comment":{"url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/comments/170747740","pull_request_review_id":99481462,"id":170747740,"diff_hunk":"@@ -0,0 +1,311 @@\n+#    Copyright 2018 SAS Project Authors. All Rights Reserved.\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+\"\"\"A SAS-TH HTTP Server implementation, based on v1.2 of the SAS-SAS TS.\n+\n+A SAS-TH test server could be run by creating the object for the class SasTestHarnessServer\n+and by invoking the API start()\".\n+\"\"\"\n+\n+import hashlib\n+import inspect\n+import json\n+import logging\n+import os.path\n+import random\n+import ssl\n+import sys\n+import threading\n+import time\n+from datetime import datetime, timedelta\n+from urllib import quote\n+from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler\n+\n+CERT_FILE = 'certs/server.cert'\n+KEY_FILE = 'certs/server.key'\n+CA_CERT = 'certs/ca.cert'\n+CIPHERS = [\n+    'AES128-GCM-SHA256',              # TLS_RSA_WITH_AES_128_GCM_SHA256\n+    'AES256-GCM-SHA384',              # TLS_RSA_WITH_AES_256_GCM_SHA384\n+    'ECDHE-ECDSA-AES128-GCM-SHA256',  # TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256\n+    'ECDHE-ECDSA-AES256-GCM-SHA384',  # TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384\n+    'ECDHE-RSA-AES128-GCM-SHA256',    # TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256\n+]\n+\n+\n+class SasTestHarnessServer(threading.Thread):\n+  \"\"\"\n+  Test Harness acting as a HTTP Server running in background and serving Pull/GET requests.\n+  \"\"\"\n+  def __init__(self, name, base_url, dump_path, cert_file=None, key_file=None):\n+    \"\"\" This constructor initializes the SasTestHarnessServer class with required information\n+    passed as args\n+\n+    Args:\n+        name: A name for SAS-TH.If multiple SAS-THs are created then this value should be unique.\n+        base_url: base url of SAS-TH that the SAS UUT should connect to for FAD records.\n+        dump_path: file_path where the FAD records served by the SAS-TH will be placed.\n+        cert_file: The certificate used by SAS-TH to authorize with SAS UUT.\n+        key_file:  The private key file for the cert_file.\n+    \"\"\"\n+    super(SasTestHarnessServer, self).__init__()\n+    self.name = name\n+    self.http_server_url = base_url\n+    self.dump_path = os.path.join(name, dump_path)\n+    self.cert_file = cert_file if cert_file is not None else CERT_FILE\n+    self.key_file = key_file if key_file is not None else KEY_FILE\n+    self.daemon = True\n+    self.server = None\n+\n+\n+  def getSasThUrl(self):\n+    return self.http_server_url\n+\n+  def getUrlHostNameAndPort(self):\n+    \"\"\" This method will return the http_server_url used in startServer method by truncating other\n+    querystring in url and returns tuple(<hostname>, <port>)\n+    \"\"\"\n+    splitted_url = self.http_server_url.split('/')[2:]\n+    logging.info(splitted_url)\n+    return splitted_url[0].split(':')[0], int(splitted_url[0].split(':')[1])\n+\n+  def getDumpFilePath(self):\n+    \"\"\" This method will return absolute path where FAD Records of SAS-TH are stored.\n+    \"\"\"\n+    harness_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))\n+    dumpfile_path = os.path.join(harness_dir, 'FADRecords', self.dump_path)\n+    return dumpfile_path\n+\n+  def run(self):\n+    self.startServer()\n+\n+  def shutdown(self):\n+    self.stopServer()\n+\n+  def startServer(self):\n+    \"\"\" Starts the HTTPServer as background thread.\n+    \"\"\"\n+    SasTestHarnessServerHandler.setupDumpFilePath(self.getDumpFilePath())\n+    self.server = HTTPServer(self.getUrlHostNameAndPort(), SasTestHarnessServerHandler)\n+    self.server.socket = ssl.wrap_socket(\n+        self.server.socket,\n+        certfile=self.cert_file,\n+        keyfile=self.key_file,\n+        ca_certs=CA_CERT,\n+        cert_reqs=ssl.CERT_REQUIRED,\n+        ssl_version=ssl.PROTOCOL_TLSv1_2,\n+        ciphers=':'.join(CIPHERS),\n+        server_side=True\n+        )\n+    # Start HTTP Server\n+    logging.info(\"Started Test Harness Server:%s at %s\", self.name, self.http_server_url)\n+    self.server.serve_forever()\n+\n+  def stopServer(self):\n+    \"\"\" This method used to stop http_server  \"\"\"\n+    self.server.shutdown()\n+    logging.info(\"Stopped Test Harness Server:%s\", self.name)\n+\n+  def generateFadRecords(self, cbsd_records, grant_records_list, ppa_records,\n+                         esc_sensor_records):\n+    \"\"\" Generates the cbsd,ppa and esc_sensor dump file and dumps the FAD file in specified path\n+\n+    Args:\n+       cbsd_records: list of cbsdData objects that includes one or more grants object and FAD\n+       grant_records_list: list of muliple grant records for all cbsd devices\n+         For an example : muliple grants [ [grant1, grant2], [grant1, grant2] ] associated with each\n+         cbsd records [ cbsd1, cbsd2 ]\n+       ppa_records:  list of ppa_record objects used to generate ppa_dump file and FAD\n+       esc_sensor_records: list of esc_sensor_records objects used to generate\n+                            esc_sensor_records and FAD\n+\n+    Returns:\n+       It returns None and successfully generates the dumps in specified file path\n+    \"\"\"\n+\n+    def getCbsdReferenceId(fcc_id, serial_number):\n+      \"\"\"creates encoded cbsd_reference_id using sha1 with fcc_id and serial number of cbsd\n+      \"\"\"\n+      return str(fcc_id + '/' + str(hashlib.sha1(serial_number).hexdigest())).encode('utf-8')\n+\n+    def writeDumpFile(file_path, data):\n+      \"\"\" Write JSON data to specified file \"\"\"\n+      file_handler = open(file_path, \"w\")\n+      file_handler.writelines(json.dumps(data, sort_keys=True, indent=4))\n+      file_handler.close()\n+\n+    def cleanDumpFiles():\n+      \"\"\" Clean existing dumpfile if any \"\"\"\n+      map(os.remove, (os.path.join(self.getDumpFilePath(), file)\n+                      for file in os.listdir(self.getDumpFilePath())))\n+\n+    def createFadRecord(url, record):\n+      \"\"\" Creates the files object that includes url,checksum,size,version and recordtype of record\n+          required to be packed in FAD\n+      \"\"\"\n+      fad_record = {}\n+      fad_record['url'] = url\n+      fad_record['checksum'] = hashlib.sha1(json.dumps(record)).hexdigest()\n+      fad_record['size'] = sys.getsizeof(record)\n+      fad_record['version'] = self.getSasThUrl().split('/')[-1]\n+      if 'cbsd' in url:\n+        fad_record['recordType'] = \"cbsd\"\n+      elif 'zone' in url:\n+        fad_record['recordType'] = \"zone\"\n+      elif 'esc_sensor' in url:\n+        fad_record['recordType'] = \"esc_sensor\"\n+      else:","path":"src/harness/sas_test_harness.py","position":168,"original_position":168,"commit_id":"ecdbc988d37b4d170a02fb5a32589b95449ca774","original_commit_id":"ecdbc988d37b4d170a02fb5a32589b95449ca774","user":{"login":"jni2000","id":11164076,"avatar_url":"https://avatars1.githubusercontent.com/u/11164076?v=4","gravatar_id":"","url":"https://api.github.com/users/jni2000","html_url":"https://github.com/jni2000","followers_url":"https://api.github.com/users/jni2000/followers","following_url":"https://api.github.com/users/jni2000/following{/other_user}","gists_url":"https://api.github.com/users/jni2000/gists{/gist_id}","starred_url":"https://api.github.com/users/jni2000/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jni2000/subscriptions","organizations_url":"https://api.github.com/users/jni2000/orgs","repos_url":"https://api.github.com/users/jni2000/repos","events_url":"https://api.github.com/users/jni2000/events{/privacy}","received_events_url":"https://api.github.com/users/jni2000/received_events","type":"User","site_admin":false},"body":"fixed","created_at":"2018-02-26T21:51:00Z","updated_at":"2018-02-26T21:51:00Z","html_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System/pull/368#discussion_r170747740","pull_request_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/comments/170747740"},"html":{"href":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System/pull/368#discussion_r170747740"},"pull_request":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368"}},"in_reply_to_id":170127516},"pull_request":{"url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368","id":161557269,"html_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System/pull/368","diff_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System/pull/368.diff","patch_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System/pull/368.patch","issue_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/368","number":368,"state":"open","locked":false,"title":"Obsolete: SAS Test Harness and FAD.2 - keep review history","user":{"login":"jni2000","id":11164076,"avatar_url":"https://avatars1.githubusercontent.com/u/11164076?v=4","gravatar_id":"","url":"https://api.github.com/users/jni2000","html_url":"https://github.com/jni2000","followers_url":"https://api.github.com/users/jni2000/followers","following_url":"https://api.github.com/users/jni2000/following{/other_user}","gists_url":"https://api.github.com/users/jni2000/gists{/gist_id}","starred_url":"https://api.github.com/users/jni2000/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jni2000/subscriptions","organizations_url":"https://api.github.com/users/jni2000/orgs","repos_url":"https://api.github.com/users/jni2000/repos","events_url":"https://api.github.com/users/jni2000/events{/privacy}","received_events_url":"https://api.github.com/users/jni2000/received_events","type":"User","site_admin":false},"body":"Federated Wireless added Test cases GRA.5, GRA.6 and FAD.2, Author Xi Wu <xwu@federatedwireless.com>","created_at":"2018-01-08T03:59:42Z","updated_at":"2018-02-26T21:51:00Z","closed_at":null,"merged_at":null,"merge_commit_sha":"edd5be2b555cd0b482bac3e6443d9957633b5bfd","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":690625834,"url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/labels/available%20as%20a%20reference%20only%20(do%20not%20review)","name":"available as a reference only (do not review)","color":"1d76db","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368/commits","review_comments_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368/comments","review_comment_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/368/comments","statuses_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/statuses/ecdbc988d37b4d170a02fb5a32589b95449ca774","head":{"label":"Wireless-Innovation-Forum:fw_GRA5n6","ref":"fw_GRA5n6","sha":"ecdbc988d37b4d170a02fb5a32589b95449ca774","user":{"login":"Wireless-Innovation-Forum","id":10857009,"avatar_url":"https://avatars0.githubusercontent.com/u/10857009?v=4","gravatar_id":"","url":"https://api.github.com/users/Wireless-Innovation-Forum","html_url":"https://github.com/Wireless-Innovation-Forum","followers_url":"https://api.github.com/users/Wireless-Innovation-Forum/followers","following_url":"https://api.github.com/users/Wireless-Innovation-Forum/following{/other_user}","gists_url":"https://api.github.com/users/Wireless-Innovation-Forum/gists{/gist_id}","starred_url":"https://api.github.com/users/Wireless-Innovation-Forum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Wireless-Innovation-Forum/subscriptions","organizations_url":"https://api.github.com/users/Wireless-Innovation-Forum/orgs","repos_url":"https://api.github.com/users/Wireless-Innovation-Forum/repos","events_url":"https://api.github.com/users/Wireless-Innovation-Forum/events{/privacy}","received_events_url":"https://api.github.com/users/Wireless-Innovation-Forum/received_events","type":"Organization","site_admin":false},"repo":{"id":38059331,"name":"Spectrum-Access-System","full_name":"Wireless-Innovation-Forum/Spectrum-Access-System","owner":{"login":"Wireless-Innovation-Forum","id":10857009,"avatar_url":"https://avatars0.githubusercontent.com/u/10857009?v=4","gravatar_id":"","url":"https://api.github.com/users/Wireless-Innovation-Forum","html_url":"https://github.com/Wireless-Innovation-Forum","followers_url":"https://api.github.com/users/Wireless-Innovation-Forum/followers","following_url":"https://api.github.com/users/Wireless-Innovation-Forum/following{/other_user}","gists_url":"https://api.github.com/users/Wireless-Innovation-Forum/gists{/gist_id}","starred_url":"https://api.github.com/users/Wireless-Innovation-Forum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Wireless-Innovation-Forum/subscriptions","organizations_url":"https://api.github.com/users/Wireless-Innovation-Forum/orgs","repos_url":"https://api.github.com/users/Wireless-Innovation-Forum/repos","events_url":"https://api.github.com/users/Wireless-Innovation-Forum/events{/privacy}","received_events_url":"https://api.github.com/users/Wireless-Innovation-Forum/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System","description":"Spectrum Access System Testing and Interoperability Repository","fork":false,"url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System","forks_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/forks","keys_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/teams","hooks_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/hooks","issue_events_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/events{/number}","events_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/events","assignees_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/assignees{/user}","branches_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/branches{/branch}","tags_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/tags","blobs_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/refs{/sha}","trees_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/statuses/{sha}","languages_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/languages","stargazers_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/stargazers","contributors_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/contributors","subscribers_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/subscribers","subscription_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/subscription","commits_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/commits{/sha}","git_commits_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/commits{/sha}","comments_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/comments{/number}","issue_comment_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/comments{/number}","contents_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/contents/{+path}","compare_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/merges","archive_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/downloads","issues_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues{/number}","pulls_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls{/number}","milestones_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/milestones{/number}","notifications_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/labels{/name}","releases_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/releases{/id}","deployments_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/deployments","created_at":"2015-06-25T16:00:15Z","updated_at":"2018-02-05T15:08:09Z","pushed_at":"2018-02-26T21:14:37Z","git_url":"git://github.com/Wireless-Innovation-Forum/Spectrum-Access-System.git","ssh_url":"git@github.com:Wireless-Innovation-Forum/Spectrum-Access-System.git","clone_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System.git","svn_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System","homepage":"http://www.wirelessinnovation.org/ssc","size":541002,"stargazers_count":26,"watchers_count":26,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":25,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":24,"open_issues":25,"watchers":26,"default_branch":"master"}},"base":{"label":"Wireless-Innovation-Forum:master","ref":"master","sha":"9805cc6d3f8a0f820563ef6dab37a25e3c298dae","user":{"login":"Wireless-Innovation-Forum","id":10857009,"avatar_url":"https://avatars0.githubusercontent.com/u/10857009?v=4","gravatar_id":"","url":"https://api.github.com/users/Wireless-Innovation-Forum","html_url":"https://github.com/Wireless-Innovation-Forum","followers_url":"https://api.github.com/users/Wireless-Innovation-Forum/followers","following_url":"https://api.github.com/users/Wireless-Innovation-Forum/following{/other_user}","gists_url":"https://api.github.com/users/Wireless-Innovation-Forum/gists{/gist_id}","starred_url":"https://api.github.com/users/Wireless-Innovation-Forum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Wireless-Innovation-Forum/subscriptions","organizations_url":"https://api.github.com/users/Wireless-Innovation-Forum/orgs","repos_url":"https://api.github.com/users/Wireless-Innovation-Forum/repos","events_url":"https://api.github.com/users/Wireless-Innovation-Forum/events{/privacy}","received_events_url":"https://api.github.com/users/Wireless-Innovation-Forum/received_events","type":"Organization","site_admin":false},"repo":{"id":38059331,"name":"Spectrum-Access-System","full_name":"Wireless-Innovation-Forum/Spectrum-Access-System","owner":{"login":"Wireless-Innovation-Forum","id":10857009,"avatar_url":"https://avatars0.githubusercontent.com/u/10857009?v=4","gravatar_id":"","url":"https://api.github.com/users/Wireless-Innovation-Forum","html_url":"https://github.com/Wireless-Innovation-Forum","followers_url":"https://api.github.com/users/Wireless-Innovation-Forum/followers","following_url":"https://api.github.com/users/Wireless-Innovation-Forum/following{/other_user}","gists_url":"https://api.github.com/users/Wireless-Innovation-Forum/gists{/gist_id}","starred_url":"https://api.github.com/users/Wireless-Innovation-Forum/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Wireless-Innovation-Forum/subscriptions","organizations_url":"https://api.github.com/users/Wireless-Innovation-Forum/orgs","repos_url":"https://api.github.com/users/Wireless-Innovation-Forum/repos","events_url":"https://api.github.com/users/Wireless-Innovation-Forum/events{/privacy}","received_events_url":"https://api.github.com/users/Wireless-Innovation-Forum/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System","description":"Spectrum Access System Testing and Interoperability Repository","fork":false,"url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System","forks_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/forks","keys_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/teams","hooks_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/hooks","issue_events_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/events{/number}","events_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/events","assignees_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/assignees{/user}","branches_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/branches{/branch}","tags_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/tags","blobs_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/refs{/sha}","trees_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/statuses/{sha}","languages_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/languages","stargazers_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/stargazers","contributors_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/contributors","subscribers_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/subscribers","subscription_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/subscription","commits_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/commits{/sha}","git_commits_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/git/commits{/sha}","comments_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/comments{/number}","issue_comment_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/comments{/number}","contents_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/contents/{+path}","compare_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/merges","archive_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/downloads","issues_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues{/number}","pulls_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls{/number}","milestones_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/milestones{/number}","notifications_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/labels{/name}","releases_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/releases{/id}","deployments_url":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/deployments","created_at":"2015-06-25T16:00:15Z","updated_at":"2018-02-05T15:08:09Z","pushed_at":"2018-02-26T21:14:37Z","git_url":"git://github.com/Wireless-Innovation-Forum/Spectrum-Access-System.git","ssh_url":"git@github.com:Wireless-Innovation-Forum/Spectrum-Access-System.git","clone_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System.git","svn_url":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System","homepage":"http://www.wirelessinnovation.org/ssc","size":541002,"stargazers_count":26,"watchers_count":26,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":25,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0"},"forks":24,"open_issues":25,"watchers":26,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368"},"html":{"href":"https://github.com/Wireless-Innovation-Forum/Spectrum-Access-System/pull/368"},"issue":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/368"},"comments":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/issues/368/comments"},"review_comments":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368/comments"},"review_comment":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/pulls/368/commits"},"statuses":{"href":"https://api.github.com/repos/Wireless-Innovation-Forum/Spectrum-Access-System/statuses/ecdbc988d37b4d170a02fb5a32589b95449ca774"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"jni2000"}}