diff options
| author | Mark Otto <[email protected]> | 2012-07-22 14:31:58 -0700 |
|---|---|---|
| committer | Mark Otto <[email protected]> | 2012-07-22 14:31:58 -0700 |
| commit | e9f374f04175820d254cfbcf619908e6ac1493ed (patch) | |
| tree | 950674dbea447584d5b4296c933f14625dc451bc | |
| parent | 5b8ff7061b659286bdd27c756bf8a58b05ba70d8 (diff) | |
| parent | 8281a9023a9a687be007de85f1731d131eedaf30 (diff) | |
| download | bootstrap-e9f374f04175820d254cfbcf619908e6ac1493ed.tar.xz bootstrap-e9f374f04175820d254cfbcf619908e6ac1493ed.zip | |
Merge branch '2.1.0-wip' of github.com:twitter/bootstrap into 2.1.0-wip
| -rw-r--r-- | .issue-guidelines.js | 85 | ||||
| -rw-r--r-- | Makefile | 7 |
2 files changed, 92 insertions, 0 deletions
diff --git a/.issue-guidelines.js b/.issue-guidelines.js new file mode 100644 index 000000000..4c18ab3c0 --- /dev/null +++ b/.issue-guidelines.js @@ -0,0 +1,85 @@ +/* ========================================================== + * issue-guidelines.js + * http://twitter.github.com/bootstrap/javascript.html#alerts + * ========================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ + +var assert = require('assert') + +module.exports = { + + 'pull-requests': { + + 'should always be made against -wip branches': function (pull) { + assert.ok(/\-wip$/.test(pull.base.label)) + }, + + 'should always be made from feature branches': function (pull) { + assert.ok(pull.head.label != 'master') + }, + + 'should always include a unit test if changing js files': function (pull) { + var hasJS = false + var hasTests = false + + pull.files.forEach(function (file) { + if (/^js\/[^./]+.js/.test(file.filename)) hasJS = true + if (/^js\/tests\/unit\/[^.]+.js/.test(file.filename)) hasTests = true + }) + + assert.ok(!hasJS || hasJS && hasTests) + }, + + 'after': function (pull) { + if (pull.reporter.stats.failures) { + pull.reportFailures(pull.close.bind(pull)) + } + } + + }, + + 'issues': { + + 'before': function (issue) { + var plus = {} + var labels = issue.labels.map(function (label) { return label.name }); + + if (~labels.indexOf('popular')) return + + issue.comments.forEach(function (comment) { + if (/\+1/.test(comment.body)) plus[comment.user.login] = true + }) + + if (Object.keys(plus).length > 5) { + issue.tag('popular') + issue.comment('Tagging this issue as popular, please stop commenting on this issue with +1. thanks!') + } + }, + + 'should include a jsfiddle/jsbin illustrating the problem if tagged with js but not a feature': function (issue) { + var labels = issue.labels.map(function (label) { return label.name }); + if (~labels.indexOf('js') && !~labels.indexOf('feature')) assert.ok(/(jsfiddle|jsbin)/.test(issue.body)) + }, + + 'after': function (issue) { + if (issue.reporter.stats.failures) { + issue.reportFailures(issue.close.bind(issue)) + } + } + + } + +}
\ No newline at end of file @@ -90,5 +90,12 @@ watch: echo "Watching less files..."; \ watchr -e "watch('less/.*\.less') { system 'make' }" +# +# HAUNT GITHUB ISSUES 4 FAT & MDO ONLY (O_O ) +# + +haunt: + @haunt .issue-guidelines.js https://github.com/twitter/bootstrap + .PHONY: docs watch gh-pages
\ No newline at end of file |
