{"action":"created","issue":{"url":"https://api.github.com/repos/composer/composer/issues/3377","labels_url":"https://api.github.com/repos/composer/composer/issues/3377/labels{/name}","comments_url":"https://api.github.com/repos/composer/composer/issues/3377/comments","events_url":"https://api.github.com/repos/composer/composer/issues/3377/events","html_url":"https://github.com/composer/composer/pull/3377","id":46854322,"number":3377,"title":"WIP - Allow plugins to register commands","user":{"login":"jderusse","id":578547,"avatar_url":"https://avatars.githubusercontent.com/u/578547?v=3","gravatar_id":"","url":"https://api.github.com/users/jderusse","html_url":"https://github.com/jderusse","followers_url":"https://api.github.com/users/jderusse/followers","following_url":"https://api.github.com/users/jderusse/following{/other_user}","gists_url":"https://api.github.com/users/jderusse/gists{/gist_id}","starred_url":"https://api.github.com/users/jderusse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jderusse/subscriptions","organizations_url":"https://api.github.com/users/jderusse/orgs","repos_url":"https://api.github.com/users/jderusse/repos","events_url":"https://api.github.com/users/jderusse/events{/privacy}","received_events_url":"https://api.github.com/users/jderusse/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/composer/composer/labels/Feature","name":"Feature","color":"02e10c"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/composer/composer/milestones/4","html_url":"https://github.com/composer/composer/milestones/Nice%20To%20Have","labels_url":"https://api.github.com/repos/composer/composer/milestones/4/labels","id":119020,"number":4,"title":"Nice To Have","description":"Not urgent/critical features, tasks or bugs that are considered good things to work on","creator":{"login":"Seldaek","id":183678,"avatar_url":"https://avatars.githubusercontent.com/u/183678?v=3","gravatar_id":"","url":"https://api.github.com/users/Seldaek","html_url":"https://github.com/Seldaek","followers_url":"https://api.github.com/users/Seldaek/followers","following_url":"https://api.github.com/users/Seldaek/following{/other_user}","gists_url":"https://api.github.com/users/Seldaek/gists{/gist_id}","starred_url":"https://api.github.com/users/Seldaek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Seldaek/subscriptions","organizations_url":"https://api.github.com/users/Seldaek/orgs","repos_url":"https://api.github.com/users/Seldaek/repos","events_url":"https://api.github.com/users/Seldaek/events{/privacy}","received_events_url":"https://api.github.com/users/Seldaek/received_events","type":"User","site_admin":false},"open_issues":174,"closed_issues":73,"state":"open","created_at":"2012-05-13T10:21:25Z","updated_at":"2015-06-02T14:19:45Z","due_on":null,"closed_at":null},"comments":18,"created_at":"2014-10-26T20:52:15Z","updated_at":"2015-06-03T08:26:34Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/composer/composer/pulls/3377","html_url":"https://github.com/composer/composer/pull/3377","diff_url":"https://github.com/composer/composer/pull/3377.diff","patch_url":"https://github.com/composer/composer/pull/3377.patch"},"body":"This PR will move plugins to a next level by exposing the application to the plugins (and also loads the plugins BEFORE the application starts).\r\n\r\nIt might be a start to solve few tickets like #3312 or https://twitter.com/lsmith/status/526053583834603520\r\nping @lsmith77\r\n\r\nIt should also fixes #1234, #2761\r\n\r\nSample of use\r\n```\r\ncomposer global require FriendsOfPHP/security-advisories\r\ncd my/project\r\ncomposer security-check\r\n```\r\n\r\nWant to simply test  it see a sample plugin (https://github.com/jeremy-derusse/composer-plugin)\r\n```\r\ncomposer global require jderuse/plugin\r\ncomposer demo:greet\r\n```\r\n\r\nTodo\r\n* [x] Add tests\r\n* [x] Refactor the \"plugins warmup\" thing\r\n* [ ] Avoid fatal errors when loading the plugin in an old instance of composer\r\n* [ ] Add documentation about plugin creation\r\n"},"comment":{"url":"https://api.github.com/repos/composer/composer/issues/comments/108245565","html_url":"https://github.com/composer/composer/pull/3377#issuecomment-108245565","issue_url":"https://api.github.com/repos/composer/composer/issues/3377","id":108245565,"user":{"login":"nevvermind","id":834932,"avatar_url":"https://avatars.githubusercontent.com/u/834932?v=3","gravatar_id":"","url":"https://api.github.com/users/nevvermind","html_url":"https://github.com/nevvermind","followers_url":"https://api.github.com/users/nevvermind/followers","following_url":"https://api.github.com/users/nevvermind/following{/other_user}","gists_url":"https://api.github.com/users/nevvermind/gists{/gist_id}","starred_url":"https://api.github.com/users/nevvermind/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nevvermind/subscriptions","organizations_url":"https://api.github.com/users/nevvermind/orgs","repos_url":"https://api.github.com/users/nevvermind/repos","events_url":"https://api.github.com/users/nevvermind/events{/privacy}","received_events_url":"https://api.github.com/users/nevvermind/received_events","type":"User","site_admin":false},"created_at":"2015-06-03T08:26:34Z","updated_at":"2015-06-03T08:26:34Z","body":"@jderusse - yeah, I' waiting for that, too :stuck_out_tongue: : https://github.com/composer/composer/pull/4089 and https://github.com/composer/composer/issues/4085"}}