{"action":"created","comment":{"url":"https://api.github.com/repos/reflectoring/infiniboard/pulls/comments/73052474","id":73052474,"diff_hunk":"@@ -0,0 +1,86 @@\n+package com.github.reflectoring.infiniboard.quartermaster.widget.rest;\n+\n+import java.util.List;\n+\n+import org.springframework.beans.factory.annotation.Autowired;\n+import org.springframework.data.domain.Page;\n+import org.springframework.data.domain.Pageable;\n+import org.springframework.data.web.PageableDefault;\n+import org.springframework.data.web.PagedResourcesAssembler;\n+import org.springframework.hateoas.PagedResources;\n+import org.springframework.http.ResponseEntity;\n+import org.springframework.web.bind.annotation.PathVariable;\n+import org.springframework.web.bind.annotation.RequestBody;\n+import org.springframework.web.bind.annotation.RequestMapping;\n+import org.springframework.web.bind.annotation.RestController;\n+\n+import com.github.reflectoring.infiniboard.packrat.source.SourceData;\n+import com.github.reflectoring.infiniboard.packrat.widget.WidgetConfig;\n+import com.github.reflectoring.infiniboard.packrat.widget.WidgetConfigRepository;\n+import com.github.reflectoring.infiniboard.quartermaster.widget.domain.WidgetConfigService;\n+\n+import static org.springframework.http.HttpStatus.NOT_FOUND;\n+import static org.springframework.http.HttpStatus.OK;\n+import static org.springframework.web.bind.annotation.RequestMethod.GET;\n+import static org.springframework.web.bind.annotation.RequestMethod.POST;\n+\n+@RestController\n+@RequestMapping(\"/api/dashboards/{dashboardId}/widgets\")\n+public class WidgetController {\n+\n+    private WidgetConfigService widgetService;\n+\n+    private WidgetConfigRepository widgetConfigRepository;\n+\n+    @Autowired\n+    public WidgetController(WidgetConfigService widgetService, WidgetConfigRepository widgetConfigRepository) {\n+        this.widgetService = widgetService;\n+        this.widgetConfigRepository = widgetConfigRepository;\n+    }\n+\n+    @RequestMapping(value = \"/{widgetId}\", method = GET)\n+    public ResponseEntity<WidgetConfigResource> getWidget(@PathVariable Integer dashboardId,\n+                                                          @PathVariable String widgetId) {\n+        WidgetConfig widgetConfig = widgetService.loadWidget(widgetId);\n+\n+        if (widgetConfig == null) {\n+            return new ResponseEntity<>(NOT_FOUND);\n+        }\n+\n+        WidgetConfigResourceAssembler assembler = new WidgetConfigResourceAssembler(dashboardId);\n+        WidgetConfigResource          resource  = assembler.toResource(widgetConfig);\n+        return new ResponseEntity<>(resource, OK);\n+    }\n+\n+    @RequestMapping(method = POST)\n+    public ResponseEntity<WidgetConfigResource> createWidget(@PathVariable Integer dashboardId,\n+                                                             @RequestBody WidgetConfigResource widgetConfigResource) {\n+        WidgetConfigResourceAssembler assembler = new WidgetConfigResourceAssembler(dashboardId);\n+        WidgetConfig createdWidgetConfig =\n+                widgetService.saveWidget(assembler.toEntity(widgetConfigResource));\n+        WidgetConfigResource resource = assembler.toResource(createdWidgetConfig);\n+        return new ResponseEntity<>(resource, OK);\n+    }\n+\n+    @RequestMapping(value = \"/{widgetId}/data\", method = GET)\n+    public ResponseEntity<SourceDataResource> getData(@PathVariable Integer dashboardId,\n+                                                      @PathVariable String widgetId) {\n+        SourceDataResourceAssembler assembler = new SourceDataResourceAssembler(dashboardId, widgetId);\n+        List<SourceData>            data      = widgetService.getData(widgetId);\n+        SourceDataResource          resource  = assembler.toResource(data);\n+        return new ResponseEntity<>(resource, OK);\n+    }\n+\n+    @SuppressWarnings(\"unchecked\")\n+    @RequestMapping(method = GET)\n+    public ResponseEntity<PagedResources<WidgetConfigResource>> getWidgets(@PathVariable Integer dashboardId,","path":"quartermaster/src/main/java/com/github/reflectoring/infiniboard/quartermaster/widget/rest/WidgetController.java","position":76,"original_position":76,"commit_id":"86b1149c246e265659150f18c9564434ccf13c3b","original_commit_id":"86b1149c246e265659150f18c9564434ccf13c3b","user":{"login":"matthiasbalke","id":91990,"avatar_url":"https://avatars.githubusercontent.com/u/91990?v=3","gravatar_id":"","url":"https://api.github.com/users/matthiasbalke","html_url":"https://github.com/matthiasbalke","followers_url":"https://api.github.com/users/matthiasbalke/followers","following_url":"https://api.github.com/users/matthiasbalke/following{/other_user}","gists_url":"https://api.github.com/users/matthiasbalke/gists{/gist_id}","starred_url":"https://api.github.com/users/matthiasbalke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthiasbalke/subscriptions","organizations_url":"https://api.github.com/users/matthiasbalke/orgs","repos_url":"https://api.github.com/users/matthiasbalke/repos","events_url":"https://api.github.com/users/matthiasbalke/events{/privacy}","received_events_url":"https://api.github.com/users/matthiasbalke/received_events","type":"User","site_admin":false},"body":"![MINOR](https://raw.githubusercontent.com/SonarCommunity/sonar-github/master/images/severity-minor.png) Document this public method. [![rule](https://raw.githubusercontent.com/SonarCommunity/sonar-github/master/images/rule.png)](https://sonarqube.com/coding_rules#rule_key=squid%3AUndocumentedApi)\n","created_at":"2016-08-01T21:03:04Z","updated_at":"2016-08-01T21:03:04Z","html_url":"https://github.com/reflectoring/infiniboard/pull/103#discussion_r73052474","pull_request_url":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103","_links":{"self":{"href":"https://api.github.com/repos/reflectoring/infiniboard/pulls/comments/73052474"},"html":{"href":"https://github.com/reflectoring/infiniboard/pull/103#discussion_r73052474"},"pull_request":{"href":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103"}}},"pull_request":{"url":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103","id":79625512,"html_url":"https://github.com/reflectoring/infiniboard/pull/103","diff_url":"https://github.com/reflectoring/infiniboard/pull/103.diff","patch_url":"https://github.com/reflectoring/infiniboard/pull/103.patch","issue_url":"https://api.github.com/repos/reflectoring/infiniboard/issues/103","number":103,"state":"open","locked":false,"title":"added support for HATEOAS","user":{"login":"thombergs","id":1363578,"avatar_url":"https://avatars.githubusercontent.com/u/1363578?v=3","gravatar_id":"","url":"https://api.github.com/users/thombergs","html_url":"https://github.com/thombergs","followers_url":"https://api.github.com/users/thombergs/followers","following_url":"https://api.github.com/users/thombergs/following{/other_user}","gists_url":"https://api.github.com/users/thombergs/gists{/gist_id}","starred_url":"https://api.github.com/users/thombergs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thombergs/subscriptions","organizations_url":"https://api.github.com/users/thombergs/orgs","repos_url":"https://api.github.com/users/thombergs/repos","events_url":"https://api.github.com/users/thombergs/events{/privacy}","received_events_url":"https://api.github.com/users/thombergs/received_events","type":"User","site_admin":false},"body":"* refactored the package structure of each slice to have \"domain\" and \"rest\" package\r\n* added spring-hateoas and refactored all Resources to extend ResourceSupport.\r\n* replaced mappers with ResourceAssemblers\r\n* made WidgetConfig a sub-resource of Dashboard\r\n* added basic unit tests for all RestController methods\r\n* added Helper classes to work with JSON and to provide ResultMatchers to assert Resources \r\n\r\nThe client app has not been refactored to use the new REST API URLs and the new JSON structures!!!","created_at":"2016-08-01T19:50:53Z","updated_at":"2016-08-01T21:03:04Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f2c5498421d8e7b3ec3e14e94d6450fa45afe4eb","assignee":{"login":"matthiasbalke","id":91990,"avatar_url":"https://avatars.githubusercontent.com/u/91990?v=3","gravatar_id":"","url":"https://api.github.com/users/matthiasbalke","html_url":"https://github.com/matthiasbalke","followers_url":"https://api.github.com/users/matthiasbalke/followers","following_url":"https://api.github.com/users/matthiasbalke/following{/other_user}","gists_url":"https://api.github.com/users/matthiasbalke/gists{/gist_id}","starred_url":"https://api.github.com/users/matthiasbalke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthiasbalke/subscriptions","organizations_url":"https://api.github.com/users/matthiasbalke/orgs","repos_url":"https://api.github.com/users/matthiasbalke/repos","events_url":"https://api.github.com/users/matthiasbalke/events{/privacy}","received_events_url":"https://api.github.com/users/matthiasbalke/received_events","type":"User","site_admin":false},"assignees":[{"login":"matthiasbalke","id":91990,"avatar_url":"https://avatars.githubusercontent.com/u/91990?v=3","gravatar_id":"","url":"https://api.github.com/users/matthiasbalke","html_url":"https://github.com/matthiasbalke","followers_url":"https://api.github.com/users/matthiasbalke/followers","following_url":"https://api.github.com/users/matthiasbalke/following{/other_user}","gists_url":"https://api.github.com/users/matthiasbalke/gists{/gist_id}","starred_url":"https://api.github.com/users/matthiasbalke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthiasbalke/subscriptions","organizations_url":"https://api.github.com/users/matthiasbalke/orgs","repos_url":"https://api.github.com/users/matthiasbalke/repos","events_url":"https://api.github.com/users/matthiasbalke/events{/privacy}","received_events_url":"https://api.github.com/users/matthiasbalke/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/reflectoring/infiniboard/milestones/4","html_url":"https://github.com/reflectoring/infiniboard/milestones/0.2.0","labels_url":"https://api.github.com/repos/reflectoring/infiniboard/milestones/4/labels","id":1640303,"number":4,"title":"0.2.0","description":"first version with one working widget as cutoff through all components. mock data not allowed.","creator":{"login":"matthiasbalke","id":91990,"avatar_url":"https://avatars.githubusercontent.com/u/91990?v=3","gravatar_id":"","url":"https://api.github.com/users/matthiasbalke","html_url":"https://github.com/matthiasbalke","followers_url":"https://api.github.com/users/matthiasbalke/followers","following_url":"https://api.github.com/users/matthiasbalke/following{/other_user}","gists_url":"https://api.github.com/users/matthiasbalke/gists{/gist_id}","starred_url":"https://api.github.com/users/matthiasbalke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matthiasbalke/subscriptions","organizations_url":"https://api.github.com/users/matthiasbalke/orgs","repos_url":"https://api.github.com/users/matthiasbalke/repos","events_url":"https://api.github.com/users/matthiasbalke/events{/privacy}","received_events_url":"https://api.github.com/users/matthiasbalke/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":28,"state":"open","created_at":"2016-03-12T09:52:33Z","updated_at":"2016-08-01T20:45:46Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103/commits","review_comments_url":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103/comments","review_comment_url":"https://api.github.com/repos/reflectoring/infiniboard/pulls/comments{/number}","comments_url":"https://api.github.com/repos/reflectoring/infiniboard/issues/103/comments","statuses_url":"https://api.github.com/repos/reflectoring/infiniboard/statuses/86b1149c246e265659150f18c9564434ccf13c3b","head":{"label":"thombergs:master","ref":"master","sha":"86b1149c246e265659150f18c9564434ccf13c3b","user":{"login":"thombergs","id":1363578,"avatar_url":"https://avatars.githubusercontent.com/u/1363578?v=3","gravatar_id":"","url":"https://api.github.com/users/thombergs","html_url":"https://github.com/thombergs","followers_url":"https://api.github.com/users/thombergs/followers","following_url":"https://api.github.com/users/thombergs/following{/other_user}","gists_url":"https://api.github.com/users/thombergs/gists{/gist_id}","starred_url":"https://api.github.com/users/thombergs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thombergs/subscriptions","organizations_url":"https://api.github.com/users/thombergs/orgs","repos_url":"https://api.github.com/users/thombergs/repos","events_url":"https://api.github.com/users/thombergs/events{/privacy}","received_events_url":"https://api.github.com/users/thombergs/received_events","type":"User","site_admin":false},"repo":{"id":63351762,"name":"infiniboard","full_name":"thombergs/infiniboard","owner":{"login":"thombergs","id":1363578,"avatar_url":"https://avatars.githubusercontent.com/u/1363578?v=3","gravatar_id":"","url":"https://api.github.com/users/thombergs","html_url":"https://github.com/thombergs","followers_url":"https://api.github.com/users/thombergs/followers","following_url":"https://api.github.com/users/thombergs/following{/other_user}","gists_url":"https://api.github.com/users/thombergs/gists{/gist_id}","starred_url":"https://api.github.com/users/thombergs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thombergs/subscriptions","organizations_url":"https://api.github.com/users/thombergs/orgs","repos_url":"https://api.github.com/users/thombergs/repos","events_url":"https://api.github.com/users/thombergs/events{/privacy}","received_events_url":"https://api.github.com/users/thombergs/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/thombergs/infiniboard","description":"infiniboard a customizable, general purpose project dashboard","fork":true,"url":"https://api.github.com/repos/thombergs/infiniboard","forks_url":"https://api.github.com/repos/thombergs/infiniboard/forks","keys_url":"https://api.github.com/repos/thombergs/infiniboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/thombergs/infiniboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/thombergs/infiniboard/teams","hooks_url":"https://api.github.com/repos/thombergs/infiniboard/hooks","issue_events_url":"https://api.github.com/repos/thombergs/infiniboard/issues/events{/number}","events_url":"https://api.github.com/repos/thombergs/infiniboard/events","assignees_url":"https://api.github.com/repos/thombergs/infiniboard/assignees{/user}","branches_url":"https://api.github.com/repos/thombergs/infiniboard/branches{/branch}","tags_url":"https://api.github.com/repos/thombergs/infiniboard/tags","blobs_url":"https://api.github.com/repos/thombergs/infiniboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/thombergs/infiniboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/thombergs/infiniboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/thombergs/infiniboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/thombergs/infiniboard/statuses/{sha}","languages_url":"https://api.github.com/repos/thombergs/infiniboard/languages","stargazers_url":"https://api.github.com/repos/thombergs/infiniboard/stargazers","contributors_url":"https://api.github.com/repos/thombergs/infiniboard/contributors","subscribers_url":"https://api.github.com/repos/thombergs/infiniboard/subscribers","subscription_url":"https://api.github.com/repos/thombergs/infiniboard/subscription","commits_url":"https://api.github.com/repos/thombergs/infiniboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/thombergs/infiniboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/thombergs/infiniboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/thombergs/infiniboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/thombergs/infiniboard/contents/{+path}","compare_url":"https://api.github.com/repos/thombergs/infiniboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/thombergs/infiniboard/merges","archive_url":"https://api.github.com/repos/thombergs/infiniboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/thombergs/infiniboard/downloads","issues_url":"https://api.github.com/repos/thombergs/infiniboard/issues{/number}","pulls_url":"https://api.github.com/repos/thombergs/infiniboard/pulls{/number}","milestones_url":"https://api.github.com/repos/thombergs/infiniboard/milestones{/number}","notifications_url":"https://api.github.com/repos/thombergs/infiniboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/thombergs/infiniboard/labels{/name}","releases_url":"https://api.github.com/repos/thombergs/infiniboard/releases{/id}","deployments_url":"https://api.github.com/repos/thombergs/infiniboard/deployments","created_at":"2016-07-14T16:19:22Z","updated_at":"2016-07-24T20:33:21Z","pushed_at":"2016-08-01T21:01:51Z","git_url":"git://github.com/thombergs/infiniboard.git","ssh_url":"git@github.com:thombergs/infiniboard.git","clone_url":"https://github.com/thombergs/infiniboard.git","svn_url":"https://github.com/thombergs/infiniboard","homepage":"","size":6374,"stargazers_count":0,"watchers_count":0,"language":"Java","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":"reflectoring:master","ref":"master","sha":"823e9197372eae8138cd31976b36bcca6e5a57d2","user":{"login":"reflectoring","id":16942518,"avatar_url":"https://avatars.githubusercontent.com/u/16942518?v=3","gravatar_id":"","url":"https://api.github.com/users/reflectoring","html_url":"https://github.com/reflectoring","followers_url":"https://api.github.com/users/reflectoring/followers","following_url":"https://api.github.com/users/reflectoring/following{/other_user}","gists_url":"https://api.github.com/users/reflectoring/gists{/gist_id}","starred_url":"https://api.github.com/users/reflectoring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reflectoring/subscriptions","organizations_url":"https://api.github.com/users/reflectoring/orgs","repos_url":"https://api.github.com/users/reflectoring/repos","events_url":"https://api.github.com/users/reflectoring/events{/privacy}","received_events_url":"https://api.github.com/users/reflectoring/received_events","type":"Organization","site_admin":false},"repo":{"id":50600325,"name":"infiniboard","full_name":"reflectoring/infiniboard","owner":{"login":"reflectoring","id":16942518,"avatar_url":"https://avatars.githubusercontent.com/u/16942518?v=3","gravatar_id":"","url":"https://api.github.com/users/reflectoring","html_url":"https://github.com/reflectoring","followers_url":"https://api.github.com/users/reflectoring/followers","following_url":"https://api.github.com/users/reflectoring/following{/other_user}","gists_url":"https://api.github.com/users/reflectoring/gists{/gist_id}","starred_url":"https://api.github.com/users/reflectoring/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/reflectoring/subscriptions","organizations_url":"https://api.github.com/users/reflectoring/orgs","repos_url":"https://api.github.com/users/reflectoring/repos","events_url":"https://api.github.com/users/reflectoring/events{/privacy}","received_events_url":"https://api.github.com/users/reflectoring/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/reflectoring/infiniboard","description":"infiniboard a customizable, general purpose project dashboard","fork":false,"url":"https://api.github.com/repos/reflectoring/infiniboard","forks_url":"https://api.github.com/repos/reflectoring/infiniboard/forks","keys_url":"https://api.github.com/repos/reflectoring/infiniboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/reflectoring/infiniboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/reflectoring/infiniboard/teams","hooks_url":"https://api.github.com/repos/reflectoring/infiniboard/hooks","issue_events_url":"https://api.github.com/repos/reflectoring/infiniboard/issues/events{/number}","events_url":"https://api.github.com/repos/reflectoring/infiniboard/events","assignees_url":"https://api.github.com/repos/reflectoring/infiniboard/assignees{/user}","branches_url":"https://api.github.com/repos/reflectoring/infiniboard/branches{/branch}","tags_url":"https://api.github.com/repos/reflectoring/infiniboard/tags","blobs_url":"https://api.github.com/repos/reflectoring/infiniboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/reflectoring/infiniboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/reflectoring/infiniboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/reflectoring/infiniboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/reflectoring/infiniboard/statuses/{sha}","languages_url":"https://api.github.com/repos/reflectoring/infiniboard/languages","stargazers_url":"https://api.github.com/repos/reflectoring/infiniboard/stargazers","contributors_url":"https://api.github.com/repos/reflectoring/infiniboard/contributors","subscribers_url":"https://api.github.com/repos/reflectoring/infiniboard/subscribers","subscription_url":"https://api.github.com/repos/reflectoring/infiniboard/subscription","commits_url":"https://api.github.com/repos/reflectoring/infiniboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/reflectoring/infiniboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/reflectoring/infiniboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/reflectoring/infiniboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/reflectoring/infiniboard/contents/{+path}","compare_url":"https://api.github.com/repos/reflectoring/infiniboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/reflectoring/infiniboard/merges","archive_url":"https://api.github.com/repos/reflectoring/infiniboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/reflectoring/infiniboard/downloads","issues_url":"https://api.github.com/repos/reflectoring/infiniboard/issues{/number}","pulls_url":"https://api.github.com/repos/reflectoring/infiniboard/pulls{/number}","milestones_url":"https://api.github.com/repos/reflectoring/infiniboard/milestones{/number}","notifications_url":"https://api.github.com/repos/reflectoring/infiniboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/reflectoring/infiniboard/labels{/name}","releases_url":"https://api.github.com/repos/reflectoring/infiniboard/releases{/id}","deployments_url":"https://api.github.com/repos/reflectoring/infiniboard/deployments","created_at":"2016-01-28T17:29:47Z","updated_at":"2016-07-25T09:36:45Z","pushed_at":"2016-08-01T21:01:51Z","git_url":"git://github.com/reflectoring/infiniboard.git","ssh_url":"git@github.com:reflectoring/infiniboard.git","clone_url":"https://github.com/reflectoring/infiniboard.git","svn_url":"https://github.com/reflectoring/infiniboard","homepage":"","size":6686,"stargazers_count":7,"watchers_count":7,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":19,"forks":5,"open_issues":19,"watchers":7,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103"},"html":{"href":"https://github.com/reflectoring/infiniboard/pull/103"},"issue":{"href":"https://api.github.com/repos/reflectoring/infiniboard/issues/103"},"comments":{"href":"https://api.github.com/repos/reflectoring/infiniboard/issues/103/comments"},"review_comments":{"href":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103/comments"},"review_comment":{"href":"https://api.github.com/repos/reflectoring/infiniboard/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/reflectoring/infiniboard/pulls/103/commits"},"statuses":{"href":"https://api.github.com/repos/reflectoring/infiniboard/statuses/86b1149c246e265659150f18c9564434ccf13c3b"}}}}
{"actor":{"display_login":"matthiasbalke"}}