Commit Graph

96 Commits

Author SHA1 Message Date
Marc Jay
82969e4ba3 Use set rather than list for commit message related stages, remove
default file open modes, tidy up bash call for failing hook test
2019-04-21 21:58:01 +01:00
Marc Jay
e60f541559 Adds support for prepare-commit-msg hooks
Adds a prepare-commit-msg hook stage which allows for hooks which add
dynamic suggested/placeholder text to commit messages that an author can
use as a starting point for writing a commit message
2019-04-21 21:07:13 +01:00
Ben Norquist
71a740d65d add helpful message and test 2019-03-30 14:00:03 -07:00
Anthony Sottile
7a763a9851 Improve testsuite speed on windows by ~23 seconds 2019-03-10 11:27:25 -07:00
Anthony Sottile
b1389603e0 Speed up filename filtering.
Before there was a `getcwd` syscall for every filename which was filtered.

Instead this is now cached per-run.

- When all files are identified by filename only: ~45% improvement
- When no files are identified by filename only: ~55% improvement

This makes little difference to overall execution, the bigger win is
eliminating the `memoize_by_cwd` hack.  Just removing the memoization would
have *increased* the runtime by 300-500%.
2019-01-23 20:48:41 -08:00
Anthony Sottile
9e34e6e316 pre-commit gc 2019-01-02 19:07:23 -08:00
Anthony Sottile
e4cf5f321b just use normal dicts in tests 2018-12-31 11:15:22 -08:00
Anthony Sottile
c577ed92e7 Refactor pre_commit.repository and factor out cached-property 2018-12-30 20:56:49 -08:00
Anthony Sottile
160a11a0a7 Improve git_commit helper 2018-12-28 15:32:25 -08:00
Pedro Algarvio
28c97a95cd Don't fail if GPG signing is configured by default. All references. 2018-12-28 20:11:37 +00:00
Anthony Sottile
2af0b0b4f3 better no-cover for windows 2018-12-27 18:25:52 -08:00
Anthony Sottile
6d40b2a38b Simplify the skip test to only test skipping 2018-12-27 09:24:41 -08:00
Pedro Algarvio
8ffd1f69d7 Address review comments 2018-12-27 17:18:11 +00:00
Pedro Algarvio
79c8b1fceb Allow hook alias to be used in SKIP. Includes test. 2018-12-27 12:03:27 +00:00
Pedro Algarvio
b096c0b8f2 Allow aliasing a hook and calling it by it's alias 2018-12-27 12:03:27 +00:00
Anthony Sottile
fe409f1a43 Remove stateful Runner 2018-12-26 22:33:21 -08:00
Matt Layman
a8b298799c Check bytes for Python 3. 2018-07-19 22:11:15 -04:00
Matt Layman
4640dc7b4a Run only the specified hook even when stages exist in config.
This branches fixes the run logic so that when
`pre-commit run some_hook -a` runs when the config contains
`stages: ['commit']` for some other hook, only the hook specified as an
argument will run.

Fixes #772
2018-07-19 21:45:43 -04:00
Anthony Sottile
c01ffc83f8 Separate store from runner 2018-06-29 22:35:53 -07:00
Anthony Sottile
5b6a5abae9 Consistent ordering of filenames 2018-06-11 12:49:45 -07:00
Anthony Sottile
f88e007f52 Fix test since pip 10 changed output 2018-05-21 21:38:36 -07:00
Anthony Sottile
d9d5b1cef1 Fix typo 2018-03-12 14:34:53 -07:00
Anthony Sottile
bf5792eb10 Add a manual stage for cli-only interaction 2018-03-07 12:41:25 -08:00
Anthony Sottile
4088f55ee6 Don't need a shell here 2018-03-07 12:18:54 -08:00
Anthony Sottile
29033f10ca Move cwd() to tests-only 2018-02-24 16:44:59 -08:00
Bastien Gérard
b319d6f80c Add a hook option that allows stdout to be printed when exit code is 0 (#695) 2018-02-01 12:21:19 +01:00
Anthony Sottile
0f54fedac9 Replace deprecated yield_fixture with fixture
Committed via https://github.com/asottile/all-repos
2018-01-21 15:31:17 -08:00
Anthony Sottile
d5dcebf671 Deprecate the pcre language 2018-01-13 17:28:19 -08:00
Anthony Sottile
2255d8484e Update message for unstaged config in test 2018-01-09 08:15:27 -08:00
Paul Hooijenga
9db827ef9d Refactor meta hooks 2017-10-28 13:59:11 +02:00
Paul Hooijenga
8a0dd01c7e Implement check-files-matches-any meta hook 2017-10-25 10:09:44 +02:00
Paul Hooijenga
8df11ee7aa Implement check-useless-excludes meta hook 2017-10-25 10:09:43 +02:00
Paul Hooijenga
88c676a7c1 Add support for meta hooks 2017-10-22 16:40:19 +02:00
Anthony Sottile
2c88791a7f Add pre-commit try-repo
`try-repo` is useful for:
- Trying out a remote hook repository without needing to configure it.
- Testing a hook repository while developing it.
2017-10-07 18:03:52 -07:00
Anthony Sottile
ecdc22ce80 Implement global exclude 2017-09-10 15:09:44 -07:00
Anthony Sottile
6af60158ec Refactor filename collection for hooks 2017-09-09 22:07:27 -07:00
Anthony Sottile
898a3ea1bb Implement fail_fast. 2017-09-08 13:19:00 -07:00
Anthony Sottile
3e76cdaf25 Enable map configurations (config v2). 2017-09-06 10:01:08 -07:00
Anthony Sottile
6141c419ee Remove Runner.cmd_runner and Store.cmd_runner 2017-09-05 14:49:31 -07:00
Anthony Sottile
0815108242 Handle non-ascii filenames from git 2017-09-05 08:10:16 -07:00
Anthony Sottile
6793fd8e5d Remove --no-stash and --allow-unstaged-config 2017-08-23 11:16:37 -07:00
Anthony Sottile
d0b268c813 Add support for commit-msg git hook 2017-07-23 20:50:25 -07:00
Anthony Sottile
be3fbdf94e Upgrade add-trailing-comma to 0.4.0 2017-07-15 12:32:36 -07:00
Anthony Sottile
0c70fa4229 Use asottile/add-trailing-comma 2017-07-12 18:30:51 -07:00
Anthony Sottile
05a108efe1 Implement exclude_types 2017-07-02 19:08:33 -07:00
Anthony Sottile
a58d99ac40 Implement types filtering 2017-07-02 18:51:23 -07:00
André Berti Sassi
7259135d19 Fix string literal type for Python 3 2017-05-13 20:12:16 -03:00
André Berti Sassi
e774c09fac Add pass_filenames hook option
This option controls whether filenames are passed along as arguments to
the hook program.
2017-05-13 14:28:17 -03:00
Alex Hutton
f2644a4f2e Adds support for 'log_file' in hook config
Specify a filename on a per hook basis and
pre-commit will write the STDOUT and STDERR
of that hook into the file. Useful for CI.

Resolves #499.
2017-05-08 10:54:04 +10:00
Anthony Sottile
05c88738b0 Add a --show-diff-on-failure option 2017-02-25 10:14:17 -08:00