{"action":"created","comment":{"url":"https://api.github.com/repos/elastic/kibana/pulls/comments/55696242","id":55696242,"diff_hunk":"@@ -0,0 +1,226 @@\n+import expect from 'expect.js';\n+import sinon from 'sinon';\n+import nock from 'nock';\n+import glob from 'glob-all';\n+import rimraf from 'rimraf';\n+import mkdirp from 'mkdirp';\n+import Logger from '../../lib/logger';\n+import { download, _downloadSingle } from '../download';\n+import { join } from 'path';\n+\n+describe('kibana cli', function () {\n+\n+  describe('plugin downloader', function () {\n+    const testWorkingPath = join(__dirname, '.test.data');","path":"src/cli_plugin/install/__tests__/download.js","position":14,"original_position":14,"commit_id":"91cce98ca250673da4aa09449cd142378b0ce357","original_commit_id":"91cce98ca250673da4aa09449cd142378b0ce357","user":{"login":"epixa","id":53814,"avatar_url":"https://avatars.githubusercontent.com/u/53814?v=3","gravatar_id":"","url":"https://api.github.com/users/epixa","html_url":"https://github.com/epixa","followers_url":"https://api.github.com/users/epixa/followers","following_url":"https://api.github.com/users/epixa/following{/other_user}","gists_url":"https://api.github.com/users/epixa/gists{/gist_id}","starred_url":"https://api.github.com/users/epixa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/epixa/subscriptions","organizations_url":"https://api.github.com/users/epixa/orgs","repos_url":"https://api.github.com/users/epixa/repos","events_url":"https://api.github.com/users/epixa/events{/privacy}","received_events_url":"https://api.github.com/users/epixa/received_events","type":"User","site_admin":false},"body":"Actually, you're probably better off just circumventing the actual file system in your tests altogether.  Something like [mock-fs](https://github.com/tschaub/mock-fs) would allow you to mock away the file system entirely, which means the tests would run a lot faster and you would never run into issues with orphaned artifacts and the like.","created_at":"2016-03-10T15:31:47Z","updated_at":"2016-03-10T15:31:47Z","html_url":"https://github.com/elastic/kibana/pull/6402#discussion_r55696242","pull_request_url":"https://api.github.com/repos/elastic/kibana/pulls/6402","_links":{"self":{"href":"https://api.github.com/repos/elastic/kibana/pulls/comments/55696242"},"html":{"href":"https://github.com/elastic/kibana/pull/6402#discussion_r55696242"},"pull_request":{"href":"https://api.github.com/repos/elastic/kibana/pulls/6402"}}},"pull_request":{"url":"https://api.github.com/repos/elastic/kibana/pulls/6402","id":61615402,"html_url":"https://github.com/elastic/kibana/pull/6402","diff_url":"https://github.com/elastic/kibana/pull/6402.diff","patch_url":"https://github.com/elastic/kibana/pull/6402.patch","issue_url":"https://api.github.com/repos/elastic/kibana/issues/6402","number":6402,"state":"open","locked":false,"title":"Plugin pack installer","user":{"login":"BigFunger","id":12193008,"avatar_url":"https://avatars.githubusercontent.com/u/12193008?v=3","gravatar_id":"","url":"https://api.github.com/users/BigFunger","html_url":"https://github.com/BigFunger","followers_url":"https://api.github.com/users/BigFunger/followers","following_url":"https://api.github.com/users/BigFunger/following{/other_user}","gists_url":"https://api.github.com/users/BigFunger/gists{/gist_id}","starred_url":"https://api.github.com/users/BigFunger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BigFunger/subscriptions","organizations_url":"https://api.github.com/users/BigFunger/orgs","repos_url":"https://api.github.com/users/BigFunger/repos","events_url":"https://api.github.com/users/BigFunger/events{/privacy}","received_events_url":"https://api.github.com/users/BigFunger/received_events","type":"User","site_admin":false},"body":"resolves #5761\r\n\r\n# Plugin pack installer for kibana\r\n\r\n### modified existing entry point\r\nRemoved the plugin commands from the ./bin/kibana entry point\r\n\r\n### new entry point\r\nAll plugin commands are now executed from the ```./bin/kibana-plugin``` entry point:\r\n```\r\nlist  [options]                 List installed plugins\r\ninstall  [options] <plugin/url> Install a plugin\r\nremove  [options] <plugin>      Remove a plugin\r\nhelp  <command>                 Get the help for a specific command\r\n```\r\n\r\n### List command changes\r\n- Refactored to use its own settings object/parser\r\n- Now ignores folders that begin with a period.\r\n- Added tests\r\n\r\n### Remove command changes\r\n- Refactored to use its own settings object/parser\r\n\r\n### Install command changes\r\n- Refactored to use its own settings object/parser\r\n- No longer supports tar.gz format. Only supports zip format\r\n- Attempts to download the specified plugin from:\r\n - exact ```<plugin>``` specified\r\n - ```https://download.elastic.co/packs/<plugin>/<plugin>-<kibana version>.zip```\r\n- Expects the pack zip file if the plugin name is 'xpack' to be structured:\r\n```\r\nany-named-zip-archive.zip\r\n|__kibana\r\n| |__xpack\r\n| | |__package.json\r\n| | |__...\r\n```\r\n- Expects the package.json file to contain a name (xpack) that matches the containing folder in the archive exactly and a version that matches the version of kibana exactly.\r\n- Currently there is no platform-specific logic implemented\r\n- Currently will only install the first plugin that it finds in the kibana folder if more are in the archive.\r\n- Logic has been added to make implement platform specific and multiple plugins easier for later versions.","created_at":"2016-03-03T19:56:18Z","updated_at":"2016-03-10T15:31:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"41a53fc11f0b5e0c2f9a4727f343e1988ae67d8b","assignee":{"login":"epixa","id":53814,"avatar_url":"https://avatars.githubusercontent.com/u/53814?v=3","gravatar_id":"","url":"https://api.github.com/users/epixa","html_url":"https://github.com/epixa","followers_url":"https://api.github.com/users/epixa/followers","following_url":"https://api.github.com/users/epixa/following{/other_user}","gists_url":"https://api.github.com/users/epixa/gists{/gist_id}","starred_url":"https://api.github.com/users/epixa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/epixa/subscriptions","organizations_url":"https://api.github.com/users/epixa/orgs","repos_url":"https://api.github.com/users/epixa/repos","events_url":"https://api.github.com/users/epixa/events{/privacy}","received_events_url":"https://api.github.com/users/epixa/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/elastic/kibana/pulls/6402/commits","review_comments_url":"https://api.github.com/repos/elastic/kibana/pulls/6402/comments","review_comment_url":"https://api.github.com/repos/elastic/kibana/pulls/comments{/number}","comments_url":"https://api.github.com/repos/elastic/kibana/issues/6402/comments","statuses_url":"https://api.github.com/repos/elastic/kibana/statuses/91cce98ca250673da4aa09449cd142378b0ce357","head":{"label":"BigFunger:plugin-pack-installer","ref":"plugin-pack-installer","sha":"91cce98ca250673da4aa09449cd142378b0ce357","user":{"login":"BigFunger","id":12193008,"avatar_url":"https://avatars.githubusercontent.com/u/12193008?v=3","gravatar_id":"","url":"https://api.github.com/users/BigFunger","html_url":"https://github.com/BigFunger","followers_url":"https://api.github.com/users/BigFunger/followers","following_url":"https://api.github.com/users/BigFunger/following{/other_user}","gists_url":"https://api.github.com/users/BigFunger/gists{/gist_id}","starred_url":"https://api.github.com/users/BigFunger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BigFunger/subscriptions","organizations_url":"https://api.github.com/users/BigFunger/orgs","repos_url":"https://api.github.com/users/BigFunger/repos","events_url":"https://api.github.com/users/BigFunger/events{/privacy}","received_events_url":"https://api.github.com/users/BigFunger/received_events","type":"User","site_admin":false},"repo":{"id":35180828,"name":"kibana","full_name":"BigFunger/kibana","owner":{"login":"BigFunger","id":12193008,"avatar_url":"https://avatars.githubusercontent.com/u/12193008?v=3","gravatar_id":"","url":"https://api.github.com/users/BigFunger","html_url":"https://github.com/BigFunger","followers_url":"https://api.github.com/users/BigFunger/followers","following_url":"https://api.github.com/users/BigFunger/following{/other_user}","gists_url":"https://api.github.com/users/BigFunger/gists{/gist_id}","starred_url":"https://api.github.com/users/BigFunger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BigFunger/subscriptions","organizations_url":"https://api.github.com/users/BigFunger/orgs","repos_url":"https://api.github.com/users/BigFunger/repos","events_url":"https://api.github.com/users/BigFunger/events{/privacy}","received_events_url":"https://api.github.com/users/BigFunger/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/BigFunger/kibana","description":"Kibana","fork":true,"url":"https://api.github.com/repos/BigFunger/kibana","forks_url":"https://api.github.com/repos/BigFunger/kibana/forks","keys_url":"https://api.github.com/repos/BigFunger/kibana/keys{/key_id}","collaborators_url":"https://api.github.com/repos/BigFunger/kibana/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/BigFunger/kibana/teams","hooks_url":"https://api.github.com/repos/BigFunger/kibana/hooks","issue_events_url":"https://api.github.com/repos/BigFunger/kibana/issues/events{/number}","events_url":"https://api.github.com/repos/BigFunger/kibana/events","assignees_url":"https://api.github.com/repos/BigFunger/kibana/assignees{/user}","branches_url":"https://api.github.com/repos/BigFunger/kibana/branches{/branch}","tags_url":"https://api.github.com/repos/BigFunger/kibana/tags","blobs_url":"https://api.github.com/repos/BigFunger/kibana/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/BigFunger/kibana/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/BigFunger/kibana/git/refs{/sha}","trees_url":"https://api.github.com/repos/BigFunger/kibana/git/trees{/sha}","statuses_url":"https://api.github.com/repos/BigFunger/kibana/statuses/{sha}","languages_url":"https://api.github.com/repos/BigFunger/kibana/languages","stargazers_url":"https://api.github.com/repos/BigFunger/kibana/stargazers","contributors_url":"https://api.github.com/repos/BigFunger/kibana/contributors","subscribers_url":"https://api.github.com/repos/BigFunger/kibana/subscribers","subscription_url":"https://api.github.com/repos/BigFunger/kibana/subscription","commits_url":"https://api.github.com/repos/BigFunger/kibana/commits{/sha}","git_commits_url":"https://api.github.com/repos/BigFunger/kibana/git/commits{/sha}","comments_url":"https://api.github.com/repos/BigFunger/kibana/comments{/number}","issue_comment_url":"https://api.github.com/repos/BigFunger/kibana/issues/comments{/number}","contents_url":"https://api.github.com/repos/BigFunger/kibana/contents/{+path}","compare_url":"https://api.github.com/repos/BigFunger/kibana/compare/{base}...{head}","merges_url":"https://api.github.com/repos/BigFunger/kibana/merges","archive_url":"https://api.github.com/repos/BigFunger/kibana/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/BigFunger/kibana/downloads","issues_url":"https://api.github.com/repos/BigFunger/kibana/issues{/number}","pulls_url":"https://api.github.com/repos/BigFunger/kibana/pulls{/number}","milestones_url":"https://api.github.com/repos/BigFunger/kibana/milestones{/number}","notifications_url":"https://api.github.com/repos/BigFunger/kibana/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/BigFunger/kibana/labels{/name}","releases_url":"https://api.github.com/repos/BigFunger/kibana/releases{/id}","deployments_url":"https://api.github.com/repos/BigFunger/kibana/deployments","created_at":"2015-05-06T20:19:18Z","updated_at":"2015-06-03T17:01:46Z","pushed_at":"2016-03-09T15:21:23Z","git_url":"git://github.com/BigFunger/kibana.git","ssh_url":"git@github.com:BigFunger/kibana.git","clone_url":"https://github.com/BigFunger/kibana.git","svn_url":"https://github.com/BigFunger/kibana","homepage":"https://www.elastic.co/products/kibana","size":88092,"stargazers_count":1,"watchers_count":1,"language":"JavaScript","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":3,"forks":0,"open_issues":3,"watchers":1,"default_branch":"master"}},"base":{"label":"elastic:master","ref":"master","sha":"5d1796bed2c44c52bd1db471b30c5dd007b223fa","user":{"login":"elastic","id":6764390,"avatar_url":"https://avatars.githubusercontent.com/u/6764390?v=3","gravatar_id":"","url":"https://api.github.com/users/elastic","html_url":"https://github.com/elastic","followers_url":"https://api.github.com/users/elastic/followers","following_url":"https://api.github.com/users/elastic/following{/other_user}","gists_url":"https://api.github.com/users/elastic/gists{/gist_id}","starred_url":"https://api.github.com/users/elastic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elastic/subscriptions","organizations_url":"https://api.github.com/users/elastic/orgs","repos_url":"https://api.github.com/users/elastic/repos","events_url":"https://api.github.com/users/elastic/events{/privacy}","received_events_url":"https://api.github.com/users/elastic/received_events","type":"Organization","site_admin":false},"repo":{"id":7833168,"name":"kibana","full_name":"elastic/kibana","owner":{"login":"elastic","id":6764390,"avatar_url":"https://avatars.githubusercontent.com/u/6764390?v=3","gravatar_id":"","url":"https://api.github.com/users/elastic","html_url":"https://github.com/elastic","followers_url":"https://api.github.com/users/elastic/followers","following_url":"https://api.github.com/users/elastic/following{/other_user}","gists_url":"https://api.github.com/users/elastic/gists{/gist_id}","starred_url":"https://api.github.com/users/elastic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elastic/subscriptions","organizations_url":"https://api.github.com/users/elastic/orgs","repos_url":"https://api.github.com/users/elastic/repos","events_url":"https://api.github.com/users/elastic/events{/privacy}","received_events_url":"https://api.github.com/users/elastic/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/elastic/kibana","description":"Kibana","fork":false,"url":"https://api.github.com/repos/elastic/kibana","forks_url":"https://api.github.com/repos/elastic/kibana/forks","keys_url":"https://api.github.com/repos/elastic/kibana/keys{/key_id}","collaborators_url":"https://api.github.com/repos/elastic/kibana/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/elastic/kibana/teams","hooks_url":"https://api.github.com/repos/elastic/kibana/hooks","issue_events_url":"https://api.github.com/repos/elastic/kibana/issues/events{/number}","events_url":"https://api.github.com/repos/elastic/kibana/events","assignees_url":"https://api.github.com/repos/elastic/kibana/assignees{/user}","branches_url":"https://api.github.com/repos/elastic/kibana/branches{/branch}","tags_url":"https://api.github.com/repos/elastic/kibana/tags","blobs_url":"https://api.github.com/repos/elastic/kibana/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/elastic/kibana/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/elastic/kibana/git/refs{/sha}","trees_url":"https://api.github.com/repos/elastic/kibana/git/trees{/sha}","statuses_url":"https://api.github.com/repos/elastic/kibana/statuses/{sha}","languages_url":"https://api.github.com/repos/elastic/kibana/languages","stargazers_url":"https://api.github.com/repos/elastic/kibana/stargazers","contributors_url":"https://api.github.com/repos/elastic/kibana/contributors","subscribers_url":"https://api.github.com/repos/elastic/kibana/subscribers","subscription_url":"https://api.github.com/repos/elastic/kibana/subscription","commits_url":"https://api.github.com/repos/elastic/kibana/commits{/sha}","git_commits_url":"https://api.github.com/repos/elastic/kibana/git/commits{/sha}","comments_url":"https://api.github.com/repos/elastic/kibana/comments{/number}","issue_comment_url":"https://api.github.com/repos/elastic/kibana/issues/comments{/number}","contents_url":"https://api.github.com/repos/elastic/kibana/contents/{+path}","compare_url":"https://api.github.com/repos/elastic/kibana/compare/{base}...{head}","merges_url":"https://api.github.com/repos/elastic/kibana/merges","archive_url":"https://api.github.com/repos/elastic/kibana/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/elastic/kibana/downloads","issues_url":"https://api.github.com/repos/elastic/kibana/issues{/number}","pulls_url":"https://api.github.com/repos/elastic/kibana/pulls{/number}","milestones_url":"https://api.github.com/repos/elastic/kibana/milestones{/number}","notifications_url":"https://api.github.com/repos/elastic/kibana/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/elastic/kibana/labels{/name}","releases_url":"https://api.github.com/repos/elastic/kibana/releases{/id}","deployments_url":"https://api.github.com/repos/elastic/kibana/deployments","created_at":"2013-01-26T04:00:59Z","updated_at":"2016-03-10T13:33:12Z","pushed_at":"2016-03-10T02:38:48Z","git_url":"git://github.com/elastic/kibana.git","ssh_url":"git@github.com:elastic/kibana.git","clone_url":"https://github.com/elastic/kibana.git","svn_url":"https://github.com/elastic/kibana","homepage":"https://www.elastic.co/products/kibana","size":108235,"stargazers_count":4938,"watchers_count":4938,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1855,"mirror_url":null,"open_issues_count":919,"forks":1855,"open_issues":919,"watchers":4938,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/elastic/kibana/pulls/6402"},"html":{"href":"https://github.com/elastic/kibana/pull/6402"},"issue":{"href":"https://api.github.com/repos/elastic/kibana/issues/6402"},"comments":{"href":"https://api.github.com/repos/elastic/kibana/issues/6402/comments"},"review_comments":{"href":"https://api.github.com/repos/elastic/kibana/pulls/6402/comments"},"review_comment":{"href":"https://api.github.com/repos/elastic/kibana/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/elastic/kibana/pulls/6402/commits"},"statuses":{"href":"https://api.github.com/repos/elastic/kibana/statuses/91cce98ca250673da4aa09449cd142378b0ce357"}}}}