{"action":"created","comment":{"url":"https://api.github.com/repos/inaka/elysium/pulls/comments/33387847","id":33387847,"diff_hunk":"@@ -106,187 +111,255 @@\n %% Configuration parameters may be either compiled functions or keys in a dictionary.\n %% These functions are used for validating once before using.\n \n-\n--spec all_config_atoms() -> [atom()].\n-%% @doc Get a list of all the configuration parameter keys as atoms.\n-all_config_atoms() ->\n-    ordsets:from_list([\n-                       is_elysium_enabled,\n-                       cassandra_hosts,\n-                       cassandra_lb_queue,\n-                       cassandra_connection_bs,\n-                       cassandra_session_queue,\n-                       cassandra_requests_queue,\n-                       cassandra_request_reply_timeout,\n-                       cassandra_max_sessions,\n-                       cassandra_max_restart_delay,\n-                       cassandra_connect_timeout,\n-                       cassandra_max_checkout_retry,\n-                       cassandra_session_decay_probability\n-                      ]).\n+-spec all_config_atoms_ordered() -> [atom()].\n+%% @doc Get a list of all the configuration parameter keys as atoms in the order needed by make_vbisect_config/17.\n+all_config_atoms_ordered() ->\n+    [\n+     is_elysium_enabled,\n+     cassandra_lb_queue,\n+     cassandra_connection_bs,\n+     cassandra_audit_ets,\n+     cassandra_session_queue,\n+     cassandra_requests_queue,\n+     cassandra_request_reply_timeout,\n+     cassandra_hosts,\n+     cassandra_connect_timeout,\n+     cassandra_send_timeout,\n+     cassandra_max_restart_delay,\n+     cassandra_max_sessions,\n+     cassandra_max_checkout_retry,\n+     cassandra_session_decay_probability,\n+     cassandra_seed_node,\n+     cassandra_request_peers_frequency,\n+     cassandra_default_port\n+    ].\n+\n+-spec all_config_atoms_sorted()  -> [atom()].\n+%% @doc Get a list of all the configuration parameter keys as atoms sorted alphabetically.\n+all_config_atoms_sorted() ->\n+    ordsets:from_list(all_config_atoms_ordered()).\n \n -spec all_config_bins()  -> [binary()].\n %% @doc Get a list of all the configuration parameter keys as binaries.\n all_config_bins() ->\n-    [atom_to_binary(Attr, utf8) || Attr <- all_config_atoms()].\n+    [atom_to_binary(Attr, utf8) || Attr <- all_config_atoms_ordered()].\n \n -spec is_valid_config(config_type())  -> boolean().\n %% @doc Verify that the configuration is a valid construct and has all the parameter attributes supported.\n-is_valid_config({vbisect,   Bindict}) -> is_valid_config_vbisect(Bindict);\n-is_valid_config({config_mod, Module}) -> {module, Module} = code:ensure_loaded(Module),\n-                                         is_valid_config_module(Module).\n+is_valid_config ({config_app_config, App}) -> true;\n+is_valid_config ({vbisect,       Bindict}) -> is_valid_config_vbisect(Bindict);\n+is_valid_config ({config_mod,     Module}) -> {module, Module} = code:ensure_loaded(Module),\n+                                              is_valid_config_module(Module).\n     \n -spec is_valid_config_module(module())  -> boolean().\n %% @doc Verify that a compiled module configuration has a function for every configuration parameter.\n is_valid_config_module(Module) when is_atom(Module) ->\n-    lists:all(fun(Param) -> erlang:function_exported(Module, Param, 0) end, all_config_atoms()).\n+    lists:all(fun(Param) -> erlang:function_exported(Module, Param, 0) end, all_config_atoms_ordered()).\n \n -spec is_valid_config_vbisect(vbisect:bindict())  -> boolean().\n %% @doc Verify that a binary dictionary contains all the keys corresponding to configuration parameters.\n is_valid_config_vbisect(Bindict) when is_binary(Bindict) ->\n-    ordsets:is_subset(all_config_bins(), vbisect:fetch_keys(Bindict)).\n+    ordsets:is_subset(\n+      ordsets:from_list(all_config_bins()),\n+      ordsets:from_list(vbisect:fetch_keys(Bindict))\n+     ).\n \n \n -spec make_vbisect_config(boolean(), lb_queue_name(), elysium_connection:buffering(),\n-                          audit_ets_name(), session_queue_name(), requests_queue_name(),\n+                          audit_ets_name(), connection_queue_name(), requests_queue_name(),\n                           timeout_in_ms(), host_list(), timeout_in_ms(), timeout_in_ms(), timeout_in_ms(),\n-                          max_sessions(), max_retries(), decay_prob()) -> {vbisect, vbisect:bindict()}.\n+                          max_connections(), max_retries(), decay_prob(),\n+                          cassandra_node(), request_peers_frequency(),\n+                          inet:port_number()) -> {vbisect, vbisect:bindict()}.\n %% @doc\n-%%   Construct a vbisect binary dictionary from an entire set of configuration parameters.\n+%%   Construct a vbisect binary dictionary from individual configuration parameter values.\n %%   The resulting data structure may be passed as a configuration to any of the elysium functions.\n %% @end\n make_vbisect_config(Enabled, Lb_Queue_Name, Buffering_Strategy,\n-                    Audit_Ets_Name, Session_Queue_Name, Requests_Queue_Name,\n+                    Audit_Ets_Name, Connection_Queue_Name, Requests_Queue_Name,\n                     Request_Reply_Timeout, [{_Ip, _Port} | _] = Host_List,\n                     Connect_Timeout_Millis, Send_Timeout_Millis, Restart_Millis,\n-                    Max_Sessions, Max_Retries, Decay_Prob)\n-\n+                    Max_Connections, Max_Retries, Decay_Prob, {Seed_Host, Seed_Port} = Seed_Node,\n+                    Request_Peers_Frequency_Millis, Default_Port)\n  when is_atom(Buffering_Strategy),\n       is_atom(Lb_Queue_Name),             is_atom(Audit_Ets_Name),\n-      is_atom(Session_Queue_Name),        is_atom(Requests_Queue_Name),\n+      is_atom(Connection_Queue_Name),     is_atom(Requests_Queue_Name),\n       is_list(_Ip), is_integer(_Port),    _Port > 0,\n-      is_integer(Request_Reply_Timeout),  Request_Reply_Timeout > 0,\n+      is_integer(Request_Reply_Timeout),  Request_Reply_Timeout  > 0,\n       is_integer(Connect_Timeout_Millis), Connect_Timeout_Millis > 0,\n-      is_integer(Send_Timeout_Millis),    Send_Timeout_Millis > 0,\n-      is_integer(Restart_Millis),         Restart_Millis > 0,\n-      is_integer(Max_Sessions),           Max_Sessions   > 0,\n-      is_integer(Max_Retries),            Max_Retries   >= 0,\n-      is_integer(Decay_Prob),             Decay_Prob    >= 0, Decay_Prob =< 1000000 ->\n+      is_integer(Send_Timeout_Millis),    Send_Timeout_Millis    > 0,\n+      is_integer(Restart_Millis),         Restart_Millis         > 0,\n+      is_integer(Max_Connections),        Max_Connections        > 0,\n+      is_integer(Max_Retries),            Max_Retries >= 0,\n+      is_integer(Decay_Prob),             Decay_Prob  >= 0, Decay_Prob =< 1000000000,\n+      is_integer(Seed_Port),              Seed_Port   >= 0,\n+      is_list   (Seed_Host),\n+      is_integer(Request_Peers_Frequency_Millis), Request_Peers_Frequency_Millis > 0,\n+      is_integer(Default_Port), Default_Port > 0, Default_Port =< 65535 ->\n \n     Props = [\n-             {<<\"is_elysium_enabled\">>,                   boolean_to_binary(Enabled)},\n-             {<<\"cassandra_lb_queue\">>,                   atom_to_binary    (Lb_Queue_Name,       utf8)},\n-             {<<\"cassandra_connection_bs\">>,              atom_to_binary    (Buffering_Strategy,  utf8)},\n-             {<<\"cassandra_audit_ets\">>,                  atom_to_binary    (Audit_Ets_Name,      utf8)},\n-             {<<\"cassandra_session_queue\">>,              atom_to_binary    (Session_Queue_Name,  utf8)},\n-             {<<\"cassandra_requests_queue\">>,             atom_to_binary    (Requests_Queue_Name, utf8)},\n+             {<<\"is_elysium_enabled\">>,                   boolean_to_binary (Enabled)},\n+             {<<\"cassandra_lb_queue\">>,                   atom_to_binary    (Lb_Queue_Name,         utf8)},\n+             {<<\"cassandra_connection_bs\">>,              atom_to_binary    (Buffering_Strategy,    utf8)},\n+             {<<\"cassandra_audit_ets\">>,                  atom_to_binary    (Audit_Ets_Name,        utf8)},\n+             {<<\"cassandra_session_queue\">>,              atom_to_binary    (Connection_Queue_Name, utf8)},\n+             {<<\"cassandra_requests_queue\">>,             atom_to_binary    (Requests_Queue_Name,   utf8)},\n              {<<\"cassandra_request_reply_timeout\">>,      integer_to_binary (Request_Reply_Timeout)},\n              {<<\"cassandra_hosts\">>,                      term_to_binary    (Host_List)},\n-             {<<\"cassandra_max_sessions\">>,               integer_to_binary (Max_Sessions)},\n+             {<<\"cassandra_max_sessions\">>,               integer_to_binary (Max_Connections)},","path":"src/elysium_config.erl","position":199,"original_position":199,"commit_id":"f0a43ec183669292223af5f45f91ee57bd54296e","original_commit_id":"f0a43ec183669292223af5f45f91ee57bd54296e","user":{"login":"gadgetci","id":10134338,"avatar_url":"https://avatars.githubusercontent.com/u/10134338?v=3","gravatar_id":"","url":"https://api.github.com/users/gadgetci","html_url":"https://github.com/gadgetci","followers_url":"https://api.github.com/users/gadgetci/followers","following_url":"https://api.github.com/users/gadgetci/following{/other_user}","gists_url":"https://api.github.com/users/gadgetci/gists{/gist_id}","starred_url":"https://api.github.com/users/gadgetci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gadgetci/subscriptions","organizations_url":"https://api.github.com/users/gadgetci/orgs","repos_url":"https://api.github.com/users/gadgetci/repos","events_url":"https://api.github.com/users/gadgetci/events{/privacy}","received_events_url":"https://api.github.com/users/gadgetci/received_events","type":"User","site_admin":false},"body":"According to **Elvis**:\n> Line 209 is too long:              {<<\"cassandra_max_sessions\">>,               integer_to_binary (Max_Connections)},.","created_at":"2015-06-26T19:28:47Z","updated_at":"2015-06-26T19:28:47Z","html_url":"https://github.com/inaka/elysium/pull/2#discussion_r33387847","pull_request_url":"https://api.github.com/repos/inaka/elysium/pulls/2","_links":{"self":{"href":"https://api.github.com/repos/inaka/elysium/pulls/comments/33387847"},"html":{"href":"https://github.com/inaka/elysium/pull/2#discussion_r33387847"},"pull_request":{"href":"https://api.github.com/repos/inaka/elysium/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/inaka/elysium/pulls/2","id":38680903,"html_url":"https://github.com/inaka/elysium/pull/2","diff_url":"https://github.com/inaka/elysium/pull/2.diff","patch_url":"https://github.com/inaka/elysium/pull/2.patch","issue_url":"https://api.github.com/repos/inaka/elysium/issues/2","number":2,"state":"closed","locked":false,"title":"Up to date","user":{"login":"HernanRivasAcosta","id":5691671,"avatar_url":"https://avatars.githubusercontent.com/u/5691671?v=3","gravatar_id":"","url":"https://api.github.com/users/HernanRivasAcosta","html_url":"https://github.com/HernanRivasAcosta","followers_url":"https://api.github.com/users/HernanRivasAcosta/followers","following_url":"https://api.github.com/users/HernanRivasAcosta/following{/other_user}","gists_url":"https://api.github.com/users/HernanRivasAcosta/gists{/gist_id}","starred_url":"https://api.github.com/users/HernanRivasAcosta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HernanRivasAcosta/subscriptions","organizations_url":"https://api.github.com/users/HernanRivasAcosta/orgs","repos_url":"https://api.github.com/users/HernanRivasAcosta/repos","events_url":"https://api.github.com/users/HernanRivasAcosta/events{/privacy}","received_events_url":"https://api.github.com/users/HernanRivasAcosta/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-06-26T19:19:57Z","updated_at":"2015-06-26T19:28:47Z","closed_at":"2015-06-26T19:20:08Z","merged_at":"2015-06-26T19:20:08Z","merge_commit_sha":"4e385cca733cd97f7d23686af84d628fc133d3b6","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/inaka/elysium/pulls/2/commits","review_comments_url":"https://api.github.com/repos/inaka/elysium/pulls/2/comments","review_comment_url":"https://api.github.com/repos/inaka/elysium/pulls/comments{/number}","comments_url":"https://api.github.com/repos/inaka/elysium/issues/2/comments","statuses_url":"https://api.github.com/repos/inaka/elysium/statuses/f0a43ec183669292223af5f45f91ee57bd54296e","head":{"label":"tigertext:master","ref":"master","sha":"f0a43ec183669292223af5f45f91ee57bd54296e","user":{"login":"tigertext","id":173280,"avatar_url":"https://avatars.githubusercontent.com/u/173280?v=3","gravatar_id":"","url":"https://api.github.com/users/tigertext","html_url":"https://github.com/tigertext","followers_url":"https://api.github.com/users/tigertext/followers","following_url":"https://api.github.com/users/tigertext/following{/other_user}","gists_url":"https://api.github.com/users/tigertext/gists{/gist_id}","starred_url":"https://api.github.com/users/tigertext/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tigertext/subscriptions","organizations_url":"https://api.github.com/users/tigertext/orgs","repos_url":"https://api.github.com/users/tigertext/repos","events_url":"https://api.github.com/users/tigertext/events{/privacy}","received_events_url":"https://api.github.com/users/tigertext/received_events","type":"Organization","site_admin":false},"repo":{"id":24917017,"name":"elysium","full_name":"tigertext/elysium","owner":{"login":"tigertext","id":173280,"avatar_url":"https://avatars.githubusercontent.com/u/173280?v=3","gravatar_id":"","url":"https://api.github.com/users/tigertext","html_url":"https://github.com/tigertext","followers_url":"https://api.github.com/users/tigertext/followers","following_url":"https://api.github.com/users/tigertext/following{/other_user}","gists_url":"https://api.github.com/users/tigertext/gists{/gist_id}","starred_url":"https://api.github.com/users/tigertext/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tigertext/subscriptions","organizations_url":"https://api.github.com/users/tigertext/orgs","repos_url":"https://api.github.com/users/tigertext/repos","events_url":"https://api.github.com/users/tigertext/events{/privacy}","received_events_url":"https://api.github.com/users/tigertext/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/tigertext/elysium","description":"The blessed and happy erlang afterlife for Cassandra","fork":true,"url":"https://api.github.com/repos/tigertext/elysium","forks_url":"https://api.github.com/repos/tigertext/elysium/forks","keys_url":"https://api.github.com/repos/tigertext/elysium/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tigertext/elysium/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tigertext/elysium/teams","hooks_url":"https://api.github.com/repos/tigertext/elysium/hooks","issue_events_url":"https://api.github.com/repos/tigertext/elysium/issues/events{/number}","events_url":"https://api.github.com/repos/tigertext/elysium/events","assignees_url":"https://api.github.com/repos/tigertext/elysium/assignees{/user}","branches_url":"https://api.github.com/repos/tigertext/elysium/branches{/branch}","tags_url":"https://api.github.com/repos/tigertext/elysium/tags","blobs_url":"https://api.github.com/repos/tigertext/elysium/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tigertext/elysium/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tigertext/elysium/git/refs{/sha}","trees_url":"https://api.github.com/repos/tigertext/elysium/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tigertext/elysium/statuses/{sha}","languages_url":"https://api.github.com/repos/tigertext/elysium/languages","stargazers_url":"https://api.github.com/repos/tigertext/elysium/stargazers","contributors_url":"https://api.github.com/repos/tigertext/elysium/contributors","subscribers_url":"https://api.github.com/repos/tigertext/elysium/subscribers","subscription_url":"https://api.github.com/repos/tigertext/elysium/subscription","commits_url":"https://api.github.com/repos/tigertext/elysium/commits{/sha}","git_commits_url":"https://api.github.com/repos/tigertext/elysium/git/commits{/sha}","comments_url":"https://api.github.com/repos/tigertext/elysium/comments{/number}","issue_comment_url":"https://api.github.com/repos/tigertext/elysium/issues/comments{/number}","contents_url":"https://api.github.com/repos/tigertext/elysium/contents/{+path}","compare_url":"https://api.github.com/repos/tigertext/elysium/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tigertext/elysium/merges","archive_url":"https://api.github.com/repos/tigertext/elysium/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tigertext/elysium/downloads","issues_url":"https://api.github.com/repos/tigertext/elysium/issues{/number}","pulls_url":"https://api.github.com/repos/tigertext/elysium/pulls{/number}","milestones_url":"https://api.github.com/repos/tigertext/elysium/milestones{/number}","notifications_url":"https://api.github.com/repos/tigertext/elysium/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tigertext/elysium/labels{/name}","releases_url":"https://api.github.com/repos/tigertext/elysium/releases{/id}","created_at":"2014-10-08T00:02:02Z","updated_at":"2015-06-19T03:23:57Z","pushed_at":"2015-04-24T18:00:44Z","git_url":"git://github.com/tigertext/elysium.git","ssh_url":"git@github.com:tigertext/elysium.git","clone_url":"https://github.com/tigertext/elysium.git","svn_url":"https://github.com/tigertext/elysium","homepage":null,"size":1606,"stargazers_count":1,"watchers_count":1,"language":"Erlang","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":1,"forks":2,"open_issues":1,"watchers":1,"default_branch":"master"}},"base":{"label":"inaka:master","ref":"master","sha":"37cca477d0beb04f75c5062b03155b11ac33fbdd","user":{"login":"inaka","id":867053,"avatar_url":"https://avatars.githubusercontent.com/u/867053?v=3","gravatar_id":"","url":"https://api.github.com/users/inaka","html_url":"https://github.com/inaka","followers_url":"https://api.github.com/users/inaka/followers","following_url":"https://api.github.com/users/inaka/following{/other_user}","gists_url":"https://api.github.com/users/inaka/gists{/gist_id}","starred_url":"https://api.github.com/users/inaka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inaka/subscriptions","organizations_url":"https://api.github.com/users/inaka/orgs","repos_url":"https://api.github.com/users/inaka/repos","events_url":"https://api.github.com/users/inaka/events{/privacy}","received_events_url":"https://api.github.com/users/inaka/received_events","type":"Organization","site_admin":false},"repo":{"id":25830237,"name":"elysium","full_name":"inaka/elysium","owner":{"login":"inaka","id":867053,"avatar_url":"https://avatars.githubusercontent.com/u/867053?v=3","gravatar_id":"","url":"https://api.github.com/users/inaka","html_url":"https://github.com/inaka","followers_url":"https://api.github.com/users/inaka/followers","following_url":"https://api.github.com/users/inaka/following{/other_user}","gists_url":"https://api.github.com/users/inaka/gists{/gist_id}","starred_url":"https://api.github.com/users/inaka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inaka/subscriptions","organizations_url":"https://api.github.com/users/inaka/orgs","repos_url":"https://api.github.com/users/inaka/repos","events_url":"https://api.github.com/users/inaka/events{/privacy}","received_events_url":"https://api.github.com/users/inaka/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/inaka/elysium","description":"The blessed and happy erlang afterlife for Cassandra","fork":true,"url":"https://api.github.com/repos/inaka/elysium","forks_url":"https://api.github.com/repos/inaka/elysium/forks","keys_url":"https://api.github.com/repos/inaka/elysium/keys{/key_id}","collaborators_url":"https://api.github.com/repos/inaka/elysium/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/inaka/elysium/teams","hooks_url":"https://api.github.com/repos/inaka/elysium/hooks","issue_events_url":"https://api.github.com/repos/inaka/elysium/issues/events{/number}","events_url":"https://api.github.com/repos/inaka/elysium/events","assignees_url":"https://api.github.com/repos/inaka/elysium/assignees{/user}","branches_url":"https://api.github.com/repos/inaka/elysium/branches{/branch}","tags_url":"https://api.github.com/repos/inaka/elysium/tags","blobs_url":"https://api.github.com/repos/inaka/elysium/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/inaka/elysium/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/inaka/elysium/git/refs{/sha}","trees_url":"https://api.github.com/repos/inaka/elysium/git/trees{/sha}","statuses_url":"https://api.github.com/repos/inaka/elysium/statuses/{sha}","languages_url":"https://api.github.com/repos/inaka/elysium/languages","stargazers_url":"https://api.github.com/repos/inaka/elysium/stargazers","contributors_url":"https://api.github.com/repos/inaka/elysium/contributors","subscribers_url":"https://api.github.com/repos/inaka/elysium/subscribers","subscription_url":"https://api.github.com/repos/inaka/elysium/subscription","commits_url":"https://api.github.com/repos/inaka/elysium/commits{/sha}","git_commits_url":"https://api.github.com/repos/inaka/elysium/git/commits{/sha}","comments_url":"https://api.github.com/repos/inaka/elysium/comments{/number}","issue_comment_url":"https://api.github.com/repos/inaka/elysium/issues/comments{/number}","contents_url":"https://api.github.com/repos/inaka/elysium/contents/{+path}","compare_url":"https://api.github.com/repos/inaka/elysium/compare/{base}...{head}","merges_url":"https://api.github.com/repos/inaka/elysium/merges","archive_url":"https://api.github.com/repos/inaka/elysium/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/inaka/elysium/downloads","issues_url":"https://api.github.com/repos/inaka/elysium/issues{/number}","pulls_url":"https://api.github.com/repos/inaka/elysium/pulls{/number}","milestones_url":"https://api.github.com/repos/inaka/elysium/milestones{/number}","notifications_url":"https://api.github.com/repos/inaka/elysium/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/inaka/elysium/labels{/name}","releases_url":"https://api.github.com/repos/inaka/elysium/releases{/id}","created_at":"2014-10-27T17:16:14Z","updated_at":"2014-11-13T18:28:31Z","pushed_at":"2015-06-26T19:20:08Z","git_url":"git://github.com/inaka/elysium.git","ssh_url":"git@github.com:inaka/elysium.git","clone_url":"https://github.com/inaka/elysium.git","svn_url":"https://github.com/inaka/elysium","homepage":null,"size":387,"stargazers_count":0,"watchers_count":0,"language":"Erlang","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"}},"_links":{"self":{"href":"https://api.github.com/repos/inaka/elysium/pulls/2"},"html":{"href":"https://github.com/inaka/elysium/pull/2"},"issue":{"href":"https://api.github.com/repos/inaka/elysium/issues/2"},"comments":{"href":"https://api.github.com/repos/inaka/elysium/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/inaka/elysium/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/inaka/elysium/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/inaka/elysium/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/inaka/elysium/statuses/f0a43ec183669292223af5f45f91ee57bd54296e"}}}}