diff --git a/pre_commit/commands/run.py b/pre_commit/commands/run.py index c2dab6f7..f6916c26 100644 --- a/pre_commit/commands/run.py +++ b/pre_commit/commands/run.py @@ -347,6 +347,9 @@ def run( if args.checkout_type: environ['PRE_COMMIT_CHECKOUT_TYPE'] = args.checkout_type + # Set pre_commit flag + environ['PRE_COMMIT'] = '1' + with contextlib.ExitStack() as exit_stack: if stash: exit_stack.enter_context(staged_files_only(store.directory)) diff --git a/tests/commands/run_test.py b/tests/commands/run_test.py index 2fffdb91..cf9794ed 100644 --- a/tests/commands/run_test.py +++ b/tests/commands/run_test.py @@ -1028,3 +1028,12 @@ def test_skipped_without_any_setup_for_post_checkout(in_git_dir, store): environ = {'_PRE_COMMIT_SKIP_POST_CHECKOUT': '1'} opts = run_opts(hook_stage='post-checkout') assert run(C.CONFIG_FILE, store, opts, environ=environ) == 0 + + +def test_pre_commit_env_variable_set(cap_out, store, repo_with_passing_hook): + args = run_opts() + environ: EnvironT = {} + ret, printed = _do_run( + cap_out, store, repo_with_passing_hook, args, environ, + ) + assert environ['PRE_COMMIT'] == '1'