ESLint Formatter featuring Git Author, Date, and Hash
npm install eslint-formatter-git-log> ESLint Formatter featuring Git Author, Date, and Hash




- 🌩 Installation
- 🕹 Usage
- 👀 Examples
- ⚖️ Configuration
- 🙋🏽♂️ Getting Help
- 👀 Other Projects
- 🤓 Author
``bash`
npm install --save-dev eslint eslint-formatter-git-log
To use the default configuration, set ESLint's
--format
option to git-log as follows:
`bash`
eslint --format git-log './src/*/.js'
By default, a report of every Error or Warning in the Codebase is displayed:
When an emailRegExp is provided such as /you@yours.com/, a report is shown
that relates only to changes you yourself have made.
1. Create a file in your project which follows the structure below.
`js
const gitLogFormatter = require('eslint-formatter-git-log');
module.exports = gitLogFormatter.withConfig({
emailRegExp: /you@yours.com/,
});
`
2. Set ESLint's
--format
option to your customised version instead of git-log:
`bash`
eslint --format ./path/to/your/custom-formatter.js './src/*/.js'
To extend personalised reports to your Team, the Git Committer Email is needed.
#### gitLogFormatter.getUserEmail()
An optional helper is available at gitLogFormatter.getUserEmail() which readsgit config user.email and feeds it through git check-mailmap.
`js
const gitLogFormatter = require('eslint-formatter-git-log');
module.exports = gitLogFormatter.withConfig({
emailRegExp: new RegExp(gitLogFormatter.getUserEmail()),
});
`
#### $GIT_COMMITTER_EMAIL
Alternatively, if your Team each have their $GIT_COMMITTER_EMAIL Environment
Variable exported and reachable, then the following is enough.
`js
const gitLogFormatter = require('eslint-formatter-git-log');
module.exports = gitLogFormatter.withConfig({
emailRegExp: new RegExp(process.env.GIT_COMMITTER_EMAIL),
});
`
#### References
- First-time git setup
- Setting your commit email address
- Configure git to not guess user.email
- git config
- git check-mailmap
- $GIT_COMMITTER_EMAIL
This example lists every available option with its corresponding default value.
You don't need to provide a value for every configuration item, just the ones
you want to change.
`js
const chalk = require('chalk');
const gitLogFormatter = require('eslint-formatter-git-log');
module.exports = gitLogFormatter.withConfig({
// If set, only show result when Author Email matches this pattern
emailRegExp: undefined,
// Whitespace to insert between items when formatting
gutter: ' ',
// Translations for plain text used when formatting
label: {
error: 'error',
warning: 'warning'
},
// Increase if you have files with 1000s of lines
locationColumnWidth: 8,
// Which methods of https://github.com/chalk/chalk to use when formatting
style: {
// eg. "error"
error: chalk.red,
// eg. "/Users/guybrush/Dev/grogrates/src/index.js"
filePath: chalk.underline,
// eg. "warning"
warning: chalk.yellow,
// eg. "161:12"
location: chalk.dim,
// eg. "no-process-exit"
rule: chalk.dim,
// eg. "bda304e570"
commit: chalk.magenta,
// eg. "(1 year, 2 months ago)"
date: chalk.greenBright,
// eg. "
email: chalk.blueBright,
},
});
``
Get help with issues by creating a [Bug Report] or discuss ideas by opening a
[Feature Request].
[bug report]:
https://github.com/JamieMason/eslint-formatter-git-log/issues/new?template=bug_report.md
[feature request]:
https://github.com/JamieMason/eslint-formatter-git-log/issues/new?template=feature_request.md
If you find my Open Source projects useful, please share them ❤️
- eslint-plugin-move-files
Move
and rename files while keeping imports up to date
- eslint-plugin-prefer-arrow-functions
Convert
functions to arrow functions
- ImageOptim-CLI
Automates
ImageOptim, ImageAlpha, and JPEGmini for Mac to make batch optimisation of
images part of your automated build process.
- Jasmine-Matchers
Write
Beautiful Specs with Custom Matchers
- karma-benchmark
Run
Benchmark.js over multiple Browsers, with CI compatible output
- self-help
Interactive
Q&A Guides for Web and the Command Line
- syncpack
Manage
multiple package.json files, such as in Lerna Monorepos and Yarn Workspaces
I'm [Jamie Mason] from [Leeds] in England, I began Web Design and Development in
1999 and have been Contracting and offering Consultancy as Fold Left Ltd
since 2012. Who I've worked with includes [Sky Sports], [Sky Bet], [Sky Poker],
The [Premier League], [William Hill], [Shell], [Betfair], and Football Clubs
including [Leeds United], [Spurs], [West Ham], [Arsenal], and more.
[![Follow JamieMason on GitHub][github badge]][github] [![Follow fold_left on Twitter][twitter badge]][twitter]
[github badge]:
https://img.shields.io/github/followers/JamieMason.svg?style=social&label=Follow
[twitter badge]:
https://img.shields.io/twitter/follow/fold_left.svg?style=social&label=Follow
[arsenal]: https://www.arsenal.com
[betfair]: https://www.betfair.com
[github]: https://github.com/JamieMason
[jamie mason]: https://www.linkedin.com/in/jamiemasonleeds
[leeds united]: https://www.leedsunited.com/
[leeds]: https://www.instagram.com/visitleeds
[premier league]: https://www.premierleague.com
[shell]: https://www.shell.com
[sky bet]: https://www.skybet.com
[sky poker]: https://www.skypoker.com
[sky sports]: https://www.skysports.com
[spurs]: https://www.tottenhamhotspur.com
[twitter]: https://twitter.com/fold_left
[west ham]: https://www.whufc.com
[william hill]: https://www.williamhill.com