Radek Hrbacek
f80801d75a
Fix docker-in-docker detection for cgroups v2
2025-11-08 15:37:32 -05:00
anthony sottile
2930ea0fcd
handle SecurityOptions: null in docker response
2025-09-06 14:40:20 -04:00
Matthew Hughes
466f6c4a39
Fix permission errors for mounts in rootless docker
...
By running containers in a rootless docker context as root. This is
because user and group IDs are remapped in the user namespaces uses by
rootless docker, and it's unlikely that the current user ID will map to
the same ID under this remap (see docs[1] for some more details).
Specifically, it means ownership of mounted volumes will not be for the
current user and trying to write can result in permission errors.
This change borrows heavily from an existing PR[2].
The output format of `docker system info` I don't think is
documented/guaranteed anywhere, but it should corresponding to the
format of a `/info` API request to Docker[3]
The added test _hopes_ to avoid regressions in this behaviour, but since
tests aren't run in a rootless docker context on the PR checks (and I
couldn't find an easy way to make it the case) there's still a risk of
regressions sneaking in.
Link: https://docs.docker.com/engine/security/rootless/ [1]
Link: https://github.com/pre-commit/pre-commit/pull/1484/ [2]
Link: https://docs.docker.com/reference/api/engine/version/v1.48/#tag/System/operation/SystemAuth [3]
Co-authored-by: Kurt von Laven <Kurt-von-Laven@users.noreply.github.com>
Co-authored-by: Fabrice Flore-Thébault <ffloreth@redhat.com>
2025-05-23 17:01:10 -04:00
Gaëtan Lehmann
e58009684c
give docker a tty output when expecting color
...
this makes the behavior more consistent with the system language
and would help the executable run in a docker container to
produce a colored output.
2024-03-02 11:51:34 -05:00
Anthony Sottile
7f15dc75ee
python3.9+
2023-10-28 14:20:37 -04:00
Anthony Sottile
d3883ce7f7
move languages.all and languages.helpers out of languages
2023-02-20 18:03:45 -05:00
Anthony Sottile
0afb95ccca
test docker and docker_image directly
2023-02-04 17:22:06 -05:00
Anthony Sottile
420902f67c
fix r local hooks
...
`language: r` acts more like `language: script` so we have to *not* append
the prefix when run with `repo: local`
2023-01-29 17:27:42 -05:00
Anthony Sottile
628c876b2d
adjust the run_hook api to no longer take Hook
2023-01-16 16:34:01 -05:00
Anthony Sottile
ae34a962d7
make in_env part of the language api
2023-01-16 15:36:29 -05:00
Anthony Sottile
05c8911363
simplify environment_dir
2023-01-01 21:11:56 -05:00
Anthony Sottile
d05b7888ab
move clean_path_on_failure out of each hook install
2023-01-01 20:04:58 -05:00
Anthony Sottile
07554e9525
add additional info to healthy-after-install check
2022-04-16 16:46:28 -04:00
Anthony Sottile
04de6a2e57
drop python 3.6 support
...
python 3.6 reached end of life on 2021-12-23
2022-01-18 18:44:20 -05:00
Anthony Sottile
5d1cac64c1
ignore self-container when in docker-in-docker
2021-08-03 13:08:07 -07:00
Adar Nimrod
3e1020945e
A more reliable way to get the container id.
...
The hostname is not always the container id. Get the container id from
/proc/1/cgroup. Fixes #1918 .
2021-07-03 10:43:11 -07:00
Oleg Kainov
6d5d386c9f
fix: fix path mounting when running in Docker
...
Currently pre-commit mounts the current directory to /src and uses
current directory name as mount base.
However this does not work when pre-commit is run inside the container
on some mounted path already, because mount points are relative to the
host, not to the container.
Fixes #1387
2021-04-28 19:21:34 -07:00
Anthony Sottile
3584b99caa
simplify docker run
2020-10-10 18:09:51 -07:00
Ruairidh MacLeod
eb8b48aeb4
remove docker_is_running check from source
...
Moved to testing.util so it can be used for the skipif_cant_run_docker
test hooks.
2020-08-22 17:33:32 -07:00
KYLE ZHU
23d5b78fdb
Don't use --user when running docker on windows
2020-03-19 21:55:16 -07:00
Anthony Sottile
67c1beb322
Use covdefaults to handle coveragerc
2020-02-29 14:25:19 -08:00
Anthony Sottile
fa8d022813
Remove unnecessary forward annotations
2020-02-07 08:32:39 -08:00
Anthony Sottile
755b8000f6
move Hook data type to a separate file
2020-01-15 14:20:51 -08:00
Anthony Sottile
9000e9dd41
Some manual .format() -> f-strings
2020-01-12 13:39:53 -08:00
Anthony Sottile
327ed924a3
Add types to pre-commit
2020-01-12 10:15:01 -08:00
Anthony Sottile
fa536a8693
mypy passes with check_untyped_defs
2020-01-12 09:27:04 -08:00
Anthony Sottile
30c1e8289f
upgrade hooks, pyupgrade pre-commit
2020-01-12 09:27:04 -08:00
Ryan Rhee
addc7045ba
grammar
2019-11-01 11:33:04 -04:00
Anthony Sottile
7c3404ef1f
show color in hook outputs when attached to a tty
2019-10-12 23:17:36 -07:00
Anthony Sottile
f612aeb22b
Split out cmd_output_b
2019-10-06 15:16:47 -07:00
Edgar Geier
d4a9ff4d1f
Simplify docker user fallback implementation and test
2019-07-25 11:22:59 +02:00
Edgar Geier
b43b6a61ab
Add docker uid and gid fallback tests
2019-07-23 15:14:06 +02:00
Edgar Geier
b7ce5db782
Use fallback uid and gid if os.getuid() and os.getgid() are unavailable
2019-07-23 12:38:09 +02:00
Anthony Sottile
d3b5a41830
Implement default_language_version
2019-01-05 13:15:23 -08:00
Anthony Sottile
4f9d0397b5
Add more 'no cover windows' comments
2018-12-31 14:06:10 -08:00
Anthony Sottile
b59d7197ff
Use Hook api in languages
2018-12-31 13:16:48 -08:00
Anthony Sottile
6bac405d40
Minor cleanups
2018-11-01 18:05:36 -07:00
Chris Kuehl
ba5e27e4ec
Implement concurrent execution of individual hooks
2018-10-24 16:16:10 -07:00
Anthony Sottile
7d87da8acd
Move PrefixedCommandRunner -> Prefix
2018-01-11 21:41:48 -08:00
Anthony Sottile
2e5b4fcf4c
Add comment about Z flag for selinux
2017-11-02 15:30:28 -07:00
Jimmi Dyson
f0cf940cb5
Add selinux labelling option to docker_image hook type
2017-10-23 11:11:24 +01:00
Anthony Sottile
9c3bbecab8
Add new docker_image language type.
...
`docker_image` is intended to be a lightweight hook type similar to system /
script which allows one to use an existing docker image which provides a
hook.
2017-09-02 19:49:23 -07:00
Anthony Sottile
cff98a634d
Recover from invalid python virtualenvs
2017-07-20 10:57:09 -07:00
Anthony Sottile
0c70fa4229
Use asottile/add-trailing-comma
2017-07-12 18:30:51 -07:00
Anthony Sottile
d876661345
Use a more intelligent default language version
2017-07-08 21:11:48 -07:00
Anthony Sottile
8c27f2c50b
Put the . in docker build at the end.
...
Resolves #477
2017-01-27 14:22:00 -08:00
Anthony Sottile
068c18d38a
Add first class support for golang hooks
2017-01-24 13:49:22 -08:00
Anthony Sottile
b6937f33e2
Fixups to make appveyor happy
2017-01-16 18:50:49 -08:00
Anthony Sottile
6055af8bc8
Make shlex behaviour of entry more consistent
2017-01-05 11:52:29 -08:00
Ben Picolo
8cbd56a0a5
Put user back where it was
2017-01-05 12:55:08 -05:00