payload: {"action":"created","comment":{"url":"https://api.github.com/repos/influxdata/flux/pulls/comments/291054881","pull_request_review_id":246404820,"id":291054881,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI5MTA1NDg4MQ==","diff_hunk":"@@ -1,96 +1,246 @@\n-# Design Overview\n+# Design overview\n \n-This document provides an overview of the design of the query engine.\n+This document contains an overview of the components of the Flux engine ---a.k.a. Flux Virtual Machine (FVM)---\n+that cooperate in the process of executing a Flux query.\n \n-## Concepts\n+In a nutshell, the engine is responsible for executing a query. A query expresses data manipulation\n+pipelines through common operations, such as additions, subtractions, and conditionals, and data manipulation\n+operations, i.e. data extraction from sources, and transformations ---outputs to sinks are transformations with a side\n+effect. The results of the query are obtained from the side effects of data manipulation.\n+A query can be represented in various languages.\n+The engine is equipped with one executors per language. An executor can translate a\n+representation of a query in some language into another target language and delegate the execution to\n+the executor for the target language.\n+The translation process is carried out by compilers.\n+Once a proper target language has been reached (possibly thanks to multiple compilation processes),\n+the final representation of the query can be interpreted to produce results.\n+During interpretation, the engine is responsible to provide the actual implementation of the data manipulation operations\n+to the interpreter. Different engines can implement sources and transformations in different ways.\n \n-There are several different concepts that make up the complete query engine.\n+We now provide the high-level interfaces for the components described above:\n \n-* Query - A query defines work to be performed on time series data and a result.\n-    A query is represented as a directed acyclic graph (DAG).\n-* Flux - Functional Language for defining a query to execute.\n-* Parser - Parses a Flux script and produces a query.\n-* Data Frame - A data frame is a matrix of time series data where one dimension is time and the other is series.\n-* Query Node - A query node represents a single step in the DAG of a query.\n-* Planner - The planner creates a plan of execution from a query.\n-* Plan - A plan is also a DAG of node the explicitly state how a query will be performed.\n-* Plan Node - A plan node represents a single step in the DAG of a plan.\n-* Executor - The executor is responsible for processing a query plan.\n-    The executor process data via data frames.\n-* Storage - The Storage interface provides a mechanism for accessing the underlying data as data frames.\n-* Capabilities - The Storage interface exposes its capabilities.\n-    The planner uses the available capabilities to determine the best plan.\n-* Hints - The Storage interface exposes hints about the data.\n-    The planner uses the hints to determine the best plan.\n-* Query Engine - Query Engine is the name given to the entire system being described in this document.\n+The engine provides methods for registering sources and transformations, and for binding builtin values used for interpretation.\n+Sources and transformations constitute the actual implementation of the data manipulation operations of some function values in the scope.\n \n+```go\n+type CreateSource = fn (ExecutionContext) Source\n+type CreateTransformation = fn (ExecutionContext) Transformation\n+type CompilerType interface {\n+    From() Language\n+    To() Language\n+}\n \n-Both a query and a plan are represented by a DAG and describe an operation that needs to be performed.\n-The difference is that a plan in addition to describing what the operation is, also describes how that operation will be performed.\n-In short, a query describes what the operation is and a plan describes how that operation will be carried out.\n+type Engine interface {\n+    BindValue(id string, Value)\n+    Prelude() Scope\n+    \n+    RegisterSource(id string, CreateSource)\n+    RegisterTransformation(id string, CreateTransformation)\n+    \n+    Query(Representation) (Query, error)\n+}\n \n-## Relations\n+type Scope interface {} // ...\n+type Source interface {} // ...\n+type Transformation interface {} // ...\n+type Value interface {} // ...\n+```\n \n-Below is a high level description, using the Go language, of the relations between the different components and concepts of the query engine.\n+A language is used to describe a query. It consists of words whose letters are taken from an alphabet.\n+Letters can be of any type and complexity, from characters, to nodes in an Abstract Syntax Tree (AST). Various languages\n+can be used to represent a query.\n \n ```go\n-\n-type Parser interface {\n-    Parse(flux string) Query\n+type Language interface {\n+    Name() string\n }\n+```\n \n-// Query defines work to be performed on time series data and a result.\n-// A query is represented as a directed acyclic graph (DAG).\n+A query defines a unit of work for the engine. It comprises one or more pipelines.\n+It contains its representation, its results, and execution statistics.\n+\n+```go\n type Query interface {\n-    Nodes() []QueryNode\n-    Edges() []Edge\n+    Results() Results\n+    Stats() map[string]interface{}\n+    Representation() Representation\n+}\n+\n+type Representation interface {\n+    Visitor // a representation can be visited for compilation/execution.\n+    Lang() Language // a representation makes sense in a certain language.\n+    String() string // a visual representation of the query.\n+}\n+\n+// The results for a Query.\n+type Results interface {\n+    ForEach(func (Result))\n }\n \n-// QueryNode is a single step in the DAG of a query\n-type QueryNode interface {\n-    ID() NodeID\n-    // More details about what the node does\n+type Result interface {\n+    Name() string\n+    // ... methods to iterate other the contents of the result\n }\n+```\n \n-// NodeID uniquely identifies a node.\n-type NodeID\n+The executor executes a query expressed in some language and fills its results, provided an execution context.\n+There can be multiple executors, one for each language supported by the engine.\n+The engine is responsible for providing the executor with an\n+execution context that embeds everything that is necessary for the execution of the query, included the registered values,\n+sources and transformations. \n \n-// Edge establishes a parent child relationship between two nodes.\n-type Edge interface {\n-    Parent() NodeID\n-    Child() NodeID\n+```go\n+type Executor interface {\n+    Execute(Query, ExecutionContext) error // fills query results.","path":"docs/Overview.md","position":137,"original_position":137,"commit_id":"7fd7d93630d0d56b6db0e4d25cf2c1a2b52fb5ef","original_commit_id":"7fd7d93630d0d56b6db0e4d25cf2c1a2b52fb5ef","user":{"login":"affo","id":4246582,"node_id":"MDQ6VXNlcjQyNDY1ODI=","avatar_url":"https://avatars1.githubusercontent.com/u/4246582?v=4","gravatar_id":"","url":"https://api.github.com/users/affo","html_url":"https://github.com/affo","followers_url":"https://api.github.com/users/affo/followers","following_url":"https://api.github.com/users/affo/following{/other_user}","gists_url":"https://api.github.com/users/affo/gists{/gist_id}","starred_url":"https://api.github.com/users/affo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/affo/subscriptions","organizations_url":"https://api.github.com/users/affo/orgs","repos_url":"https://api.github.com/users/affo/repos","events_url":"https://api.github.com/users/affo/events{/privacy}","received_events_url":"https://api.github.com/users/affo/received_events","type":"User","site_admin":false},"body":"Absolutely need to add those method to the `Query` interface. Thank you.\r\n\r\nI understand your point for `Execute` to accept a `Representation` instead of a `Query`. I took that decision to make executors delegate each other. We should further discuss this point. I see you have a comment on that below.","created_at":"2019-06-06T07:39:22Z","updated_at":"2019-06-06T07:39:22Z","html_url":"https://github.com/influxdata/flux/pull/1332#discussion_r291054881","pull_request_url":"https://api.github.com/repos/influxdata/flux/pulls/1332","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/influxdata/flux/pulls/comments/291054881"},"html":{"href":"https://github.com/influxdata/flux/pull/1332#discussion_r291054881"},"pull_request":{"href":"https://api.github.com/repos/influxdata/flux/pulls/1332"}},"in_reply_to_id":290927931},"pull_request":{"url":"https://api.github.com/repos/influxdata/flux/pulls/1332","id":285389599,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjg1Mzg5NTk5","html_url":"https://github.com/influxdata/flux/pull/1332","diff_url":"https://github.com/influxdata/flux/pull/1332.diff","patch_url":"https://github.com/influxdata/flux/pull/1332.patch","issue_url":"https://api.github.com/repos/influxdata/flux/issues/1332","number":1332,"state":"open","locked":false,"title":"docs(overview): new vision for compilation and execution of queries","user":{"login":"affo","id":4246582,"node_id":"MDQ6VXNlcjQyNDY1ODI=","avatar_url":"https://avatars1.githubusercontent.com/u/4246582?v=4","gravatar_id":"","url":"https://api.github.com/users/affo","html_url":"https://github.com/affo","followers_url":"https://api.github.com/users/affo/followers","following_url":"https://api.github.com/users/affo/following{/other_user}","gists_url":"https://api.github.com/users/affo/gists{/gist_id}","starred_url":"https://api.github.com/users/affo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/affo/subscriptions","organizations_url":"https://api.github.com/users/affo/orgs","repos_url":"https://api.github.com/users/affo/repos","events_url":"https://api.github.com/users/affo/events{/privacy}","received_events_url":"https://api.github.com/users/affo/received_events","type":"User","site_admin":false},"body":"Closes #1321 \r\n\r\nI updated the old `Overview.md` because it looked obsolete.\r\n\r\nI added some bits from it to this new document.\r\n\r\n\r\n### Done checklist\r\n- [ ] docs/SPEC.md updated\r\n- [ ] Test cases written\r\n","created_at":"2019-06-05T14:02:52Z","updated_at":"2019-06-06T07:39:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"04d2ab2aa90c7bff5dd32dc728551aa09e604650","assignee":null,"assignees":[],"requested_reviewers":[{"login":"nathanielc","id":3771906,"node_id":"MDQ6VXNlcjM3NzE5MDY=","avatar_url":"https://avatars3.githubusercontent.com/u/3771906?v=4","gravatar_id":"","url":"https://api.github.com/users/nathanielc","html_url":"https://github.com/nathanielc","followers_url":"https://api.github.com/users/nathanielc/followers","following_url":"https://api.github.com/users/nathanielc/following{/other_user}","gists_url":"https://api.github.com/users/nathanielc/gists{/gist_id}","starred_url":"https://api.github.com/users/nathanielc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathanielc/subscriptions","organizations_url":"https://api.github.com/users/nathanielc/orgs","repos_url":"https://api.github.com/users/nathanielc/repos","events_url":"https://api.github.com/users/nathanielc/events{/privacy}","received_events_url":"https://api.github.com/users/nathanielc/received_events","type":"User","site_admin":false},{"login":"wolffcm","id":7902964,"node_id":"MDQ6VXNlcjc5MDI5NjQ=","avatar_url":"https://avatars1.githubusercontent.com/u/7902964?v=4","gravatar_id":"","url":"https://api.github.com/users/wolffcm","html_url":"https://github.com/wolffcm","followers_url":"https://api.github.com/users/wolffcm/followers","following_url":"https://api.github.com/users/wolffcm/following{/other_user}","gists_url":"https://api.github.com/users/wolffcm/gists{/gist_id}","starred_url":"https://api.github.com/users/wolffcm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wolffcm/subscriptions","organizations_url":"https://api.github.com/users/wolffcm/orgs","repos_url":"https://api.github.com/users/wolffcm/repos","events_url":"https://api.github.com/users/wolffcm/events{/privacy}","received_events_url":"https://api.github.com/users/wolffcm/received_events","type":"User","site_admin":false},{"login":"jlapacik","id":22945345,"node_id":"MDQ6VXNlcjIyOTQ1MzQ1","avatar_url":"https://avatars3.githubusercontent.com/u/22945345?v=4","gravatar_id":"","url":"https://api.github.com/users/jlapacik","html_url":"https://github.com/jlapacik","followers_url":"https://api.github.com/users/jlapacik/followers","following_url":"https://api.github.com/users/jlapacik/following{/other_user}","gists_url":"https://api.github.com/users/jlapacik/gists{/gist_id}","starred_url":"https://api.github.com/users/jlapacik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jlapacik/subscriptions","organizations_url":"https://api.github.com/users/jlapacik/orgs","repos_url":"https://api.github.com/users/jlapacik/repos","events_url":"https://api.github.com/users/jlapacik/events{/privacy}","received_events_url":"https://api.github.com/users/jlapacik/received_events","type":"User","site_admin":false},{"login":"aanthony1243","id":25036188,"node_id":"MDQ6VXNlcjI1MDM2MTg4","avatar_url":"https://avatars3.githubusercontent.com/u/25036188?v=4","gravatar_id":"","url":"https://api.github.com/users/aanthony1243","html_url":"https://github.com/aanthony1243","followers_url":"https://api.github.com/users/aanthony1243/followers","following_url":"https://api.github.com/users/aanthony1243/following{/other_user}","gists_url":"https://api.github.com/users/aanthony1243/gists{/gist_id}","starred_url":"https://api.github.com/users/aanthony1243/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aanthony1243/subscriptions","organizations_url":"https://api.github.com/users/aanthony1243/orgs","repos_url":"https://api.github.com/users/aanthony1243/repos","events_url":"https://api.github.com/users/aanthony1243/events{/privacy}","received_events_url":"https://api.github.com/users/aanthony1243/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/influxdata/flux/pulls/1332/commits","review_comments_url":"https://api.github.com/repos/influxdata/flux/pulls/1332/comments","review_comment_url":"https://api.github.com/repos/influxdata/flux/pulls/comments{/number}","comments_url":"https://api.github.com/repos/influxdata/flux/issues/1332/comments","statuses_url":"https://api.github.com/repos/influxdata/flux/statuses/7fd7d93630d0d56b6db0e4d25cf2c1a2b52fb5ef","head":{"label":"influxdata:docs/overview","ref":"docs/overview","sha":"7fd7d93630d0d56b6db0e4d25cf2c1a2b52fb5ef","user":{"login":"influxdata","id":5713248,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU3MTMyNDg=","avatar_url":"https://avatars2.githubusercontent.com/u/5713248?v=4","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"repo":{"id":137362393,"node_id":"MDEwOlJlcG9zaXRvcnkxMzczNjIzOTM=","name":"flux","full_name":"influxdata/flux","private":false,"owner":{"login":"influxdata","id":5713248,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU3MTMyNDg=","avatar_url":"https://avatars2.githubusercontent.com/u/5713248?v=4","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/influxdata/flux","description":"Flux is a lightweight scripting language for querying databases (like InfluxDB) and working with data. It's part of InfluxDB 1.7 and 2.0, but can be run independently of those.","fork":false,"url":"https://api.github.com/repos/influxdata/flux","forks_url":"https://api.github.com/repos/influxdata/flux/forks","keys_url":"https://api.github.com/repos/influxdata/flux/keys{/key_id}","collaborators_url":"https://api.github.com/repos/influxdata/flux/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/influxdata/flux/teams","hooks_url":"https://api.github.com/repos/influxdata/flux/hooks","issue_events_url":"https://api.github.com/repos/influxdata/flux/issues/events{/number}","events_url":"https://api.github.com/repos/influxdata/flux/events","assignees_url":"https://api.github.com/repos/influxdata/flux/assignees{/user}","branches_url":"https://api.github.com/repos/influxdata/flux/branches{/branch}","tags_url":"https://api.github.com/repos/influxdata/flux/tags","blobs_url":"https://api.github.com/repos/influxdata/flux/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/influxdata/flux/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/influxdata/flux/git/refs{/sha}","trees_url":"https://api.github.com/repos/influxdata/flux/git/trees{/sha}","statuses_url":"https://api.github.com/repos/influxdata/flux/statuses/{sha}","languages_url":"https://api.github.com/repos/influxdata/flux/languages","stargazers_url":"https://api.github.com/repos/influxdata/flux/stargazers","contributors_url":"https://api.github.com/repos/influxdata/flux/contributors","subscribers_url":"https://api.github.com/repos/influxdata/flux/subscribers","subscription_url":"https://api.github.com/repos/influxdata/flux/subscription","commits_url":"https://api.github.com/repos/influxdata/flux/commits{/sha}","git_commits_url":"https://api.github.com/repos/influxdata/flux/git/commits{/sha}","comments_url":"https://api.github.com/repos/influxdata/flux/comments{/number}","issue_comment_url":"https://api.github.com/repos/influxdata/flux/issues/comments{/number}","contents_url":"https://api.github.com/repos/influxdata/flux/contents/{+path}","compare_url":"https://api.github.com/repos/influxdata/flux/compare/{base}...{head}","merges_url":"https://api.github.com/repos/influxdata/flux/merges","archive_url":"https://api.github.com/repos/influxdata/flux/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/influxdata/flux/downloads","issues_url":"https://api.github.com/repos/influxdata/flux/issues{/number}","pulls_url":"https://api.github.com/repos/influxdata/flux/pulls{/number}","milestones_url":"https://api.github.com/repos/influxdata/flux/milestones{/number}","notifications_url":"https://api.github.com/repos/influxdata/flux/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/influxdata/flux/labels{/name}","releases_url":"https://api.github.com/repos/influxdata/flux/releases{/id}","deployments_url":"https://api.github.com/repos/influxdata/flux/deployments","created_at":"2018-06-14T13:32:57Z","updated_at":"2019-06-05T16:40:47Z","pushed_at":"2019-06-05T20:44:44Z","git_url":"git://github.com/influxdata/flux.git","ssh_url":"git@github.com:influxdata/flux.git","clone_url":"https://github.com/influxdata/flux.git","svn_url":"https://github.com/influxdata/flux","homepage":"https://influxdata.com","size":6369,"stargazers_count":168,"watchers_count":168,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":22,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":431,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":22,"open_issues":431,"watchers":168,"default_branch":"master"}},"base":{"label":"influxdata:master","ref":"master","sha":"15e15bd756e290d797de67afd90e44769db52404","user":{"login":"influxdata","id":5713248,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU3MTMyNDg=","avatar_url":"https://avatars2.githubusercontent.com/u/5713248?v=4","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"repo":{"id":137362393,"node_id":"MDEwOlJlcG9zaXRvcnkxMzczNjIzOTM=","name":"flux","full_name":"influxdata/flux","private":false,"owner":{"login":"influxdata","id":5713248,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU3MTMyNDg=","avatar_url":"https://avatars2.githubusercontent.com/u/5713248?v=4","gravatar_id":"","url":"https://api.github.com/users/influxdata","html_url":"https://github.com/influxdata","followers_url":"https://api.github.com/users/influxdata/followers","following_url":"https://api.github.com/users/influxdata/following{/other_user}","gists_url":"https://api.github.com/users/influxdata/gists{/gist_id}","starred_url":"https://api.github.com/users/influxdata/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/influxdata/subscriptions","organizations_url":"https://api.github.com/users/influxdata/orgs","repos_url":"https://api.github.com/users/influxdata/repos","events_url":"https://api.github.com/users/influxdata/events{/privacy}","received_events_url":"https://api.github.com/users/influxdata/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/influxdata/flux","description":"Flux is a lightweight scripting language for querying databases (like InfluxDB) and working with data. It's part of InfluxDB 1.7 and 2.0, but can be run independently of those.","fork":false,"url":"https://api.github.com/repos/influxdata/flux","forks_url":"https://api.github.com/repos/influxdata/flux/forks","keys_url":"https://api.github.com/repos/influxdata/flux/keys{/key_id}","collaborators_url":"https://api.github.com/repos/influxdata/flux/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/influxdata/flux/teams","hooks_url":"https://api.github.com/repos/influxdata/flux/hooks","issue_events_url":"https://api.github.com/repos/influxdata/flux/issues/events{/number}","events_url":"https://api.github.com/repos/influxdata/flux/events","assignees_url":"https://api.github.com/repos/influxdata/flux/assignees{/user}","branches_url":"https://api.github.com/repos/influxdata/flux/branches{/branch}","tags_url":"https://api.github.com/repos/influxdata/flux/tags","blobs_url":"https://api.github.com/repos/influxdata/flux/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/influxdata/flux/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/influxdata/flux/git/refs{/sha}","trees_url":"https://api.github.com/repos/influxdata/flux/git/trees{/sha}","statuses_url":"https://api.github.com/repos/influxdata/flux/statuses/{sha}","languages_url":"https://api.github.com/repos/influxdata/flux/languages","stargazers_url":"https://api.github.com/repos/influxdata/flux/stargazers","contributors_url":"https://api.github.com/repos/influxdata/flux/contributors","subscribers_url":"https://api.github.com/repos/influxdata/flux/subscribers","subscription_url":"https://api.github.com/repos/influxdata/flux/subscription","commits_url":"https://api.github.com/repos/influxdata/flux/commits{/sha}","git_commits_url":"https://api.github.com/repos/influxdata/flux/git/commits{/sha}","comments_url":"https://api.github.com/repos/influxdata/flux/comments{/number}","issue_comment_url":"https://api.github.com/repos/influxdata/flux/issues/comments{/number}","contents_url":"https://api.github.com/repos/influxdata/flux/contents/{+path}","compare_url":"https://api.github.com/repos/influxdata/flux/compare/{base}...{head}","merges_url":"https://api.github.com/repos/influxdata/flux/merges","archive_url":"https://api.github.com/repos/influxdata/flux/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/influxdata/flux/downloads","issues_url":"https://api.github.com/repos/influxdata/flux/issues{/number}","pulls_url":"https://api.github.com/repos/influxdata/flux/pulls{/number}","milestones_url":"https://api.github.com/repos/influxdata/flux/milestones{/number}","notifications_url":"https://api.github.com/repos/influxdata/flux/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/influxdata/flux/labels{/name}","releases_url":"https://api.github.com/repos/influxdata/flux/releases{/id}","deployments_url":"https://api.github.com/repos/influxdata/flux/deployments","created_at":"2018-06-14T13:32:57Z","updated_at":"2019-06-05T16:40:47Z","pushed_at":"2019-06-05T20:44:44Z","git_url":"git://github.com/influxdata/flux.git","ssh_url":"git@github.com:influxdata/flux.git","clone_url":"https://github.com/influxdata/flux.git","svn_url":"https://github.com/influxdata/flux","homepage":"https://influxdata.com","size":6369,"stargazers_count":168,"watchers_count":168,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":22,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":431,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":22,"open_issues":431,"watchers":168,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/influxdata/flux/pulls/1332"},"html":{"href":"https://github.com/influxdata/flux/pull/1332"},"issue":{"href":"https://api.github.com/repos/influxdata/flux/issues/1332"},"comments":{"href":"https://api.github.com/repos/influxdata/flux/issues/1332/comments"},"review_comments":{"href":"https://api.github.com/repos/influxdata/flux/pulls/1332/comments"},"review_comment":{"href":"https://api.github.com/repos/influxdata/flux/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/influxdata/flux/pulls/1332/commits"},"statuses":{"href":"https://api.github.com/repos/influxdata/flux/statuses/7fd7d93630d0d56b6db0e4d25cf2c1a2b52fb5ef"}},"author_association":"CONTRIBUTOR"}}
other: {"actor":{"display_login":"affo"}}