{"action":"created","comment":{"url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/comments/120368732","pull_request_review_id":42324645,"id":120368732,"diff_hunk":"@@ -0,0 +1,145 @@\n+#!/usr/bin/python\n+\n+# Copyright (C) Metaswitch Networks 2017\n+# If license terms are provided to you in a COPYING file in the root directory\n+# of the source code repository by which you are accessing this code, then\n+# the license outlined in that COPYING file applies to your use.\n+# Otherwise no rights are granted except for those provided to you by\n+# Metaswitch Networks in a separate written agreement.\n+\n+\"\"\"Metaswitch Clearwater MIB Generator\n+Usage:\n+  cw_mib_generator.py [--cwc-mib-dir=DIR]\n+\n+Options:\n+  --cwc-mib-dir=DIR  Directory containing Clearwater Core MIB fragment\n+\"\"\"\n+\n+import re\n+import sys\n+import os.path\n+from string import Template\n+from docopt import docopt\n+\n+# Project Clearwater MIB paths\n+COMMON_MIB_PATH = \"./CLEARWATER-MIB-COMMON\"\n+PC_EXTRAS_PATH = \"./CLEARWATER-MIB-PC-EXTRAS\"\n+PC_MIB_OUTPUT_PATH = \"../PROJECT-CLEARWATER-MIB\"\n+\n+# Clearwater Core MIB names\n+CWC_EXTRAS_NAME = \"CLEARWATER-MIB-CWC-EXTRAS\"\n+CWC_MIB_OUTPUT_NAME = \"METASWITCH-CLEARWATER-CORE-MIB\"\n+\n+# Statement added to top of auto-generated MIBs\n+EDIT_STATEMENT = \"THIS MIB IS BUILT FROM A TEMPLATE - DO NOT EDIT DIRECTLY!\"\n+\n+\n+def print_err_and_exit(error_text):\n+    # Prints an error message with the specified text, and exits with code 1.\n+    sys.stderr.write(\"ERROR: {}\\nFailed to generate MIB, exiting\\n\"\n+                     .format(error_text))\n+    sys.exit(1)\n+\n+\n+def read_mib_fragment(mib_path):\n+    # Try to read MIB fragment at specified path. Returns read data if\n+    # successful.\n+    try:\n+        with open(mib_path, \"r\") as mib:\n+            mib_data = mib.read()\n+    except IOError as ioe:\n+        print_err_and_exit(\"Could not read from MIB fragment:\\n - {}\"\n+                           .format(ioe))\n+\n+    return mib_data\n+\n+\n+def write_mib_file(mib_path, mib_contents):\n+    # Try to write specified data to file at specified MIB path.\n+    try:\n+        with open(mib_path, \"w\") as mib_file:\n+            mib_file.write(mib_contents)\n+    except IOError as ioe:\n+        print_err_and_exit(\"Could not write MIB file:\\n - {}\".format(ioe))\n+\n+\n+def generate_title(mib_file_path):\n+    # Try to extract MIB name from the file path, and append definitions\n+    # statement.\n+    try:\n+        name = re.search(r\"[\\w\\-]+$\", mib_file_path).group(0)\n+    except AttributeError:\n+        print_err_and_exit(\"Could not find a valid MIB file name in: '{}'\"\n+                           .format(mib_file_path))\n+\n+    return name + \" DEFINITIONS ::= BEGIN\"\n+\n+\n+def generate_mib(extras_file_path, output_mib_path):\n+    # Read in the common and specific MIB fragments, fill in templated lines\n+    # and write the complete MIB file.\n+    full_common_mib_path = os.path.abspath(COMMON_MIB_PATH)\n+    raw_common_data = read_mib_fragment(full_common_mib_path)\n+    common_src_template = Template(raw_common_data)\n+\n+    substitute_dict = { 'title_statement' : generate_title(output_mib_path),\n+                        'direct_edit_statement' : EDIT_STATEMENT }\n+\n+    try:\n+        common_src = common_src_template.substitute(substitute_dict)\n+    except ValueError as ve:\n+        print_err_and_exit(\n+            \"Common MIB fragment contains an invalid placeholder:\\n - {}\"\n+            .format(ve))\n+    except KeyError as ke:\n+        print_err_and_exit(\n+            \"Common MIB fragment contains unrecognised placeholder: {}\"\n+            .format(ke))\n+\n+    extras_src = read_mib_fragment(extras_file_path)","path":"mib-generator/cw_mib_generator.py","position":99,"original_position":99,"commit_id":"3192e4cf878f87785d852b060797b4388b8dc933","original_commit_id":"3192e4cf878f87785d852b060797b4388b8dc933","user":{"login":"chris-elford-metaswitch","id":2103471,"avatar_url":"https://avatars3.githubusercontent.com/u/2103471?v=3","gravatar_id":"","url":"https://api.github.com/users/chris-elford-metaswitch","html_url":"https://github.com/chris-elford-metaswitch","followers_url":"https://api.github.com/users/chris-elford-metaswitch/followers","following_url":"https://api.github.com/users/chris-elford-metaswitch/following{/other_user}","gists_url":"https://api.github.com/users/chris-elford-metaswitch/gists{/gist_id}","starred_url":"https://api.github.com/users/chris-elford-metaswitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chris-elford-metaswitch/subscriptions","organizations_url":"https://api.github.com/users/chris-elford-metaswitch/orgs","repos_url":"https://api.github.com/users/chris-elford-metaswitch/repos","events_url":"https://api.github.com/users/chris-elford-metaswitch/events{/privacy}","received_events_url":"https://api.github.com/users/chris-elford-metaswitch/received_events","type":"User","site_admin":false},"body":"Is that right?","created_at":"2017-06-06T14:00:59Z","updated_at":"2017-06-06T14:00:59Z","html_url":"https://github.com/Metaswitch/clearwater-snmp-handlers/pull/187#discussion_r120368732","pull_request_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187","_links":{"self":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/comments/120368732"},"html":{"href":"https://github.com/Metaswitch/clearwater-snmp-handlers/pull/187#discussion_r120368732"},"pull_request":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187"}}},"pull_request":{"url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187","id":123492804,"html_url":"https://github.com/Metaswitch/clearwater-snmp-handlers/pull/187","diff_url":"https://github.com/Metaswitch/clearwater-snmp-handlers/pull/187.diff","patch_url":"https://github.com/Metaswitch/clearwater-snmp-handlers/pull/187.patch","issue_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/187","number":187,"state":"open","locked":false,"title":"[Reviewer: HJS] Add MIB automation infrastructure","user":{"login":"GAB-MS","id":20338797,"avatar_url":"https://avatars1.githubusercontent.com/u/20338797?v=3","gravatar_id":"","url":"https://api.github.com/users/GAB-MS","html_url":"https://github.com/GAB-MS","followers_url":"https://api.github.com/users/GAB-MS/followers","following_url":"https://api.github.com/users/GAB-MS/following{/other_user}","gists_url":"https://api.github.com/users/GAB-MS/gists{/gist_id}","starred_url":"https://api.github.com/users/GAB-MS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GAB-MS/subscriptions","organizations_url":"https://api.github.com/users/GAB-MS/orgs","repos_url":"https://api.github.com/users/GAB-MS/repos","events_url":"https://api.github.com/users/GAB-MS/events{/privacy}","received_events_url":"https://api.github.com/users/GAB-MS/received_events","type":"User","site_admin":false},"body":"Sent to @huws for internal team review - I expect to also get these changes reviewed by someone in the Clearwater team.\r\n\r\nThis adds the open-source infrastructure for generating the PROJECT-CLEARWATER-MIB, with the ability to generate the closed-source Clearwater Core MIB when it has the appropriate fragment. These changes are to make it easier for us to make additions to the MIB for all Clearwater deployments, or specifically for Project Clearwater or Clearwater Core deployments.\r\n\r\nThis adds 3 files forming the open-source infrastructure:\r\n\r\n* CLEARWATER-MIB-COMMON: Contains the bulk of the MIB, with stats common to both types of deployment.\r\n* CLEARWATER-MIB-PC-EXTRAS: Contains MIB entries and compliance statements specifically for Project Clearwater deployments.\r\n* cw_mib_generator.py: Builds the PROJECT-CLEARWATER-MIB from the above files. If the CWC fragment is present in the correct place, also builds the CWC mib.\r\n\r\nThis also checks in a PROJECT-CLEARWATER-MIB built using the above infrastructure. This MIB contains all of the entries that it did previously, with the following changes:\r\n* Separate compliance statements for common Clearwater components and Project Clearwater-specific components. (I had to use a weird OID for the latter compliance statement, so that these changes could be made without changing any stat OIDs.)\r\n* Project Clearwater-specific Sprout stats moved into separate stat groups, but retain their original OIDs.\r\n* Ordering changed - common Clearwater entries, followed by PC-specific entries.\r\n\r\nThe MIB passed a validation tool with no errors, as with the original PROJECT-CLEARWATER-MIB. I have also validated it by loading into snmpwalk against a Sprout node, and it looked correct.\r\n\r\nI am expecting feedback on the script - I wasn't sure about adding error handling. I haven't added comments, as I felt it was simple and self-documenting. (I've already noticed that the copyright date is wrong - I'll change this along with any other review feedback.)\r\n","created_at":"2017-06-01T12:59:03Z","updated_at":"2017-06-06T14:00:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7a008395967f9e1c0b464aada1a9de03cf5516f8","assignee":{"login":"GAB-MS","id":20338797,"avatar_url":"https://avatars1.githubusercontent.com/u/20338797?v=3","gravatar_id":"","url":"https://api.github.com/users/GAB-MS","html_url":"https://github.com/GAB-MS","followers_url":"https://api.github.com/users/GAB-MS/followers","following_url":"https://api.github.com/users/GAB-MS/following{/other_user}","gists_url":"https://api.github.com/users/GAB-MS/gists{/gist_id}","starred_url":"https://api.github.com/users/GAB-MS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GAB-MS/subscriptions","organizations_url":"https://api.github.com/users/GAB-MS/orgs","repos_url":"https://api.github.com/users/GAB-MS/repos","events_url":"https://api.github.com/users/GAB-MS/events{/privacy}","received_events_url":"https://api.github.com/users/GAB-MS/received_events","type":"User","site_admin":false},"assignees":[{"login":"GAB-MS","id":20338797,"avatar_url":"https://avatars1.githubusercontent.com/u/20338797?v=3","gravatar_id":"","url":"https://api.github.com/users/GAB-MS","html_url":"https://github.com/GAB-MS","followers_url":"https://api.github.com/users/GAB-MS/followers","following_url":"https://api.github.com/users/GAB-MS/following{/other_user}","gists_url":"https://api.github.com/users/GAB-MS/gists{/gist_id}","starred_url":"https://api.github.com/users/GAB-MS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GAB-MS/subscriptions","organizations_url":"https://api.github.com/users/GAB-MS/orgs","repos_url":"https://api.github.com/users/GAB-MS/repos","events_url":"https://api.github.com/users/GAB-MS/events{/privacy}","received_events_url":"https://api.github.com/users/GAB-MS/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187/commits","review_comments_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187/comments","review_comment_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/187/comments","statuses_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/statuses/3192e4cf878f87785d852b060797b4388b8dc933","head":{"label":"Metaswitch:automated-mib-build-infra","ref":"automated-mib-build-infra","sha":"3192e4cf878f87785d852b060797b4388b8dc933","user":{"login":"Metaswitch","id":453759,"avatar_url":"https://avatars2.githubusercontent.com/u/453759?v=3","gravatar_id":"","url":"https://api.github.com/users/Metaswitch","html_url":"https://github.com/Metaswitch","followers_url":"https://api.github.com/users/Metaswitch/followers","following_url":"https://api.github.com/users/Metaswitch/following{/other_user}","gists_url":"https://api.github.com/users/Metaswitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Metaswitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Metaswitch/subscriptions","organizations_url":"https://api.github.com/users/Metaswitch/orgs","repos_url":"https://api.github.com/users/Metaswitch/repos","events_url":"https://api.github.com/users/Metaswitch/events{/privacy}","received_events_url":"https://api.github.com/users/Metaswitch/received_events","type":"Organization","site_admin":false},"repo":{"id":13772926,"name":"clearwater-snmp-handlers","full_name":"Metaswitch/clearwater-snmp-handlers","owner":{"login":"Metaswitch","id":453759,"avatar_url":"https://avatars2.githubusercontent.com/u/453759?v=3","gravatar_id":"","url":"https://api.github.com/users/Metaswitch","html_url":"https://github.com/Metaswitch","followers_url":"https://api.github.com/users/Metaswitch/followers","following_url":"https://api.github.com/users/Metaswitch/following{/other_user}","gists_url":"https://api.github.com/users/Metaswitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Metaswitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Metaswitch/subscriptions","organizations_url":"https://api.github.com/users/Metaswitch/orgs","repos_url":"https://api.github.com/users/Metaswitch/repos","events_url":"https://api.github.com/users/Metaswitch/events{/privacy}","received_events_url":"https://api.github.com/users/Metaswitch/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Metaswitch/clearwater-snmp-handlers","description":"SNMP extension modules to provide stats for Clearwater nodes","fork":false,"url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers","forks_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/forks","keys_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/teams","hooks_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/hooks","issue_events_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/events{/number}","events_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/events","assignees_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/assignees{/user}","branches_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/branches{/branch}","tags_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/tags","blobs_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/refs{/sha}","trees_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/statuses/{sha}","languages_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/languages","stargazers_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/stargazers","contributors_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/contributors","subscribers_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/subscribers","subscription_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/subscription","commits_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/commits{/sha}","git_commits_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/commits{/sha}","comments_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/comments{/number}","issue_comment_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/comments{/number}","contents_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/contents/{+path}","compare_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/merges","archive_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/downloads","issues_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues{/number}","pulls_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls{/number}","milestones_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/milestones{/number}","notifications_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/labels{/name}","releases_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/releases{/id}","deployments_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/deployments","created_at":"2013-10-22T12:45:34Z","updated_at":"2017-03-24T17:33:11Z","pushed_at":"2017-06-05T14:06:19Z","git_url":"git://github.com/Metaswitch/clearwater-snmp-handlers.git","ssh_url":"git@github.com:Metaswitch/clearwater-snmp-handlers.git","clone_url":"https://github.com/Metaswitch/clearwater-snmp-handlers.git","svn_url":"https://github.com/Metaswitch/clearwater-snmp-handlers","homepage":null,"size":961,"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":9,"mirror_url":null,"open_issues_count":4,"forks":9,"open_issues":4,"watchers":0,"default_branch":"master"}},"base":{"label":"Metaswitch:master","ref":"master","sha":"2e26e37dd5a4037fc2fbbf2226d8ff5981fb5c3a","user":{"login":"Metaswitch","id":453759,"avatar_url":"https://avatars2.githubusercontent.com/u/453759?v=3","gravatar_id":"","url":"https://api.github.com/users/Metaswitch","html_url":"https://github.com/Metaswitch","followers_url":"https://api.github.com/users/Metaswitch/followers","following_url":"https://api.github.com/users/Metaswitch/following{/other_user}","gists_url":"https://api.github.com/users/Metaswitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Metaswitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Metaswitch/subscriptions","organizations_url":"https://api.github.com/users/Metaswitch/orgs","repos_url":"https://api.github.com/users/Metaswitch/repos","events_url":"https://api.github.com/users/Metaswitch/events{/privacy}","received_events_url":"https://api.github.com/users/Metaswitch/received_events","type":"Organization","site_admin":false},"repo":{"id":13772926,"name":"clearwater-snmp-handlers","full_name":"Metaswitch/clearwater-snmp-handlers","owner":{"login":"Metaswitch","id":453759,"avatar_url":"https://avatars2.githubusercontent.com/u/453759?v=3","gravatar_id":"","url":"https://api.github.com/users/Metaswitch","html_url":"https://github.com/Metaswitch","followers_url":"https://api.github.com/users/Metaswitch/followers","following_url":"https://api.github.com/users/Metaswitch/following{/other_user}","gists_url":"https://api.github.com/users/Metaswitch/gists{/gist_id}","starred_url":"https://api.github.com/users/Metaswitch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Metaswitch/subscriptions","organizations_url":"https://api.github.com/users/Metaswitch/orgs","repos_url":"https://api.github.com/users/Metaswitch/repos","events_url":"https://api.github.com/users/Metaswitch/events{/privacy}","received_events_url":"https://api.github.com/users/Metaswitch/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Metaswitch/clearwater-snmp-handlers","description":"SNMP extension modules to provide stats for Clearwater nodes","fork":false,"url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers","forks_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/forks","keys_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/teams","hooks_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/hooks","issue_events_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/events{/number}","events_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/events","assignees_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/assignees{/user}","branches_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/branches{/branch}","tags_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/tags","blobs_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/refs{/sha}","trees_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/statuses/{sha}","languages_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/languages","stargazers_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/stargazers","contributors_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/contributors","subscribers_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/subscribers","subscription_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/subscription","commits_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/commits{/sha}","git_commits_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/git/commits{/sha}","comments_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/comments{/number}","issue_comment_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/comments{/number}","contents_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/contents/{+path}","compare_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/merges","archive_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/downloads","issues_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues{/number}","pulls_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls{/number}","milestones_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/milestones{/number}","notifications_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/labels{/name}","releases_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/releases{/id}","deployments_url":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/deployments","created_at":"2013-10-22T12:45:34Z","updated_at":"2017-03-24T17:33:11Z","pushed_at":"2017-06-05T14:06:19Z","git_url":"git://github.com/Metaswitch/clearwater-snmp-handlers.git","ssh_url":"git@github.com:Metaswitch/clearwater-snmp-handlers.git","clone_url":"https://github.com/Metaswitch/clearwater-snmp-handlers.git","svn_url":"https://github.com/Metaswitch/clearwater-snmp-handlers","homepage":null,"size":961,"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":9,"mirror_url":null,"open_issues_count":4,"forks":9,"open_issues":4,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187"},"html":{"href":"https://github.com/Metaswitch/clearwater-snmp-handlers/pull/187"},"issue":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/187"},"comments":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/issues/187/comments"},"review_comments":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187/comments"},"review_comment":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/pulls/187/commits"},"statuses":{"href":"https://api.github.com/repos/Metaswitch/clearwater-snmp-handlers/statuses/3192e4cf878f87785d852b060797b4388b8dc933"}}}}
{"actor":{"display_login":"chris-elford-metaswitch"}}