{"id":15647815,"url":"https://github.com/jamiemason/eslint-formatter-git-log","last_synced_at":"2025-09-01T08:37:44.217Z","repository":{"id":35045619,"uuid":"200275975","full_name":"JamieMason/eslint-formatter-git-log","owner":"JamieMason","description":"ESLint Formatter featuring Git Author, Date, and Hash","archived":false,"fork":false,"pushed_at":"2022-05-02T17:33:19.000Z","size":411,"stargazers_count":41,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-28T15:53:30.500Z","etag":null,"topics":["eslint","eslint-formatter","eslintformatter","formatter","git","git-log","lint","reporter","validate"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/eslint-formatter-git-log","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JamieMason.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"open_collective":"fold_left","custom":["https://www.paypal.me/foldleft"]}},"created_at":"2019-08-02T17:50:32.000Z","updated_at":"2024-09-22T10:43:34.000Z","dependencies_parsed_at":"2022-08-08T05:15:21.986Z","dependency_job_id":null,"html_url":"https://github.com/JamieMason/eslint-formatter-git-log","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Feslint-formatter-git-log","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Feslint-formatter-git-log/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Feslint-formatter-git-log/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamieMason%2Feslint-formatter-git-log/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamieMason","download_url":"https://codeload.github.com/JamieMason/eslint-formatter-git-log/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251342718,"owners_count":21574243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eslint","eslint-formatter","eslintformatter","formatter","git","git-log","lint","reporter","validate"],"created_at":"2024-10-03T12:21:16.412Z","updated_at":"2025-04-28T15:53:38.429Z","avatar_url":"https://github.com/JamieMason.png","language":"TypeScript","funding_links":["https://opencollective.com/fold_left","https://www.paypal.me/foldleft"],"categories":[],"sub_categories":[],"readme":"# eslint-formatter-git-log\n\n\u003e ESLint Formatter featuring Git Author, Date, and Hash\n\n[![NPM version](http://img.shields.io/npm/v/eslint-formatter-git-log.svg?style=flat-square)](https://www.npmjs.com/package/eslint-formatter-git-log)\n[![NPM downloads](http://img.shields.io/npm/dm/eslint-formatter-git-log.svg?style=flat-square)](https://www.npmjs.com/package/eslint-formatter-git-log)\n[![Build Status](http://img.shields.io/travis/JamieMason/eslint-formatter-git-log/master.svg?style=flat-square)](https://travis-ci.org/JamieMason/eslint-formatter-git-log)\n[![Maintainability](https://api.codeclimate.com/v1/badges/12697dca45d1de3f1bfc/maintainability)](https://codeclimate.com/github/JamieMason/eslint-formatter-git-log/maintainability)\n\n## Table of Contents\n\n- [🌩 Installation](#-installation)\n- [🕹 Usage](#-usage)\n- [👀 Examples](#-examples)\n- [⚖️ Configuration](#️-configuration)\n- [🙋🏽‍♂️ Getting Help](#♂️-getting-help)\n- [👀 Other Projects](#-other-projects)\n- [🤓 Author](#-author)\n\n## 🌩 Installation\n\n```bash\nnpm install --save-dev eslint eslint-formatter-git-log\n```\n\n## 🕹 Usage\n\nTo use the default configuration, set ESLint's\n[`--format`](https://eslint.org/docs/user-guide/command-line-interface#-f---format)\noption to `git-log` as follows:\n\n```bash\neslint --format git-log './src/**/*.js'\n```\n\n## 👀 Examples\n\n### Full Report\n\nBy default, a report of every Error or Warning in the Codebase is displayed:\n\n![screenshot](static/screenshot.png)\n\n### Personalised Reports\n\nWhen an `emailRegExp` is provided such as `/you@yours.com/`, a report is shown\nthat relates only to changes you yourself have made.\n\n1.  Create a file in your project which follows the structure below.\n\n    ```js\n    const gitLogFormatter = require('eslint-formatter-git-log');\n\n    module.exports = gitLogFormatter.withConfig({\n      emailRegExp: /you@yours.com/,\n    });\n    ```\n\n2.  Set ESLint's\n    [`--format`](https://eslint.org/docs/user-guide/command-line-interface#-f---format)\n    option to your customised version instead of `git-log`:\n\n    ```bash\n    eslint --format ./path/to/your/custom-formatter.js './src/**/*.js'\n    ```\n\n![screenshot](static/screenshot-when-filtered.png)\n\n### Contributor Reports\n\nTo extend personalised reports to your Team, the Git Committer Email is needed.\n\n#### `gitLogFormatter.getUserEmail()`\n\nAn optional helper is available at `gitLogFormatter.getUserEmail()` which reads\n`git config user.email` and feeds it through `git check-mailmap`.\n\n```js\nconst gitLogFormatter = require('eslint-formatter-git-log');\n\nmodule.exports = gitLogFormatter.withConfig({\n  emailRegExp: new RegExp(gitLogFormatter.getUserEmail()),\n});\n```\n\n#### `$GIT_COMMITTER_EMAIL`\n\nAlternatively, if your Team each have their `$GIT_COMMITTER_EMAIL` Environment\nVariable exported and reachable, then the following is enough.\n\n```js\nconst gitLogFormatter = require('eslint-formatter-git-log');\n\nmodule.exports = gitLogFormatter.withConfig({\n  emailRegExp: new RegExp(process.env.GIT_COMMITTER_EMAIL),\n});\n```\n\n#### References\n\n- [First-time git setup](https://git-scm.com/book/en/v2/Getting-Started-First-Time-Git-Setup)\n- [Setting your commit email address](https://help.github.com/en/articles/setting-your-commit-email-address)\n- [Configure git to not guess `user.email`](https://stackoverflow.com/questions/19821895/can-i-configure-git-so-it-does-not-guess-user-email-configuration-settings)\n- [`git config`](https://git-scm.com/docs/git-config)\n- [`git check-mailmap`](https://www.git-scm.com/docs/git-check-mailmap)\n- [`$GIT_COMMITTER_EMAIL`](https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables)\n\n## ⚖️ Configuration\n\nThis example lists every available option with its corresponding default value.\nYou don't need to provide a value for every configuration item, just the ones\nyou want to change.\n\n```js\nconst chalk = require('chalk');\nconst gitLogFormatter = require('eslint-formatter-git-log');\n\nmodule.exports = gitLogFormatter.withConfig({\n  // If set, only show result when Author Email matches this pattern\n  emailRegExp: undefined,\n  // Whitespace to insert between items when formatting\n  gutter: '  ',\n  // Translations for plain text used when formatting\n  label: {\n    error: 'error',\n    warning: 'warning'\n  },\n  // Increase if you have files with 1000s of lines\n  locationColumnWidth: 8,\n  // Which methods of https://github.com/chalk/chalk to use when formatting\n  style: {\n    // eg. \"error\"\n    error: chalk.red,\n    // eg. \"/Users/guybrush/Dev/grogrates/src/index.js\"\n    filePath: chalk.underline,\n    // eg. \"warning\"\n    warning: chalk.yellow,\n    // eg. \"161:12\"\n    location: chalk.dim,\n    // eg. \"no-process-exit\"\n    rule: chalk.dim,\n    // eg. \"bda304e570\"\n    commit: chalk.magenta,\n    // eg. \"(1 year, 2 months ago)\"\n    date: chalk.greenBright,\n    // eg. \"\u003cguybrush@threepwood.grog\u003e\"\n    email: chalk.blueBright,\n  },\n});\n```\n\n## 🙋🏽‍♂️ Getting Help\n\nGet help with issues by creating a [Bug Report] or discuss ideas by opening a\n[Feature Request].\n\n[bug report]:\n  https://github.com/JamieMason/eslint-formatter-git-log/issues/new?template=bug_report.md\n[feature request]:\n  https://github.com/JamieMason/eslint-formatter-git-log/issues/new?template=feature_request.md\n\n## 👀 Other Projects\n\nIf you find my Open Source projects useful, please share them ❤️\n\n- [**eslint-plugin-move-files**](https://github.com/JamieMason/eslint-plugin-move-files)\u003cbr\u003eMove\n  and rename files while keeping imports up to date\n- [**eslint-plugin-prefer-arrow-functions**](https://github.com/JamieMason/eslint-plugin-prefer-arrow-functions)\u003cbr\u003eConvert\n  functions to arrow functions\n- [**ImageOptim-CLI**](https://github.com/JamieMason/ImageOptim-CLI)\u003cbr\u003eAutomates\n  ImageOptim, ImageAlpha, and JPEGmini for Mac to make batch optimisation of\n  images part of your automated build process.\n- [**Jasmine-Matchers**](https://github.com/JamieMason/Jasmine-Matchers)\u003cbr\u003eWrite\n  Beautiful Specs with Custom Matchers\n- [**karma-benchmark**](https://github.com/JamieMason/karma-benchmark)\u003cbr\u003eRun\n  Benchmark.js over multiple Browsers, with CI compatible output\n- [**self-help**](https://github.com/JamieMason/self-help#readme)\u003cbr\u003eInteractive\n  Q\u0026A Guides for Web and the Command Line\n- [**syncpack**](https://github.com/JamieMason/syncpack#readme)\u003cbr\u003eManage\n  multiple package.json files, such as in Lerna Monorepos and Yarn Workspaces\n\n## 🤓 Author\n\n\u003cimg src=\"https://www.gravatar.com/avatar/acdf106ce071806278438d8c354adec8?s=100\" align=\"left\"\u003e\n\nI'm [Jamie Mason] from [Leeds] in England, I began Web Design and Development in\n1999 and have been Contracting and offering Consultancy as Fold Left Ltd\nsince 2012. Who I've worked with includes [Sky Sports], [Sky Bet], [Sky Poker],\nThe [Premier League], [William Hill], [Shell], [Betfair], and Football Clubs\nincluding [Leeds United], [Spurs], [West Ham], [Arsenal], and more.\n\n\u003cdiv align=\"center\"\u003e\n\n[![Follow JamieMason on GitHub][github badge]][github]      [![Follow fold_left on Twitter][twitter badge]][twitter]\n\n\u003c/div\u003e\n\n\u003c!-- images --\u003e\n\n[github badge]:\n  https://img.shields.io/github/followers/JamieMason.svg?style=social\u0026label=Follow\n[twitter badge]:\n  https://img.shields.io/twitter/follow/fold_left.svg?style=social\u0026label=Follow\n\n\u003c!-- links --\u003e\n\n[arsenal]: https://www.arsenal.com\n[betfair]: https://www.betfair.com\n[github]: https://github.com/JamieMason\n[jamie mason]: https://www.linkedin.com/in/jamiemasonleeds\n[leeds united]: https://www.leedsunited.com/\n[leeds]: https://www.instagram.com/visitleeds\n[premier league]: https://www.premierleague.com\n[shell]: https://www.shell.com\n[sky bet]: https://www.skybet.com\n[sky poker]: https://www.skypoker.com\n[sky sports]: https://www.skysports.com\n[spurs]: https://www.tottenhamhotspur.com\n[twitter]: https://twitter.com/fold_left\n[west ham]: https://www.whufc.com\n[william hill]: https://www.williamhill.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamiemason%2Feslint-formatter-git-log","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamiemason%2Feslint-formatter-git-log","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamiemason%2Feslint-formatter-git-log/lists"}