{"action":"created","comment":{"url":"https://api.github.com/repos/k3po/k3po/pulls/comments/92445685","pull_request_review_id":12961379,"id":92445685,"diff_hunk":"@@ -0,0 +1,195 @@\n+# K3po Control Protocol\n+\n+## Abstract\n+\n+This document defines the K3po control protocol used to communicate with a remote K3po server.\n+\n+## Requirements\n+The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"MAY\",\n+and \"OPTIONAL\" in this document are to be interpreted as described in [RFC2119](https://tools.ietf.org/html/rfc2119).\n+\n+## The Protocol\n+\n+The protocol is made up of Commands and Events.  Commands are actions that can be triggered by an external entity.\n+Events are triggered by observed actions or state changes and are sent back to the external entity.  The protocol \n+is formatted by\n+\n+TODO normalize\n+\n+```\n+Command / Event Name\\n\n+headers\n+empty line\n+content\n+\n+```\n+\n+headers are key value pairs separated by a \":\" and delimited by a new line \"\\n\"\n+\n+If the \"content-length\" header is specified, then optional content of the specified length can be added.\n+\n+Headers that are not understood / processed by a command can be ignored.\n+\n+\n+### Commands\n+\n+##### PREPARE command\n+\n+###### Description\n+This command will make the k3po server load and prepare a set of scripts for execution. The scripts are not yet executed, just loaded from\n+disk and parsed. Additional override values for properties existing in the scripts can be given in the content of the command.\n+If the command is successful, the server sends back a PREPARED event. In case of failure, an ERROR event is sent.\n+\n+###### Headers\n+- version - the version of the protocol. Currently the only supported version is 2.0.\n+- content-length - the length of the content of the command. This header is optional, should be present only when content is not empty.\n+- origin - the root folder for the scripts to be executed. This header is optional\n+- name - the name of the script to be executed. It is a relative path to the origin. Can appear more than once (several scripts to be executed).\n+\n+###### Content\n+The content for prepare command is a set of properties with values that will overwrite the values in the script. The properties overwritten must\n+exist in the scripts. Otherwise the prepare will fail.","path":"specification/k3po.control/SPEC.md","position":51,"original_position":51,"commit_id":"d01de5b24847b5392839cdc367c1d4fbde5ea306","original_commit_id":"d01de5b24847b5392839cdc367c1d4fbde5ea306","user":{"login":"dpwspoon","id":2014623,"avatar_url":"https://avatars.githubusercontent.com/u/2014623?v=3","gravatar_id":"","url":"https://api.github.com/users/dpwspoon","html_url":"https://github.com/dpwspoon","followers_url":"https://api.github.com/users/dpwspoon/followers","following_url":"https://api.github.com/users/dpwspoon/following{/other_user}","gists_url":"https://api.github.com/users/dpwspoon/gists{/gist_id}","starred_url":"https://api.github.com/users/dpwspoon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpwspoon/subscriptions","organizations_url":"https://api.github.com/users/dpwspoon/orgs","repos_url":"https://api.github.com/users/dpwspoon/repos","events_url":"https://api.github.com/users/dpwspoon/events{/privacy}","received_events_url":"https://api.github.com/users/dpwspoon/received_events","type":"User","site_admin":false},"body":"please specify in doc.  Thanks","created_at":"2016-12-14T17:30:48Z","updated_at":"2016-12-14T17:30:48Z","html_url":"https://github.com/k3po/k3po/pull/383#discussion_r92445685","pull_request_url":"https://api.github.com/repos/k3po/k3po/pulls/383","_links":{"self":{"href":"https://api.github.com/repos/k3po/k3po/pulls/comments/92445685"},"html":{"href":"https://github.com/k3po/k3po/pull/383#discussion_r92445685"},"pull_request":{"href":"https://api.github.com/repos/k3po/k3po/pulls/383"}}},"pull_request":{"url":"https://api.github.com/repos/k3po/k3po/pulls/383","id":97781344,"html_url":"https://github.com/k3po/k3po/pull/383","diff_url":"https://github.com/k3po/k3po/pull/383.diff","patch_url":"https://github.com/k3po/k3po/pull/383.patch","issue_url":"https://api.github.com/repos/k3po/k3po/issues/383","number":383,"state":"open","locked":false,"title":"Control protocol specs","user":{"login":"StCostea","id":22885808,"avatar_url":"https://avatars.githubusercontent.com/u/22885808?v=3","gravatar_id":"","url":"https://api.github.com/users/StCostea","html_url":"https://github.com/StCostea","followers_url":"https://api.github.com/users/StCostea/followers","following_url":"https://api.github.com/users/StCostea/following{/other_user}","gists_url":"https://api.github.com/users/StCostea/gists{/gist_id}","starred_url":"https://api.github.com/users/StCostea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StCostea/subscriptions","organizations_url":"https://api.github.com/users/StCostea/orgs","repos_url":"https://api.github.com/users/StCostea/repos","events_url":"https://api.github.com/users/StCostea/events{/privacy}","received_events_url":"https://api.github.com/users/StCostea/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-12-13T16:09:00Z","updated_at":"2016-12-14T17:30:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4f87a8876cf49f0243dc1bd7a4452c546e841614","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/k3po/k3po/pulls/383/commits","review_comments_url":"https://api.github.com/repos/k3po/k3po/pulls/383/comments","review_comment_url":"https://api.github.com/repos/k3po/k3po/pulls/comments{/number}","comments_url":"https://api.github.com/repos/k3po/k3po/issues/383/comments","statuses_url":"https://api.github.com/repos/k3po/k3po/statuses/d01de5b24847b5392839cdc367c1d4fbde5ea306","head":{"label":"StCostea:better.doc.stcostea","ref":"better.doc.stcostea","sha":"d01de5b24847b5392839cdc367c1d4fbde5ea306","user":{"login":"StCostea","id":22885808,"avatar_url":"https://avatars.githubusercontent.com/u/22885808?v=3","gravatar_id":"","url":"https://api.github.com/users/StCostea","html_url":"https://github.com/StCostea","followers_url":"https://api.github.com/users/StCostea/followers","following_url":"https://api.github.com/users/StCostea/following{/other_user}","gists_url":"https://api.github.com/users/StCostea/gists{/gist_id}","starred_url":"https://api.github.com/users/StCostea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StCostea/subscriptions","organizations_url":"https://api.github.com/users/StCostea/orgs","repos_url":"https://api.github.com/users/StCostea/repos","events_url":"https://api.github.com/users/StCostea/events{/privacy}","received_events_url":"https://api.github.com/users/StCostea/received_events","type":"User","site_admin":false},"repo":{"id":73381087,"name":"k3po","full_name":"StCostea/k3po","owner":{"login":"StCostea","id":22885808,"avatar_url":"https://avatars.githubusercontent.com/u/22885808?v=3","gravatar_id":"","url":"https://api.github.com/users/StCostea","html_url":"https://github.com/StCostea","followers_url":"https://api.github.com/users/StCostea/followers","following_url":"https://api.github.com/users/StCostea/following{/other_user}","gists_url":"https://api.github.com/users/StCostea/gists{/gist_id}","starred_url":"https://api.github.com/users/StCostea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/StCostea/subscriptions","organizations_url":"https://api.github.com/users/StCostea/orgs","repos_url":"https://api.github.com/users/StCostea/repos","events_url":"https://api.github.com/users/StCostea/events{/privacy}","received_events_url":"https://api.github.com/users/StCostea/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/StCostea/k3po","description":"\"I am fluent in over 6 million forms of communication!\"","fork":true,"url":"https://api.github.com/repos/StCostea/k3po","forks_url":"https://api.github.com/repos/StCostea/k3po/forks","keys_url":"https://api.github.com/repos/StCostea/k3po/keys{/key_id}","collaborators_url":"https://api.github.com/repos/StCostea/k3po/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/StCostea/k3po/teams","hooks_url":"https://api.github.com/repos/StCostea/k3po/hooks","issue_events_url":"https://api.github.com/repos/StCostea/k3po/issues/events{/number}","events_url":"https://api.github.com/repos/StCostea/k3po/events","assignees_url":"https://api.github.com/repos/StCostea/k3po/assignees{/user}","branches_url":"https://api.github.com/repos/StCostea/k3po/branches{/branch}","tags_url":"https://api.github.com/repos/StCostea/k3po/tags","blobs_url":"https://api.github.com/repos/StCostea/k3po/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/StCostea/k3po/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/StCostea/k3po/git/refs{/sha}","trees_url":"https://api.github.com/repos/StCostea/k3po/git/trees{/sha}","statuses_url":"https://api.github.com/repos/StCostea/k3po/statuses/{sha}","languages_url":"https://api.github.com/repos/StCostea/k3po/languages","stargazers_url":"https://api.github.com/repos/StCostea/k3po/stargazers","contributors_url":"https://api.github.com/repos/StCostea/k3po/contributors","subscribers_url":"https://api.github.com/repos/StCostea/k3po/subscribers","subscription_url":"https://api.github.com/repos/StCostea/k3po/subscription","commits_url":"https://api.github.com/repos/StCostea/k3po/commits{/sha}","git_commits_url":"https://api.github.com/repos/StCostea/k3po/git/commits{/sha}","comments_url":"https://api.github.com/repos/StCostea/k3po/comments{/number}","issue_comment_url":"https://api.github.com/repos/StCostea/k3po/issues/comments{/number}","contents_url":"https://api.github.com/repos/StCostea/k3po/contents/{+path}","compare_url":"https://api.github.com/repos/StCostea/k3po/compare/{base}...{head}","merges_url":"https://api.github.com/repos/StCostea/k3po/merges","archive_url":"https://api.github.com/repos/StCostea/k3po/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/StCostea/k3po/downloads","issues_url":"https://api.github.com/repos/StCostea/k3po/issues{/number}","pulls_url":"https://api.github.com/repos/StCostea/k3po/pulls{/number}","milestones_url":"https://api.github.com/repos/StCostea/k3po/milestones{/number}","notifications_url":"https://api.github.com/repos/StCostea/k3po/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/StCostea/k3po/labels{/name}","releases_url":"https://api.github.com/repos/StCostea/k3po/releases{/id}","deployments_url":"https://api.github.com/repos/StCostea/k3po/deployments","created_at":"2016-11-10T12:45:29Z","updated_at":"2016-11-10T12:45:36Z","pushed_at":"2016-12-13T16:06:30Z","git_url":"git://github.com/StCostea/k3po.git","ssh_url":"git@github.com:StCostea/k3po.git","clone_url":"https://github.com/StCostea/k3po.git","svn_url":"https://github.com/StCostea/k3po","homepage":"","size":8726,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"develop"}},"base":{"label":"k3po:develop","ref":"develop","sha":"5c06c9b36e7d69a0d23f4c0068da4ca7c70e5b33","user":{"login":"k3po","id":10240063,"avatar_url":"https://avatars.githubusercontent.com/u/10240063?v=3","gravatar_id":"","url":"https://api.github.com/users/k3po","html_url":"https://github.com/k3po","followers_url":"https://api.github.com/users/k3po/followers","following_url":"https://api.github.com/users/k3po/following{/other_user}","gists_url":"https://api.github.com/users/k3po/gists{/gist_id}","starred_url":"https://api.github.com/users/k3po/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k3po/subscriptions","organizations_url":"https://api.github.com/users/k3po/orgs","repos_url":"https://api.github.com/users/k3po/repos","events_url":"https://api.github.com/users/k3po/events{/privacy}","received_events_url":"https://api.github.com/users/k3po/received_events","type":"Organization","site_admin":false},"repo":{"id":18419894,"name":"k3po","full_name":"k3po/k3po","owner":{"login":"k3po","id":10240063,"avatar_url":"https://avatars.githubusercontent.com/u/10240063?v=3","gravatar_id":"","url":"https://api.github.com/users/k3po","html_url":"https://github.com/k3po","followers_url":"https://api.github.com/users/k3po/followers","following_url":"https://api.github.com/users/k3po/following{/other_user}","gists_url":"https://api.github.com/users/k3po/gists{/gist_id}","starred_url":"https://api.github.com/users/k3po/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/k3po/subscriptions","organizations_url":"https://api.github.com/users/k3po/orgs","repos_url":"https://api.github.com/users/k3po/repos","events_url":"https://api.github.com/users/k3po/events{/privacy}","received_events_url":"https://api.github.com/users/k3po/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/k3po/k3po","description":"\"I am fluent in over 6 million forms of communication!\"","fork":false,"url":"https://api.github.com/repos/k3po/k3po","forks_url":"https://api.github.com/repos/k3po/k3po/forks","keys_url":"https://api.github.com/repos/k3po/k3po/keys{/key_id}","collaborators_url":"https://api.github.com/repos/k3po/k3po/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/k3po/k3po/teams","hooks_url":"https://api.github.com/repos/k3po/k3po/hooks","issue_events_url":"https://api.github.com/repos/k3po/k3po/issues/events{/number}","events_url":"https://api.github.com/repos/k3po/k3po/events","assignees_url":"https://api.github.com/repos/k3po/k3po/assignees{/user}","branches_url":"https://api.github.com/repos/k3po/k3po/branches{/branch}","tags_url":"https://api.github.com/repos/k3po/k3po/tags","blobs_url":"https://api.github.com/repos/k3po/k3po/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/k3po/k3po/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/k3po/k3po/git/refs{/sha}","trees_url":"https://api.github.com/repos/k3po/k3po/git/trees{/sha}","statuses_url":"https://api.github.com/repos/k3po/k3po/statuses/{sha}","languages_url":"https://api.github.com/repos/k3po/k3po/languages","stargazers_url":"https://api.github.com/repos/k3po/k3po/stargazers","contributors_url":"https://api.github.com/repos/k3po/k3po/contributors","subscribers_url":"https://api.github.com/repos/k3po/k3po/subscribers","subscription_url":"https://api.github.com/repos/k3po/k3po/subscription","commits_url":"https://api.github.com/repos/k3po/k3po/commits{/sha}","git_commits_url":"https://api.github.com/repos/k3po/k3po/git/commits{/sha}","comments_url":"https://api.github.com/repos/k3po/k3po/comments{/number}","issue_comment_url":"https://api.github.com/repos/k3po/k3po/issues/comments{/number}","contents_url":"https://api.github.com/repos/k3po/k3po/contents/{+path}","compare_url":"https://api.github.com/repos/k3po/k3po/compare/{base}...{head}","merges_url":"https://api.github.com/repos/k3po/k3po/merges","archive_url":"https://api.github.com/repos/k3po/k3po/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/k3po/k3po/downloads","issues_url":"https://api.github.com/repos/k3po/k3po/issues{/number}","pulls_url":"https://api.github.com/repos/k3po/k3po/pulls{/number}","milestones_url":"https://api.github.com/repos/k3po/k3po/milestones{/number}","notifications_url":"https://api.github.com/repos/k3po/k3po/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/k3po/k3po/labels{/name}","releases_url":"https://api.github.com/repos/k3po/k3po/releases{/id}","deployments_url":"https://api.github.com/repos/k3po/k3po/deployments","created_at":"2014-04-03T22:14:18Z","updated_at":"2016-12-06T06:43:37Z","pushed_at":"2016-12-14T14:50:57Z","git_url":"git://github.com/k3po/k3po.git","ssh_url":"git@github.com:k3po/k3po.git","clone_url":"https://github.com/k3po/k3po.git","svn_url":"https://github.com/k3po/k3po","homepage":"","size":7776,"stargazers_count":27,"watchers_count":27,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":32,"mirror_url":null,"open_issues_count":56,"forks":32,"open_issues":56,"watchers":27,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/k3po/k3po/pulls/383"},"html":{"href":"https://github.com/k3po/k3po/pull/383"},"issue":{"href":"https://api.github.com/repos/k3po/k3po/issues/383"},"comments":{"href":"https://api.github.com/repos/k3po/k3po/issues/383/comments"},"review_comments":{"href":"https://api.github.com/repos/k3po/k3po/pulls/383/comments"},"review_comment":{"href":"https://api.github.com/repos/k3po/k3po/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/k3po/k3po/pulls/383/commits"},"statuses":{"href":"https://api.github.com/repos/k3po/k3po/statuses/d01de5b24847b5392839cdc367c1d4fbde5ea306"}}}}
{"actor":{"display_login":"dpwspoon"}}