{"action":"created","comment":{"url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/comments/67347542","id":67347542,"diff_hunk":"@@ -0,0 +1,243 @@\n+# RESTful Service Specifications\n+\n+The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\",\n+\"SHOULD NOT\", \"RECOMMENDED\",  \"MAY\", and \"OPTIONAL\" in this document are to be\n+interpreted as described in [RFC 2119](https://www.ietf.org/rfc/rfc2119.txt).\n+\n+## Goals\n+\n+ - Uniformity between data-centric APIs and remote procedure APIs\n+ - Use of pre-existing standards/conventions when possible\n+ - Minimization of bike-shedding\n+\n+Standards/Conventions used as inspiration:\n+ - [Whitehouse API Standards](https://github.com/WhiteHouse/api-standards)\n+  - RESTful URLs\n+ - [Spring Data REST](http://docs.spring.io/spring-data/rest/docs/current/reference/html/)\n+  - paging conventions\n+  - uses [JSON HAL](https://tools.ietf.org/html/draft-kelly-json-hal-08)\n+ - [JSend](http://labs.omniti.com/labs/jsend)\n+  - API response conventions\n+\n+## URIs\n+\n+The APIs shall be versioned per entity.\n+The APIs shall be versioned with a major version only.\n+Multiple versions of an API may be supported.\n+\n+The base URI for an entity must include a version.\n+\n+The base URI for a given resource type is based on the *singular* name of the\n+resource and the API version. Example:\n+\n+    https://example.com/rest/user/v1\n+\n+## Operations Against a Resource Type\n+\n+The following operations may be supported:\n+\n+| HTTP Operation | Description            | Query Parameters              | Request Body | Response Body  |\n+|----------------|------------------------|-------------------------------|--------------|----------------|\n+| `POST`         | Create new resource(s) | -                             | JSON array   | -              |\n+| `PUT`          | Replace resource(s)    | -                             | JSON array   | -              |\n+| `PATCH`        | Update Resource(s)     | -                             | JSON array   | -              |\n+| `GET`          | List resource(s)       | `fields`,`page`,`size`,`sort` | -            | paginated list |\n+| `DELETE`       | Delete ALL resources   | -                             | -            | -              |\n+\n+Endpoints may not support all methods (i.e. a service may provide read-only\n+access to a resource, or a service may not support certain operations for\n+performance or other considerations; for example, `GET` may not be supported\n+for `user` if listing all users is disallowed for performance reasons.\n+\n+## Operations Against Specific Resources\n+Specific resources will be addressed through the base URI plus the identifier\n+for that resource.\n+\n+    /user/{id}\n+\n+The following operations may be supported:\n+\n+| HTTP Operation | Description                   | Query Parameters | Request Body | Response Body |\n+|----------------|-------------------------------|------------------|--------------|---------------|\n+| `GET`          | Retrieve the resource         | `fields`         | -            | JSON object   |\n+| `PUT`          | Replace the existing resource | -                | JSON object  | -             |\n+| `PATCH`        | Update an existing resource   | -                | JSON object  | -             |\n+| `DELETE`       | Delete the resource           | -                | -            | -             |\n+\n+Clients should use the `fields` parameter for better performance.\n+\n+Implementors should consider breaking out field represented by a JSON array\n+into sub-entities if there are performance concerns around its size. This\n+consideration should happen regardless of how the data is stored.\n+\n+## Pagination\n+\n+Paging shall be implemented via `page` and `size` query parameters. If none are\n+provided, the default page size shall be used.\n+\n+The default page-size is implementation-specific.\n+\n+| Parameter | Description               |\n+|-----------|---------------------------|\n+| `page`    | page index, starting at 0 |\n+| `size`    | page size                 |\n+\n+## Sorting\n+\n+Sorting shall be provided via the `sort` query parameter. `sort` may be\n+specified more than once in order to sort by more than one field. `sort` values\n+shall be of the form `sort={field}(,{direction})` where `direction` is `asc` or\n+`desc`.\n+\n+### Responses\n+\n+The response shall be a JSON object formatted according to Spring Data REST\n+conventions.Specifically, the list is returned as a pluralized field name\n+under `_embedded`, and a `page` object supplies paging info. Example:\n+\n+```json\n+GET /user\n+\n+{\n+  \"_embedded\": {\n+    \"users\": [\n+      {\n+        ...\n+      },\n+      ...\n+    ]\n+  },\n+  \"page\": {\n+    \"size\": 20,\n+    \"totalElements\": 200,\n+    \"totalPages\": 10,\n+    \"number\": 0\n+  }\n+}\n+```\n+\n+## Additional Functions\n+\n+Additional APIs may expose other functionality related to a resource type.\n+Examples include:\n+ - query for a specific subset of resources\n+ - perform an action against a set of resources\n+\n+Additional functions shall be `POST` only, and parameters will be provided in\n+the request body. The request body SHOULD be a JSON object with fields\n+corresponding to parameter names.\n+Examples:\n+\n+```json\n+POST /user/findByLogin\n+\n+{\n+  \"login\": \"bob\"\n+}\n+```\n+\n+Each function that can be performed against a specific resource must exist in\n+two forms:\n+ - non-batch\n+ - batch\n+\n+The non-batch form shall take any relevant parameters in a JSON object. Example:\n+\n+```json\n+POST /user/123/deactivate\n+\n+{\n+  \"reason\": \"Banned\"\n+}\n+```\n+\n+The batch form shall take a JSON array of objects, with each object having the\n+identifier as an additional field. Example:\n+\n+```json\n+POST /user/deactivate\n+\n+[\n+  {\n+    \"id\": 123,\n+    \"reason\": \"Banned\"\n+  },\n+  {\n+    \"id\": 456,\n+    \"reason\": \"Banned\"\n+  }\n+]\n+```\n+\n+Responses for functions shall follow [JSend](http://labs.omniti.com/labs/jsend)\n+conventions:\n+ - Responses must be JSON objects\n+ - `status` field shall tell whether the function call was successful\n+  - possible values: `success`, `fail`, `error`","path":"rest_specification/restful_service_specification.md","position":176,"original_position":176,"commit_id":"01aa66eb2eabd491c36406e81575b2f995835aba","original_commit_id":"01aa66eb2eabd491c36406e81575b2f995835aba","user":{"login":"kahowell","id":1716882,"avatar_url":"https://avatars.githubusercontent.com/u/1716882?v=3","gravatar_id":"","url":"https://api.github.com/users/kahowell","html_url":"https://github.com/kahowell","followers_url":"https://api.github.com/users/kahowell/followers","following_url":"https://api.github.com/users/kahowell/following{/other_user}","gists_url":"https://api.github.com/users/kahowell/gists{/gist_id}","starred_url":"https://api.github.com/users/kahowell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kahowell/subscriptions","organizations_url":"https://api.github.com/users/kahowell/orgs","repos_url":"https://api.github.com/users/kahowell/repos","events_url":"https://api.github.com/users/kahowell/events{/privacy}","received_events_url":"https://api.github.com/users/kahowell/received_events","type":"User","site_admin":false},"body":"See above comment w/ proposal.","created_at":"2016-06-16T13:52:43Z","updated_at":"2016-06-16T13:52:43Z","html_url":"https://github.com/lightblue-platform/lightblue-docs-specs/pull/43#discussion_r67347542","pull_request_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43","_links":{"self":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/comments/67347542"},"html":{"href":"https://github.com/lightblue-platform/lightblue-docs-specs/pull/43#discussion_r67347542"},"pull_request":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43"}}},"pull_request":{"url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43","id":71737169,"html_url":"https://github.com/lightblue-platform/lightblue-docs-specs/pull/43","diff_url":"https://github.com/lightblue-platform/lightblue-docs-specs/pull/43.diff","patch_url":"https://github.com/lightblue-platform/lightblue-docs-specs/pull/43.patch","issue_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/issues/43","number":43,"state":"open","locked":false,"title":"Add RESTful services spec","user":{"login":"kahowell","id":1716882,"avatar_url":"https://avatars.githubusercontent.com/u/1716882?v=3","gravatar_id":"","url":"https://api.github.com/users/kahowell","html_url":"https://github.com/kahowell","followers_url":"https://api.github.com/users/kahowell/followers","following_url":"https://api.github.com/users/kahowell/following{/other_user}","gists_url":"https://api.github.com/users/kahowell/gists{/gist_id}","starred_url":"https://api.github.com/users/kahowell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kahowell/subscriptions","organizations_url":"https://api.github.com/users/kahowell/orgs","repos_url":"https://api.github.com/users/kahowell/repos","events_url":"https://api.github.com/users/kahowell/events{/privacy}","received_events_url":"https://api.github.com/users/kahowell/received_events","type":"User","site_admin":false},"body":"This is intended to cover both data and non-data services, and provide\r\nsome consistency between the two.\r\n\r\nPlease take a look; poke holes/discuss/disagree. Feel free to create other PRs based off this one, etc.\r\n\r\nIf anyone cares strongly enough, I can move this to a separate repo.\r\n\r\nTagging: @snehagunta @BVulaj @jewzaam @dcrissman @bserdar @paterczm @derek63 @alechenninger @bdmiller3 @macgregor @kahoali\r\n\r\nPlease tag others if you'd like.","created_at":"2016-05-27T16:10:24Z","updated_at":"2016-06-16T13:52:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5b9887bf1ed7430d705ee9055de027160f6ac906","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43/commits","review_comments_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43/comments","review_comment_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/issues/43/comments","statuses_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/statuses/01aa66eb2eabd491c36406e81575b2f995835aba","head":{"label":"kahowell:master","ref":"master","sha":"01aa66eb2eabd491c36406e81575b2f995835aba","user":{"login":"kahowell","id":1716882,"avatar_url":"https://avatars.githubusercontent.com/u/1716882?v=3","gravatar_id":"","url":"https://api.github.com/users/kahowell","html_url":"https://github.com/kahowell","followers_url":"https://api.github.com/users/kahowell/followers","following_url":"https://api.github.com/users/kahowell/following{/other_user}","gists_url":"https://api.github.com/users/kahowell/gists{/gist_id}","starred_url":"https://api.github.com/users/kahowell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kahowell/subscriptions","organizations_url":"https://api.github.com/users/kahowell/orgs","repos_url":"https://api.github.com/users/kahowell/repos","events_url":"https://api.github.com/users/kahowell/events{/privacy}","received_events_url":"https://api.github.com/users/kahowell/received_events","type":"User","site_admin":false},"repo":{"id":59846731,"name":"lightblue-docs-specs","full_name":"kahowell/lightblue-docs-specs","owner":{"login":"kahowell","id":1716882,"avatar_url":"https://avatars.githubusercontent.com/u/1716882?v=3","gravatar_id":"","url":"https://api.github.com/users/kahowell","html_url":"https://github.com/kahowell","followers_url":"https://api.github.com/users/kahowell/followers","following_url":"https://api.github.com/users/kahowell/following{/other_user}","gists_url":"https://api.github.com/users/kahowell/gists{/gist_id}","starred_url":"https://api.github.com/users/kahowell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kahowell/subscriptions","organizations_url":"https://api.github.com/users/kahowell/orgs","repos_url":"https://api.github.com/users/kahowell/repos","events_url":"https://api.github.com/users/kahowell/events{/privacy}","received_events_url":"https://api.github.com/users/kahowell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kahowell/lightblue-docs-specs","description":"All specifications for lightblue.","fork":true,"url":"https://api.github.com/repos/kahowell/lightblue-docs-specs","forks_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/forks","keys_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/teams","hooks_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/hooks","issue_events_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/issues/events{/number}","events_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/events","assignees_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/assignees{/user}","branches_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/branches{/branch}","tags_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/tags","blobs_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/git/refs{/sha}","trees_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/statuses/{sha}","languages_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/languages","stargazers_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/stargazers","contributors_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/contributors","subscribers_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/subscribers","subscription_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/subscription","commits_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/commits{/sha}","git_commits_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/git/commits{/sha}","comments_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/comments{/number}","issue_comment_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/issues/comments{/number}","contents_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/contents/{+path}","compare_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/merges","archive_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/downloads","issues_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/issues{/number}","pulls_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/pulls{/number}","milestones_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/milestones{/number}","notifications_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/labels{/name}","releases_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/releases{/id}","deployments_url":"https://api.github.com/repos/kahowell/lightblue-docs-specs/deployments","created_at":"2016-05-27T16:01:29Z","updated_at":"2016-01-26T14:18:38Z","pushed_at":"2016-06-09T14:56:11Z","git_url":"git://github.com/kahowell/lightblue-docs-specs.git","ssh_url":"git@github.com:kahowell/lightblue-docs-specs.git","clone_url":"https://github.com/kahowell/lightblue-docs-specs.git","svn_url":"https://github.com/kahowell/lightblue-docs-specs","homepage":null,"size":320,"stargazers_count":0,"watchers_count":0,"language":null,"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":"master"}},"base":{"label":"lightblue-platform:master","ref":"master","sha":"ae299c4e17b55e9e2df352678ce49284609de258","user":{"login":"lightblue-platform","id":7061725,"avatar_url":"https://avatars.githubusercontent.com/u/7061725?v=3","gravatar_id":"","url":"https://api.github.com/users/lightblue-platform","html_url":"https://github.com/lightblue-platform","followers_url":"https://api.github.com/users/lightblue-platform/followers","following_url":"https://api.github.com/users/lightblue-platform/following{/other_user}","gists_url":"https://api.github.com/users/lightblue-platform/gists{/gist_id}","starred_url":"https://api.github.com/users/lightblue-platform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lightblue-platform/subscriptions","organizations_url":"https://api.github.com/users/lightblue-platform/orgs","repos_url":"https://api.github.com/users/lightblue-platform/repos","events_url":"https://api.github.com/users/lightblue-platform/events{/privacy}","received_events_url":"https://api.github.com/users/lightblue-platform/received_events","type":"Organization","site_admin":false},"repo":{"id":30427488,"name":"lightblue-docs-specs","full_name":"lightblue-platform/lightblue-docs-specs","owner":{"login":"lightblue-platform","id":7061725,"avatar_url":"https://avatars.githubusercontent.com/u/7061725?v=3","gravatar_id":"","url":"https://api.github.com/users/lightblue-platform","html_url":"https://github.com/lightblue-platform","followers_url":"https://api.github.com/users/lightblue-platform/followers","following_url":"https://api.github.com/users/lightblue-platform/following{/other_user}","gists_url":"https://api.github.com/users/lightblue-platform/gists{/gist_id}","starred_url":"https://api.github.com/users/lightblue-platform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lightblue-platform/subscriptions","organizations_url":"https://api.github.com/users/lightblue-platform/orgs","repos_url":"https://api.github.com/users/lightblue-platform/repos","events_url":"https://api.github.com/users/lightblue-platform/events{/privacy}","received_events_url":"https://api.github.com/users/lightblue-platform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/lightblue-platform/lightblue-docs-specs","description":"All specifications for lightblue.","fork":false,"url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs","forks_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/forks","keys_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/teams","hooks_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/hooks","issue_events_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/issues/events{/number}","events_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/events","assignees_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/assignees{/user}","branches_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/branches{/branch}","tags_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/tags","blobs_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/git/refs{/sha}","trees_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/statuses/{sha}","languages_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/languages","stargazers_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/stargazers","contributors_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/contributors","subscribers_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/subscribers","subscription_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/subscription","commits_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/commits{/sha}","git_commits_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/git/commits{/sha}","comments_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/comments{/number}","issue_comment_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/issues/comments{/number}","contents_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/contents/{+path}","compare_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/merges","archive_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/downloads","issues_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/issues{/number}","pulls_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls{/number}","milestones_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/milestones{/number}","notifications_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/labels{/name}","releases_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/releases{/id}","deployments_url":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/deployments","created_at":"2015-02-06T18:48:31Z","updated_at":"2016-01-26T14:18:38Z","pushed_at":"2016-06-09T14:56:12Z","git_url":"git://github.com/lightblue-platform/lightblue-docs-specs.git","ssh_url":"git@github.com:lightblue-platform/lightblue-docs-specs.git","clone_url":"https://github.com/lightblue-platform/lightblue-docs-specs.git","svn_url":"https://github.com/lightblue-platform/lightblue-docs-specs","homepage":null,"size":325,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"open_issues_count":15,"forks":9,"open_issues":15,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43"},"html":{"href":"https://github.com/lightblue-platform/lightblue-docs-specs/pull/43"},"issue":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/issues/43"},"comments":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/issues/43/comments"},"review_comments":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43/comments"},"review_comment":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/pulls/43/commits"},"statuses":{"href":"https://api.github.com/repos/lightblue-platform/lightblue-docs-specs/statuses/01aa66eb2eabd491c36406e81575b2f995835aba"}}}}
{"actor":{"display_login":"kahowell"}}