GitHub PullRequestReviewCommentEvent at 2014-12-18 17:52:04
Repository: sprout
Actor: eleanor-merry
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/Metaswitch/sprout/pulls/comments/22058118","id":22058118,"diff_hunk":"@@ -0,0 +1,461 @@\n+/**\n+ * @file sprout_ent_definitions.h  Sprout ENT Log declarations.\n+ *\n+ * Project Clearwater - IMS in the Cloud\n+ * Copyright (C) 2014  Metaswitch Networks Ltd\n+ *\n+ * This program is free software: you can redistribute it and/or modify it\n+ * under the terms of the GNU General Public License as published by the\n+ * Free Software Foundation, either version 3 of the License, or (at your\n+ * option) any later version, along with the \"Special Exception\" for use of\n+ * the program along with SSL, set forth below. This program is distributed\n+ * in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n+ * without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n+ * A PARTICULAR PURPOSE.  See the GNU General Public License for more\n+ * details. You should have received a copy of the GNU General Public\n+ * License along with this program.  If not, see\n+ * <http://www.gnu.org/licenses/>.\n+ *\n+ * The author can be reached by email at clearwater@metaswitch.com or by\n+ * post at Metaswitch Networks Ltd, 100 Church St, Enfield EN2 6BQ, UK\n+ *\n+ * Special Exception\n+ * Metaswitch Networks Ltd  grants you permission to copy, modify,\n+ * propagate, and distribute a work formed by combining OpenSSL with The\n+ * Software, or a work derivative of such a combination, even if such\n+ * copying, modification, propagation, or distribution would otherwise\n+ * violate the terms of the GPL. You must comply with the GPL in all\n+ * respects for all of the code used other than OpenSSL.\n+ * \"OpenSSL\" means OpenSSL toolkit software distributed by the OpenSSL\n+ * Project and licensed under the OpenSSL Licenses, or a work based on such\n+ * software and licensed under the OpenSSL Licenses.\n+ * \"OpenSSL Licenses\" means the OpenSSL License and Original SSLeay License\n+ * under which the OpenSSL Project distributes the OpenSSL toolkit software,\n+ * as those licenses appear in the file LICENSE-OPENSSL.\n+ */\n+\n+#ifndef _SPROUT_ENT_DEFINITIONS_H__\n+#define _SPROUT_ENT_DEFINITIONS_H__\n+\n+#include <string>\n+#include \"pdlog.h\"\n+\n+\n+// Defines instances of PDLog for Sprout\n+\n+// A PDLogBase defines the base class containing:\n+//   Identity - Identifies the log id to be used in the syslog id field.\n+//   Severity - One of Emergency, Alert, Critical, Error, Warning, Notice, \n+//              and Info.  Directly corresponds to the syslog severity types.\n+//              Only Error and Notice are used.  See syslog_facade.h for \n+//              definitions.\n+//   Message - Formatted description of the condition.\n+//   Cause - The cause of the condition.\n+//   Effect - The effect the condition.\n+//   Action - A list of one or more actions to take to resolve the condition \n+//           if it is an error.\n+// The elements of the class are used to format a syslog call.\n+// The call to output to syslog is in the method,  dcealog.\n+// By default syslog limits a total syslog message size to 2048 bytes.  \n+// Anything above the limit is truncated.  The formatted message, cause, \n+// effect, and action(s) are concatenated into the syslog message.  Note, \n+// as an arbitrary convention, for more than a signle action, the actions \n+// are numbered as (1)., (2)., ...  to make the actions easier to read within \n+// the syslog message.  syslog removes extra whitespace and\n+// carriage-returns/linefeeds before inserting the complete string into a \n+// message.  Note also, the action(s) are a list of strings with all but \n+// the last string having a space character at the end.  The space makes the \n+// actions more readable.  Most of the derived classes are templates.  \n+// The paremeterized types being values that are output as a formatted string \n+// in the Message field.\n+// PDLog definitions content\n+static const PDLog1<const char*> CL_SPROUT_INVALID_S_CSCF_PORT\n+(\n+  PDLogBase::CL_SPROUT_ID + 1,\n+  PDLOG_ERR,\n+  \"The S-CSCF port specified in /etc/clearwater/config must be in a range from\"\n+  \"1 to 65535 but has a value of %s.\",\n+  \"The scscf=<port> port value is outside the permitted range.\",\n+  \"The application will exit and restart until the problem is fixed.\",\n+  \"Correct the port value.  Typically this is set to 5054.\"\n+);\n+\n+static const PDLog1<const char*> CL_SPROUT_INVALID_I_CSCF_PORT\n+(\n+  PDLogBase::CL_SPROUT_ID + 2,\n+  PDLOG_ERR,\n+  \"Fatal - The I-CSCF port specified in /etc/clearwater/config \"\n+  \"must be in a range \"\n+  \"from 1 to 65535 but has a value of %s.\",\n+  \"The icscf=<port> value is outside the permitted range.\",\n+  \"The application will exit and restart until the problem is fixed.\",\n+  \"Correct the port value.  Typically this is set to 5052.\"\n+);\n+\n+static const PDLog CL_SPROUT_INVALID_SAS_OPTION\n+(\n+  PDLogBase::CL_SPROUT_ID + 3,\n+  PDLOG_INFO,\n+  \"The sas_server option in /etc/clearwater/config is invalid \"\n+  \"or not configured.\",\n+  \"The interface to the SAS is not specified.\",\n+  \"No call traces will appear in the SAS.\",\n+  \"Set the fully qualified SAS hostname for the sas_server=<host> option. \"\n+  \"Consult the installation instructions.\"\n+);\n+\n+static const PDLog1<const char*> CL_SPROUT_CRASH\n+(\n+  PDLogBase::CL_SPROUT_ID + 4,\n+  PDLOG_ERR,\n+  \"Fatal - The application has exited or crashed with signal %s.\",\n+  \"The application has encountered a fatal software error or has \"\n+  \"been terminated.\",\n+  \"The application will restart.\",\n+  \"This error can occur if The application has been terminated by \"\n+  \"operator command. \"\n+  \"Crashes such as segment trap or bus error trap should be reported.\"\n+);\n+\n+static const PDLog CL_SPROUT_STARTED\n+(\n+  PDLogBase::CL_SPROUT_ID + 5,\n+  PDLOG_ERR,\n+  \"Application started.\",\n+  \"The application is starting.\",\n+  \"Normal.\",\n+  \"None.\"\n+);\n+\n+static const PDLog CL_SPROUT_NO_SI_CSCF\n+(\n+  PDLogBase::CL_SPROUT_ID + 6,\n+  PDLOG_ERR,\n+  \"Fatal - Must enable P-CSCF, S-CSCF or I-CSCF in /etc/clearwater/config.\",\n+  \"Neither a P-CSCF, S-CSCF nor an I-CSCF was configured in \"\n+  \"/etc/clearwater/config.\",\n+  \"The application will exit and restart until the problem is fixed.\",\n+  \"The P-CSCF is configured by setting the pcscf=<port> option. \"\n+  \"The S-CSCF is configured by setting the scscf=<port> option. \"\n+  \"The I-CSCF is configured by setting the icscf=<port> option.\"\n+);\n+\n+static const PDLog CL_SPROUT_SI_CSCF_NO_HOMESTEAD\n+(\n+  PDLogBase::CL_SPROUT_ID + 7,\n+  PDLOG_ERR,\n+  \"Fatal - S/I-CSCF enabled with no Homestead server specified in \"\n+  \"/etc/clearwater/config.\",\n+  \"The S-CSCF and/or the I-CSCF options (scscf=<port>, icscf=<port>) \"\n+  \"were configured in the /etc/clearwater/config file but no Homestead \"\n+  \"was configured in the same file.\",\n+  \"The application will exit and restart until the problem is fixed.\",\n+  \"Set the hs_hostname=<hostname> option in the \"\n+  \"/etc/clearwater/config file. \"\n+  \"Consult the installation instructions.\"\n+);\n+\n+static const PDLog CL_SPROUT_AUTH_NO_HOMESTEAD\n+(\n+  PDLogBase::CL_SPROUT_ID + 8,\n+  PDLOG_ERR,\n+  \"Fatal - Authentication enabled, but no Homestead server specified in \"\n+  \"/etc/clearwater/config.\",\n+  \"The hs_hostname was not set in the /etc/clearwater/config file.\",\n+  \"The application will exit and restart until the problem is fixed.\",\n+  \"Set the hs_hostname=<hostname> option in the \"\n+  \"/etc/clearwater/config file. \"\n+  \"Consult the installation instructions.\"\n+);\n+\n+static const PDLog CL_SPROUT_XDM_NO_HOMESTEAD\n+(\n+  PDLogBase::CL_SPROUT_ID + 9,\n+  PDLOG_ERR,\n+  \"Fatal - Homer XDM service is configured but no Homestead server specified \"\n+  \"in /etc/clearwater/config.\",\n+  \"The hs_hostname was not set in the /etc/clearwater/config file.\",\n+  \"The application will exit and restart until the problem is fixed.\",\n+  \"Set the hs_hostname=<hostname> option in the \"\n+  \"/etc/clearwater/config file. \"\n+  \"Consult the installation instructions.\"\n+);\n+\n+static const PDLog CL_SPROUT_S_CSCF_NO_CHRONOS\n+(\n+  PDLogBase::CL_SPROUT_ID + 10,\n+  PDLOG_ERR,\n+  \"Fatal - S-CSCF and I-CSCF enabled with no Chronos service specified in \"\n+  \"/etc/clearwater/config.\",\n+  \"The chronos_hostname=<host:port> was not set in /etc/clearwater/config.\",\n+  \"The application will exit and restart until the problem is fixed.\",\n+  \"Set the chronos_hostname=<host:port> option in the /etc/clearwater/config. \"\n+  \"Consult the installation instructions.\"\n+);\n+\n+static const PDLog CL_SPROUT_BAD_S_CSCF_JSON\n+(\n+  PDLogBase::CL_SPROUT_ID + 11,\n+  PDLOG_ERR,\n+  \"Fatal - Missing or malformed /etc/clearwater/s-cscf.json file.\",","path":"include/sprout_ent_definitions.h","position":200,"original_position":200,"commit_id":"7ecd0f7e7a0b47bb3c8c9beabfb4cc09b2a5cd0b","original_commit_id":"7ecd0f7e7a0b47bb3c8c9beabfb4cc09b2a5cd0b","user":{"login":"eleanor-merry","id":5425325,"avatar_url":"https://avatars.githubusercontent.com/u/5425325?v=3","gravatar_id":"","url":"https://api.github.com/users/eleanor-merry","html_url":"https://github.com/eleanor-merry","followers_url":"https://api.github.com/users/eleanor-merry/followers","following_url":"https://api.github.com/users/eleanor-merry/following{/other_user}","gists_url":"https://api.github.com/users/eleanor-merry/gists{/gist_id}","starred_url":"https://api.github.com/users/eleanor-merry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eleanor-merry/subscriptions","organizations_url":"https://api.github.com/users/eleanor-merry/orgs","repos_url":"https://api.github.com/users/eleanor-merry/repos","events_url":"https://api.github.com/users/eleanor-merry/events{/privacy}","received_events_url":"https://api.github.com/users/eleanor-merry/received_events","type":"User","site_admin":false},"body":"I'd like to make it clearer that this is only an error on the I-CSCF, and it stops the I-CSCF from selecting an S-CSCF for a subscriber (e.g. 'The s-cscf.json file must be corrected or created to allow the I-CSCF to select an S-CSCF for a subscriber). \r\n\r\nAlso, the application won't restart - the user must correct the file and then run service sprout reload (which doesn't affect service) to pick up the changes","created_at":"2014-12-18T17:52:04Z","updated_at":"2014-12-18T17:52:04Z","html_url":"https://github.com/Metaswitch/sprout/pull/895#discussion_r22058118","pull_request_url":"https://api.github.com/repos/Metaswitch/sprout/pulls/895","_links":{"self":{"href":"https://api.github.com/repos/Metaswitch/sprout/pulls/comments/22058118"},"html":{"href":"https://github.com/Metaswitch/sprout/pull/895#discussion_r22058118"},"pull_request":{"href":"https://api.github.com/repos/Metaswitch/sprout/pulls/895"}}},"pull_request":{"url":"https://api.github.com/repos/Metaswitch/sprout/pulls/895","id":25854446,"html_url":"https://github.com/Metaswitch/sprout/pull/895","diff_url":"https://github.com/Metaswitch/sprout/pull/895.diff","patch_url":"https://github.com/Metaswitch/sprout/pull/895.patch","issue_url":"https://api.github.com/repos/Metaswitch/sprout/issues/895","number":895,"state":"open","locked":false,"title":"Cc pdlogs 61","user":{"login":"dcollins991","id":5972990,"avatar_url":"https://avatars.githubusercontent.com/u/5972990?v=3","gravatar_id":"","url":"https://api.github.com/users/dcollins991","html_url":"https://github.com/dcollins991","followers_url":"https://api.github.com/users/dcollins991/followers","following_url":"https://api.github.com/users/dcollins991/following{/other_user}","gists_url":"https://api.github.com/users/dcollins991/gists{/gist_id}","starred_url":"https://api.github.com/users/dcollins991/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dcollins991/subscriptions","organizations_url":"https://api.github.com/users/dcollins991/orgs","repos_url":"https://api.github.com/users/dcollins991/repos","events_url":"https://api.github.com/users/dcollins991/events{/privacy}","received_events_url":"https://api.github.com/users/dcollins991/received_events","type":"User","site_admin":false},"body":"Updated after review comments for the ENT feature.  \r\nModified the messages to capitalize acronyms.  \r\nRemoved unnecessary whitespace.  \r\nAdded full stop to end of each part of the message.  \r\nActions are numbered if there is more than one action.  This separates the individual actions.\r\nSeparated the log definitions with a blank line to make them more readable.  \r\nRan astyle (according to the coding standards) against sprout_ent_definitions.h.\r\nFixed header file inconsistencies.\r\nThe review comment had: \"A lot of the logs still say 'report issue to support' or something similar. This just isn't suitable for Project Clearwater.\"\r\nThe language was kept the same as this is what is done for the SNMP alarm definitions.  The associated documentation should identify the Metaswitch support team for ClearwaterCore and the Clearwater mailing list for Clearwater.\r\nRemoved signalnames.cpp.  The signal call name is now obtained from the strsignal call.","created_at":"2014-12-10T20:56:01Z","updated_at":"2014-12-18T17:52:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"875469b1f3b53d1eb0e26d407b7fa8f01847fec6","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Metaswitch/sprout/pulls/895/commits","review_comments_url":"https://api.github.com/repos/Metaswitch/sprout/pulls/895/comments","review_comment_url":"https://api.github.com/repos/Metaswitch/sprout/pulls/comments/{number}","comments_url":"https://api.github.com/repos/Metaswitch/sprout/issues/895/comments","statuses_url":"https://api.github.com/repos/Metaswitch/sprout/statuses/7ecd0f7e7a0b47bb3c8c9beabfb4cc09b2a5cd0b","head":{"label":"ClearwaterCore:CC_pdlogs-61","ref":"CC_pdlogs-61","sha":"7ecd0f7e7a0b47bb3c8c9beabfb4cc09b2a5cd0b","user":{"login":"ClearwaterCore","id":8322727,"avatar_url":"https://avatars.githubusercontent.com/u/8322727?v=3","gravatar_id":"","url":"https://api.github.com/users/ClearwaterCore","html_url":"https://github.com/ClearwaterCore","followers_url":"https://api.github.com/users/ClearwaterCore/followers","following_url":"https://api.github.com/users/ClearwaterCore/following{/other_user}","gists_url":"https://api.github.com/users/ClearwaterCore/gists{/gist_id}","starred_url":"https://api.github.com/users/ClearwaterCore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ClearwaterCore/subscriptions","organizations_url":"https://api.github.com/users/ClearwaterCore/orgs","repos_url":"https://api.github.com/users/ClearwaterCore/repos","events_url":"https://api.github.com/users/ClearwaterCore/events{/privacy}","received_events_url":"https://api.github.com/users/ClearwaterCore/received_events","type":"Organization","site_admin":false},"repo":{"id":22439051,"name":"sprout","full_name":"ClearwaterCore/sprout","owner":{"login":"ClearwaterCore","id":8322727,"avatar_url":"https://avatars.githubusercontent.com/u/8322727?v=3","gravatar_id":"","url":"https://api.github.com/users/ClearwaterCore","html_url":"https://github.com/ClearwaterCore","followers_url":"https://api.github.com/users/ClearwaterCore/followers","following_url":"https://api.github.com/users/ClearwaterCore/following{/other_user}","gists_url":"https://api.github.com/users/ClearwaterCore/gists{/gist_id}","starred_url":"https://api.github.com/users/ClearwaterCore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ClearwaterCore/subscriptions","organizations_url":"https://api.github.com/users/ClearwaterCore/orgs","repos_url":"https://api.github.com/users/ClearwaterCore/repos","events_url":"https://api.github.com/users/ClearwaterCore/events{/privacy}","received_events_url":"https://api.github.com/users/ClearwaterCore/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ClearwaterCore/sprout","description":"sprout and bono, the Clearwater SIP router and edge proxy","fork":true,"url":"https://api.github.com/repos/ClearwaterCore/sprout","forks_url":"https://api.github.com/repos/ClearwaterCore/sprout/forks","keys_url":"https://api.github.com/repos/ClearwaterCore/sprout/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ClearwaterCore/sprout/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ClearwaterCore/sprout/teams","hooks_url":"https://api.github.com/repos/ClearwaterCore/sprout/hooks","issue_events_url":"https://api.github.com/repos/ClearwaterCore/sprout/issues/events{/number}","events_url":"https://api.github.com/repos/ClearwaterCore/sprout/events","assignees_url":"https://api.github.com/repos/ClearwaterCore/sprout/assignees{/user}","branches_url":"https://api.github.com/repos/ClearwaterCore/sprout/branches{/branch}","tags_url":"https://api.github.com/repos/ClearwaterCore/sprout/tags","blobs_url":"https://api.github.com/repos/ClearwaterCore/sprout/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ClearwaterCore/sprout/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ClearwaterCore/sprout/git/refs{/sha}","trees_url":"https://api.github.com/repos/ClearwaterCore/sprout/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ClearwaterCore/sprout/statuses/{sha}","languages_url":"https://api.github.com/repos/ClearwaterCore/sprout/languages","stargazers_url":"https://api.github.com/repos/ClearwaterCore/sprout/stargazers","contributors_url":"https://api.github.com/repos/ClearwaterCore/sprout/contributors","subscribers_url":"https://api.github.com/repos/ClearwaterCore/sprout/subscribers","subscription_url":"https://api.github.com/repos/ClearwaterCore/sprout/subscription","commits_url":"https://api.github.com/repos/ClearwaterCore/sprout/commits{/sha}","git_commits_url":"https://api.github.com/repos/ClearwaterCore/sprout/git/commits{/sha}","comments_url":"https://api.github.com/repos/ClearwaterCore/sprout/comments{/number}","issue_comment_url":"https://api.github.com/repos/ClearwaterCore/sprout/issues/comments/{number}","contents_url":"https://api.github.com/repos/ClearwaterCore/sprout/contents/{+path}","compare_url":"https://api.github.com/repos/ClearwaterCore/sprout/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ClearwaterCore/sprout/merges","archive_url":"https://api.github.com/repos/ClearwaterCore/sprout/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ClearwaterCore/sprout/downloads","issues_url":"https://api.github.com/repos/ClearwaterCore/sprout/issues{/number}","pulls_url":"https://api.github.com/repos/ClearwaterCore/sprout/pulls{/number}","milestones_url":"https://api.github.com/repos/ClearwaterCore/sprout/milestones{/number}","notifications_url":"https://api.github.com/repos/ClearwaterCore/sprout/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ClearwaterCore/sprout/labels{/name}","releases_url":"https://api.github.com/repos/ClearwaterCore/sprout/releases{/id}","created_at":"2014-07-30T18:02:58Z","updated_at":"2014-08-01T16:12:57Z","pushed_at":"2014-12-18T15:18:33Z","git_url":"git://github.com/ClearwaterCore/sprout.git","ssh_url":"git@github.com:ClearwaterCore/sprout.git","clone_url":"https://github.com/ClearwaterCore/sprout.git","svn_url":"https://github.com/ClearwaterCore/sprout","homepage":null,"size":24383,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"dev"}},"base":{"label":"Metaswitch:dev","ref":"dev","sha":"e17c33a53689f3c43dfe299f1fdaf856c6cc7a62","user":{"login":"Metaswitch","id":453759,"avatar_url":"https://avatars.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":9887542,"name":"sprout","full_name":"Metaswitch/sprout","owner":{"login":"Metaswitch","id":453759,"avatar_url":"https://avatars.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/sprout","description":"sprout and bono, the Clearwater SIP router and edge proxy","fork":false,"url":"https://api.github.com/repos/Metaswitch/sprout","forks_url":"https://api.github.com/repos/Metaswitch/sprout/forks","keys_url":"https://api.github.com/repos/Metaswitch/sprout/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Metaswitch/sprout/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Metaswitch/sprout/teams","hooks_url":"https://api.github.com/repos/Metaswitch/sprout/hooks","issue_events_url":"https://api.github.com/repos/Metaswitch/sprout/issues/events{/number}","events_url":"https://api.github.com/repos/Metaswitch/sprout/events","assignees_url":"https://api.github.com/repos/Metaswitch/sprout/assignees{/user}","branches_url":"https://api.github.com/repos/Metaswitch/sprout/branches{/branch}","tags_url":"https://api.github.com/repos/Metaswitch/sprout/tags","blobs_url":"https://api.github.com/repos/Metaswitch/sprout/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Metaswitch/sprout/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Metaswitch/sprout/git/refs{/sha}","trees_url":"https://api.github.com/repos/Metaswitch/sprout/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Metaswitch/sprout/statuses/{sha}","languages_url":"https://api.github.com/repos/Metaswitch/sprout/languages","stargazers_url":"https://api.github.com/repos/Metaswitch/sprout/stargazers","contributors_url":"https://api.github.com/repos/Metaswitch/sprout/contributors","subscribers_url":"https://api.github.com/repos/Metaswitch/sprout/subscribers","subscription_url":"https://api.github.com/repos/Metaswitch/sprout/subscription","commits_url":"https://api.github.com/repos/Metaswitch/sprout/commits{/sha}","git_commits_url":"https://api.github.com/repos/Metaswitch/sprout/git/commits{/sha}","comments_url":"https://api.github.com/repos/Metaswitch/sprout/comments{/number}","issue_comment_url":"https://api.github.com/repos/Metaswitch/sprout/issues/comments/{number}","contents_url":"https://api.github.com/repos/Metaswitch/sprout/contents/{+path}","compare_url":"https://api.github.com/repos/Metaswitch/sprout/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Metaswitch/sprout/merges","archive_url":"https://api.github.com/repos/Metaswitch/sprout/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Metaswitch/sprout/downloads","issues_url":"https://api.github.com/repos/Metaswitch/sprout/issues{/number}","pulls_url":"https://api.github.com/repos/Metaswitch/sprout/pulls{/number}","milestones_url":"https://api.github.com/repos/Metaswitch/sprout/milestones{/number}","notifications_url":"https://api.github.com/repos/Metaswitch/sprout/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Metaswitch/sprout/labels{/name}","releases_url":"https://api.github.com/repos/Metaswitch/sprout/releases{/id}","created_at":"2013-05-06T13:37:07Z","updated_at":"2014-12-17T15:50:53Z","pushed_at":"2014-12-18T17:10:38Z","git_url":"git://github.com/Metaswitch/sprout.git","ssh_url":"git@github.com:Metaswitch/sprout.git","clone_url":"https://github.com/Metaswitch/sprout.git","svn_url":"https://github.com/Metaswitch/sprout","homepage":null,"size":31104,"stargazers_count":12,"watchers_count":12,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":19,"mirror_url":null,"open_issues_count":82,"forks":19,"open_issues":82,"watchers":12,"default_branch":"dev"}},"_links":{"self":{"href":"https://api.github.com/repos/Metaswitch/sprout/pulls/895"},"html":{"href":"https://github.com/Metaswitch/sprout/pull/895"},"issue":{"href":"https://api.github.com/repos/Metaswitch/sprout/issues/895"},"comments":{"href":"https://api.github.com/repos/Metaswitch/sprout/issues/895/comments"},"review_comments":{"href":"https://api.github.com/repos/Metaswitch/sprout/pulls/895/comments"},"review_comment":{"href":"https://api.github.com/repos/Metaswitch/sprout/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/Metaswitch/sprout/pulls/895/commits"},"statuses":{"href":"https://api.github.com/repos/Metaswitch/sprout/statuses/7ecd0f7e7a0b47bb3c8c9beabfb4cc09b2a5cd0b"}}}}