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