https://github.com/zordius/gulp-github
A gulp plugin to comment jscs/jshint/eslint issues to a github pull request.
https://github.com/zordius/gulp-github
Last synced: about 1 year ago
JSON representation
A gulp plugin to comment jscs/jshint/eslint issues to a github pull request.
- Host: GitHub
- URL: https://github.com/zordius/gulp-github
- Owner: zordius
- License: other
- Created: 2015-01-01T11:28:34.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2018-12-13T02:02:33.000Z (over 7 years ago)
- Last Synced: 2025-04-14T13:57:47.590Z (about 1 year ago)
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/gulp-github
- Size: 89.8 KB
- Stars: 7
- Watchers: 1
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
gulp-github
===========
A gulp plugin to comment jscs/jshint/eslint issues to a github pull request.
[](https://www.npmjs.org/package/gulp-github) [](https://david-dm.org/zordius/gulp-github) [](https://travis-ci.org/zordius/gulp-github) [](LICENSE.txt)
Features
--------
* See your CI issues of lint tools on github!
* Collect gulp-jshint results.
* Collect gulp-jscs results.
* Collect gulp-eslint results.
* Write collected info then comment on a github pull request.
* Update github pull request status based on collected info.
* A failThisTask() reporter to fail a gulp task when jscs/jshint/eslint issues found
* **TODO** Collect lcov result.

Installation
------------
```sh
npm install gulp-github
```
Usage
-----
```javascript
var gulp = require('gulp'),
jshint = require('gulp-jshint'),
jscs = require('gulp-jscs'),
eslint = require('gulp-eslint'),
github = require('gulp-github');
gulp.task('lint_report_github', function () {
return gulp.src('lib/*.js')
.pipe(jshint())
.pipe(jscs()).on('error', function (E) {
console.log(E.message); // This handled jscs stream error.
})
.pipe(eslint())
.pipe(github(options)) // Comment issues in github PR!
.pipe(github.failThisTask()); // Fail this task when jscs/jshint/eslint issues found.
});
// Or, direct output your comment with same options
github.commentToPR('Yes! it works!!', options);
// Or, direct set status to a commit
github.createStatusToCommit({
description: 'No! 2 failures...',
context: 'my gulp task',
state: 'failure',
target_url: 'http://www.homerswebpage.com/'
}, options);
// Or, create a task to reject PR with merged commits
gulp.task('git_rules', function (cb) {
git.failMergedPR(options, cb);
});
```
Options
-------
```javascript
{
// Required options: git_token, git_repo
// refer to https://help.github.com/articles/creating-an-access-token-for-command-line-use/
git_token: 'your_github_oauth_token',
// comment into this repo, this pr.
git_repo: 'zordius/test',
git_prid: '1',
// create status to this commit, optional
git_sha: 00000000,
jshint_status: 'error', // Set status to error when jshint errors, optional
jscs_status: 'failure', // Set git status to failure when jscs errors, optional
eslint_status: 'error', // Set git status to error when eslint errors, optional
// when using github enterprise, optional
git_option: {
// refer to https://www.npmjs.com/package/github for more options
host: 'github.mycorp.com',
// You may require this when you using Enterprise Github
pathPrefix: '/api/v3'
},
// Provide your own jshint reporter, optional
jshint_reporter: function (E, file) { // gulp stream file object
// refer to http://jshint.com/docs/reporters/ for E structure.
return 'Error in ' + E.file + '!';
},
// Provide your own jscs reporter, optional
jscs_reporter: function (E, file) { // gulp stream file object
// refer to https://github.com/jscs-dev/node-jscs/wiki/Error-Filters for E structure.
return 'Error in ' + E.filename + '!';
}
}
```
Check this sample gulpfile to see how to migrate this with travis CI.
Check This PR to see live demo.