{"action":"created","comment":{"url":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/comments/182963997","pull_request_review_id":113870584,"id":182963997,"diff_hunk":"@@ -0,0 +1,146 @@\n+package com.habicus.repository;\n+\n+import static java.lang.Class.*;\n+import com.habicus.core.data.UserRepository;\n+import com.habicus.repository.DataContainers.Container;\n+import java.io.IOException;\n+import java.util.Arrays;\n+import java.util.Collection;\n+import java.util.HashMap;\n+import java.util.List;\n+import java.util.Map;\n+import java.util.logging.Level;\n+import java.util.logging.Logger;\n+import java.util.stream.Collectors;\n+import javax.xml.bind.JAXBContext;\n+import javax.xml.bind.JAXBException;\n+import javax.xml.bind.Unmarshaller;\n+import org.springframework.beans.factory.annotation.Autowired;\n+import org.springframework.boot.context.event.ApplicationReadyEvent;\n+import org.springframework.context.ApplicationListener;\n+import org.springframework.core.io.Resource;\n+import org.springframework.core.io.support.*;\n+import org.springframework.data.jpa.repository.JpaRepository;\n+import org.springframework.stereotype.Component;\n+\n+/**\n+ * Launches at application boot-time to inject any user-defined test data and stores into test\n+ * database automatically\n+ */\n+@Component\n+public class Loader implements ApplicationListener<ApplicationReadyEvent> {\n+\n+  private static final Logger LOGGER = Logger.getLogger(Loader.class.getName());\n+  Map<String, JpaRepository> reposByName = new HashMap<>();\n+  @Autowired private UserRepository userRepo;\n+\n+  /**\n+   * Strips off any dangling file extensions to enable class cast into file ingestor\n+   *\n+   * @param fileName\n+   * @return\n+   */\n+  private static String normalizeFileName(String fileName) {\n+    return fileName.split(\".xml\")[0];\n+  }\n+\n+  /**\n+   * Takes input file from disk and parsed out contents by marshaling XML -> POJO\n+   *\n+   * @param inputFile\n+   * @param classReference\n+   * @return\n+   * @throws JAXBException\n+   */\n+  private Container parseFile(Resource inputFile, Class<?> classReference) {\n+    try {\n+      JAXBContext jaxbContext = JAXBContext.newInstance(classReference);\n+      Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();\n+      return (Container) jaxbUnmarshaller.unmarshal(inputFile.getFile());\n+\n+    } catch (IOException | JAXBException exception) {\n+      LOGGER.log(Level.SEVERE, \"Unable to unmarshal data!\");\n+      exception.printStackTrace();\n+    }\n+    return null;\n+  }\n+\n+  /**\n+   * Read in file from static resources directory\n+   *\n+   * @param fileResource\n+   * @return\n+   * @throws IOException\n+   * @throws JAXBException\n+   * @throws ClassNotFoundException\n+   */\n+  private Container ingestFromFile(Resource fileResource) {\n+    if (fileResource == null) {\n+      throw new NullPointerException(\"File Resource Is Invalid\");\n+    }\n+\n+    try {\n+      return parseFile(\n+          fileResource,\n+          forName(\n+              \"com.habicus.repository.DataContainers.\"\n+                  + normalizeFileName(fileResource.getFilename())));\n+    } catch (ClassNotFoundException e) {\n+      e.printStackTrace();\n+    }\n+    return null;\n+  }\n+\n+  @Override\n+  public void onApplicationEvent(ApplicationReadyEvent event) {\n+    LOGGER.log(Level.INFO, \"Preparing to load data into database\");\n+\n+    /** BEGIN REPOSITORY MAP HERE */\n+    reposByName.put(\"User\", userRepo);","path":"src/main/java/com/habicus/repository/Loader.java","position":99,"original_position":99,"commit_id":"9164336bdd308128d8dfafae39f6c3117579dcc8","original_commit_id":"9164336bdd308128d8dfafae39f6c3117579dcc8","user":{"login":"Schachte","id":7055226,"avatar_url":"https://avatars1.githubusercontent.com/u/7055226?v=4","gravatar_id":"","url":"https://api.github.com/users/Schachte","html_url":"https://github.com/Schachte","followers_url":"https://api.github.com/users/Schachte/followers","following_url":"https://api.github.com/users/Schachte/following{/other_user}","gists_url":"https://api.github.com/users/Schachte/gists{/gist_id}","starred_url":"https://api.github.com/users/Schachte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Schachte/subscriptions","organizations_url":"https://api.github.com/users/Schachte/orgs","repos_url":"https://api.github.com/users/Schachte/repos","events_url":"https://api.github.com/users/Schachte/events{/privacy}","received_events_url":"https://api.github.com/users/Schachte/received_events","type":"User","site_admin":false},"body":"I want to extract this to a constants file so it's more visible, but need to figure out how to maintain a non-static reference to JPARepository.","created_at":"2018-04-20T07:12:31Z","updated_at":"2018-04-20T07:12:31Z","html_url":"https://github.com/Habicus/Habicus-Core/pull/16#discussion_r182963997","pull_request_url":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/comments/182963997"},"html":{"href":"https://github.com/Habicus/Habicus-Core/pull/16#discussion_r182963997"},"pull_request":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16"}}},"pull_request":{"url":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16","id":182942280,"html_url":"https://github.com/Habicus/Habicus-Core/pull/16","diff_url":"https://github.com/Habicus/Habicus-Core/pull/16.diff","patch_url":"https://github.com/Habicus/Habicus-Core/pull/16.patch","issue_url":"https://api.github.com/repos/Habicus/Habicus-Core/issues/16","number":16,"state":"open","locked":false,"title":"HABI-11 Adding Persistence Store for Dev DB","user":{"login":"Schachte","id":7055226,"avatar_url":"https://avatars1.githubusercontent.com/u/7055226?v=4","gravatar_id":"","url":"https://api.github.com/users/Schachte","html_url":"https://github.com/Schachte","followers_url":"https://api.github.com/users/Schachte/followers","following_url":"https://api.github.com/users/Schachte/following{/other_user}","gists_url":"https://api.github.com/users/Schachte/gists{/gist_id}","starred_url":"https://api.github.com/users/Schachte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Schachte/subscriptions","organizations_url":"https://api.github.com/users/Schachte/orgs","repos_url":"https://api.github.com/users/Schachte/repos","events_url":"https://api.github.com/users/Schachte/events{/privacy}","received_events_url":"https://api.github.com/users/Schachte/received_events","type":"User","site_admin":false},"body":"![](https://camo.githubusercontent.com/cf373500dfe17773807191f7fb730ea7ea4b959d/68747470733a2f2f692e696d6775722e636f6d2f5878585a6b6d4f2e706e67)\r\n\r\nresolves #8 \r\n\r\n## Review Process:\r\n\r\n##### Core Reviewers:\r\n@Habicus/core-team\r\n\r\n##### Merge Owner:\r\n@mweser\r\n@Habicus/core-team\r\n@austinsorrells\r\n@schachte\r\n\r\n## Status\r\n**READY*\r\n\r\n## Description\r\nAdds a persistence store for the embedded test DB using JaxB annotations + XML from test resources dir. \r\n\r\n\r\n## Completed The Following (If Relevant)\r\n- [ ] Unit Tests\r\n- [ ] Integration Tests\r\n- [ ] Documentation\r\n\r\n## Steps to Test or Reproduce\r\n1. Start server : `gradle -Dspring.profiles.active=development bootRun`\r\n2. Go to `localhost:7777/h2`\r\n3. Login with admin/admin\r\n4. Run a global query on the USER database to ensure results are apparent\r\n","created_at":"2018-04-20T02:04:59Z","updated_at":"2018-04-20T07:12:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0f727a1bec3c38f0a4808fe0b0b90750df932687","assignee":{"login":"austinsorrells","id":30006448,"avatar_url":"https://avatars3.githubusercontent.com/u/30006448?v=4","gravatar_id":"","url":"https://api.github.com/users/austinsorrells","html_url":"https://github.com/austinsorrells","followers_url":"https://api.github.com/users/austinsorrells/followers","following_url":"https://api.github.com/users/austinsorrells/following{/other_user}","gists_url":"https://api.github.com/users/austinsorrells/gists{/gist_id}","starred_url":"https://api.github.com/users/austinsorrells/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austinsorrells/subscriptions","organizations_url":"https://api.github.com/users/austinsorrells/orgs","repos_url":"https://api.github.com/users/austinsorrells/repos","events_url":"https://api.github.com/users/austinsorrells/events{/privacy}","received_events_url":"https://api.github.com/users/austinsorrells/received_events","type":"User","site_admin":false},"assignees":[{"login":"austinsorrells","id":30006448,"avatar_url":"https://avatars3.githubusercontent.com/u/30006448?v=4","gravatar_id":"","url":"https://api.github.com/users/austinsorrells","html_url":"https://github.com/austinsorrells","followers_url":"https://api.github.com/users/austinsorrells/followers","following_url":"https://api.github.com/users/austinsorrells/following{/other_user}","gists_url":"https://api.github.com/users/austinsorrells/gists{/gist_id}","starred_url":"https://api.github.com/users/austinsorrells/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/austinsorrells/subscriptions","organizations_url":"https://api.github.com/users/austinsorrells/orgs","repos_url":"https://api.github.com/users/austinsorrells/repos","events_url":"https://api.github.com/users/austinsorrells/events{/privacy}","received_events_url":"https://api.github.com/users/austinsorrells/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"mweser","id":6527301,"avatar_url":"https://avatars2.githubusercontent.com/u/6527301?v=4","gravatar_id":"","url":"https://api.github.com/users/mweser","html_url":"https://github.com/mweser","followers_url":"https://api.github.com/users/mweser/followers","following_url":"https://api.github.com/users/mweser/following{/other_user}","gists_url":"https://api.github.com/users/mweser/gists{/gist_id}","starred_url":"https://api.github.com/users/mweser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mweser/subscriptions","organizations_url":"https://api.github.com/users/mweser/orgs","repos_url":"https://api.github.com/users/mweser/repos","events_url":"https://api.github.com/users/mweser/events{/privacy}","received_events_url":"https://api.github.com/users/mweser/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16/commits","review_comments_url":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16/comments","review_comment_url":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Habicus/Habicus-Core/issues/16/comments","statuses_url":"https://api.github.com/repos/Habicus/Habicus-Core/statuses/9164336bdd308128d8dfafae39f6c3117579dcc8","head":{"label":"Schachte:HABI-11","ref":"HABI-11","sha":"9164336bdd308128d8dfafae39f6c3117579dcc8","user":{"login":"Schachte","id":7055226,"avatar_url":"https://avatars1.githubusercontent.com/u/7055226?v=4","gravatar_id":"","url":"https://api.github.com/users/Schachte","html_url":"https://github.com/Schachte","followers_url":"https://api.github.com/users/Schachte/followers","following_url":"https://api.github.com/users/Schachte/following{/other_user}","gists_url":"https://api.github.com/users/Schachte/gists{/gist_id}","starred_url":"https://api.github.com/users/Schachte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Schachte/subscriptions","organizations_url":"https://api.github.com/users/Schachte/orgs","repos_url":"https://api.github.com/users/Schachte/repos","events_url":"https://api.github.com/users/Schachte/events{/privacy}","received_events_url":"https://api.github.com/users/Schachte/received_events","type":"User","site_admin":false},"repo":{"id":129665293,"name":"Habicus-Core","full_name":"Schachte/Habicus-Core","owner":{"login":"Schachte","id":7055226,"avatar_url":"https://avatars1.githubusercontent.com/u/7055226?v=4","gravatar_id":"","url":"https://api.github.com/users/Schachte","html_url":"https://github.com/Schachte","followers_url":"https://api.github.com/users/Schachte/followers","following_url":"https://api.github.com/users/Schachte/following{/other_user}","gists_url":"https://api.github.com/users/Schachte/gists{/gist_id}","starred_url":"https://api.github.com/users/Schachte/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Schachte/subscriptions","organizations_url":"https://api.github.com/users/Schachte/orgs","repos_url":"https://api.github.com/users/Schachte/repos","events_url":"https://api.github.com/users/Schachte/events{/privacy}","received_events_url":"https://api.github.com/users/Schachte/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Schachte/Habicus-Core","description":"🧠 Habicus is a P2P Habit Accountability Platform","fork":true,"url":"https://api.github.com/repos/Schachte/Habicus-Core","forks_url":"https://api.github.com/repos/Schachte/Habicus-Core/forks","keys_url":"https://api.github.com/repos/Schachte/Habicus-Core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Schachte/Habicus-Core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Schachte/Habicus-Core/teams","hooks_url":"https://api.github.com/repos/Schachte/Habicus-Core/hooks","issue_events_url":"https://api.github.com/repos/Schachte/Habicus-Core/issues/events{/number}","events_url":"https://api.github.com/repos/Schachte/Habicus-Core/events","assignees_url":"https://api.github.com/repos/Schachte/Habicus-Core/assignees{/user}","branches_url":"https://api.github.com/repos/Schachte/Habicus-Core/branches{/branch}","tags_url":"https://api.github.com/repos/Schachte/Habicus-Core/tags","blobs_url":"https://api.github.com/repos/Schachte/Habicus-Core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Schachte/Habicus-Core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Schachte/Habicus-Core/git/refs{/sha}","trees_url":"https://api.github.com/repos/Schachte/Habicus-Core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Schachte/Habicus-Core/statuses/{sha}","languages_url":"https://api.github.com/repos/Schachte/Habicus-Core/languages","stargazers_url":"https://api.github.com/repos/Schachte/Habicus-Core/stargazers","contributors_url":"https://api.github.com/repos/Schachte/Habicus-Core/contributors","subscribers_url":"https://api.github.com/repos/Schachte/Habicus-Core/subscribers","subscription_url":"https://api.github.com/repos/Schachte/Habicus-Core/subscription","commits_url":"https://api.github.com/repos/Schachte/Habicus-Core/commits{/sha}","git_commits_url":"https://api.github.com/repos/Schachte/Habicus-Core/git/commits{/sha}","comments_url":"https://api.github.com/repos/Schachte/Habicus-Core/comments{/number}","issue_comment_url":"https://api.github.com/repos/Schachte/Habicus-Core/issues/comments{/number}","contents_url":"https://api.github.com/repos/Schachte/Habicus-Core/contents/{+path}","compare_url":"https://api.github.com/repos/Schachte/Habicus-Core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Schachte/Habicus-Core/merges","archive_url":"https://api.github.com/repos/Schachte/Habicus-Core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Schachte/Habicus-Core/downloads","issues_url":"https://api.github.com/repos/Schachte/Habicus-Core/issues{/number}","pulls_url":"https://api.github.com/repos/Schachte/Habicus-Core/pulls{/number}","milestones_url":"https://api.github.com/repos/Schachte/Habicus-Core/milestones{/number}","notifications_url":"https://api.github.com/repos/Schachte/Habicus-Core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Schachte/Habicus-Core/labels{/name}","releases_url":"https://api.github.com/repos/Schachte/Habicus-Core/releases{/id}","deployments_url":"https://api.github.com/repos/Schachte/Habicus-Core/deployments","created_at":"2018-04-16T00:57:17Z","updated_at":"2018-04-18T04:03:32Z","pushed_at":"2018-04-20T07:10:45Z","git_url":"git://github.com/Schachte/Habicus-Core.git","ssh_url":"git@github.com:Schachte/Habicus-Core.git","clone_url":"https://github.com/Schachte/Habicus-Core.git","svn_url":"https://github.com/Schachte/Habicus-Core","homepage":"","size":97,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":null,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"Habicus:master","ref":"master","sha":"942136ae020c1148b9407d4907ec068cae754439","user":{"login":"Habicus","id":38411260,"avatar_url":"https://avatars2.githubusercontent.com/u/38411260?v=4","gravatar_id":"","url":"https://api.github.com/users/Habicus","html_url":"https://github.com/Habicus","followers_url":"https://api.github.com/users/Habicus/followers","following_url":"https://api.github.com/users/Habicus/following{/other_user}","gists_url":"https://api.github.com/users/Habicus/gists{/gist_id}","starred_url":"https://api.github.com/users/Habicus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Habicus/subscriptions","organizations_url":"https://api.github.com/users/Habicus/orgs","repos_url":"https://api.github.com/users/Habicus/repos","events_url":"https://api.github.com/users/Habicus/events{/privacy}","received_events_url":"https://api.github.com/users/Habicus/received_events","type":"Organization","site_admin":false},"repo":{"id":129664850,"name":"Habicus-Core","full_name":"Habicus/Habicus-Core","owner":{"login":"Habicus","id":38411260,"avatar_url":"https://avatars2.githubusercontent.com/u/38411260?v=4","gravatar_id":"","url":"https://api.github.com/users/Habicus","html_url":"https://github.com/Habicus","followers_url":"https://api.github.com/users/Habicus/followers","following_url":"https://api.github.com/users/Habicus/following{/other_user}","gists_url":"https://api.github.com/users/Habicus/gists{/gist_id}","starred_url":"https://api.github.com/users/Habicus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Habicus/subscriptions","organizations_url":"https://api.github.com/users/Habicus/orgs","repos_url":"https://api.github.com/users/Habicus/repos","events_url":"https://api.github.com/users/Habicus/events{/privacy}","received_events_url":"https://api.github.com/users/Habicus/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Habicus/Habicus-Core","description":"🧠 Habicus is a P2P Habit Accountability Platform","fork":false,"url":"https://api.github.com/repos/Habicus/Habicus-Core","forks_url":"https://api.github.com/repos/Habicus/Habicus-Core/forks","keys_url":"https://api.github.com/repos/Habicus/Habicus-Core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Habicus/Habicus-Core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Habicus/Habicus-Core/teams","hooks_url":"https://api.github.com/repos/Habicus/Habicus-Core/hooks","issue_events_url":"https://api.github.com/repos/Habicus/Habicus-Core/issues/events{/number}","events_url":"https://api.github.com/repos/Habicus/Habicus-Core/events","assignees_url":"https://api.github.com/repos/Habicus/Habicus-Core/assignees{/user}","branches_url":"https://api.github.com/repos/Habicus/Habicus-Core/branches{/branch}","tags_url":"https://api.github.com/repos/Habicus/Habicus-Core/tags","blobs_url":"https://api.github.com/repos/Habicus/Habicus-Core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Habicus/Habicus-Core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Habicus/Habicus-Core/git/refs{/sha}","trees_url":"https://api.github.com/repos/Habicus/Habicus-Core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Habicus/Habicus-Core/statuses/{sha}","languages_url":"https://api.github.com/repos/Habicus/Habicus-Core/languages","stargazers_url":"https://api.github.com/repos/Habicus/Habicus-Core/stargazers","contributors_url":"https://api.github.com/repos/Habicus/Habicus-Core/contributors","subscribers_url":"https://api.github.com/repos/Habicus/Habicus-Core/subscribers","subscription_url":"https://api.github.com/repos/Habicus/Habicus-Core/subscription","commits_url":"https://api.github.com/repos/Habicus/Habicus-Core/commits{/sha}","git_commits_url":"https://api.github.com/repos/Habicus/Habicus-Core/git/commits{/sha}","comments_url":"https://api.github.com/repos/Habicus/Habicus-Core/comments{/number}","issue_comment_url":"https://api.github.com/repos/Habicus/Habicus-Core/issues/comments{/number}","contents_url":"https://api.github.com/repos/Habicus/Habicus-Core/contents/{+path}","compare_url":"https://api.github.com/repos/Habicus/Habicus-Core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Habicus/Habicus-Core/merges","archive_url":"https://api.github.com/repos/Habicus/Habicus-Core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Habicus/Habicus-Core/downloads","issues_url":"https://api.github.com/repos/Habicus/Habicus-Core/issues{/number}","pulls_url":"https://api.github.com/repos/Habicus/Habicus-Core/pulls{/number}","milestones_url":"https://api.github.com/repos/Habicus/Habicus-Core/milestones{/number}","notifications_url":"https://api.github.com/repos/Habicus/Habicus-Core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Habicus/Habicus-Core/labels{/name}","releases_url":"https://api.github.com/repos/Habicus/Habicus-Core/releases{/id}","deployments_url":"https://api.github.com/repos/Habicus/Habicus-Core/deployments","created_at":"2018-04-16T00:50:47Z","updated_at":"2018-04-19T21:59:02Z","pushed_at":"2018-04-20T07:10:47Z","git_url":"git://github.com/Habicus/Habicus-Core.git","ssh_url":"git@github.com:Habicus/Habicus-Core.git","clone_url":"https://github.com/Habicus/Habicus-Core.git","svn_url":"https://github.com/Habicus/Habicus-Core","homepage":"","size":79,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":10,"license":null,"forks":3,"open_issues":10,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16"},"html":{"href":"https://github.com/Habicus/Habicus-Core/pull/16"},"issue":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/issues/16"},"comments":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/issues/16/comments"},"review_comments":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16/comments"},"review_comment":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/pulls/16/commits"},"statuses":{"href":"https://api.github.com/repos/Habicus/Habicus-Core/statuses/9164336bdd308128d8dfafae39f6c3117579dcc8"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Schachte"}}