{"action":"created","comment":{"url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/comments/240212321","pull_request_review_id":183188738,"id":240212321,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MDIxMjMyMQ==","diff_hunk":"@@ -0,0 +1,294 @@\n+# Curl Examples to front-end\n+\n+The front-end is accessible not only via the web GUI.\n+\n+## Introduction\n+\n+The front-end has a bridge functionality that is built in as a part of the front-ends web server and handles request coming from the web GUI towards any of the back-ends configured. The front-end may also be used by other tools such as CURL or any kind of program that can make HTTP(S) requests.\n+\n+#### The front-end handles:\n+* POST, PUT and GET requests\n+* Default back-end\n+* Input back-end\n+\n+While the web GUI may use the back-end instances list and select different back-ends in an easy way, a user that uses the front-end without the included web GUI may need to specify a back-end URL. This may be done by adding a `backendurl` parameter to the request.\n+\n+Note that for users where the front-end and back-end is running with the help of Tomcat there will be context paths used.\n+\n+### Default back-end\n+\n+The front-end may have been setup with a default back-end, this means that if no back-end is specified when making a HTTP request to the front-end the default back-end will be used.\n+If you want to see a list of back-ends and see if there is a default back-end set you may use the command:\n+\n+###### Normal curl command for get:\n+\n+    curl -X GET http://*front-end-url*/*contect-path-if-any*/backend\n+\n+###### Curl command for get with host, port using Tomcat:\n+\n+    curl -X GET http://localhost:8080/eifrontend/backend\n+\n+###### Curl command using EI default settings:\n+\n+    curl -X GET http://localhost:8080/backend\n+\n+\n+The default back-end should have the key `defaultBackend` set to `true`. If the JSON list ends up empty there are no back-ends specified in the front-end. If there is no JSON object with the key set to true there is no default back-end.\n+\n+You may see that in the list, all objects have a key `active` set to `true or false`, this key points to the back-end that acts as default, if no default back-end exist, the active should usually be the first object in the list.\n+\n+If the back-end list lacks a default back-end one may be added by using a HTTP POST request. The injected object should be specified in JSON and look like the example below.\n+\n+    [\n+        {\"name\":\"Any default name\", \"host\":\"*Your back-end url*\", \"port\":8090, \"contextPath\":\"\", \"https\":false, \"defaultBackend\":true}\n+    ]\n+\n+You may add a back-end using for example CURL:\n+\n+    curl -d '{\"name\":\"My Default Back-End\",\"host\":\"localhost\",\"port\":8090,\"contextPath\":\"\",\"https\":false,\"defaultBackend\":true}' \\\n+        -H \"Content-Type: application/json\" -X POST http://localhost:8080/*front-end-context-path*/backend\n+\n+__Note:__ A back-end names must be unique.\n+\n+Even with different names all elements must be unique, you may not have two or more elements with the same `host`, `port`, `contextPath` or `https` value, one of these three keys must be different. Only the `contextPath` key may be left empty.\n+\n+###### Example of __valid__ back-end list:\n+\n+\n+    [\n+        {\"name\":\"My Back-End\",\"host\":\"localhost\",\"port\":8090,\"contextPath\":\"\",\"https\":false,\"defaultBackend\":true},\n+        {\"name\":\"My Back-End 2\",\"host\":\"local-toast\",\"port\":8090,\"contextPath\":\"\",\"https\":false,\"defaultBackend\":false},\n+        {\"name\":\"My Back-End 3\",\"host\":\"localhost\",\"port\":8091,\"contextPath\":\"\",\"https\":false,\"defaultBackend\":false},\n+        {\"name\":\"My Back-End 4\",\"host\":\"localhost\",\"port\":8090,\"contextPath\":\"/back-end\",\"https\":false,\"defaultBackend\":false},\n+        {\"name\":\"My Back-End 5\",\"host\":\"localhost\",\"port\":8090,\"contextPath\":\"\",\"https\":true,\"defaultBackend\":false}\n+    ]\n+\n+All entries has different `names`.\n+Second entry has different `host`, third entry has different `port`, third entry has different `contextPath`, fifth eentry has `https` changed to true.\n+\n+###### Example of __invalid__ back-end list:\n+\n+\n+    [\n+        {\"name\":\"My Back-End\",\"host\":\"localhost\",\"port\":8090,\"contextPath\":\"\",\"https\":false,\"defaultBackend\":true},\n+        {\"name\":\"My Back-End\",\"host\":\"local-toast\",\"port\":12345,\"contextPath\":\"/my-path\",\"https\":true,\"defaultBackend\":false},\n+        {\"name\":\"My Back-End 2\",\"host\":\"localhost\",\"port\":8090,\"contextPath\":\"\",\"https\":false,\"defaultBackend\":false}\n+    ]\n+\n+The second entry is invalid due to having the same name as the first entry. The third entry is invalid due to having the same value in all fields as the first entry.\n+\n+\n+### Specified back-end\n+As a user of the front-end you may want to specify your own back-end URL if you do not want to use the default back-end.\n+This is possible to do by injecting the back-end URL as a query parameter.\n+The parameters key should be `backendurl` then enter the full HTTP URL you wish to use.\n+\n+An example of a way to add such parameter is below, note that the \"?\" indicates that parameters has been added to the front-end url.\n+`Localhost:8080` is the front-end url, and we want to access the context path /auth but on URL `http://127.0.0.1:8090/` that is the back-end we wish to use.\n+\n+\n+    curl -X GET http://localhost:8080/auth?backendurl=\"http://127.0.0.1:8090/\"\n+\n+Example with Tomcat:\n+\n+    curl -X GET http://localhost:8080/eifrontend/auth?backendurl=\"http://127.0.0.1:8090/eibackend/\"\n+\n+This way of entering the `backendurl` may be the easiest way. It works with GET, POST and PUT requests. Currently entering just a back-end name is not supported.\n+\n+Note: It is not possible to add the `backendurl` parameter as a JSON parameter.\n+\n+\n+## Endpoints bridged from front-end to back-End\n+<table>\n+    <tr>\n+        <th>Context Path</th>\n+        <th>Type</th>\n+        <th>Explanation</th>\n+    </tr>\n+    <tr>\n+        <td>/auth</td>\n+        <td>GET</td>\n+        <td>Authentication status, is LDAP enabled</td>\n+    </tr>\n+    <tr>\n+        <td>/auth/checkStatus</td>\n+        <td>GET</td>\n+        <td>Back-end status, is back-end online</td>\n+    </tr>\n+    <tr>\n+        <td>/subscriptions</td>\n+        <td>GET</td>\n+        <td>Fetches all available subscriptions from the back-end</td>\n+    </tr>\n+    <tr>\n+        <td>/subscriptions</td>\n+        <td>POST</td>\n+        <td>Request to add a new subscription included as a JSON object</td>\n+    </tr>\n+    <tr>\n+        <td>/subscriptions</td>\n+        <td>PUT</td>\n+        <td>Request to update a given subscription object included as a JSON object</td>\n+    </tr>\n+    <tr>\n+        <td>/subscriptions/*subscription name*</td>\n+        <td>GET</td>\n+        <td>Fetches information about a single subscription from the back-end</td>\n+    </tr>\n+    <tr>\n+        <td>/subscriptions/*subscription name*</td>\n+        <td>DELETE</td>\n+        <td>Deletes a single instance from the back-end</td>\n+    </tr>\n+    <tr>\n+        <td>/information</td>\n+        <td>GET</td>\n+        <td>Fetches all information from about the back-end and it´s components</td>\n+    </tr>\n+    <tr>\n+        <td>/queryAggregatedObject</td>\n+        <td>GET</td>\n+        <td>Download a subscription template json file</td>\n+    </tr>\n+    <tr>\n+        <td>/queryMissedNotifications</td>\n+        <td>GET</td>\n+        <td>Queries any missed notifications</td>\n+    </tr>\n+    <tr>\n+        <td>/query</td>\n+        <td>GET</td>\n+        <td>Free style query, here the user may specify their queries</td>","path":"wiki/Front-end_with_curl.md","position":161,"original_position":161,"commit_id":"671aca11ee0d3896db3e96b67988a58c78362c1c","original_commit_id":"671aca11ee0d3896db3e96b67988a58c78362c1c","user":{"login":"a-breid-ericsson","id":38723221,"node_id":"MDQ6VXNlcjM4NzIzMjIx","avatar_url":"https://avatars3.githubusercontent.com/u/38723221?v=4","gravatar_id":"","url":"https://api.github.com/users/a-breid-ericsson","html_url":"https://github.com/a-breid-ericsson","followers_url":"https://api.github.com/users/a-breid-ericsson/followers","following_url":"https://api.github.com/users/a-breid-ericsson/following{/other_user}","gists_url":"https://api.github.com/users/a-breid-ericsson/gists{/gist_id}","starred_url":"https://api.github.com/users/a-breid-ericsson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-breid-ericsson/subscriptions","organizations_url":"https://api.github.com/users/a-breid-ericsson/orgs","repos_url":"https://api.github.com/users/a-breid-ericsson/repos","events_url":"https://api.github.com/users/a-breid-ericsson/events{/privacy}","received_events_url":"https://api.github.com/users/a-breid-ericsson/received_events","type":"User","site_admin":false},"body":"Fixed in upcoming commit.","created_at":"2018-12-10T13:41:32Z","updated_at":"2018-12-10T13:41:32Z","html_url":"https://github.com/eiffel-community/eiffel-intelligence-frontend/pull/123#discussion_r240212321","pull_request_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/comments/240212321"},"html":{"href":"https://github.com/eiffel-community/eiffel-intelligence-frontend/pull/123#discussion_r240212321"},"pull_request":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123"}},"in_reply_to_id":240200656},"pull_request":{"url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123","id":236172148,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM2MTcyMTQ4","html_url":"https://github.com/eiffel-community/eiffel-intelligence-frontend/pull/123","diff_url":"https://github.com/eiffel-community/eiffel-intelligence-frontend/pull/123.diff","patch_url":"https://github.com/eiffel-community/eiffel-intelligence-frontend/pull/123.patch","issue_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/issues/123","number":123,"state":"open","locked":false,"title":"Implement and verify curl functionality","user":{"login":"a-breid-ericsson","id":38723221,"node_id":"MDQ6VXNlcjM4NzIzMjIx","avatar_url":"https://avatars3.githubusercontent.com/u/38723221?v=4","gravatar_id":"","url":"https://api.github.com/users/a-breid-ericsson","html_url":"https://github.com/a-breid-ericsson","followers_url":"https://api.github.com/users/a-breid-ericsson/followers","following_url":"https://api.github.com/users/a-breid-ericsson/following{/other_user}","gists_url":"https://api.github.com/users/a-breid-ericsson/gists{/gist_id}","starred_url":"https://api.github.com/users/a-breid-ericsson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-breid-ericsson/subscriptions","organizations_url":"https://api.github.com/users/a-breid-ericsson/orgs","repos_url":"https://api.github.com/users/a-breid-ericsson/repos","events_url":"https://api.github.com/users/a-breid-ericsson/events{/privacy}","received_events_url":"https://api.github.com/users/a-breid-ericsson/received_events","type":"User","site_admin":false},"body":"Implementations:\r\nDocumentation on how to use the front-end bridge functionality.\r\nFunctionaltests that ensure this functionality works.\r\nCheck weather or not user tries to add a default back end, denies if there is a default back end.\r\nTest to check that this function works.\r\n\r\nImprovements:\r\nFunctional tests without SeleniumTestBase extends a TestBaseClass containing common components, SeleniumTestBase also extends this class so that any selenium test may use those components.  \r\n\r\nLook at documentation here: https://github.com/a-breid-ericsson/eiffel-intelligence-frontend/blob/implement_and_verify_curl_functionality/wiki/Front-end_with_curl.md\r\n\r\n### Applicable Issues\r\n<!-- Reference any relevant issues here. Every pull request must reference at least one issue to be considered (as per contribution guidelines) -->\r\n\r\n### Description of the Change\r\n<!-- We must be able to understand the design of your change from this description. If we can't get a good idea of what the code will be doing from the description here, the pull request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the sources addressed by this PR recently, so please walk us through the concepts. -->\r\n\r\n### Alternate Designs\r\n<!-- Explain what other alternates were considered and why the proposed version was selected -->\r\n\r\n### Benefits\r\n<!-- What benefits will be realized by the change? -->\r\n\r\n### Possible Drawbacks\r\n<!-- What are the possible side-effects or negative impacts of the change? -->\r\n\r\n### Sign-off\r\n<!-- Sign the below certificate of origin, using your full name and e-mail address. -->\r\n<!-- The certificate is copied from https://developercertificate.org/ -->\r\n\r\nDeveloper's Certificate of Origin 1.1\r\n\r\nBy making a contribution to this project, I certify that:\r\n\r\n(a) The contribution was created in whole or in part by me and I\r\n    have the right to submit it under the open source license\r\n    indicated in the file; or\r\n\r\n(b) The contribution is based upon previous work that, to the best\r\n    of my knowledge, is covered under an appropriate open source\r\n    license and I have the right under that license to submit that\r\n    work with modifications, whether created in whole or in part\r\n    by me, under the same open source license (unless I am\r\n    permitted to submit under a different license), as indicated\r\n    in the file; or\r\n\r\n(c) The contribution was provided directly to me by some other\r\n    person who certified (a), (b) or (c) and I have not modified\r\n    it.\r\n\r\n(d) I understand and agree that this project and the contribution\r\n    are public and that a record of the contribution (including all\r\n    personal information I submit with it, including my sign-off) is\r\n    maintained indefinitely and may be redistributed consistent with\r\n    this project or the open source license(s) involved.\r\n\r\nSigned-off-by: <!-- <Your full name> <your-email@example.org> -->\r\n","created_at":"2018-12-05T13:22:38Z","updated_at":"2018-12-10T13:41:32Z","closed_at":null,"merged_at":null,"merge_commit_sha":"28c464a6b59bbd98a836fa72cd5c37e33d5b00ab","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123/commits","review_comments_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123/comments","review_comment_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/comments{/number}","comments_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/issues/123/comments","statuses_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/statuses/671aca11ee0d3896db3e96b67988a58c78362c1c","head":{"label":"a-breid-ericsson:implement_and_verify_curl_functionality","ref":"implement_and_verify_curl_functionality","sha":"671aca11ee0d3896db3e96b67988a58c78362c1c","user":{"login":"a-breid-ericsson","id":38723221,"node_id":"MDQ6VXNlcjM4NzIzMjIx","avatar_url":"https://avatars3.githubusercontent.com/u/38723221?v=4","gravatar_id":"","url":"https://api.github.com/users/a-breid-ericsson","html_url":"https://github.com/a-breid-ericsson","followers_url":"https://api.github.com/users/a-breid-ericsson/followers","following_url":"https://api.github.com/users/a-breid-ericsson/following{/other_user}","gists_url":"https://api.github.com/users/a-breid-ericsson/gists{/gist_id}","starred_url":"https://api.github.com/users/a-breid-ericsson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-breid-ericsson/subscriptions","organizations_url":"https://api.github.com/users/a-breid-ericsson/orgs","repos_url":"https://api.github.com/users/a-breid-ericsson/repos","events_url":"https://api.github.com/users/a-breid-ericsson/events{/privacy}","received_events_url":"https://api.github.com/users/a-breid-ericsson/received_events","type":"User","site_admin":false},"repo":{"id":155863232,"node_id":"MDEwOlJlcG9zaXRvcnkxNTU4NjMyMzI=","name":"eiffel-intelligence-frontend","full_name":"a-breid-ericsson/eiffel-intelligence-frontend","private":false,"owner":{"login":"a-breid-ericsson","id":38723221,"node_id":"MDQ6VXNlcjM4NzIzMjIx","avatar_url":"https://avatars3.githubusercontent.com/u/38723221?v=4","gravatar_id":"","url":"https://api.github.com/users/a-breid-ericsson","html_url":"https://github.com/a-breid-ericsson","followers_url":"https://api.github.com/users/a-breid-ericsson/followers","following_url":"https://api.github.com/users/a-breid-ericsson/following{/other_user}","gists_url":"https://api.github.com/users/a-breid-ericsson/gists{/gist_id}","starred_url":"https://api.github.com/users/a-breid-ericsson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/a-breid-ericsson/subscriptions","organizations_url":"https://api.github.com/users/a-breid-ericsson/orgs","repos_url":"https://api.github.com/users/a-breid-ericsson/repos","events_url":"https://api.github.com/users/a-breid-ericsson/events{/privacy}","received_events_url":"https://api.github.com/users/a-breid-ericsson/received_events","type":"User","site_admin":false},"html_url":"https://github.com/a-breid-ericsson/eiffel-intelligence-frontend","description":null,"fork":true,"url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend","forks_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/forks","keys_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/teams","hooks_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/hooks","issue_events_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/issues/events{/number}","events_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/events","assignees_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/assignees{/user}","branches_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/branches{/branch}","tags_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/tags","blobs_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/git/refs{/sha}","trees_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/statuses/{sha}","languages_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/languages","stargazers_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/stargazers","contributors_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/contributors","subscribers_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/subscribers","subscription_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/subscription","commits_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/commits{/sha}","git_commits_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/git/commits{/sha}","comments_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/comments{/number}","issue_comment_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/issues/comments{/number}","contents_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/contents/{+path}","compare_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/merges","archive_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/downloads","issues_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/issues{/number}","pulls_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/pulls{/number}","milestones_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/milestones{/number}","notifications_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/labels{/name}","releases_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/releases{/id}","deployments_url":"https://api.github.com/repos/a-breid-ericsson/eiffel-intelligence-frontend/deployments","created_at":"2018-11-02T12:30:12Z","updated_at":"2018-12-05T13:25:48Z","pushed_at":"2018-12-10T13:16:21Z","git_url":"git://github.com/a-breid-ericsson/eiffel-intelligence-frontend.git","ssh_url":"git@github.com:a-breid-ericsson/eiffel-intelligence-frontend.git","clone_url":"https://github.com/a-breid-ericsson/eiffel-intelligence-frontend.git","svn_url":"https://github.com/a-breid-ericsson/eiffel-intelligence-frontend","homepage":null,"size":15170,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","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":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"eiffel-community:master","ref":"master","sha":"f4e312cc039bc5be3fae7fe9e03c0888eda8ba72","user":{"login":"eiffel-community","id":33682335,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMzNjgyMzM1","avatar_url":"https://avatars0.githubusercontent.com/u/33682335?v=4","gravatar_id":"","url":"https://api.github.com/users/eiffel-community","html_url":"https://github.com/eiffel-community","followers_url":"https://api.github.com/users/eiffel-community/followers","following_url":"https://api.github.com/users/eiffel-community/following{/other_user}","gists_url":"https://api.github.com/users/eiffel-community/gists{/gist_id}","starred_url":"https://api.github.com/users/eiffel-community/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eiffel-community/subscriptions","organizations_url":"https://api.github.com/users/eiffel-community/orgs","repos_url":"https://api.github.com/users/eiffel-community/repos","events_url":"https://api.github.com/users/eiffel-community/events{/privacy}","received_events_url":"https://api.github.com/users/eiffel-community/received_events","type":"Organization","site_admin":false},"repo":{"id":108382337,"node_id":"MDEwOlJlcG9zaXRvcnkxMDgzODIzMzc=","name":"eiffel-intelligence-frontend","full_name":"eiffel-community/eiffel-intelligence-frontend","private":false,"owner":{"login":"eiffel-community","id":33682335,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMzNjgyMzM1","avatar_url":"https://avatars0.githubusercontent.com/u/33682335?v=4","gravatar_id":"","url":"https://api.github.com/users/eiffel-community","html_url":"https://github.com/eiffel-community","followers_url":"https://api.github.com/users/eiffel-community/followers","following_url":"https://api.github.com/users/eiffel-community/following{/other_user}","gists_url":"https://api.github.com/users/eiffel-community/gists{/gist_id}","starred_url":"https://api.github.com/users/eiffel-community/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eiffel-community/subscriptions","organizations_url":"https://api.github.com/users/eiffel-community/orgs","repos_url":"https://api.github.com/users/eiffel-community/repos","events_url":"https://api.github.com/users/eiffel-community/events{/privacy}","received_events_url":"https://api.github.com/users/eiffel-community/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/eiffel-community/eiffel-intelligence-frontend","description":null,"fork":false,"url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend","forks_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/forks","keys_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/teams","hooks_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/hooks","issue_events_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/issues/events{/number}","events_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/events","assignees_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/assignees{/user}","branches_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/branches{/branch}","tags_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/tags","blobs_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/git/refs{/sha}","trees_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/statuses/{sha}","languages_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/languages","stargazers_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/stargazers","contributors_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/contributors","subscribers_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/subscribers","subscription_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/subscription","commits_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/commits{/sha}","git_commits_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/git/commits{/sha}","comments_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/comments{/number}","issue_comment_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/issues/comments{/number}","contents_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/contents/{+path}","compare_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/merges","archive_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/downloads","issues_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/issues{/number}","pulls_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls{/number}","milestones_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/milestones{/number}","notifications_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/labels{/name}","releases_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/releases{/id}","deployments_url":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/deployments","created_at":"2017-10-26T08:20:39Z","updated_at":"2018-12-06T07:42:57Z","pushed_at":"2018-12-10T13:16:23Z","git_url":"git://github.com/eiffel-community/eiffel-intelligence-frontend.git","ssh_url":"git@github.com:eiffel-community/eiffel-intelligence-frontend.git","clone_url":"https://github.com/eiffel-community/eiffel-intelligence-frontend.git","svn_url":"https://github.com/eiffel-community/eiffel-intelligence-frontend","homepage":null,"size":15128,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":13,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":13,"open_issues":5,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123"},"html":{"href":"https://github.com/eiffel-community/eiffel-intelligence-frontend/pull/123"},"issue":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/issues/123"},"comments":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/issues/123/comments"},"review_comments":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123/comments"},"review_comment":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/pulls/123/commits"},"statuses":{"href":"https://api.github.com/repos/eiffel-community/eiffel-intelligence-frontend/statuses/671aca11ee0d3896db3e96b67988a58c78362c1c"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"a-breid-ericsson"}}