0.0.1 • Published 8 years ago

post-commit v0.0.1

Weekly downloads
856
License
MIT
Repository
github
Last release
8 years ago

post-commit

Version npmBuild StatusDependenciesCoverage Status

post-commit is a post-commit hook installer for git. This all conveniently configured in your package.json.

Installation

It's advised to install the post-commit module as a devDependencies in your package.json as you only need this for development purposes. To install the module simply run:

npm install --save-dev post-commit

To install it as devDependency. When this module is installed it will override the existing post-commit file in your .git/hooks folder. Existing post-commit hooks will be backed up as post-commit.old in the same repository.

Configuration

post-commit will not run any command by default;

post-commit is capable of running every other script that you've specified in your package.json "scripts" field. So after people commit you could ensure that:

  • Publish to release.
  • Make a notification.

The only thing you need to do is add a post-commit array to your package.json that specifies which scripts you want to have ran and in which order:

{
  "name": "437464d0899504fb6b7b",
  "version": "0.0.0",
  "description": "ERROR: No README.md file found!",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: I SHOULD FAIL LOLOLOLOLOL \" && exit 1",
    "foo": "echo \"fooo\" && exit 0",
    "bar": "echo \"bar\" && exit 0"
  },
  "post-commit": [
    "foo",
    "bar",
    "test"
  ]
}

In the example above, it will first run: npm run foo then npm run bar and finally npm run test but will not make the commit fail as it returns the error code 1 because the hook would run after commit success. If you prefer strings over arrays or postcommit without a middle dash, that also works:

{
  "postcommit": "foo, bar, test"
  "post-commit": "foo, bar, test"
  "post-commit": ["foo", "bar", "test"]
  "postcommit": ["foo", "bar", "test"],
  "postcommit": {
    "run": "foo, bar, test",
  },
  "post-commit": {
    "run": ["foo", "bar", "test"],
  },
  "postcommit": {
    "run": ["foo", "bar", "test"],
  },
  "post-commit": {
    "run": "foo, bar, test",
  }
}

The examples above are all the same. In addition to configuring which scripts should be ran you can also configure the following options:

  • silent Don't output the prefixed post-commit: messages when things fail or when we have nothing to run. Should be a boolean.
  • colors Don't output colors when we write messages. Should be a boolean.

These options can either be added in the post-commit/postcommit object as keys or as "post-commit.{key} key properties in the package.json:

{
  "postcommit.silent": true,
  "post-commit": {
    "silent": true
  }
}

It's all the same. Different styles so use what matches your project. To learn more about the scripts, please read the official npm documentation:

https://npmjs.org/doc/scripts.html

And to learn more about git hooks read:

http://githooks.com

Forked

This project is forked from pre-commit(https://github.com/observing/pre-commit) and edit to fit post-commit as the first version.

About Beta

This project is still in a very early version just for myself use.

Welcome PR to make it better.

License

MIT