{"action":"created","issue":{"url":"https://api.github.com/repos/angular/angular.js/issues/14888","repository_url":"https://api.github.com/repos/angular/angular.js","labels_url":"https://api.github.com/repos/angular/angular.js/issues/14888/labels{/name}","comments_url":"https://api.github.com/repos/angular/angular.js/issues/14888/comments","events_url":"https://api.github.com/repos/angular/angular.js/issues/14888/events","html_url":"https://github.com/angular/angular.js/pull/14888","id":164563428,"number":14888,"title":"chore(commit message): use commitplease to validate commit messages","user":{"login":"all3fox","id":962850,"avatar_url":"https://avatars.githubusercontent.com/u/962850?v=3","gravatar_id":"","url":"https://api.github.com/users/all3fox","html_url":"https://github.com/all3fox","followers_url":"https://api.github.com/users/all3fox/followers","following_url":"https://api.github.com/users/all3fox/following{/other_user}","gists_url":"https://api.github.com/users/all3fox/gists{/gist_id}","starred_url":"https://api.github.com/users/all3fox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/all3fox/subscriptions","organizations_url":"https://api.github.com/users/all3fox/orgs","repos_url":"https://api.github.com/users/all3fox/repos","events_url":"https://api.github.com/users/all3fox/events{/privacy}","received_events_url":"https://api.github.com/users/all3fox/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/angular/angular.js/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/angular/angular.js/labels/frequency:%20moderate","name":"frequency: moderate","color":"fef2c0"},{"url":"https://api.github.com/repos/angular/angular.js/labels/type:%20chore","name":"type: chore","color":"e7ed39"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/angular/angular.js/milestones/27","html_url":"https://github.com/angular/angular.js/milestones/Backlog","labels_url":"https://api.github.com/repos/angular/angular.js/milestones/27/labels","id":489171,"number":27,"title":"Backlog","description":"Holds the backlog of issues and pull requests that have been triaged.\r\n\r\nBefore assigning items to this milestone they should be labelled, at the very least with the correct \"type\" label (i.e. \"issue\", \"pr\", \"bug\", \"regression\", \"chore\", \"docs\", etc).  Preferably you should also check for duplicate issues/PRs, note CLA status and assign \"complexity\" and \"impact\" labels too.","creator":{"login":"IgorMinar","id":216296,"avatar_url":"https://avatars.githubusercontent.com/u/216296?v=3","gravatar_id":"","url":"https://api.github.com/users/IgorMinar","html_url":"https://github.com/IgorMinar","followers_url":"https://api.github.com/users/IgorMinar/followers","following_url":"https://api.github.com/users/IgorMinar/following{/other_user}","gists_url":"https://api.github.com/users/IgorMinar/gists{/gist_id}","starred_url":"https://api.github.com/users/IgorMinar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/IgorMinar/subscriptions","organizations_url":"https://api.github.com/users/IgorMinar/orgs","repos_url":"https://api.github.com/users/IgorMinar/repos","events_url":"https://api.github.com/users/IgorMinar/events{/privacy}","received_events_url":"https://api.github.com/users/IgorMinar/received_events","type":"User","site_admin":false},"open_issues":490,"closed_issues":1371,"state":"open","created_at":"2013-11-18T23:30:35Z","updated_at":"2016-07-14T11:50:49Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2016-07-08T16:06:06Z","updated_at":"2016-07-15T07:51:59Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/angular/angular.js/pulls/14888","html_url":"https://github.com/angular/angular.js/pull/14888","diff_url":"https://github.com/angular/angular.js/pull/14888.diff","patch_url":"https://github.com/angular/angular.js/pull/14888.patch"},"body":"**What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)**\r\n\r\nOutsource commit message validation, automate installing as git commit-msg hook.\r\n\r\n**What is the current behavior? (You can also link to an open issue here)**\r\n\r\nThere is a `validate-commit-msg.js` that can be called manually or linked as a git hook via `init-repo.sh`.\r\n\r\n**What is the new behavior (if this is a feature change)?**\r\n\r\nA dependency on [commitplease][1], an external npm module, to do the commit message style checks.\r\n\r\n**Does this PR introduce a breaking change?**\r\n\r\nNo\r\n\r\n**Please check if the PR fulfills these requirements**\r\n- [x] The commit message follows our guidelines: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#commit-message-format\r\n- [ ] ~~Tests for the changes have been added (for bug fixes / features)~~\r\n- [x] Docs have been added / updated (for bug fixes / features)\r\n\r\n**Other information**:\r\n\r\nPros of using:\r\n\r\n 1. No need to manually run `validate-commit-msg.js` or `init-repo.sh`\r\n 1. Automatically installs with `npm install` and runs with `git commit`\r\n 1. When the commit message is not valid, provides a specific reason why\r\n\r\nHow to try out:\r\n```\r\ngit checkout commitplease\r\nmv .git/hooks/commit-msg .git/hooks/commit-msg.old\r\nnpm install\r\n```\r\n\r\nNow try to commit some changes with valid/invalid commit messages.\r\n\r\nHow to go back:\r\n```\r\ngit checkout master\r\nmv .git/hooks/commit-msg.old .git/hooks/commit-msg\r\n```\r\n\r\nDisclaimer: I am contributing to [commitplease][1] as part of the Google Summer of Code project for students.\r\n\r\n[1]: https://github.com/jzaefferer/commitplease"},"comment":{"url":"https://api.github.com/repos/angular/angular.js/issues/comments/232886494","html_url":"https://github.com/angular/angular.js/pull/14888#issuecomment-232886494","issue_url":"https://api.github.com/repos/angular/angular.js/issues/14888","id":232886494,"user":{"login":"all3fox","id":962850,"avatar_url":"https://avatars.githubusercontent.com/u/962850?v=3","gravatar_id":"","url":"https://api.github.com/users/all3fox","html_url":"https://github.com/all3fox","followers_url":"https://api.github.com/users/all3fox/followers","following_url":"https://api.github.com/users/all3fox/following{/other_user}","gists_url":"https://api.github.com/users/all3fox/gists{/gist_id}","starred_url":"https://api.github.com/users/all3fox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/all3fox/subscriptions","organizations_url":"https://api.github.com/users/all3fox/orgs","repos_url":"https://api.github.com/users/all3fox/repos","events_url":"https://api.github.com/users/all3fox/events{/privacy}","received_events_url":"https://api.github.com/users/all3fox/received_events","type":"User","site_admin":false},"created_at":"2016-07-15T07:51:59Z","updated_at":"2016-07-15T07:51:59Z","body":"@petebacondarwin about the automatic git hook uninstall:\r\n\r\nThere used to be a problem with commitplease `2.5.0` and there still is a problem with `npm 3.x`\r\n\r\nWe have solved the problem with commitplease `2.6.0` yesterday and now it works with `npm 2.x`. This PR got updated, the hook will be automatically uninstalled.\r\n\r\nUnfortunately, the problem remains with `npm 3.x`. In fact, it looks like an `npm` problem: [order of script execution](https://github.com/npm/npm/issues/10379) and [no script execution at all](https://github.com/npm/npm/issues/13381). So, with `npm 3.x` it is \"better\" to remove the hook manually for now.\r\n\r\nI have also tried the `postinstall` hook instead of the `uninstall` hook, as you suggested. For me both these hooks do not get triggered with `npm 3.x`\r\n\r\nI will take a look at SmartGit now."}}
{"actor":{"display_login":"all3fox"}}