{"action":"created","comment":{"url":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/comments/78235485","id":78235485,"diff_hunk":"@@ -13,10 +13,421 @@\n //\n // This library depends on 3 external packages: d3.js, d3-queue.js, and saveSvgAsPng.js\n // Those packages are available here or via npm:\n-//     https://github.com/mbostock/d3\n-//     https://github.com/d3/d3-queue\n+//     https://github.com/mbostock/d3 -- API version 3\n+//     https://github.com/d3/d3-queue -- API version 3\n //     https://github.com/exupero/saveSvgAsPng\n \n+/*\n+\n+Using jschart:\n+\n+From a developer user perspective jschart is consumed by calling the\n+create_graph function:\n+\n+  create_jschart(<stacked>, <data model>, <location>, <chart title>, <x axis title>, <y axis title>, <options>);\n+\n+Here is a summary of each parameter:\n+\n+  1. <stacked>\n+\n+     This parameter tells the library whether the chart is a simple\n+     line chart or an stacked area chart.  There are two different\n+     methodologies of supplying this parameter.  In the original\n+     invocation it was a simple boolean field: '1' or 'true' for a\n+     stacked area chart and '0' or 'false' for a regular line chart.\n+     When jschart was ported to pbench support for two additional\n+     values were added: 'stackedAreaChart' and 'lineChart'.  These new\n+     parameters were simply mapped to the existing values for\n+     compatilibity purposes.\n+\n+  2. <data model>\n+\n+     This parameter tells the library what kind of chart is being\n+     built, which ultimately results in configuring how the X axis is\n+     setup.  There are three possible values for <data model>:\n+\n+       a. 'xy'\n+       b. 'timeseries'\n+       c. 'histogram'\n+\n+     An 'xy' chart means that the supplied data is just a series of\n+     X/Y value pairs to be plotted without any additional processing.\n+     A 'timeseries' chart differs from the 'xy' chart because the X\n+     axis values are milliseconds sinc epoch timestamps.  When the\n+     chart is being drawn the integer timestamps are used just like a\n+     regular X/Y value pair but at the presentation layer the\n+     timestamps are converted into user deciperable timestamps,\n+     generally of the form 'YYYY-MM-DD HH:MM:SS'.  A 'histogram' chart\n+     is treated very similarly to an 'xy' chart from a plotting\n+     perspective, but the values are interpreted to be a bucket/count\n+     pair rather than simple X/Y coordinates.  When the data table is\n+     populated this results in different statistics being conveyed to\n+     the user than a normal 'xy' chart.\n+\n+  3. <location>\n+\n+     The <location> parameter tells the library where to insert the\n+     chart and it's accompanying table into the HTML DOM.  This is\n+     usually implemented in the following fashion:\n+\n+     ...\n+     <div id='foo'>\n+       <script>\n+         create_jschart(<stacked>, <data model>, 'foo', <chart title>, <x axis title>, <y axis title>, <options>);\n+       </script>\n+     </div>\n+     ...\n+\n+     This could also be implemented with a much less direct linkage,\n+     such as:\n+\n+     ...\n+     <script>\n+       ...\n+       create_jschart(<stacked>, <data model>, 'bar', <chart title>, <x axis title>, <y axis title>, <options>);\n+       ...\n+     </script>\n+     ...\n+     <div id='bar'/>\n+     ...\n+\n+  4. <chart title>\n+\n+     This is simply the title printed at the top of the chart.\n+\n+  5. <x axis title>\n+\n+     This is the title printed below the X axis.\n+\n+  6. <y axis title>\n+\n+     This is the title printed above the Y axis.\n+\n+  7. <options>\n+\n+     The <options> parameter is a javascript object that is a\n+     catch-all for many parameters.  All of the parameters supplied\n+     here are optional, but there must be something here.  For\n+     example, there are many different ways of supplying data files,\n+     but at least one of them must be used in order to achieve a\n+     working chart.\n+\n+     Here is a list of the available options:\n+\n+       a. timeseries_timezone\n+       b. legend_entries\n+       c. plotfiles[]\n+       d. plotfile\n+       e. packed\n+       f. csvfiles[]\n+       g. json_plotfile\n+       h. json_args\n+       i. update_interval\n+       j. history_length\n+       k. raw_data_sources[]\n+       l. threshold\n+       m. sort_datasets\n+       n. x_min\n+       o. x_max\n+       p. y_min\n+       q. y_max\n+       r. x_log_scale\n+       s. y_log_scale\n+\n+     Now it is time to break these options down in detail:\n+\n+       a. timeseries_timezone\n+\n+          This option is used to configure what time zone is used for\n+          the 'timeseries' data model.  Currently only 'local' or\n+          'utc' is supported.\n+\n+\t  Example:\n+\n+\t    { ..., timeseries_timezone: \"local\" }\n+\n+       b. legend_entries\n+\n+          The legend_entries options is a variable sized array\n+          defining arbitrary entries that should be added to the chart\n+          legend.  This is meant to provide a convenient method\n+          through which comments can easily be added to a chart.\n+\n+          Example:\n+\n+\t    { ..., legend_entries: [ \"entry #1\", \"entry #2\" ] }\n+\n+       c. plotfiles[]\n+\n+          A plot file is the original data file supported by jschart\n+          and originally comes from multiple generations of charting\n+          programs that predated jschart.  The plot file format is\n+          extremely simple, it consists of a header row which defines\n+          the data series name and then rows of value pairs which are\n+          typically X/Y pairs.  It looks like this:\n+\n+\t    #LABEL:data series name\n+\t    5 0\n+\t    10 2\n+\t    15 8\n+\t    20 3\n+\t    25 1\n+\n+\t  In most cases the file consisted of X axis values which were\n+\t  the interval that a tool produced a sample, in the above\n+\t  example that interval is 5 seconds.  The Y axis values are\n+\t  the arbitrary value produced by the tool for that interval's\n+\t  sample.\n+\n+\t  The jschart library supports multiple plot files to be\n+\t  specified, so the plotfiles parameter is an arbitrarily\n+\t  sized array.  It would be used like this in the options\n+\t  parameter:\n+\n+\t    { plotfiles: [ \"plotfiles/file1.plot\", \"plotfiles/file2.plot\", ... ] }\n+\n+       d. plotfile\n+\n+          The plotfile options is a simplified version of the\n+          plotfiles option which only supports a single plot file\n+          being supplied to the jschart library.  It is most\n+          applicable when combined with the packed option which is\n+          discuused next.\n+\n+       e. packed\n+\n+          The packed option is optionally used in conjunction with the\n+          plotfile option.  The original plotfile file format only\n+          supported a single data series, meaning multiple data series\n+          required multiple files.  When jschart was written this\n+          demonstrated scalability issues in environments with very\n+          large data series counts.  A modified version of the plot\n+          file format called a packed plot file was created which\n+          combined multiple plot files into a single file with\n+          delineations between each data series.  It was a requirement\n+          that jschart know in advance the number of data series\n+          packed into the single file which is the point of this\n+          variable.  Here is an example of how this option could be\n+          used and the accompanying plot file:\n+\n+\t  { packed: 2, plotfile: 'plotfiles/2-packed.plot' }\n+\n+\t  Contents of plotfiles/2-packed.plot:\n+\n+\t    --- JSChart Packed Plot File V1 ---\n+\t    #LABEL:data series 1\n+\t    5 10\n+\t    10 9\n+\t    15 11\n+\t    20 13\n+\t    25 7\n+\t    --- JSChart Packed Plot File V1 ---\n+\t    #LABEL:data series 2\n+\t    5 8\n+\t    10 9\n+\t    15 5\n+\t    20 6\n+\t    25 4\n+\n+       f. csvfiles[]\n+\n+          The csvfiles parameter is an arbitrarily sized array that\n+          points to one or more CSV formatted data files.  CSV file\n+          support was added to jschart when it was adopted by pbench\n+          in order to handle the data files that pbench was already\n+          producing.  The CSV file format support is similar to the\n+          plot file format support, yet still different.  The csvfiles\n+          option is an abitrary array like the plotfiles options but\n+          since a CSV file can include multiple datasets there is no\n+          hackish entity like the packed plot file.  A chart can be\n+          populated with one or more CSV files and each CSV file can\n+          have one or more data series in it.\n+\n+\t  The jschart library understands two different CSV file\n+\t  formats which can be briefly described by the following\n+\t  examples:\n+\n+\t    i.  ts,d0,d1,d2,...,dN\n+\t    ii. ts0,d0,ts1,d1,ts2,d2,...,tsN,dN\n+\n+\t  In the first format each data sample row has a single\n+\t  timestamp with an interval sample for each data series at\n+\t  that timestamp.  In practice, this looks like the following:\n+\n+\t    timestamp_ms,data series 1,data series 2\n+\t    1461027782000,0,5\n+\t    1461027783000,4,1\n+\n+\t  The timestamps are in milliseconds since the epoch.\n+\n+\t  The second format has individual timestamps for each data\n+\t  series sample, even those on the same row of the file.  This\n+\t  could look something like the following:\n+\n+\t    timestamp_data_series_1_ms,data series 1,timestamp_data_series_2_ms,data series 2\n+\t    1461027782000,0,1461027782500,5\n+\t    1461027783000,4,1461027783500,1\n+\n+\t  Using the csvfiles option to jschart would look something\n+\t  like this:\n+\n+\t    { csvfiles: [ \"data-files/samples.csv\" ] }\n+\n+       g. json_plotfile\n+\n+          The json_plotfile allows jschart to use JSON formatted data\n+          files.  Since it is JSON the file format is fairly dynamic,\n+          but there are some basic assumptions that must be met.  The\n+          JSON output should be based on the following:\n+\n+\t    {\n+\t      'x_axis_series': <string>,\n+\t      'data_series_names': [],\n+\t      'data': []\n+\t    }\n+\n+\t  The 'data_series_name' and 'data' properties are arrays\n+\t  which shared the same indexes.  The 'x_axis_series' property\n+\t  defines which entry in the 'data_series_names' array\n+\t  contains the X axis value of the X/Y pairs for each dataset.\n+\t  In practice this would look something like this:\n+\n+\t    {\n+\t      'x_axis_series': 'time',\n+\t      'data_series_names': [ 'time', 'data series 1', 'data series 2' ],\n+\t      'data': [ [ 1461027782000, 0, 1],\n+                        [ 1461027783000, 4, 5] ]\n+\t    }\n+\n+\t  Currently an assumption is made that the JSON output is used\n+\t  for a 'timeseries' data model and the X axis values are\n+\t  expected to be in milliseconds since the epoch.\n+\n+\t  It should be noted that the JSON features of jschart have\n+\t  had limited usage at this time and could probably be\n+\t  improved upon if required.\n+\n+       h. json_args\n+       i. update_interval\n+       j. history_length\n+\n+          These three options are only used in conjunction with the\n+          json_plotfile option, and most often all together (although\n+          update_interval and history_length may not be required).\n+\n+\t  The json_args option defines post data that is sent to the\n+\t  HTTP server when requesting the data pointed to by\n+\t  json_plotfile.  Typically this would be used to tell the\n+\t  HTTP server what data is being requested if json_plotfile\n+\t  refers to a URL whose response is dynamically generated.\n+\t  For example:\n+\n+\t    { json_plotfile: 'http://some.server.somewhere', json_args: 'type=foo' }\n+\n+\t  In this example, supplying different values for 'type' could\n+\t  alter the response that server sends depending on it's\n+\t  implementation.\n+\n+\t  The update_interval options tells the jschart library that\n+\t  the data being requested is dynamic and should be\n+\t  re-requested periodically on the defined interval.  This is\n+\t  typically used for pseudo realtime data monitoring.  After\n+\t  the initial request is made, subsequent requests are made\n+\t  every update_interval number of seconds.  These additional\n+\t  requests will include any json_args that were provided and\n+\t  will additionally add a 'time=<timestamp>' entry to the post\n+\t  data so that the server can try to optimize the transfer by\n+\t  only sending new samples since <timestamp> and avoid\n+\t  retransmission of existing data.\n+\n+\t  The history_length parameter is tell the jschart library how\n+\t  many data samples should be retained when new data is being\n+\t  dynamically added.  This prevents the arrays that contain\n+\t  the sample data from growing without bounds which would\n+\t  eventually cause a memory related issue.\n+\n+\t  All combined, these parameters could be used like this:\n+\n+\t    { json_plotfile: 'http://some.server.somewhere', json_args: 'type=foo', update_interval: 5, history_length: 300 }\n+\n+\t  This example would request the available data every 5\n+\t  seconds and maintain a history of 300 samples.\n+\n+       k. raw_data_sources[]\n+\n+          The raw_data_sources option is an arbitrarily sized array\n+          that contains links that should be appended to the table\n+          associated with each chart.  This is typically used to\n+          provide a way to access the raw tool output that the charted\n+          data was generated with, hence the name.\n+\n+\t  Example:\n+\n+\t    { csvfiles: [ \"data-files/processed.csv\" ], raw_data_sources: [ \"data-files/tool1.out\", \"data-files/tool2.out\" ] }\n+\n+       l. threshold\n+\n+          The threshold option defines a value which is compared\n+          against the maximum Y axis value for each dataset.  If the\n+          threshold value is larger than the dataset's value then that\n+          dataset is automatically hidden by default.  This provides a\n+          mechanism which is used to filter out noise from tools that\n+          produce large numbers of datasets.  At run time the user can\n+          achieve the same functionallity through the UI and also","path":"web-server/v0.3/js/jschart.js","position":366,"original_position":366,"commit_id":"4a83b02b45ced8894aff5cfc26f665d154d54734","original_commit_id":"5dad7d083356ad721ff566d5a44842d841594fbb","user":{"login":"k-rister","id":15911116,"avatar_url":"https://avatars.githubusercontent.com/u/15911116?v=3","gravatar_id":"","url":"https://api.github.com/users/k-rister","html_url":"https://github.com/k-rister","followers_url":"https://api.github.com/users/k-rister/followers","following_url":"https://api.github.com/users/k-rister/following{/other_user}","gists_url":"https://api.github.com/users/k-rister/gists{/gist_id}","starred_url":"https://api.github.com/users/k-rister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k-rister/subscriptions","organizations_url":"https://api.github.com/users/k-rister/orgs","repos_url":"https://api.github.com/users/k-rister/repos","events_url":"https://api.github.com/users/k-rister/events{/privacy}","received_events_url":"https://api.github.com/users/k-rister/received_events","type":"User","site_admin":false},"body":"ack","created_at":"2016-09-09T19:27:43Z","updated_at":"2016-09-09T19:27:43Z","html_url":"https://github.com/distributed-system-analysis/pbench/pull/367#discussion_r78235485","pull_request_url":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367","_links":{"self":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/comments/78235485"},"html":{"href":"https://github.com/distributed-system-analysis/pbench/pull/367#discussion_r78235485"},"pull_request":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367"}}},"pull_request":{"url":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367","id":83828177,"html_url":"https://github.com/distributed-system-analysis/pbench/pull/367","diff_url":"https://github.com/distributed-system-analysis/pbench/pull/367.diff","patch_url":"https://github.com/distributed-system-analysis/pbench/pull/367.patch","issue_url":"https://api.github.com/repos/distributed-system-analysis/pbench/issues/367","number":367,"state":"open","locked":false,"title":"Adopt the latest jschart features","user":{"login":"k-rister","id":15911116,"avatar_url":"https://avatars.githubusercontent.com/u/15911116?v=3","gravatar_id":"","url":"https://api.github.com/users/k-rister","html_url":"https://github.com/k-rister","followers_url":"https://api.github.com/users/k-rister/followers","following_url":"https://api.github.com/users/k-rister/following{/other_user}","gists_url":"https://api.github.com/users/k-rister/gists{/gist_id}","starred_url":"https://api.github.com/users/k-rister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k-rister/subscriptions","organizations_url":"https://api.github.com/users/k-rister/orgs","repos_url":"https://api.github.com/users/k-rister/repos","events_url":"https://api.github.com/users/k-rister/events{/privacy}","received_events_url":"https://api.github.com/users/k-rister/received_events","type":"User","site_admin":false},"body":"There are several new features in this PR:\r\n\r\n1. On a line chart a highlighted dataset will have all of it's individual datapoints displayed as dots along the line\r\n2. Show the number of buckets in a histogram dataset in the table\r\n3. Add developer documentation\r\n4. Create a new, more appropriate interface to the library using the new `create_jschart` function.  Backwards compatibility is maintained as the `create_graph` function still exists.\r\n5. Add View Port Controls to allow the user to set the axis bounds and enable clamping per axis.  This feature addresses issue #317.","created_at":"2016-09-02T16:18:27Z","updated_at":"2016-09-09T19:27:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"898d6b442e61407bb4f878bbfc011a07b6f54e1f","assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/distributed-system-analysis/pbench/milestones/4","html_url":"https://github.com/distributed-system-analysis/pbench/milestones/V0.40","labels_url":"https://api.github.com/repos/distributed-system-analysis/pbench/milestones/4/labels","id":1905028,"number":4,"title":"V0.40","description":"","creator":{"login":"portante","id":949097,"avatar_url":"https://avatars.githubusercontent.com/u/949097?v=3","gravatar_id":"","url":"https://api.github.com/users/portante","html_url":"https://github.com/portante","followers_url":"https://api.github.com/users/portante/followers","following_url":"https://api.github.com/users/portante/following{/other_user}","gists_url":"https://api.github.com/users/portante/gists{/gist_id}","starred_url":"https://api.github.com/users/portante/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/portante/subscriptions","organizations_url":"https://api.github.com/users/portante/orgs","repos_url":"https://api.github.com/users/portante/repos","events_url":"https://api.github.com/users/portante/events{/privacy}","received_events_url":"https://api.github.com/users/portante/received_events","type":"User","site_admin":false},"open_issues":7,"closed_issues":9,"state":"open","created_at":"2016-07-26T14:16:45Z","updated_at":"2016-09-09T15:49:19Z","due_on":"2016-09-10T00:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367/commits","review_comments_url":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367/comments","review_comment_url":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/comments{/number}","comments_url":"https://api.github.com/repos/distributed-system-analysis/pbench/issues/367/comments","statuses_url":"https://api.github.com/repos/distributed-system-analysis/pbench/statuses/4a83b02b45ced8894aff5cfc26f665d154d54734","head":{"label":"k-rister:jschart.features","ref":"jschart.features","sha":"4a83b02b45ced8894aff5cfc26f665d154d54734","user":{"login":"k-rister","id":15911116,"avatar_url":"https://avatars.githubusercontent.com/u/15911116?v=3","gravatar_id":"","url":"https://api.github.com/users/k-rister","html_url":"https://github.com/k-rister","followers_url":"https://api.github.com/users/k-rister/followers","following_url":"https://api.github.com/users/k-rister/following{/other_user}","gists_url":"https://api.github.com/users/k-rister/gists{/gist_id}","starred_url":"https://api.github.com/users/k-rister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k-rister/subscriptions","organizations_url":"https://api.github.com/users/k-rister/orgs","repos_url":"https://api.github.com/users/k-rister/repos","events_url":"https://api.github.com/users/k-rister/events{/privacy}","received_events_url":"https://api.github.com/users/k-rister/received_events","type":"User","site_admin":false},"repo":{"id":52373793,"name":"pbench","full_name":"k-rister/pbench","owner":{"login":"k-rister","id":15911116,"avatar_url":"https://avatars.githubusercontent.com/u/15911116?v=3","gravatar_id":"","url":"https://api.github.com/users/k-rister","html_url":"https://github.com/k-rister","followers_url":"https://api.github.com/users/k-rister/followers","following_url":"https://api.github.com/users/k-rister/following{/other_user}","gists_url":"https://api.github.com/users/k-rister/gists{/gist_id}","starred_url":"https://api.github.com/users/k-rister/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k-rister/subscriptions","organizations_url":"https://api.github.com/users/k-rister/orgs","repos_url":"https://api.github.com/users/k-rister/repos","events_url":"https://api.github.com/users/k-rister/events{/privacy}","received_events_url":"https://api.github.com/users/k-rister/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/k-rister/pbench","description":"A benchmarking and performance analysis framework","fork":true,"url":"https://api.github.com/repos/k-rister/pbench","forks_url":"https://api.github.com/repos/k-rister/pbench/forks","keys_url":"https://api.github.com/repos/k-rister/pbench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/k-rister/pbench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/k-rister/pbench/teams","hooks_url":"https://api.github.com/repos/k-rister/pbench/hooks","issue_events_url":"https://api.github.com/repos/k-rister/pbench/issues/events{/number}","events_url":"https://api.github.com/repos/k-rister/pbench/events","assignees_url":"https://api.github.com/repos/k-rister/pbench/assignees{/user}","branches_url":"https://api.github.com/repos/k-rister/pbench/branches{/branch}","tags_url":"https://api.github.com/repos/k-rister/pbench/tags","blobs_url":"https://api.github.com/repos/k-rister/pbench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/k-rister/pbench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/k-rister/pbench/git/refs{/sha}","trees_url":"https://api.github.com/repos/k-rister/pbench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/k-rister/pbench/statuses/{sha}","languages_url":"https://api.github.com/repos/k-rister/pbench/languages","stargazers_url":"https://api.github.com/repos/k-rister/pbench/stargazers","contributors_url":"https://api.github.com/repos/k-rister/pbench/contributors","subscribers_url":"https://api.github.com/repos/k-rister/pbench/subscribers","subscription_url":"https://api.github.com/repos/k-rister/pbench/subscription","commits_url":"https://api.github.com/repos/k-rister/pbench/commits{/sha}","git_commits_url":"https://api.github.com/repos/k-rister/pbench/git/commits{/sha}","comments_url":"https://api.github.com/repos/k-rister/pbench/comments{/number}","issue_comment_url":"https://api.github.com/repos/k-rister/pbench/issues/comments{/number}","contents_url":"https://api.github.com/repos/k-rister/pbench/contents/{+path}","compare_url":"https://api.github.com/repos/k-rister/pbench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/k-rister/pbench/merges","archive_url":"https://api.github.com/repos/k-rister/pbench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/k-rister/pbench/downloads","issues_url":"https://api.github.com/repos/k-rister/pbench/issues{/number}","pulls_url":"https://api.github.com/repos/k-rister/pbench/pulls{/number}","milestones_url":"https://api.github.com/repos/k-rister/pbench/milestones{/number}","notifications_url":"https://api.github.com/repos/k-rister/pbench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/k-rister/pbench/labels{/name}","releases_url":"https://api.github.com/repos/k-rister/pbench/releases{/id}","deployments_url":"https://api.github.com/repos/k-rister/pbench/deployments","created_at":"2016-02-23T16:29:50Z","updated_at":"2016-02-23T16:29:53Z","pushed_at":"2016-09-06T14:53:36Z","git_url":"git://github.com/k-rister/pbench.git","ssh_url":"git@github.com:k-rister/pbench.git","clone_url":"https://github.com/k-rister/pbench.git","svn_url":"https://github.com/k-rister/pbench","homepage":"http://distributed-system-analysis.github.io/pbench/","size":9669,"stargazers_count":0,"watchers_count":0,"language":"Shell","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"distributed-system-analysis:master","ref":"master","sha":"7f4c208f83c7c31cab6ba9a6bad579d6b1f10e14","user":{"login":"distributed-system-analysis","id":10777641,"avatar_url":"https://avatars.githubusercontent.com/u/10777641?v=3","gravatar_id":"","url":"https://api.github.com/users/distributed-system-analysis","html_url":"https://github.com/distributed-system-analysis","followers_url":"https://api.github.com/users/distributed-system-analysis/followers","following_url":"https://api.github.com/users/distributed-system-analysis/following{/other_user}","gists_url":"https://api.github.com/users/distributed-system-analysis/gists{/gist_id}","starred_url":"https://api.github.com/users/distributed-system-analysis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/distributed-system-analysis/subscriptions","organizations_url":"https://api.github.com/users/distributed-system-analysis/orgs","repos_url":"https://api.github.com/users/distributed-system-analysis/repos","events_url":"https://api.github.com/users/distributed-system-analysis/events{/privacy}","received_events_url":"https://api.github.com/users/distributed-system-analysis/received_events","type":"Organization","site_admin":false},"repo":{"id":37891737,"name":"pbench","full_name":"distributed-system-analysis/pbench","owner":{"login":"distributed-system-analysis","id":10777641,"avatar_url":"https://avatars.githubusercontent.com/u/10777641?v=3","gravatar_id":"","url":"https://api.github.com/users/distributed-system-analysis","html_url":"https://github.com/distributed-system-analysis","followers_url":"https://api.github.com/users/distributed-system-analysis/followers","following_url":"https://api.github.com/users/distributed-system-analysis/following{/other_user}","gists_url":"https://api.github.com/users/distributed-system-analysis/gists{/gist_id}","starred_url":"https://api.github.com/users/distributed-system-analysis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/distributed-system-analysis/subscriptions","organizations_url":"https://api.github.com/users/distributed-system-analysis/orgs","repos_url":"https://api.github.com/users/distributed-system-analysis/repos","events_url":"https://api.github.com/users/distributed-system-analysis/events{/privacy}","received_events_url":"https://api.github.com/users/distributed-system-analysis/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/distributed-system-analysis/pbench","description":"A benchmarking and performance analysis framework","fork":false,"url":"https://api.github.com/repos/distributed-system-analysis/pbench","forks_url":"https://api.github.com/repos/distributed-system-analysis/pbench/forks","keys_url":"https://api.github.com/repos/distributed-system-analysis/pbench/keys{/key_id}","collaborators_url":"https://api.github.com/repos/distributed-system-analysis/pbench/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/distributed-system-analysis/pbench/teams","hooks_url":"https://api.github.com/repos/distributed-system-analysis/pbench/hooks","issue_events_url":"https://api.github.com/repos/distributed-system-analysis/pbench/issues/events{/number}","events_url":"https://api.github.com/repos/distributed-system-analysis/pbench/events","assignees_url":"https://api.github.com/repos/distributed-system-analysis/pbench/assignees{/user}","branches_url":"https://api.github.com/repos/distributed-system-analysis/pbench/branches{/branch}","tags_url":"https://api.github.com/repos/distributed-system-analysis/pbench/tags","blobs_url":"https://api.github.com/repos/distributed-system-analysis/pbench/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/distributed-system-analysis/pbench/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/distributed-system-analysis/pbench/git/refs{/sha}","trees_url":"https://api.github.com/repos/distributed-system-analysis/pbench/git/trees{/sha}","statuses_url":"https://api.github.com/repos/distributed-system-analysis/pbench/statuses/{sha}","languages_url":"https://api.github.com/repos/distributed-system-analysis/pbench/languages","stargazers_url":"https://api.github.com/repos/distributed-system-analysis/pbench/stargazers","contributors_url":"https://api.github.com/repos/distributed-system-analysis/pbench/contributors","subscribers_url":"https://api.github.com/repos/distributed-system-analysis/pbench/subscribers","subscription_url":"https://api.github.com/repos/distributed-system-analysis/pbench/subscription","commits_url":"https://api.github.com/repos/distributed-system-analysis/pbench/commits{/sha}","git_commits_url":"https://api.github.com/repos/distributed-system-analysis/pbench/git/commits{/sha}","comments_url":"https://api.github.com/repos/distributed-system-analysis/pbench/comments{/number}","issue_comment_url":"https://api.github.com/repos/distributed-system-analysis/pbench/issues/comments{/number}","contents_url":"https://api.github.com/repos/distributed-system-analysis/pbench/contents/{+path}","compare_url":"https://api.github.com/repos/distributed-system-analysis/pbench/compare/{base}...{head}","merges_url":"https://api.github.com/repos/distributed-system-analysis/pbench/merges","archive_url":"https://api.github.com/repos/distributed-system-analysis/pbench/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/distributed-system-analysis/pbench/downloads","issues_url":"https://api.github.com/repos/distributed-system-analysis/pbench/issues{/number}","pulls_url":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls{/number}","milestones_url":"https://api.github.com/repos/distributed-system-analysis/pbench/milestones{/number}","notifications_url":"https://api.github.com/repos/distributed-system-analysis/pbench/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/distributed-system-analysis/pbench/labels{/name}","releases_url":"https://api.github.com/repos/distributed-system-analysis/pbench/releases{/id}","deployments_url":"https://api.github.com/repos/distributed-system-analysis/pbench/deployments","created_at":"2015-06-23T02:08:30Z","updated_at":"2016-08-19T15:28:52Z","pushed_at":"2016-09-09T18:59:11Z","git_url":"git://github.com/distributed-system-analysis/pbench.git","ssh_url":"git@github.com:distributed-system-analysis/pbench.git","clone_url":"https://github.com/distributed-system-analysis/pbench.git","svn_url":"https://github.com/distributed-system-analysis/pbench","homepage":"http://distributed-system-analysis.github.io/pbench/","size":15487,"stargazers_count":23,"watchers_count":23,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":24,"mirror_url":null,"open_issues_count":118,"forks":24,"open_issues":118,"watchers":23,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367"},"html":{"href":"https://github.com/distributed-system-analysis/pbench/pull/367"},"issue":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/issues/367"},"comments":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/issues/367/comments"},"review_comments":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367/comments"},"review_comment":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/pulls/367/commits"},"statuses":{"href":"https://api.github.com/repos/distributed-system-analysis/pbench/statuses/4a83b02b45ced8894aff5cfc26f665d154d54734"}}}}
{"actor":{"display_login":"k-rister"}}