{"action":"created","comment":{"url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/comments/184703648","pull_request_review_id":115957771,"id":184703648,"diff_hunk":"@@ -4,73 +4,50 @@\n \n import datetime\n import time\n-from sqlalchemy import func, desc, text, asc\n+\n+from sqlalchemy import func, distinct\n \n from flask_monitoringdashboard import config\n from flask_monitoringdashboard.database import session_scope, FunctionCall\n+from flask_monitoringdashboard.database.count import count_requests\n \n \n-def get_reqs_endpoint_day():\n-    \"\"\" Retrieves the number of requests per endpoint per day. \"\"\"\n+def get_requests_per_day(endpoint, list_of_days):\n+    \"\"\"\n+    :param endpoint: name of the endpoint\n+    :param list_of_days: a list with datetime.date objects\n+    :return: A list of the amount of requests per day for a specific endpoint.\n+    If no requests is made on that day, a value of 0 is returned.\n+    \"\"\"\n+    result_list = []\n     with session_scope() as db_session:\n-        query = text(\"\"\"select strftime('%Y-%m-%d', time) AS newTime,\n-                               count(endpoint) AS cnt,\n-                               endpoint\n-                        from functioncalls \n-                        group by newTime, endpoint\"\"\")\n-        result = db_session.execute(query)\n-        data = result.fetchall()\n-        return data\n+        for day in list_of_days:\n+            result = db_session.query(FunctionCall.execution_time). \\\n+                filter(FunctionCall.endpoint == endpoint). \\\n+                filter(func.strftime('%Y-%m-%d', FunctionCall.time) == day.strftime('%Y-%m-%d')).count()\n+            result_list.append(result)\n+    return result_list\n \n \n-def add_function_call(time, endpoint, ip):\n+def add_function_call(execution_time, endpoint, ip):\n     \"\"\" Add a measurement to the database. \"\"\"\n     with session_scope() as db_session:\n-        group_by = None\n-        try:\n-            if config.get_group_by:\n-                group_by = config.get_group_by()\n-        except Exception as e:\n-            print('Can\\'t execute group_by function: {}'.format(e))\n-        call = FunctionCall(endpoint=endpoint, execution_time=time, version=config.version,\n-                            time=datetime.datetime.now(), group_by=str(group_by), ip=ip)\n-        db_session.add(call)\n-\n-\n-def get_times():\n-    \"\"\" Return all entries of measurements with the average and total number of execution times. The results are \n-    grouped by their endpoint. \"\"\"\n-    with session_scope() as db_session:\n-        result = db_session.query(FunctionCall.endpoint,\n-                                  func.count(FunctionCall.execution_time).label('count'),\n-                                  func.avg(FunctionCall.execution_time).label('average')\n-                                  ).group_by(FunctionCall.endpoint).order_by(desc('count')).all()\n-        db_session.expunge_all()\n-        return result\n-\n-\n-def get_hits(date_from=None):\n-    \"\"\" Return all entries of measurements with the number of execution times which are called after 'date_from'\n-    :param date_from: A datetime-object\n-    \"\"\"\n-    with session_scope() as db_session:\n-        result = db_session.query(FunctionCall.endpoint,\n-                                  func.count(FunctionCall.execution_time).label('count')). \\\n-            filter(FunctionCall.time > date_from).group_by(FunctionCall.endpoint).all()\n-        db_session.expunge_all()\n-        return result\n+        db_session.add(FunctionCall(endpoint=endpoint, execution_time=execution_time, version=config.version, ip=ip))\n \n \n-def get_average(date_from=None):\n-    \"\"\" Return the average of execution times which are called after 'date_from' grouped per endpoint\n-    :param date_from: A datetime-object\n+def get_median(endpoint, *where):","path":"flask_monitoringdashboard/database/function_calls.py","position":83,"original_position":83,"commit_id":"2a2e2649c5a57e1685819e9dfe0e4ff8bce4d2d5","original_commit_id":"2a2e2649c5a57e1685819e9dfe0e4ff8bce4d2d5","user":{"login":"bogdanp05","id":7281856,"avatar_url":"https://avatars3.githubusercontent.com/u/7281856?v=4","gravatar_id":"","url":"https://api.github.com/users/bogdanp05","html_url":"https://github.com/bogdanp05","followers_url":"https://api.github.com/users/bogdanp05/followers","following_url":"https://api.github.com/users/bogdanp05/following{/other_user}","gists_url":"https://api.github.com/users/bogdanp05/gists{/gist_id}","starred_url":"https://api.github.com/users/bogdanp05/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bogdanp05/subscriptions","organizations_url":"https://api.github.com/users/bogdanp05/orgs","repos_url":"https://api.github.com/users/bogdanp05/repos","events_url":"https://api.github.com/users/bogdanp05/events{/privacy}","received_events_url":"https://api.github.com/users/bogdanp05/received_events","type":"User","site_admin":false},"body":"This function makes 2 queries to the db: first on line 44 and the second on line 46.","created_at":"2018-04-27T14:26:08Z","updated_at":"2018-04-27T14:26:08Z","html_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard/pull/93#discussion_r184703648","pull_request_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/comments/184703648"},"html":{"href":"https://github.com/flask-dashboard/Flask-MonitoringDashboard/pull/93#discussion_r184703648"},"pull_request":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93"}}},"pull_request":{"url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93","id":184277949,"html_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard/pull/93","diff_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard/pull/93.diff","patch_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard/pull/93.patch","issue_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/93","number":93,"state":"open","locked":false,"title":"Refactor","user":{"login":"FlyingBird95","id":17162650,"avatar_url":"https://avatars0.githubusercontent.com/u/17162650?v=4","gravatar_id":"","url":"https://api.github.com/users/FlyingBird95","html_url":"https://github.com/FlyingBird95","followers_url":"https://api.github.com/users/FlyingBird95/followers","following_url":"https://api.github.com/users/FlyingBird95/following{/other_user}","gists_url":"https://api.github.com/users/FlyingBird95/gists{/gist_id}","starred_url":"https://api.github.com/users/FlyingBird95/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FlyingBird95/subscriptions","organizations_url":"https://api.github.com/users/FlyingBird95/orgs","repos_url":"https://api.github.com/users/FlyingBird95/repos","events_url":"https://api.github.com/users/FlyingBird95/events{/privacy}","received_events_url":"https://api.github.com/users/FlyingBird95/received_events","type":"User","site_admin":false},"body":"Major refactoring of the Dashboard.\r\n\r\nMost important changes:\r\n\r\n- The Jinja2-templates now uses only resources for JQuery and Bootstrap. This reduces the project with 50k JS lines. Bootstrap is updated from 3.0 to 4.0. Therefore, the layout is slightly changed.\r\n- Removed two graphs: hits per hour and execution time per hour:\r\n- On the overview page, the average is replaced with the median execution time.\r\n- Added two types of forms to reduce the graph:\r\n   - A graph that shows data across a number of days can be reduced by a 'Date-range-form', that is: a start-date and an end-date.\r\n   - A graph that plots a number of items (e.g. the Time per version per User) can be reduced by selecting an integer that represent the amount of users that are displayed.\r\n- Outlier page is divided into subpages, each page shows at most 10 outliers.\r\n- Group by is refactored, it now accepts any combination of: lists, int, strings, tuples and functions.\r\n\r\nResolved issues:\r\n- https://github.com/flask-dashboard/Flask-MonitoringDashboard/issues/63\r\n- https://github.com/flask-dashboard/Flask-MonitoringDashboard/issues/77\r\n- https://github.com/flask-dashboard/Flask-MonitoringDashboard/issues/80\r\n- https://github.com/flask-dashboard/Flask-MonitoringDashboard/issues/82\r\n- https://github.com/flask-dashboard/Flask-MonitoringDashboard/issues/89","created_at":"2018-04-26T09:27:05Z","updated_at":"2018-04-27T14:26:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ed9f95a9ef9ddbb1db8ffe15c01f52229e6c4238","assignee":null,"assignees":[],"requested_reviewers":[{"login":"mircealungu","id":464519,"avatar_url":"https://avatars2.githubusercontent.com/u/464519?v=4","gravatar_id":"","url":"https://api.github.com/users/mircealungu","html_url":"https://github.com/mircealungu","followers_url":"https://api.github.com/users/mircealungu/followers","following_url":"https://api.github.com/users/mircealungu/following{/other_user}","gists_url":"https://api.github.com/users/mircealungu/gists{/gist_id}","starred_url":"https://api.github.com/users/mircealungu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mircealungu/subscriptions","organizations_url":"https://api.github.com/users/mircealungu/orgs","repos_url":"https://api.github.com/users/mircealungu/repos","events_url":"https://api.github.com/users/mircealungu/events{/privacy}","received_events_url":"https://api.github.com/users/mircealungu/received_events","type":"User","site_admin":false},{"login":"kloostert","id":17165311,"avatar_url":"https://avatars0.githubusercontent.com/u/17165311?v=4","gravatar_id":"","url":"https://api.github.com/users/kloostert","html_url":"https://github.com/kloostert","followers_url":"https://api.github.com/users/kloostert/followers","following_url":"https://api.github.com/users/kloostert/following{/other_user}","gists_url":"https://api.github.com/users/kloostert/gists{/gist_id}","starred_url":"https://api.github.com/users/kloostert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kloostert/subscriptions","organizations_url":"https://api.github.com/users/kloostert/orgs","repos_url":"https://api.github.com/users/kloostert/repos","events_url":"https://api.github.com/users/kloostert/events{/privacy}","received_events_url":"https://api.github.com/users/kloostert/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93/commits","review_comments_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93/comments","review_comment_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/comments{/number}","comments_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/93/comments","statuses_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/statuses/2a2e2649c5a57e1685819e9dfe0e4ff8bce4d2d5","head":{"label":"flask-dashboard:refactor","ref":"refactor","sha":"2a2e2649c5a57e1685819e9dfe0e4ff8bce4d2d5","user":{"login":"flask-dashboard","id":31957504,"avatar_url":"https://avatars3.githubusercontent.com/u/31957504?v=4","gravatar_id":"","url":"https://api.github.com/users/flask-dashboard","html_url":"https://github.com/flask-dashboard","followers_url":"https://api.github.com/users/flask-dashboard/followers","following_url":"https://api.github.com/users/flask-dashboard/following{/other_user}","gists_url":"https://api.github.com/users/flask-dashboard/gists{/gist_id}","starred_url":"https://api.github.com/users/flask-dashboard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flask-dashboard/subscriptions","organizations_url":"https://api.github.com/users/flask-dashboard/orgs","repos_url":"https://api.github.com/users/flask-dashboard/repos","events_url":"https://api.github.com/users/flask-dashboard/events{/privacy}","received_events_url":"https://api.github.com/users/flask-dashboard/received_events","type":"Organization","site_admin":false},"repo":{"id":87939708,"name":"Flask-MonitoringDashboard","full_name":"flask-dashboard/Flask-MonitoringDashboard","owner":{"login":"flask-dashboard","id":31957504,"avatar_url":"https://avatars3.githubusercontent.com/u/31957504?v=4","gravatar_id":"","url":"https://api.github.com/users/flask-dashboard","html_url":"https://github.com/flask-dashboard","followers_url":"https://api.github.com/users/flask-dashboard/followers","following_url":"https://api.github.com/users/flask-dashboard/following{/other_user}","gists_url":"https://api.github.com/users/flask-dashboard/gists{/gist_id}","starred_url":"https://api.github.com/users/flask-dashboard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flask-dashboard/subscriptions","organizations_url":"https://api.github.com/users/flask-dashboard/orgs","repos_url":"https://api.github.com/users/flask-dashboard/repos","events_url":"https://api.github.com/users/flask-dashboard/events{/privacy}","received_events_url":"https://api.github.com/users/flask-dashboard/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard","description":"Automatically monitor the evolving performance of Flask/Python web services.","fork":false,"url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard","forks_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/forks","keys_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/teams","hooks_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/hooks","issue_events_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/events{/number}","events_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/events","assignees_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/assignees{/user}","branches_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/branches{/branch}","tags_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/tags","blobs_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/statuses/{sha}","languages_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/languages","stargazers_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/stargazers","contributors_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/contributors","subscribers_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/subscribers","subscription_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/subscription","commits_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/contents/{+path}","compare_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/merges","archive_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/downloads","issues_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues{/number}","pulls_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls{/number}","milestones_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/milestones{/number}","notifications_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/labels{/name}","releases_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/releases{/id}","deployments_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/deployments","created_at":"2017-04-11T13:50:14Z","updated_at":"2018-04-24T14:39:54Z","pushed_at":"2018-04-26T13:08:15Z","git_url":"git://github.com/flask-dashboard/Flask-MonitoringDashboard.git","ssh_url":"git@github.com:flask-dashboard/Flask-MonitoringDashboard.git","clone_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard.git","svn_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard","homepage":"http://flask-monitoringdashboard.readthedocs.io/","size":3317,"stargazers_count":17,"watchers_count":17,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":18,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":3,"open_issues":18,"watchers":17,"default_branch":"master"}},"base":{"label":"flask-dashboard:master","ref":"master","sha":"aec3370a30b545e97242e1fc4e4624416c3df899","user":{"login":"flask-dashboard","id":31957504,"avatar_url":"https://avatars3.githubusercontent.com/u/31957504?v=4","gravatar_id":"","url":"https://api.github.com/users/flask-dashboard","html_url":"https://github.com/flask-dashboard","followers_url":"https://api.github.com/users/flask-dashboard/followers","following_url":"https://api.github.com/users/flask-dashboard/following{/other_user}","gists_url":"https://api.github.com/users/flask-dashboard/gists{/gist_id}","starred_url":"https://api.github.com/users/flask-dashboard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flask-dashboard/subscriptions","organizations_url":"https://api.github.com/users/flask-dashboard/orgs","repos_url":"https://api.github.com/users/flask-dashboard/repos","events_url":"https://api.github.com/users/flask-dashboard/events{/privacy}","received_events_url":"https://api.github.com/users/flask-dashboard/received_events","type":"Organization","site_admin":false},"repo":{"id":87939708,"name":"Flask-MonitoringDashboard","full_name":"flask-dashboard/Flask-MonitoringDashboard","owner":{"login":"flask-dashboard","id":31957504,"avatar_url":"https://avatars3.githubusercontent.com/u/31957504?v=4","gravatar_id":"","url":"https://api.github.com/users/flask-dashboard","html_url":"https://github.com/flask-dashboard","followers_url":"https://api.github.com/users/flask-dashboard/followers","following_url":"https://api.github.com/users/flask-dashboard/following{/other_user}","gists_url":"https://api.github.com/users/flask-dashboard/gists{/gist_id}","starred_url":"https://api.github.com/users/flask-dashboard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flask-dashboard/subscriptions","organizations_url":"https://api.github.com/users/flask-dashboard/orgs","repos_url":"https://api.github.com/users/flask-dashboard/repos","events_url":"https://api.github.com/users/flask-dashboard/events{/privacy}","received_events_url":"https://api.github.com/users/flask-dashboard/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard","description":"Automatically monitor the evolving performance of Flask/Python web services.","fork":false,"url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard","forks_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/forks","keys_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/teams","hooks_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/hooks","issue_events_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/events{/number}","events_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/events","assignees_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/assignees{/user}","branches_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/branches{/branch}","tags_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/tags","blobs_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/refs{/sha}","trees_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/statuses/{sha}","languages_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/languages","stargazers_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/stargazers","contributors_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/contributors","subscribers_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/subscribers","subscription_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/subscription","commits_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/commits{/sha}","git_commits_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/git/commits{/sha}","comments_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/comments{/number}","issue_comment_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/comments{/number}","contents_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/contents/{+path}","compare_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/merges","archive_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/downloads","issues_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues{/number}","pulls_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls{/number}","milestones_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/milestones{/number}","notifications_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/labels{/name}","releases_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/releases{/id}","deployments_url":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/deployments","created_at":"2017-04-11T13:50:14Z","updated_at":"2018-04-24T14:39:54Z","pushed_at":"2018-04-26T13:08:15Z","git_url":"git://github.com/flask-dashboard/Flask-MonitoringDashboard.git","ssh_url":"git@github.com:flask-dashboard/Flask-MonitoringDashboard.git","clone_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard.git","svn_url":"https://github.com/flask-dashboard/Flask-MonitoringDashboard","homepage":"http://flask-monitoringdashboard.readthedocs.io/","size":3317,"stargazers_count":17,"watchers_count":17,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"open_issues_count":18,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit"},"forks":3,"open_issues":18,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93"},"html":{"href":"https://github.com/flask-dashboard/Flask-MonitoringDashboard/pull/93"},"issue":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/93"},"comments":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/issues/93/comments"},"review_comments":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93/comments"},"review_comment":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/pulls/93/commits"},"statuses":{"href":"https://api.github.com/repos/flask-dashboard/Flask-MonitoringDashboard/statuses/2a2e2649c5a57e1685819e9dfe0e4ff8bce4d2d5"}},"author_association":"OWNER"}}
{"actor":{"display_login":"bogdanp05"}}