{"action":"created","comment":{"url":"https://api.github.com/repos/alphagov/verify-hub/pulls/comments/237805128","pull_request_review_id":180193681,"id":237805128,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNzgwNTEyOA==","diff_hunk":"@@ -0,0 +1,408 @@\n+package uk.gov.ida.hub.policy.controllogic;\n+\n+import org.junit.Test;\n+import uk.gov.ida.hub.policy.domain.SessionId;\n+\n+import java.util.HashMap;\n+import java.util.Map;\n+import java.util.Optional;\n+import java.util.concurrent.ConcurrentHashMap;\n+import java.util.concurrent.ConcurrentMap;\n+\n+import static org.assertj.core.api.Assertions.assertThat;\n+\n+public class TransitionStoreTest {\n+\n+    @Test\n+    public void sizeShouldReturnSizeOfExisting() {\n+        ConcurrentMap existing = new ConcurrentHashMap() {{\n+            put(new SessionId(\"key1\"), \"value1\");\n+            put(new SessionId(\"key2\"), \"value2\");\n+        }};\n+        ConcurrentMap transition = new ConcurrentHashMap() {{\n+            put(new SessionId(\"key1\"), \"value1\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        assertThat(transitionStore.size()).isEqualTo(existing.size());\n+    }\n+\n+    @Test\n+    public void isEmptyReturnsIfExistingIsEmpty() {\n+        ConcurrentMap existing = new ConcurrentHashMap();\n+        ConcurrentMap transition = new ConcurrentHashMap() {{\n+            put(new SessionId(\"key1\"), \"value1\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        assertThat(transitionStore.isEmpty()).isEqualTo(existing.isEmpty());\n+    }\n+\n+    @Test\n+    public void containsKeyChecksIfExistingContainsKey() {\n+        final SessionId key1 = new SessionId(\"key1\");\n+        final SessionId key2 = new SessionId(\"key2\");\n+        ConcurrentMap existing = new ConcurrentHashMap() {{\n+            put(key1, \"value1\");\n+        }};\n+        ConcurrentMap transition = new ConcurrentHashMap() {{\n+            put(key1, \"value1\");\n+            put(key2, \"value2\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        assertThat(transitionStore.containsKey(key1)).isTrue();\n+        assertThat(transitionStore.containsKey(key2)).isFalse();\n+    }\n+\n+    @Test\n+    public void containsValueChecksIfExistingContainsValue() {\n+        ConcurrentMap existing = new ConcurrentHashMap() {{\n+            put(new SessionId(\"key1\"), \"value1\");\n+        }};\n+        ConcurrentMap transition = new ConcurrentHashMap() {{\n+            put(new SessionId(\"key2\"), \"value2\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        assertThat(transitionStore.containsValue(\"value1\")).isTrue();\n+        assertThat(transitionStore.containsValue(\"value2\")).isFalse();\n+    }\n+\n+    @Test\n+    public void getReturnsValueFromExisting() {\n+        final SessionId key1 = new SessionId(\"key1\");\n+        ConcurrentMap existing = new ConcurrentHashMap() {{\n+            put(key1, \"value1\");\n+        }};\n+        ConcurrentMap transition = new ConcurrentHashMap() {{\n+            put(key1, \"value2\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        assertThat(transitionStore.get(key1)).isEqualTo(\"value1\");\n+    }\n+\n+    @Test\n+    public void putPutsValueInBothMapsAndReturnsThePreviousValueFromExisting() {\n+        final SessionId key1 = new SessionId(\"key1\");\n+        ConcurrentMap existing = new ConcurrentHashMap() {{\n+            put(key1, \"value1\");\n+        }};\n+        ConcurrentMap transition = new ConcurrentHashMap() {{\n+            put(key1, \"value2\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        assertThat(transitionStore.put(key1, \"value3\")).isEqualTo(\"value1\");\n+        assertThat(existing.get(key1)).isEqualTo(\"value3\");\n+        assertThat(transition.get(key1)).isEqualTo(\"value3\");\n+    }\n+\n+    @Test\n+    public void removeRemovesFromBothQueuesAndReturnsValueFromExisting() {\n+        final SessionId key1 = new SessionId(\"key1\");\n+        ConcurrentMap existing = new ConcurrentHashMap() {{\n+            put(key1, \"value1\");\n+        }};\n+        ConcurrentMap transition = new ConcurrentHashMap() {{\n+            put(key1, \"value2\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        assertThat(transitionStore.remove(key1)).isEqualTo(\"value1\");\n+        assertThat(existing.containsKey(key1)).isFalse();\n+        assertThat(transition.containsKey(key1)).isFalse();\n+    }\n+\n+    @Test\n+    public void putAllPutsAllInBothQueues() {\n+        ConcurrentMap existing = new ConcurrentHashMap();\n+        ConcurrentMap transition = new ConcurrentHashMap();\n+        SessionId key3 = new SessionId(\"key3\");\n+        SessionId key2 = new SessionId(\"key2\");\n+        Map putAll = new HashMap() {{\n+            put(key2, \"value2\");\n+            put(key3, \"value3\");\n+        }};\n+\n+        TransitionStore transitionStore = new TransitionStore(existing, Optional.of(transition));\n+        transitionStore.putAll(putAll);\n+        assertThat(existing.containsKey(key2) && existing.containsKey(key3)).isTrue();\n+        assertThat(existing.containsKey(key2) && existing.containsKey(key3)).isTrue();","path":"hub/policy/src/test/java/uk/gov/ida/hub/policy/controllogic/TransitionStoreTest.java","position":171,"original_position":132,"commit_id":"56e58db631b95b8120fcda9b50a57530bc4747fd","original_commit_id":"e5499329b9165e0e35b2df9135831f31afd2355a","user":{"login":"adityapahuja","id":19972046,"node_id":"MDQ6VXNlcjE5OTcyMDQ2","avatar_url":"https://avatars2.githubusercontent.com/u/19972046?v=4","gravatar_id":"","url":"https://api.github.com/users/adityapahuja","html_url":"https://github.com/adityapahuja","followers_url":"https://api.github.com/users/adityapahuja/followers","following_url":"https://api.github.com/users/adityapahuja/following{/other_user}","gists_url":"https://api.github.com/users/adityapahuja/gists{/gist_id}","starred_url":"https://api.github.com/users/adityapahuja/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adityapahuja/subscriptions","organizations_url":"https://api.github.com/users/adityapahuja/orgs","repos_url":"https://api.github.com/users/adityapahuja/repos","events_url":"https://api.github.com/users/adityapahuja/events{/privacy}","received_events_url":"https://api.github.com/users/adityapahuja/received_events","type":"User","site_admin":false},"body":"Can this line be `assertThat(transition.containsKey(key2) && existing.containsKey(key3)).isTrue();`?","created_at":"2018-11-30T10:01:14Z","updated_at":"2018-11-30T10:01:15Z","html_url":"https://github.com/alphagov/verify-hub/pull/109#discussion_r237805128","pull_request_url":"https://api.github.com/repos/alphagov/verify-hub/pulls/109","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/alphagov/verify-hub/pulls/comments/237805128"},"html":{"href":"https://github.com/alphagov/verify-hub/pull/109#discussion_r237805128"},"pull_request":{"href":"https://api.github.com/repos/alphagov/verify-hub/pulls/109"}}},"pull_request":{"url":"https://api.github.com/repos/alphagov/verify-hub/pulls/109","id":208112031,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4MTEyMDMx","html_url":"https://github.com/alphagov/verify-hub/pull/109","diff_url":"https://github.com/alphagov/verify-hub/pull/109.diff","patch_url":"https://github.com/alphagov/verify-hub/pull/109.patch","issue_url":"https://api.github.com/repos/alphagov/verify-hub/issues/109","number":109,"state":"open","locked":false,"title":"BAU: Make session store usage more general","user":{"login":"andy-paine","id":14118619,"node_id":"MDQ6VXNlcjE0MTE4NjE5","avatar_url":"https://avatars3.githubusercontent.com/u/14118619?v=4","gravatar_id":"","url":"https://api.github.com/users/andy-paine","html_url":"https://github.com/andy-paine","followers_url":"https://api.github.com/users/andy-paine/followers","following_url":"https://api.github.com/users/andy-paine/following{/other_user}","gists_url":"https://api.github.com/users/andy-paine/gists{/gist_id}","starred_url":"https://api.github.com/users/andy-paine/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andy-paine/subscriptions","organizations_url":"https://api.github.com/users/andy-paine/orgs","repos_url":"https://api.github.com/users/andy-paine/repos","events_url":"https://api.github.com/users/andy-paine/events{/privacy}","received_events_url":"https://api.github.com/users/andy-paine/received_events","type":"User","site_admin":false},"body":"- I would recommend reviewing this on a per-commit basis\r\n- Interesting things to note:\r\n * The tests in TransitionCacheTests (you should convince yourself that this is the correct behaviour for a read/write + write only cache)\r\n * This is essentially a no-op for the existing system (tests have only changed to handle new config format)\r\n- The context here is that we would like to be able to use a second cache, either to support the transition to another serialization format or to another cache provider\r\n\r\nTest diff: `2 files changed, 520 insertions(+), 8 deletions(-)` 🎉 \r\nNon-test diff: ` 16 files changed, 394 insertions(+), 75 deletions(-)` ","created_at":"2018-08-13T21:40:36Z","updated_at":"2018-11-30T10:01:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d53da336d45d2379808981c05de3cdeb289dffc7","assignee":null,"assignees":[],"requested_reviewers":[{"login":"richardTowers","id":1696784,"node_id":"MDQ6VXNlcjE2OTY3ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1696784?v=4","gravatar_id":"","url":"https://api.github.com/users/richardTowers","html_url":"https://github.com/richardTowers","followers_url":"https://api.github.com/users/richardTowers/followers","following_url":"https://api.github.com/users/richardTowers/following{/other_user}","gists_url":"https://api.github.com/users/richardTowers/gists{/gist_id}","starred_url":"https://api.github.com/users/richardTowers/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/richardTowers/subscriptions","organizations_url":"https://api.github.com/users/richardTowers/orgs","repos_url":"https://api.github.com/users/richardTowers/repos","events_url":"https://api.github.com/users/richardTowers/events{/privacy}","received_events_url":"https://api.github.com/users/richardTowers/received_events","type":"User","site_admin":false},{"login":"vixus0","id":2650888,"node_id":"MDQ6VXNlcjI2NTA4ODg=","avatar_url":"https://avatars1.githubusercontent.com/u/2650888?v=4","gravatar_id":"","url":"https://api.github.com/users/vixus0","html_url":"https://github.com/vixus0","followers_url":"https://api.github.com/users/vixus0/followers","following_url":"https://api.github.com/users/vixus0/following{/other_user}","gists_url":"https://api.github.com/users/vixus0/gists{/gist_id}","starred_url":"https://api.github.com/users/vixus0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vixus0/subscriptions","organizations_url":"https://api.github.com/users/vixus0/orgs","repos_url":"https://api.github.com/users/vixus0/repos","events_url":"https://api.github.com/users/vixus0/events{/privacy}","received_events_url":"https://api.github.com/users/vixus0/received_events","type":"User","site_admin":false},{"login":"brenetic","id":3466862,"node_id":"MDQ6VXNlcjM0NjY4NjI=","avatar_url":"https://avatars3.githubusercontent.com/u/3466862?v=4","gravatar_id":"","url":"https://api.github.com/users/brenetic","html_url":"https://github.com/brenetic","followers_url":"https://api.github.com/users/brenetic/followers","following_url":"https://api.github.com/users/brenetic/following{/other_user}","gists_url":"https://api.github.com/users/brenetic/gists{/gist_id}","starred_url":"https://api.github.com/users/brenetic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brenetic/subscriptions","organizations_url":"https://api.github.com/users/brenetic/orgs","repos_url":"https://api.github.com/users/brenetic/repos","events_url":"https://api.github.com/users/brenetic/events{/privacy}","received_events_url":"https://api.github.com/users/brenetic/received_events","type":"User","site_admin":false},{"login":"IreneLau-GDS","id":30260246,"node_id":"MDQ6VXNlcjMwMjYwMjQ2","avatar_url":"https://avatars0.githubusercontent.com/u/30260246?v=4","gravatar_id":"","url":"https://api.github.com/users/IreneLau-GDS","html_url":"https://github.com/IreneLau-GDS","followers_url":"https://api.github.com/users/IreneLau-GDS/followers","following_url":"https://api.github.com/users/IreneLau-GDS/following{/other_user}","gists_url":"https://api.github.com/users/IreneLau-GDS/gists{/gist_id}","starred_url":"https://api.github.com/users/IreneLau-GDS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IreneLau-GDS/subscriptions","organizations_url":"https://api.github.com/users/IreneLau-GDS/orgs","repos_url":"https://api.github.com/users/IreneLau-GDS/repos","events_url":"https://api.github.com/users/IreneLau-GDS/events{/privacy}","received_events_url":"https://api.github.com/users/IreneLau-GDS/received_events","type":"User","site_admin":false},{"login":"JHjava","id":35073557,"node_id":"MDQ6VXNlcjM1MDczNTU3","avatar_url":"https://avatars0.githubusercontent.com/u/35073557?v=4","gravatar_id":"","url":"https://api.github.com/users/JHjava","html_url":"https://github.com/JHjava","followers_url":"https://api.github.com/users/JHjava/followers","following_url":"https://api.github.com/users/JHjava/following{/other_user}","gists_url":"https://api.github.com/users/JHjava/gists{/gist_id}","starred_url":"https://api.github.com/users/JHjava/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JHjava/subscriptions","organizations_url":"https://api.github.com/users/JHjava/orgs","repos_url":"https://api.github.com/users/JHjava/repos","events_url":"https://api.github.com/users/JHjava/events{/privacy}","received_events_url":"https://api.github.com/users/JHjava/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/alphagov/verify-hub/pulls/109/commits","review_comments_url":"https://api.github.com/repos/alphagov/verify-hub/pulls/109/comments","review_comment_url":"https://api.github.com/repos/alphagov/verify-hub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/alphagov/verify-hub/issues/109/comments","statuses_url":"https://api.github.com/repos/alphagov/verify-hub/statuses/56e58db631b95b8120fcda9b50a57530bc4747fd","head":{"label":"alphagov:transition-cache","ref":"transition-cache","sha":"56e58db631b95b8120fcda9b50a57530bc4747fd","user":{"login":"alphagov","id":596977,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU5Njk3Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/596977?v=4","gravatar_id":"","url":"https://api.github.com/users/alphagov","html_url":"https://github.com/alphagov","followers_url":"https://api.github.com/users/alphagov/followers","following_url":"https://api.github.com/users/alphagov/following{/other_user}","gists_url":"https://api.github.com/users/alphagov/gists{/gist_id}","starred_url":"https://api.github.com/users/alphagov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alphagov/subscriptions","organizations_url":"https://api.github.com/users/alphagov/orgs","repos_url":"https://api.github.com/users/alphagov/repos","events_url":"https://api.github.com/users/alphagov/events{/privacy}","received_events_url":"https://api.github.com/users/alphagov/received_events","type":"Organization","site_admin":false},"repo":{"id":113597154,"node_id":"MDEwOlJlcG9zaXRvcnkxMTM1OTcxNTQ=","name":"verify-hub","full_name":"alphagov/verify-hub","private":false,"owner":{"login":"alphagov","id":596977,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU5Njk3Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/596977?v=4","gravatar_id":"","url":"https://api.github.com/users/alphagov","html_url":"https://github.com/alphagov","followers_url":"https://api.github.com/users/alphagov/followers","following_url":"https://api.github.com/users/alphagov/following{/other_user}","gists_url":"https://api.github.com/users/alphagov/gists{/gist_id}","starred_url":"https://api.github.com/users/alphagov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alphagov/subscriptions","organizations_url":"https://api.github.com/users/alphagov/orgs","repos_url":"https://api.github.com/users/alphagov/repos","events_url":"https://api.github.com/users/alphagov/events{/privacy}","received_events_url":"https://api.github.com/users/alphagov/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/alphagov/verify-hub","description":"Verify Hub Microservices","fork":false,"url":"https://api.github.com/repos/alphagov/verify-hub","forks_url":"https://api.github.com/repos/alphagov/verify-hub/forks","keys_url":"https://api.github.com/repos/alphagov/verify-hub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alphagov/verify-hub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alphagov/verify-hub/teams","hooks_url":"https://api.github.com/repos/alphagov/verify-hub/hooks","issue_events_url":"https://api.github.com/repos/alphagov/verify-hub/issues/events{/number}","events_url":"https://api.github.com/repos/alphagov/verify-hub/events","assignees_url":"https://api.github.com/repos/alphagov/verify-hub/assignees{/user}","branches_url":"https://api.github.com/repos/alphagov/verify-hub/branches{/branch}","tags_url":"https://api.github.com/repos/alphagov/verify-hub/tags","blobs_url":"https://api.github.com/repos/alphagov/verify-hub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alphagov/verify-hub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alphagov/verify-hub/git/refs{/sha}","trees_url":"https://api.github.com/repos/alphagov/verify-hub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alphagov/verify-hub/statuses/{sha}","languages_url":"https://api.github.com/repos/alphagov/verify-hub/languages","stargazers_url":"https://api.github.com/repos/alphagov/verify-hub/stargazers","contributors_url":"https://api.github.com/repos/alphagov/verify-hub/contributors","subscribers_url":"https://api.github.com/repos/alphagov/verify-hub/subscribers","subscription_url":"https://api.github.com/repos/alphagov/verify-hub/subscription","commits_url":"https://api.github.com/repos/alphagov/verify-hub/commits{/sha}","git_commits_url":"https://api.github.com/repos/alphagov/verify-hub/git/commits{/sha}","comments_url":"https://api.github.com/repos/alphagov/verify-hub/comments{/number}","issue_comment_url":"https://api.github.com/repos/alphagov/verify-hub/issues/comments{/number}","contents_url":"https://api.github.com/repos/alphagov/verify-hub/contents/{+path}","compare_url":"https://api.github.com/repos/alphagov/verify-hub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alphagov/verify-hub/merges","archive_url":"https://api.github.com/repos/alphagov/verify-hub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alphagov/verify-hub/downloads","issues_url":"https://api.github.com/repos/alphagov/verify-hub/issues{/number}","pulls_url":"https://api.github.com/repos/alphagov/verify-hub/pulls{/number}","milestones_url":"https://api.github.com/repos/alphagov/verify-hub/milestones{/number}","notifications_url":"https://api.github.com/repos/alphagov/verify-hub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alphagov/verify-hub/labels{/name}","releases_url":"https://api.github.com/repos/alphagov/verify-hub/releases{/id}","deployments_url":"https://api.github.com/repos/alphagov/verify-hub/deployments","created_at":"2017-12-08T16:53:55Z","updated_at":"2018-11-30T09:56:37Z","pushed_at":"2018-11-30T09:56:37Z","git_url":"git://github.com/alphagov/verify-hub.git","ssh_url":"git@github.com:alphagov/verify-hub.git","clone_url":"https://github.com/alphagov/verify-hub.git","svn_url":"https://github.com/alphagov/verify-hub","homepage":"","size":2402,"stargazers_count":4,"watchers_count":4,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":4,"open_issues":3,"watchers":4,"default_branch":"master"}},"base":{"label":"alphagov:master","ref":"master","sha":"90012407b2cd4fd0d3e26014362422cdf414f2c6","user":{"login":"alphagov","id":596977,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU5Njk3Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/596977?v=4","gravatar_id":"","url":"https://api.github.com/users/alphagov","html_url":"https://github.com/alphagov","followers_url":"https://api.github.com/users/alphagov/followers","following_url":"https://api.github.com/users/alphagov/following{/other_user}","gists_url":"https://api.github.com/users/alphagov/gists{/gist_id}","starred_url":"https://api.github.com/users/alphagov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alphagov/subscriptions","organizations_url":"https://api.github.com/users/alphagov/orgs","repos_url":"https://api.github.com/users/alphagov/repos","events_url":"https://api.github.com/users/alphagov/events{/privacy}","received_events_url":"https://api.github.com/users/alphagov/received_events","type":"Organization","site_admin":false},"repo":{"id":113597154,"node_id":"MDEwOlJlcG9zaXRvcnkxMTM1OTcxNTQ=","name":"verify-hub","full_name":"alphagov/verify-hub","private":false,"owner":{"login":"alphagov","id":596977,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU5Njk3Nw==","avatar_url":"https://avatars0.githubusercontent.com/u/596977?v=4","gravatar_id":"","url":"https://api.github.com/users/alphagov","html_url":"https://github.com/alphagov","followers_url":"https://api.github.com/users/alphagov/followers","following_url":"https://api.github.com/users/alphagov/following{/other_user}","gists_url":"https://api.github.com/users/alphagov/gists{/gist_id}","starred_url":"https://api.github.com/users/alphagov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alphagov/subscriptions","organizations_url":"https://api.github.com/users/alphagov/orgs","repos_url":"https://api.github.com/users/alphagov/repos","events_url":"https://api.github.com/users/alphagov/events{/privacy}","received_events_url":"https://api.github.com/users/alphagov/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/alphagov/verify-hub","description":"Verify Hub Microservices","fork":false,"url":"https://api.github.com/repos/alphagov/verify-hub","forks_url":"https://api.github.com/repos/alphagov/verify-hub/forks","keys_url":"https://api.github.com/repos/alphagov/verify-hub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alphagov/verify-hub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alphagov/verify-hub/teams","hooks_url":"https://api.github.com/repos/alphagov/verify-hub/hooks","issue_events_url":"https://api.github.com/repos/alphagov/verify-hub/issues/events{/number}","events_url":"https://api.github.com/repos/alphagov/verify-hub/events","assignees_url":"https://api.github.com/repos/alphagov/verify-hub/assignees{/user}","branches_url":"https://api.github.com/repos/alphagov/verify-hub/branches{/branch}","tags_url":"https://api.github.com/repos/alphagov/verify-hub/tags","blobs_url":"https://api.github.com/repos/alphagov/verify-hub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alphagov/verify-hub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alphagov/verify-hub/git/refs{/sha}","trees_url":"https://api.github.com/repos/alphagov/verify-hub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alphagov/verify-hub/statuses/{sha}","languages_url":"https://api.github.com/repos/alphagov/verify-hub/languages","stargazers_url":"https://api.github.com/repos/alphagov/verify-hub/stargazers","contributors_url":"https://api.github.com/repos/alphagov/verify-hub/contributors","subscribers_url":"https://api.github.com/repos/alphagov/verify-hub/subscribers","subscription_url":"https://api.github.com/repos/alphagov/verify-hub/subscription","commits_url":"https://api.github.com/repos/alphagov/verify-hub/commits{/sha}","git_commits_url":"https://api.github.com/repos/alphagov/verify-hub/git/commits{/sha}","comments_url":"https://api.github.com/repos/alphagov/verify-hub/comments{/number}","issue_comment_url":"https://api.github.com/repos/alphagov/verify-hub/issues/comments{/number}","contents_url":"https://api.github.com/repos/alphagov/verify-hub/contents/{+path}","compare_url":"https://api.github.com/repos/alphagov/verify-hub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alphagov/verify-hub/merges","archive_url":"https://api.github.com/repos/alphagov/verify-hub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alphagov/verify-hub/downloads","issues_url":"https://api.github.com/repos/alphagov/verify-hub/issues{/number}","pulls_url":"https://api.github.com/repos/alphagov/verify-hub/pulls{/number}","milestones_url":"https://api.github.com/repos/alphagov/verify-hub/milestones{/number}","notifications_url":"https://api.github.com/repos/alphagov/verify-hub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alphagov/verify-hub/labels{/name}","releases_url":"https://api.github.com/repos/alphagov/verify-hub/releases{/id}","deployments_url":"https://api.github.com/repos/alphagov/verify-hub/deployments","created_at":"2017-12-08T16:53:55Z","updated_at":"2018-11-30T09:56:37Z","pushed_at":"2018-11-30T09:56:37Z","git_url":"git://github.com/alphagov/verify-hub.git","ssh_url":"git@github.com:alphagov/verify-hub.git","clone_url":"https://github.com/alphagov/verify-hub.git","svn_url":"https://github.com/alphagov/verify-hub","homepage":"","size":2402,"stargazers_count":4,"watchers_count":4,"language":"Java","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":4,"open_issues":3,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/alphagov/verify-hub/pulls/109"},"html":{"href":"https://github.com/alphagov/verify-hub/pull/109"},"issue":{"href":"https://api.github.com/repos/alphagov/verify-hub/issues/109"},"comments":{"href":"https://api.github.com/repos/alphagov/verify-hub/issues/109/comments"},"review_comments":{"href":"https://api.github.com/repos/alphagov/verify-hub/pulls/109/comments"},"review_comment":{"href":"https://api.github.com/repos/alphagov/verify-hub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/alphagov/verify-hub/pulls/109/commits"},"statuses":{"href":"https://api.github.com/repos/alphagov/verify-hub/statuses/56e58db631b95b8120fcda9b50a57530bc4747fd"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"adityapahuja"}}