Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

lefthook

Package Overview
Dependencies
Maintainers
1
Versions
103
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lefthook - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

28

package.json
{
"name": "lefthook",
"version": "0.0.1",
"description": "",
"version": "0.0.2",
"description": "Simple git hooks manager",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
"repository": "https://github.com/evilmartians/lefthook",
"keywords": [
"git",
"hook",
"manager"
],
"author": "mrexox",
"license": "MIT",
"bugs": {
"url": "https://github.com/evilmartians/lefthook/issues"
},
"keywords": [],
"author": "joshwnj",
"license": "MIT"
"homepage": "https://github.com/evilmartians/lefthook#readme",
"optionalDependencies": {
"lefthook-darwin-arm64": "0.0.2",
"lefthook-darwin-x64": "0.0.2",
"lefthook-linux-arm64": "0.0.2",
"lefthook-linux-x64": "0.0.2",
"lefthook-windows-arm64": "0.0.2",
"lefthook-windows-x64": "0.0.2"
}
}

@@ -1,3 +0,213 @@

# lefthook
![Build Status](https://api.travis-ci.org/evilmartians/lefthook.svg?branch=master)
Please add this the `package.json` of as many react-hook related packages as you can.
# Lefthook
> The fastest polyglot Git hooks manager out there
<img align="right" width="147" height="100" title="Lefthook logo"
src="./logo_sign.svg">
Fast and powerful Git hooks manager for Node.js, Ruby or any other type of projects.
* **Fast.** It is written in Go. Can run commands in parallel.
* **Powerful.** With a few lines in the config you can check only the changed files on `pre-push` hook.
* **Simple.** It is single dependency-free binary which can work in any environment.
📖 [Read the introduction post](https://evilmartians.com/chronicles/lefthook-knock-your-teams-code-back-into-shape?utm_source=lefthook)
```yml
# On `git push` lefthook will run spelling and links check for all of the changed files
pre-push:
parallel: true
commands:
spelling:
files: git diff --name-only HEAD @{push}
glob: "*.md"
run: npx yaspeller {files}
check-links:
files: git diff --name-only HEAD @{push}
glob: "*.md"
run: npx markdown-link-check {files}
```
<a href="https://evilmartians.com/?utm_source=lefthook">
<img src="https://evilmartians.com/badges/sponsored-by-evil-martians.svg" alt="Sponsored by Evil Martians" width="236" height="54"></a>
## Usage
Choose your environment:
* **[Node.js](./docs/node.md)**
* **[Ruby](./docs/ruby.md)**
* [Other environments](./docs/other.md)
Then you can find all Lefthook features in [the full guide](./docs/full_guide.md) and explore [wiki](https://github.com/evilmartians/lefthook/wiki).
***
## Why Lefthook
* ### **Parallel execution**
If you want more speed. [Example](./docs/full_guide.md#parallel-execution)
```yml
pre-push:
parallel: true
```
* ### **Flexible list of files**
If you want your own list. [Custom](./docs/full_guide.md#custom-file-list) and [prebuilt](./docs/full_guide.md#select-specific-file-groups) examples.
```yml
pre-commit:
commands:
frontend-linter:
run: yarn eslint {staged_files}
backend-linter:
run: bundle exec rubocop --force-exclusion {all_files}
frontend-style:
files: git diff --name-only HEAD @{push}
run: yarn stylelint {files}
```
* ### **Glob and regexp filters**
If you want to filter list of files. You could find more glob pattern examples [here](https://github.com/gobwas/glob#example).
```yml
pre-commit:
commands:
backend-linter:
glob: "*.rb" # glob filter
exclude: "application.rb|routes.rb" # regexp filter
run: bundle exec rubocop --force-exclusion {all_files}
```
* ### **Execute in sub-directory**
If you want to execute the commands in a relative path
```yml
pre-commit:
commands:
backend-linter:
root: "api/" # Careful to have only trailing slash
glob: "*.rb" # glob filter
run: bundle exec rubocop {all_files}
```
* ### **Run scripts**
If oneline commands are not enough, you can execute files. [Example](./docs/full_guide.md#bash-script-example).
```yml
commit-msg:
scripts:
"template_checker":
runner: bash
```
* ### **Tags**
If you want to control a group of commands. [Example](./docs/full_guide.md#skipping-commands-by-tags).
```yml
pre-push:
commands:
packages-audit:
tags: frontend security
run: yarn audit
gems-audit:
tags: backend security
run: bundle audit
```
* ### **Support Docker**
If you are in the Docker environment. [Example](./docs/full_guide.md#referencing-commands-from-lefthookyml).
```yml
pre-commit:
scripts:
"good_job.js":
runner: docker run -it --rm <container_id_or_name> {cmd}
```
* ### **Local config**
If you a frontend/backend developer and want to skip unnecessary commands or override something into Docker. [Description](./docs/full_guide.md#local-config).
```yml
# lefthook-local.yml
pre-push:
exclude_tags:
- frontend
commands:
packages-audit:
skip: true
```
* ### **Direct control**
If you want to run hooks group directly.
```bash
$ lefthook run pre-commit
```
* ### **Your own tasks**
If you want to run specific group of commands directly.
```yml
fixer:
commands:
ruby-fixer:
run: bundle exec rubocop --force-exclusion --safe-auto-correct {staged_files}
js-fixer:
run: yarn eslint --fix {staged_files}
```
```bash
$ lefthook run fixer
```
* ### **Optional output**
If you don't want to see supporting information:
```yml
skip_output:
- meta #(version and which hook running)
- success #(output from runners with exit code 0)
```
---
## Table of contents:
### Guides
* [Node.js](./docs/node.md)
* [Ruby](./docs/ruby.md)
* [Other environments](./docs/other.md)
* [Full features guide](./docs/full_guide.md)
* [Troubleshooting](https://github.com/evilmartians/lefthook/wiki/Troubleshooting)
### Migrate from
* [Husky](https://github.com/evilmartians/lefthook/wiki/Migration-from-husky)
* [Husky and lint-staged](https://github.com/evilmartians/lefthook/wiki/Migration-from-husky-with-lint-staged)
* [Overcommit](https://github.com/evilmartians/lefthook/wiki/Migration-from-overcommit)
### Examples
* [Simple script](https://github.com/evilmartians/lefthook/tree/master/examples/scripts)
* [Full features](https://github.com/evilmartians/lefthook/tree/master/examples/complete)
### Benchmarks
* [vs Overcommit](https://github.com/evilmartians/lefthook/wiki/Benchmark-lefthook-vs-overcommit)
* [vs pre-commit](https://github.com/evilmartians/lefthook/wiki/Benchmark-lefthook-vs-pre-commit)
### Comparison list
* [vs Overcommit, Husky, pre-commit](https://github.com/evilmartians/lefthook/wiki/Comparison-with-other-solutions)
### Articles
* [Lefthook: Knock your team’s code back into shape](https://evilmartians.com/chronicles/lefthook-knock-your-teams-code-back-into-shape?utm_source=lefthook)
* [Lefthook + Crystalball](https://evilmartians.com/chronicles/lefthook-crystalball-and-git-magic?utm_source=lefthook)
* [Keeping OSS documentation in check with docsify, Lefthook, and friends](https://evilmartians.com/chronicles/keeping-oss-documentation-in-check-with-docsify-lefthook-and-friends?utm_source=lefthook)
* [Automatically linting docker containers](https://dev.to/nitzano/linting-docker-containers-2lo6?utm_source=lefthook)
* [Smooth PostgreSQL upgrades in DockerDev environments with Lefthook](https://dev.to/palkan_tula/smooth-postgresql-upgrades-in-dockerdev-environments-with-lefthook-203k?utm_source=lefthook)
* [Lefthook for React/React Native apps](https://blog.logrocket.com/deep-dive-into-lefthook-react-native?utm_source=lefthook)
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc