Compare commits

...

229 Commits
v2.0.0 ... main

Author SHA1 Message Date
renovate[bot]
61b586a41e
chore(deps): update quay.io/thegeeklab/wp-docker-buildx docker tag to v6 (#802)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-16 10:51:31 +01:00
renovate[bot]
75f244d62a
fix(deps): update dependency environs to v11.2.0 (#801)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-15 07:43:44 +01:00
cfa63766d4
ci: add read-only pull secret to security build 2024-11-14 20:51:58 +01:00
renovate[bot]
c5847b4f2f
chore(docker): update python:3.13-alpine docker digest to fcbcbbe (#800)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-14 04:38:07 +00:00
renovate[bot]
0d23038b96
chore(docker): update python:3.13-alpine docker digest to ee60f1f (#799)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-13 06:44:27 +00:00
renovate[bot]
6cc50cab6d
fix(deps): update dependency environs to v11.1.0 (#798)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 22:41:52 +01:00
renovate[bot]
facbba7bce
chore(deps): update dependency ruff to v0.7.3 (#797)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-11 03:44:47 +00:00
renovate[bot]
a3a6ff8501
fix(deps): update dependency zipp to v3.21.0 (#796)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-10 20:49:23 +01:00
renovate[bot]
2a8b5ab47e
chore(deps): update python docker tag to v3.13 (#783)
BREAKING CHANGE: The support for Python 3.9 was removed.
2024-11-08 23:10:53 +01:00
renovate[bot]
7dc2294a37
chore(deps): update docker.io/library/python docker tag to v3.13 (#782)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 22:30:08 +01:00
renovate[bot]
99160772be
chore(deps): lock file maintenance (#795)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-08 22:12:42 +01:00
renovate[bot]
31754197c6
chore(deps): update dependency pytest-cov to v6 (#791)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-11-06 09:26:24 +01:00
c9e5c4ec49
chore: drop python 3.8 support (#794)
BREAKING CHANGE: The support for Python 3.8 was dropped to support the latest `pytest-cov` release which requires at least Python 3.9
2024-11-06 09:18:05 +01:00
renovate[bot]
9637b3aa3f chore(deps): update dependency thegeeklab/hugo-geekdoc to v1.2.1 2024-11-04 07:34:54 +00:00
renovate[bot]
6756e50a2b chore(deps): update dependency ruff to v0.7.2 2024-11-04 04:48:14 +00:00
renovate[bot]
791261dfe0
chore(deps): update quay.io/thegeeklab/hugo docker tag to v0.136.5 (#787)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 08:35:38 +01:00
renovate[bot]
d4cda4c96e
chore(deps): lock file maintenance (#790)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-28 08:28:37 +01:00
renovate[bot]
2aa662e4ab chore(deps): update dependency ruff to v0.7.1 2024-10-28 04:17:58 +00:00
d9fac61721
cleanup docs pipeline 2024-10-27 21:21:09 +01:00
renovate[bot]
50b29582a2
chore(deps): lock file maintenance (#784)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-27 21:07:44 +01:00
7145f46411
ci: add trivy and replace deprecated workflow syntax (#788) 2024-10-27 21:07:32 +01:00
renovate[bot]
ada8379c7f chore(deps): update dependency ruff to v0.7.0 2024-10-21 04:42:02 +00:00
renovate[bot]
2b65019281 chore(docker): update python:3.12-alpine docker digest to 38e179a 2024-10-20 03:59:23 +00:00
renovate[bot]
4107d54e5a
chore(deps): update dependency thegeeklab/hugo-geekdoc to v1.1.0 (#781)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-07 08:33:05 +02:00
renovate[bot]
ce98ff48ad chore(deps): update dependency ruff to v0.6.9 2024-10-07 04:11:15 +00:00
renovate[bot]
425451edba
chore(deps): lock file maintenance (#778)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-10-03 14:28:14 +02:00
renovate[bot]
588458f921 chore(docker): update python:3.12-alpine docker digest to e75de17 2024-10-02 12:41:40 +00:00
renovate[bot]
6c74656363 chore(deps): update dependency ruff to v0.6.8 2024-09-30 03:30:45 +00:00
renovate[bot]
a70f67cda3
chore(deps): lock file maintenance (#776)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-23 11:18:56 +02:00
renovate[bot]
a92e91904d chore(deps): update dependency ruff to v0.6.7 2024-09-23 03:45:13 +00:00
renovate[bot]
6ce60bd579
chore(deps): lock file maintenance (#774)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 15:55:55 +02:00
renovate[bot]
805b2b289a
fix(deps): update dependency idna to v3.10 (#772)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-16 15:55:47 +02:00
renovate[bot]
eb783d2f7a chore(deps): update devdeps non-major 2024-09-16 05:01:26 +00:00
renovate[bot]
d762158829
fix(deps): update dependency zipp to v3.20.2 (#769)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 20:38:33 +02:00
renovate[bot]
698ebb904f
chore(deps): lock file maintenance (#744)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 20:22:04 +02:00
renovate[bot]
147582209b
fix(deps): update dependency idna to v3.9 (#771)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-15 20:21:17 +02:00
renovate[bot]
9bb6841da7 chore(docker): update python:3.12-alpine docker digest to 7130f75 2024-09-14 03:01:53 +00:00
renovate[bot]
8fba3dca3b chore(docker): update python:3.12-alpine docker digest to 7593fc6 2024-09-13 04:18:02 +00:00
renovate[bot]
26239b409f chore(docker): update python:3.12-alpine docker digest to e0e4d3d 2024-09-10 06:11:03 +00:00
renovate[bot]
3a02efb4b1 chore(deps): update dependency ruff to v0.6.4 2024-09-09 08:24:38 +00:00
renovate[bot]
c0baa946c9 chore(docker): update python:3.12-alpine docker digest to bb5d0ac 2024-09-09 03:14:08 +00:00
renovate[bot]
e0d43b20cd chore(docker): update python:3.12-alpine docker digest to aeff643 2024-09-05 05:02:38 +00:00
renovate[bot]
a45bba0347
chore(deps): update quay.io/thegeeklab/hugo docker tag to v0.133.0 (#757)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-02 11:06:39 +02:00
renovate[bot]
b15c4f2133 chore(deps): update dependency ruff to v0.6.3 2024-09-02 03:53:42 +00:00
renovate[bot]
15e6278156
chore(deps): update dependency thegeeklab/hugo-geekdoc to v1 (#762)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-09-01 15:56:48 +02:00
renovate[bot]
98490d06d0
fix(deps): update dependency certifi to v2024.8.30 (#761)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-30 07:50:59 +02:00
renovate[bot]
190bb2fa1f
fix(deps): update dependency zipp to v3.20.1 (#760)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-27 08:29:09 +02:00
renovate[bot]
e8f9731a30
fix(deps): update dependency idna to v3.8 (#758)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-26 08:24:31 +02:00
renovate[bot]
79606bf19e chore(deps): update dependency ruff to v0.6.2 2024-08-26 04:19:46 +00:00
renovate[bot]
56eac8af21 chore(deps): update dependency ruff to v0.6.1 2024-08-19 04:56:54 +00:00
renovate[bot]
4b561a38c9
fix(deps): update dependency zipp to v3.20.0 (#754)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-08-12 09:01:51 +02:00
renovate[bot]
4acc8d7dd6 chore(deps): update dependency ruff to v0.5.7 2024-08-12 03:29:36 +00:00
renovate[bot]
f2322312c9 chore(docker): update python:3.12-alpine docker digest to c2f41e6 2024-08-08 03:14:08 +00:00
8b1da64f4f
ci: fix notification step 2024-08-07 21:26:46 +02:00
renovate[bot]
28cbf3b60a chore(docker): update python:3.12-alpine docker digest to 63094ab 2024-08-06 05:17:42 +00:00
renovate[bot]
7751a4ad74 chore(deps): update dependency ruff to v0.5.6 2024-08-05 04:18:42 +00:00
renovate[bot]
ce949a87be chore(docker): update python:3.12-alpine docker digest to a0c22d8 2024-08-03 03:55:49 +00:00
renovate[bot]
9f0f1c10a9 chore(docker): update python:3.12-alpine docker digest to 2abecb7 2024-08-02 03:19:22 +00:00
renovate[bot]
e71bda050b chore(deps): update devdeps non-major 2024-07-29 03:28:23 +00:00
renovate[bot]
23b42be628 chore(docker): update python:3.12-alpine docker digest to 7f15e22 2024-07-25 05:14:35 +00:00
renovate[bot]
d754500b0e chore(docker): update python:3.12-alpine docker digest to 0032125 2024-07-24 03:54:29 +00:00
renovate[bot]
491bd1875f chore(docker): update python:3.12-alpine docker digest to 100d96c 2024-07-23 06:51:07 +00:00
renovate[bot]
d27fc50d2d chore(deps): update devdeps non-major 2024-07-22 03:26:45 +00:00
renovate[bot]
9b04502097
chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.47.0 (#742)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-15 09:21:01 +02:00
renovate[bot]
19db149f1b chore(deps): update dependency ruff to v0.5.2 2024-07-15 04:46:16 +00:00
renovate[bot]
014627b564 chore(docker): update python:3.12-alpine docker digest to 0bd77ae 2024-07-11 04:56:15 +00:00
renovate[bot]
1e5d6b8df9
fix(deps): update dependency jsonschema to v4.23.0 (#738)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-09 08:16:09 +02:00
renovate[bot]
e9185cdaa6 chore(docker): update python:3.12-alpine docker digest to b7662fc 2024-07-09 04:49:39 +00:00
renovate[bot]
a7770ea08d
chore(deps): update quay.io/thegeeklab/wp-docker-buildx docker tag to v5 (#737)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-08 13:50:38 +02:00
renovate[bot]
f67f112433
chore(deps): update dependency ruff to v0.5.1 (#735)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2024-07-08 10:21:24 +02:00
renovate[bot]
4cfd618987
fix(deps): update dependency certifi to v2024.7.4 [security] (#736)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-08 08:26:15 +02:00
renovate[bot]
157dabfeff
chore(deps): lock file maintenance (#731)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-07-08 08:25:19 +02:00
renovate[bot]
fcfb9e3410 chore(docker): update python:3.12-alpine docker digest to ff870bf 2024-06-28 04:21:07 +00:00
renovate[bot]
5cf6abb8dd chore(deps): update dependency ruff to v0.4.10 2024-06-24 03:24:25 +00:00
renovate[bot]
515b0e3163 chore(docker): update python:3.12-alpine docker digest to dc09596 2024-06-21 06:58:54 +00:00
renovate[bot]
43f76d51ae chore(deps): update dependency ruff to v0.4.9 2024-06-17 04:23:40 +00:00
renovate[bot]
7c6b4c7c40 chore(docker): update python:3.12-alpine docker digest to a982997 2024-06-15 03:08:32 +00:00
renovate[bot]
651af74296 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.46.0 2024-06-10 06:16:26 +00:00
renovate[bot]
1d70cd3017
chore(deps): update quay.io/thegeeklab/hugo docker tag to v0.127.0 (#726)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-10 07:27:33 +02:00
renovate[bot]
0130a3a7b0 chore(deps): update devdeps non-major 2024-06-10 04:03:17 +00:00
renovate[bot]
ca54d039d3 chore(docker): update python:3.12-alpine docker digest to d24ed56 2024-06-08 03:54:27 +00:00
renovate[bot]
c0cc3c1434 chore(docker): update python:3.12-alpine docker digest to 32385e6 2024-06-06 08:05:27 +00:00
renovate[bot]
255330f547
fix(deps): update dependency requests to v2.32.3 (#721)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-05 09:37:20 +02:00
renovate[bot]
67d17dbac4
chore(deps): lock file maintenance (#719)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-05 09:15:06 +02:00
renovate[bot]
a809e20900
fix(deps): update dependency zipp to v3.19.2 (#723)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-05 09:14:39 +02:00
renovate[bot]
16acc8f500 chore(deps): update dependency ruff to v0.4.7 2024-06-03 04:34:57 +00:00
dependabot[bot]
27f88e07f6
chore(deps): bump requests from 2.31.0 to 2.32.2 (#720) 2024-06-02 09:42:47 +02:00
renovate[bot]
fbf727c593
fix(deps): update dependency certifi to v2024.6.2 (#718)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-02 09:01:01 +02:00
renovate[bot]
53d324c747
chore(deps): lock file maintenance (#716)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-01 13:19:36 +02:00
renovate[bot]
acb91fe39b
fix(deps): update dependency zipp to v3.19.1 (#717)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-06-01 13:18:51 +02:00
renovate[bot]
433b8ce2aa
fix(deps): update dependency zipp to v3.19.0 (#714)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-30 20:23:20 +02:00
renovate[bot]
724e14c741 chore(deps): update devdeps non-major 2024-05-27 04:34:22 +00:00
renovate[bot]
c5d50cf47a
fix(deps): update dependency docker to v7.1.0 (#712)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-24 09:23:34 +02:00
renovate[bot]
ae9a16c898 chore(docker): update python:3.12-alpine docker digest to 5365725 2024-05-24 04:41:11 +00:00
renovate[bot]
635cd51a17
chore(deps): lock file maintenance (#707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-17 09:37:14 +02:00
renovate[bot]
77ca9f62d2
fix(deps): update dependency zipp to v3.18.2 (#709)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-17 09:36:16 +02:00
renovate[bot]
40e2f72fb0
chore(deps): update quay.io/thegeeklab/hugo docker tag to v0.125.7 (#708)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-14 15:06:43 +02:00
renovate[bot]
5a4a9dc879 chore(deps): update dependency ruff to v0.4.4 2024-05-13 04:16:36 +00:00
renovate[bot]
0a8780c381
chore(deps): lock file maintenance (#705)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-07 12:15:13 +02:00
renovate[bot]
c0b496943f chore(deps): update dependency ruff to v0.4.3 2024-05-06 04:32:58 +00:00
renovate[bot]
393887fbb5
fix(deps): update dependency jsonschema to v4.22.0 (#703)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-05-01 12:36:25 +02:00
renovate[bot]
6555f4add6
chore(deps): lock file maintenance (#699)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-29 10:28:19 +02:00
renovate[bot]
eee7a5a1ff chore(deps): update devdeps non-major 2024-04-29 05:01:06 +00:00
renovate[bot]
9f31bfdf9e
fix(deps): update dependency websocket_client to v1.8.0 (#701)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-24 08:55:03 +02:00
renovate[bot]
9596da32c9 chore(deps): update dependency ruff to v0.4.1 2024-04-22 03:38:41 +00:00
renovate[bot]
d15499b120 chore(deps): update dependency ruff to v0.3.7 2024-04-15 03:13:34 +00:00
renovate[bot]
da587cdaf1
chore(deps): lock file maintenance (#686)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 08:54:56 +02:00
renovate[bot]
2e78717804
fix(deps): update dependency idna to v3.7 [security] (#697)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-04-12 08:54:49 +02:00
renovate[bot]
7e2c68c8fe chore(docker): update python:3.12-alpine docker digest to ef09762 2024-04-11 03:15:43 +00:00
renovate[bot]
5a98f7127d chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.45.0 2024-04-08 06:26:20 +00:00
renovate[bot]
9701519a85 chore(deps): update dependency ruff to v0.3.5 2024-04-08 05:27:50 +00:00
renovate[bot]
01293f3634 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.44.3 2024-04-01 04:59:23 +00:00
renovate[bot]
cbddcedb62
chore(deps): update quay.io/thegeeklab/wp-docker-buildx docker tag to v4 (#691)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-27 08:56:27 +01:00
renovate[bot]
4be97eb542 chore(docker): update python:3.12-alpine docker digest to c7eb5c9 2024-03-26 04:30:21 +00:00
renovate[bot]
3e644aa33d
chore(deps): update dependency pytest-cov to v5 (#688)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-25 08:34:23 +01:00
renovate[bot]
a86f86e3a1 chore(deps): update devdeps non-major 2024-03-25 04:48:50 +00:00
renovate[bot]
95e7ee4471
chore(deps): update quay.io/thegeeklab/hugo docker tag to v0.124.1 (#687)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-21 08:48:24 +01:00
renovate[bot]
73d739831a chore(deps): update dependency ruff to v0.3.3 2024-03-18 03:40:02 +00:00
renovate[bot]
44599113ab chore(docker): update python:3.12-alpine docker digest to 25a82f6 2024-03-17 03:32:01 +00:00
renovate[bot]
1b33fc3b74
fix(deps): update dependency zipp to v3.18.1 (#683)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-16 12:21:58 +01:00
renovate[bot]
83a32d14c6
fix(deps): update dependency zipp to v3.18.0 (#682)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-13 08:34:16 +01:00
63ca6e6bdb
ci: fix deprecated ruff command 2024-03-12 20:52:55 +01:00
renovate[bot]
1e557bd253
chore(deps): lock file maintenance (#681)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-11 09:39:36 +01:00
renovate[bot]
32da9eb537
chore(deps): update devdeps non-major (#680)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2024-03-11 09:39:29 +01:00
renovate[bot]
1d19939b68 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.44.2 2024-03-11 03:38:10 +00:00
renovate[bot]
233b29a8cd
chore(deps): lock file maintenance (#677)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 11:05:20 +01:00
renovate[bot]
90876dc452
fix(deps): update dependency environs to v11 (#678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-07 11:04:49 +01:00
renovate[bot]
9d2503fb30 chore(deps): update devdeps non-major 2024-03-04 03:26:08 +00:00
renovate[bot]
ec6ff19057
fix(deps): update dependency python-dateutil to v2.9.0.post0 (#675)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-02 14:49:18 +01:00
renovate[bot]
fc31bd26c2
chore(deps): lock file maintenance (#673)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-26 10:43:40 +01:00
renovate[bot]
8d9c9a5f5f chore(deps): update dependency pytest to v8.0.2 2024-02-26 03:43:17 +00:00
renovate[bot]
6a80f83587 chore(deps): update devdeps non-major 2024-02-19 04:32:20 +00:00
e261307149
[skip ci] revert renovate automerge config 2024-02-15 12:23:09 +01:00
renovate[bot]
f69a97b61c
chore(deps): update quay.io/thegeeklab/hugo docker tag to v0.122.0 (#671)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-11 21:47:37 +01:00
84a3d303ed
enable renovate on automerge branches 2024-02-09 23:08:32 +01:00
renovate[bot]
24a8388cb1 chore(docker): update python:3.12-alpine docker digest to 1a05012 2024-02-09 06:11:13 +00:00
renovate[bot]
3a47080078
fix(deps): update dependency ruamel.yaml to v0.18.6 (#669)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-07 22:36:52 +01:00
7dbd1158c6
chore: bump ruff to v0.2.1 (#668) 2024-02-06 09:34:40 +01:00
renovate[bot]
536752a83e
fix(deps): update dependency certifi to v2024 (#667)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-03 14:04:32 +01:00
renovate[bot]
f334c0da1e
chore(deps): update dependency pytest to v8 (#665)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-31 09:05:12 +01:00
renovate[bot]
fc02a0071a chore(docker): update python:3.12-alpine docker digest to 14cfc61 2024-01-29 10:49:01 +00:00
renovate[bot]
9ce45bf75b
chore(deps): update quay.io/thegeeklab/wp-docker-buildx docker tag to v3 (#664)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-22 11:28:49 +01:00
renovate[bot]
9a5c025d7c chore(deps): update dependency ruff to v0.1.14 2024-01-22 03:08:44 +00:00
renovate[bot]
95e5f2ac4a
fix(deps): update dependency jsonschema to v4.21.1 (#662)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-20 15:51:39 +01:00
renovate[bot]
48e90b3fa8 chore(docker): update python:3.12-alpine docker digest to 801b54e 2024-01-20 02:17:35 +00:00
renovate[bot]
72f6b0e758 chore(docker): update python:3.12-alpine docker digest to 4a156f7 2024-01-19 07:11:22 +00:00
renovate[bot]
b684cb042f
fix(deps): update dependency jsonschema to v4.21.0 (#659)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-18 10:21:53 +01:00
renovate[bot]
e280fd4395 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.44.1 2024-01-16 00:18:09 +00:00
renovate[bot]
824b850e57
fix(deps): update dependency anyconfig to v0.14.0 (#656)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-15 21:55:52 +01:00
renovate[bot]
5fb5fbb2e5
chore(deps): update dependency ruff to v0.1.13 (#657)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2024-01-15 20:38:53 +01:00
renovate[bot]
fc20bb4de0
fix(deps): update dependency environs to v10.3.0 (#655)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-12 08:30:15 +01:00
renovate[bot]
df1c82beac
fix(deps): update dependency environs to v10.2.0 (#654)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-10 08:38:45 +01:00
renovate[bot]
c81a2b7dca
chore(deps): lock file maintenance (#644)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 15:36:03 +01:00
renovate[bot]
5e7b78b181
fix(deps): update dependency docker to v7 (#640)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 15:35:53 +01:00
renovate[bot]
f957a5c41d
fix(deps): update dependency environs to v10.1.0 (#653)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-09 15:03:24 +01:00
renovate[bot]
194a793cb2 chore(deps): update dependency ruff to v0.1.11 2024-01-08 05:01:20 +00:00
renovate[bot]
85a945b4ed
chore(deps): update quay.io/thegeeklab/hugo docker tag to v0.121.2 (#651)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-01-07 20:42:13 +01:00
renovate[bot]
bf8e7c5256 chore(deps): update dependency pytest to v7.4.4 2024-01-01 03:51:52 +00:00
renovate[bot]
7a7df50721
fix(deps): update dependency environs to v10 (#645)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-27 11:08:05 +01:00
renovate[bot]
535969d581 chore(deps): update dependency ruff to v0.1.9 2023-12-25 03:41:52 +00:00
3eebffb06a
disable renovate for python test matrix in ci 2023-12-24 00:03:57 +01:00
525483e99c
use list style synatx and cleanup (#647) 2023-12-23 23:25:22 +01:00
renovate[bot]
ea0468cc8d chore(deps): update dependency ruff to v0.1.8 2023-12-18 03:40:56 +00:00
5063ba7d6b
cleanup unused env vars in ci 2023-12-17 14:08:01 +01:00
renovate[bot]
3ea1adfe03
fix(deps): update dependency pathspec to v0.12.1 (#642)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-12 08:55:02 +01:00
renovate[bot]
ea56dc4f41 chore(deps): update dependency ruff to v0.1.7 2023-12-11 04:57:00 +00:00
renovate[bot]
e0f99929c1 chore(docker): update python:3.12-alpine docker digest to c793b92 2023-12-09 09:48:01 +00:00
renovate[bot]
0a2257fb13
chore(deps): update quay.io/thegeeklab/wp-docker-buildx docker tag to v2 (#639)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-07 09:50:02 +01:00
b1e15928ad
ci: exclude dockerhub from linkcheck due to rate limiting 2023-12-07 09:08:28 +01:00
renovate[bot]
f386910970 chore(docker): update python:3.12-alpine docker digest to 09f18c1 2023-12-04 23:17:59 +00:00
renovate[bot]
91fbaf9d9d
chore(deps): lock file maintenance (#636)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 21:18:50 +01:00
renovate[bot]
a4643c714a
fix(deps): update dependency idna to v3.6 (#635)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 21:18:37 +01:00
renovate[bot]
d7b1253555
fix(deps): update dependency websocket_client to v1.7.0 (#638)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-04 21:07:27 +01:00
1c7b43fff0
fix settings for required status checks 2023-12-04 21:01:52 +01:00
renovate[bot]
d325e16548
fix(deps): update dependency idna to v3.5 (#634)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-25 14:26:25 +01:00
renovate[bot]
7a7118aa75
chore(deps): lock file maintenance (#629)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 09:01:07 +01:00
renovate[bot]
042feaa792
fix(deps): update dependency jsonschema to v4.20.0 (#630)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-20 09:00:41 +01:00
renovate[bot]
39bca2ebf9 chore(deps): update dependency ruff to v0.1.6 2023-11-20 04:44:32 +00:00
renovate[bot]
03437632ff
fix(deps): update dependency certifi to v2023.11.17 (#632)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-18 14:09:40 +01:00
renovate[bot]
9b6e622a84
fix(deps): update dependency dateparser to v1.2.0 (#631)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-17 19:22:52 +01:00
renovate[bot]
7ac907ea02 chore(deps): update dependency ruff to v0.1.5 2023-11-13 04:51:04 +00:00
renovate[bot]
4f6d92bbcc
chore(deps): lock file maintenance (#625)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-12 14:48:56 +01:00
347e074e5b
fix: replace deprecated ruamel.yaml.safe_load (#627) 2023-11-12 14:48:48 +01:00
12f2428e9f
chore: drop yapf and favor of the ruff formatter (#626) 2023-11-10 14:50:56 +01:00
renovate[bot]
2a3e1612f8 chore(deps): update dependency ruff to v0.1.4 2023-11-06 03:53:54 +00:00
renovate[bot]
8a28ecefc6
chore(deps): lock file maintenance (#616)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 22:28:33 +01:00
71365ef471
ci: cleanup matrix build name (#623) 2023-11-04 16:24:29 +01:00
renovate[bot]
ce3d0acfcd
fix(deps): update dependency ruamel.yaml to v0.18.5 (#622)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-11-04 16:03:17 +01:00
renovate[bot]
c51f8d1578
fix(deps): update dependency ruamel.yaml to v0.18.3 (#617)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 20:43:16 +01:00
renovate[bot]
d27a1a974f
fix(deps): update dependency jsonschema to v4.19.2 (#621)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-31 20:07:57 +01:00
renovate[bot]
5ac3434045 chore(deps): update devdeps non-major 2023-10-30 04:33:50 +00:00
renovate[bot]
c976506e5a chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.44.0 2023-10-29 09:21:21 +00:00
renovate[bot]
e1fab9e27e chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.43.0 2023-10-27 15:45:18 +00:00
renovate[bot]
fed37cc7d0 chore(deps): update devdeps non-major 2023-10-23 04:22:59 +00:00
renovate[bot]
b82fdfbeed chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.42.0 2023-10-21 18:34:47 +00:00
renovate[bot]
06f21389bb
fix(deps): update dependency ruamel.yaml to v0.17.40 (#613)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-21 15:33:50 +02:00
renovate[bot]
54954fab7b chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.41.3 2023-10-20 12:45:37 +00:00
renovate[bot]
56e140e146
fix(deps): update dependency ruamel.yaml to v0.17.39 (#610)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-20 08:58:56 +02:00
renovate[bot]
f314885f99
chore(deps): lock file maintenance (#611)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-19 22:32:12 +02:00
renovate[bot]
985adf4614 chore(docker): update python:3.12-alpine docker digest to a5d1738 2023-10-19 15:16:44 +00:00
renovate[bot]
ee06eff3f2 chore(docker): update python:3.12-alpine docker digest to a4029bd 2023-10-19 06:41:42 +00:00
12cc05e53e
ci: fix changelog generation 2023-10-18 13:59:26 +02:00
b581e501da
chore: replace linkcheck by lychee (#607) 2023-10-16 21:34:26 +02:00
e91f10ae14
chore: replace git-chglog by git-sv (#606) 2023-10-16 15:42:46 +02:00
renovate[bot]
dd299ecf5c
chore(deps): lock file maintenance (#603)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 14:28:52 +02:00
ea4bf4a218
feat: add support for python 3.12 (#605)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-16 14:15:38 +02:00
4988cac525
fix: remove deprecated distutils (#604) 2023-10-16 12:11:13 +02:00
renovate[bot]
7b82bbf871 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.41.2 2023-10-11 01:28:27 +00:00
renovate[bot]
3c6dcda7a6
chore(deps): lock file maintenance (#601)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 14:56:21 +02:00
renovate[bot]
a75380dcab
fix(deps): update dependency ruamel.yaml to v0.17.35 (#598)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 14:56:13 +02:00
renovate[bot]
3ea31f660b
fix(deps): update dependency websocket_client to v1.6.4 (#599)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-09 14:41:11 +02:00
renovate[bot]
9bc9ef4d45 chore(deps): update dependency ruff to v0.0.292 2023-10-09 03:22:53 +00:00
renovate[bot]
0ef523ceb7 chore(docker): update python:3.11-alpine docker digest to 3e73c0b 2023-10-03 13:39:41 +00:00
renovate[bot]
2bebea17fd
chore(deps): lock file maintenance (#594)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-02 11:46:56 +02:00
renovate[bot]
43c1180bee
fix(deps): update dependency ruamel.yaml to v0.17.33 (#592)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-10-02 11:14:15 +02:00
renovate[bot]
39c8ce5c2e chore(docker): update python:3.11-alpine docker digest to cd311c6 2023-09-29 18:07:11 +00:00
renovate[bot]
fcee5e7f6f
fix(deps): update dependency jsonschema to v4.19.1 (#589)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 15:15:46 +02:00
renovate[bot]
7ffd2d6ca7
chore(deps): lock file maintenance (#591)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 13:47:15 +02:00
renovate[bot]
a97d20c6ff
fix(deps): update dependency zipp to v3.17.0 (#588)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-27 13:46:58 +02:00
8f4b694d7e
ci: use secret for s3 endpoint 2023-09-26 21:40:32 +02:00
renovate[bot]
15bface557
chore(deps): update devdeps non-major (#590)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-25 10:05:10 +02:00
88cf97ee86
docs: drop codecov badge 2023-09-25 09:27:02 +02:00
renovate[bot]
a4e893b5dd
chore(deps): lock file maintenance (#581)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 08:45:47 +02:00
renovate[bot]
fe27327da5
fix(deps): update dependency websocket_client to v1.6.3 (#586)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-09-18 08:45:39 +02:00
renovate[bot]
544c0bf25b chore(deps): update dependency ruff to v0.0.290 2023-09-18 04:32:51 +00:00
renovate[bot]
ff118d656a chore(deps): update dependency pytest to v7.4.2 2023-09-11 04:41:20 +00:00
renovate[bot]
cca9765fa2 chore(deps): update devdeps non-major 2023-09-04 04:51:54 +00:00
renovate[bot]
aa1b914f6b chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.41.1 2023-09-04 02:08:07 +00:00
renovate[bot]
a265caa3ca chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.41.0 2023-09-01 04:13:21 +00:00
24 changed files with 881 additions and 956 deletions

View File

@ -1,23 +0,0 @@
# Changelog
{{ range .Versions -}}
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }})
{{ range .CommitGroups -}}
### {{ .Title }}
{{ range .Commits -}}
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ (regexReplaceAll "(.*)/issues/(.*)" (regexReplaceAll "(Co-\\w*-by.*)" .Subject "") "${1}/pull/${2}") | trim }}
{{ end }}
{{- end -}}
{{- if .NoteGroups -}}
{{ range .NoteGroups -}}
### {{ .Title }}
{{ range .Notes }}
{{ .Body }}
{{ end }}
{{ end -}}
{{ end -}}
{{ end -}}

View File

@ -1,25 +0,0 @@
style: github
template: CHANGELOG.tpl.md
info:
title: CHANGELOG
repository_url: https://github.com/thegeeklab/docker-tidy
options:
commit_groups:
title_maps:
feat: Features
fix: Bug Fixes
perf: Performance Improvements
refactor: Code Refactoring
chore: Others
test: Testing
ci: CI Pipeline
docs: Documentation
header:
pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
pattern_maps:
- Type
- Scope
- Subject
notes:
keywords:
- BREAKING CHANGE

47
.gitsv/config.yml Normal file
View File

@ -0,0 +1,47 @@
---
version: "1.1"
versioning:
update-major: []
update-minor: [feat]
update-patch: [fix, perf, refactor, chore, test, ci, docs]
tag:
pattern: "v%d.%d.%d"
release-notes:
sections:
- name: Features
commit-types: [feat]
section-type: commits
- name: Bug Fixes
commit-types: [fix]
section-type: commits
- name: Performance Improvements
commit-types: [perf]
section-type: commits
- name: Code Refactoring
commit-types: [refactor]
section-type: commits
- name: Others
commit-types: [chore]
section-type: commits
- name: Testing
commit-types: [test]
section-type: commits
- name: CI Pipeline
commit-types: [ci]
section-type: commits
- name: Documentation
commit-types: [docs]
section-type: commits
- name: Breaking Changes
section-type: breaking-changes
commit-message:
footer:
issue:
key: issue
add-value-prefix: "#"
issue:
regex: "#?[0-9]+"

1
.lycheeignore Normal file
View File

@ -0,0 +1 @@
https://hub.docker.com/r/thegeeklab/*

View File

@ -6,29 +6,39 @@ when:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
steps: steps:
build: - name: build
image: docker.io/library/python:3.11 image: docker.io/library/python:3.13
commands: commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq - pip install poetry poetry-dynamic-versioning -qq
- poetry build - poetry build
dryrun: - name: security-build
image: quay.io/thegeeklab/wp-docker-buildx:1 image: quay.io/thegeeklab/wp-docker-buildx:6
depends_on: [build]
settings: settings:
containerfile: Containerfile.multiarch containerfile: Containerfile.multiarch
dry_run: true output: type=oci,dest=oci/${CI_REPO_NAME},tar=false
platforms:
- linux/amd64
- linux/arm64
provenance: false
repo: ${CI_REPO} repo: ${CI_REPO}
when: registry_config:
- event: [pull_request] from_secret: DOCKER_REGISTRY_CONFIG_PULL
publish-dockerhub: - name: security-scan
group: container image: docker.io/aquasec/trivy
image: quay.io/thegeeklab/wp-docker-buildx:1 depends_on: [security-build]
commands:
- trivy -v
- trivy image --input oci/${CI_REPO_NAME}
environment:
TRIVY_EXIT_CODE: "1"
TRIVY_IGNORE_UNFIXED: "true"
TRIVY_NO_PROGRESS: "true"
TRIVY_SEVERITY: HIGH,CRITICAL
TRIVY_TIMEOUT: 1m
TRIVY_DB_REPOSITORY: docker.io/aquasec/trivy-db:2
- name: publish-dockerhub
image: quay.io/thegeeklab/wp-docker-buildx:6
depends_on: [security-scan]
settings: settings:
auto_tag: true auto_tag: true
containerfile: Containerfile.multiarch containerfile: Containerfile.multiarch
@ -47,9 +57,9 @@ steps:
branch: branch:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
publish-quay: - name: publish-quay
group: container image: quay.io/thegeeklab/wp-docker-buildx:6
image: quay.io/thegeeklab/wp-docker-buildx:1 depends_on: security-scan
settings: settings:
auto_tag: true auto_tag: true
containerfile: Containerfile.multiarch containerfile: Containerfile.multiarch

View File

@ -6,31 +6,25 @@ when:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
steps: steps:
build: - name: build
image: docker.io/library/python:3.11 image: docker.io/library/python:3.13
commands: commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq - pip install poetry poetry-dynamic-versioning -qq
- poetry build - poetry build
checksum: - name: checksum
image: quay.io/thegeeklab/alpine-tools image: quay.io/thegeeklab/alpine-tools
commands: commands:
- cd dist/ && sha256sum * > ../sha256sum.txt - cd dist/ && sha256sum * > ../sha256sum.txt
changelog-generate: - name: changelog
image: quay.io/thegeeklab/git-chglog image: quay.io/thegeeklab/git-sv
commands: commands:
- git fetch -tq - git sv current-version
- git-chglog --no-color --no-emoji -o CHANGELOG.md ${CI_COMMIT_TAG:---next-tag unreleased unreleased} - git sv release-notes -t ${CI_COMMIT_TAG:-next} -o CHANGELOG.md
- cat CHANGELOG.md
changelog-format: - name: publish-github
image: quay.io/thegeeklab/alpine-tools
commands:
- prettier CHANGELOG.md
- prettier -w CHANGELOG.md
publish-github:
image: docker.io/plugins/github-release image: docker.io/plugins/github-release
settings: settings:
api_key: api_key:
@ -44,15 +38,14 @@ steps:
when: when:
- event: [tag] - event: [tag]
publish-pypi: - name: publish-pypi
image: docker.io/library/python:3.11 image: docker.io/library/python:3.13
secrets: environment:
- source: pypi_password POETRY_HTTP_BASIC_PYPI_PASSWORD:
target: POETRY_HTTP_BASIC_PYPI_PASSWORD from_secret: pypi_password
- source: pypi_username POETRY_HTTP_BASIC_PYPI_USERNAME:
target: POETRY_HTTP_BASIC_PYPI_USERNAME from_secret: pypi_username
commands: commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq - pip install poetry poetry-dynamic-versioning -qq
- poetry publish -n - poetry publish -n
when: when:

View File

@ -6,58 +6,53 @@ when:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
steps: steps:
assets: - name: assets
image: quay.io/thegeeklab/alpine-tools image: quay.io/thegeeklab/alpine-tools
commands: commands:
- make doc - make doc
markdownlint: - name: markdownlint
image: quay.io/thegeeklab/markdownlint-cli image: quay.io/thegeeklab/markdownlint-cli
depends_on: [assets]
commands: commands:
- markdownlint 'README.md' 'CONTRIBUTING.md' - markdownlint 'README.md' 'CONTRIBUTING.md'
spellcheck: - name: spellcheck
image: quay.io/thegeeklab/alpine-tools image: quay.io/thegeeklab/alpine-tools
depends_on: [assets]
commands: commands:
- spellchecker --files '_docs/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls - spellchecker --files 'docs/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls
environment: environment:
FORCE_COLOR: "true" FORCE_COLOR: "true"
NPM_CONFIG_LOGLEVEL: "error"
testbuild: - name: link-validation
image: quay.io/thegeeklab/hugo:0.115.2 image: docker.io/lycheeverse/lychee
depends_on: [assets]
commands: commands:
- hugo --panicOnWarning -s docs/ -b http://localhost:8000/ - lychee --no-progress --format detailed docs/content README.md
link-validation: - name: build
image: quay.io/thegeeklab/link-validator image: quay.io/thegeeklab/hugo:0.136.5
commands: depends_on: [link-validation]
- link-validator --color=always --rate-limit 10
environment:
LINK_VALIDATOR_BASE_DIR: docs/public
LINK_VALIDATOR_RETRIES: "3"
build:
image: quay.io/thegeeklab/hugo:0.115.2
commands: commands:
- hugo --panicOnWarning -s docs/ - hugo --panicOnWarning -s docs/
beautify: - name: beautify
image: quay.io/thegeeklab/alpine-tools image: quay.io/thegeeklab/alpine-tools
depends_on: [build]
commands: commands:
- html-beautify -r -f 'docs/public/**/*.html' - html-beautify -r -f 'docs/public/**/*.html'
environment:
FORCE_COLOR: "true"
NPM_CONFIG_LOGLEVEL: error
publish: - name: publish
image: quay.io/thegeeklab/wp-s3-action image: quay.io/thegeeklab/wp-s3-action
depends_on: [beautify]
settings: settings:
access_key: access_key:
from_secret: s3_access_key from_secret: s3_access_key
bucket: geekdocs bucket: geekdocs
delete: true delete: true
endpoint: https://sp.rknet.org endpoint:
from_secret: s3_endpoint
path_style: true path_style: true
secret_key: secret_key:
from_secret: s3_secret_access_key from_secret: s3_secret_access_key
@ -68,16 +63,16 @@ steps:
- event: [push, manual] - event: [push, manual]
branch: branch:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
status: [success] status: [success, failure]
pushrm-dockerhub: - name: pushrm-dockerhub
image: docker.io/chko/docker-pushrm:1 image: docker.io/chko/docker-pushrm:1
secrets: depends_on: [publish]
- source: docker_password
target: DOCKER_PASS
- source: docker_username
target: DOCKER_USER
environment: environment:
DOCKER_PASS:
from_secret: docker_password
DOCKER_USER:
from_secret: docker_username
PUSHRM_FILE: README.md PUSHRM_FILE: README.md
PUSHRM_SHORT: Keep docker hosts tidy PUSHRM_SHORT: Keep docker hosts tidy
PUSHRM_TARGET: ${CI_REPO} PUSHRM_TARGET: ${CI_REPO}
@ -87,12 +82,12 @@ steps:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
status: [success] status: [success]
pushrm-quay: - name: pushrm-quay
image: docker.io/chko/docker-pushrm:1 image: docker.io/chko/docker-pushrm:1
secrets: depends_on: [publish]
- source: quay_token
target: APIKEY__QUAY_IO
environment: environment:
APIKEY__QUAY_IO:
from_secret: quay_token
PUSHRM_FILE: README.md PUSHRM_FILE: README.md
PUSHRM_TARGET: quay.io/${CI_REPO} PUSHRM_TARGET: quay.io/${CI_REPO}
when: when:

View File

@ -6,22 +6,22 @@ when:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
steps: steps:
check-format: - name: check-format
image: docker.io/library/python:3.11 image: docker.io/library/python:3.13
depends_on: []
commands: commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq - pip install poetry poetry-dynamic-versioning -qq
- poetry install - poetry install
- poetry run yapf -dr ./${CI_REPO_NAME//-/} - poetry run ruff format --check --diff ./${CI_REPO_NAME//-/}
environment: environment:
PY_COLORS: "1" PY_COLORS: "1"
check-coding: - name: check-coding
image: docker.io/library/python:3.11 image: docker.io/library/python:3.13
depends_on: []
commands: commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq - pip install poetry poetry-dynamic-versioning -qq
- poetry install - poetry install
- poetry run ruff ./${CI_REPO_NAME//-/} - poetry run ruff check ./${CI_REPO_NAME//-/}
environment: environment:
PY_COLORS: "1" PY_COLORS: "1"

View File

@ -8,17 +8,17 @@ when:
runs_on: [success, failure] runs_on: [success, failure]
steps: steps:
matrix: - name: matrix
image: quay.io/thegeeklab/wp-matrix image: quay.io/thegeeklab/wp-matrix
settings: settings:
homeserver: homeserver:
from_secret: matrix_homeserver from_secret: matrix_homeserver
password: room_id:
from_secret: matrix_password from_secret: matrix_room_id
roomid: user_id:
from_secret: matrix_roomid from_secret: matrix_user_id
username: access_token:
from_secret: matrix_username from_secret: matrix_access_token
when: when:
- status: [success, failure] - status: [success, failure]

View File

@ -5,21 +5,9 @@ when:
branch: branch:
- ${CI_REPO_DEFAULT_BRANCH} - ${CI_REPO_DEFAULT_BRANCH}
matrix: variables:
PYTHON_VERSION: - &pytest_base
- docker.io/library/python:3.8 depends_on: []
- docker.io/library/python:3.9
- docker.io/library/python:3.10
- docker.io/library/python:3.11
steps:
fetch:
image: docker.io/library/python:3.11
commands:
- git fetch -tq
pytest:
image: ${PYTHON_VERSION}
commands: commands:
- pip install poetry poetry-dynamic-versioning -qq - pip install poetry poetry-dynamic-versioning -qq
- poetry install - poetry install
@ -28,3 +16,20 @@ steps:
- poetry run ${CI_REPO_NAME} --help - poetry run ${CI_REPO_NAME} --help
environment: environment:
PY_COLORS: "1" PY_COLORS: "1"
steps:
- name: python-313
image: docker.io/library/python:3.13
<<: *pytest_base
- name: python-312
image: docker.io/library/python:3.12
<<: *pytest_base
- name: python-311
image: docker.io/library/python:3.11
<<: *pytest_base
- name: python-310
image: docker.io/library/python:3.10
<<: *pytest_base

View File

@ -1,4 +1,4 @@
FROM python:3.11-alpine@sha256:5d769f990397afbb2aca24b0655e404c0f2806d268f454b052e81e39d87abf42 FROM python:3.13-alpine@sha256:fcbcbbecdeae71d3b77445d9144d1914df55110f825ab62b04a66c7c33c09373
LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>" LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>" LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>"

View File

@ -1,5 +1,5 @@
# renovate: datasource=github-releases depName=thegeeklab/hugo-geekdoc # renovate: datasource=github-releases depName=thegeeklab/hugo-geekdoc
THEME_VERSION := v0.40.1 THEME_VERSION := v1.2.1
THEME := hugo-geekdoc THEME := hugo-geekdoc
BASEDIR := docs BASEDIR := docs
THEMEDIR := $(BASEDIR)/themes THEMEDIR := $(BASEDIR)/themes

View File

@ -7,7 +7,6 @@ Keep docker hosts tidy
[![Python Version](https://img.shields.io/pypi/pyversions/docker-tidy.svg)](https://pypi.org/project/docker-tidy/) [![Python Version](https://img.shields.io/pypi/pyversions/docker-tidy.svg)](https://pypi.org/project/docker-tidy/)
[![PyPI Status](https://img.shields.io/pypi/status/docker-tidy.svg)](https://pypi.org/project/docker-tidy/) [![PyPI Status](https://img.shields.io/pypi/status/docker-tidy.svg)](https://pypi.org/project/docker-tidy/)
[![PyPI Release](https://img.shields.io/pypi/v/docker-tidy.svg)](https://pypi.org/project/docker-tidy/) [![PyPI Release](https://img.shields.io/pypi/v/docker-tidy.svg)](https://pypi.org/project/docker-tidy/)
[![Codecov](https://img.shields.io/codecov/c/github/thegeeklab/docker-tidy)](https://codecov.io/gh/thegeeklab/docker-tidy)
[![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/graphs/contributors) [![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/graphs/contributors)
[![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/docker-tidy) [![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/docker-tidy)
[![License: Apache-2.0](https://img.shields.io/github/license/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/blob/main/LICENSE) [![License: Apache-2.0](https://img.shields.io/github/license/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/blob/main/LICENSE)

View File

@ -45,9 +45,7 @@ class AutoStop:
) or (not prefix and self._has_been_running_since(container, max_run_time)): ) or (not prefix and self._has_been_running_since(container, max_run_time)):
self.logger.info( self.logger.info(
"Stopping container {id} {name}: running since {started}".format( "Stopping container {id} {name}: running since {started}".format(
id=container["Id"][:16], id=container["Id"][:16], name=name, started=container["State"]["StartedAt"]
name=name,
started=container["State"]["StartedAt"]
) )
) )
@ -63,7 +61,6 @@ class AutoStop:
self.logger.warning(f"Error stopping {cid}: {e!s}") self.logger.warning(f"Error stopping {cid}: {e!s}")
def _build_container_matcher(self, prefixes): def _build_container_matcher(self, prefixes):
def matcher(name): def matcher(name):
return any(name.startswith(prefix) for prefix in prefixes) return any(name.startswith(prefix) for prefix in prefixes)

View File

@ -36,7 +36,7 @@ class DockerTidy:
action="store_true", action="store_true",
default=None, default=None,
dest="dry_run", dest="dry_run",
help="only log actions, don't stop anything" help="only log actions, don't stop anything",
) )
parser.add_argument( parser.add_argument(
"-t", "-t",
@ -44,7 +44,7 @@ class DockerTidy:
type=int, type=int,
dest="http_timeout", dest="http_timeout",
metavar="HTTP_TIMEOUT", metavar="HTTP_TIMEOUT",
help="HTTP timeout in seconds for making docker API calls" help="HTTP timeout in seconds for making docker API calls",
) )
parser.add_argument( parser.add_argument(
"-v", dest="logging.level", action="append_const", const=-1, help="increase log level" "-v", dest="logging.level", action="append_const", const=-1, help="increase log level"
@ -64,7 +64,7 @@ class DockerTidy:
dest="gc.max_container_age", dest="gc.max_container_age",
metavar="MAX_CONTAINER_AGE", metavar="MAX_CONTAINER_AGE",
help="maximum age for a container, containers older than this age " help="maximum age for a container, containers older than this age "
"will be removed (dateparser value)" "will be removed (dateparser value)",
) )
parser_gc.add_argument( parser_gc.add_argument(
"--max-image-age", "--max-image-age",
@ -72,13 +72,13 @@ class DockerTidy:
dest="gc.max_image_age", dest="gc.max_image_age",
metavar="MAX_IMAGE_AGE", metavar="MAX_IMAGE_AGE",
help="maxium age for an image, images older than this age will be " help="maxium age for an image, images older than this age will be "
"removed (dateparser value)" "removed (dateparser value)",
) )
parser_gc.add_argument( parser_gc.add_argument(
"--dangling-volumes", "--dangling-volumes",
action="store_true", action="store_true",
dest="gc.dangling_volumes", dest="gc.dangling_volumes",
help="dangling volumes will be removed" help="dangling volumes will be removed",
) )
parser_gc.add_argument( parser_gc.add_argument(
"--exclude-image", "--exclude-image",
@ -86,7 +86,7 @@ class DockerTidy:
type=str, type=str,
dest="gc.exclude_images", dest="gc.exclude_images",
metavar="EXCLUDE_IMAGE", metavar="EXCLUDE_IMAGE",
help="never remove images with this tag" help="never remove images with this tag",
) )
parser_gc.add_argument( parser_gc.add_argument(
"--exclude-container-label", "--exclude-container-label",
@ -94,8 +94,7 @@ class DockerTidy:
type=str, type=str,
dest="gc.exclude_container_labels", dest="gc.exclude_container_labels",
metavar="EXCLUDE_CONTAINER_LABEL", metavar="EXCLUDE_CONTAINER_LABEL",
help="never remove containers with this label key " help="never remove containers with this label key or label key=value",
"or label key=value"
) )
parser_stop = subparsers.add_parser( parser_stop = subparsers.add_parser(
@ -106,7 +105,7 @@ class DockerTidy:
type=timedelta_validator, type=timedelta_validator,
dest="stop.max_run_time", dest="stop.max_run_time",
metavar="MAX_RUN_TIME", metavar="MAX_RUN_TIME",
help="maximum time a container is allows to run (dateparser value)" help="maximum time a container is allows to run (dateparser value)",
) )
parser_stop.add_argument( parser_stop.add_argument(
"--prefix", "--prefix",
@ -114,7 +113,7 @@ class DockerTidy:
type=str, type=str,
dest="stop.prefix", dest="stop.prefix",
metavar="PREFIX", metavar="PREFIX",
help="only stop containers which match one of the prefix" help="only stop containers which match one of the prefix",
) )
return parser.parse_args().__dict__ return parser.parse_args().__dict__

View File

@ -36,73 +36,73 @@ class Config:
"config_file": { "config_file": {
"default": "", "default": "",
"env": "CONFIG_FILE", "env": "CONFIG_FILE",
"type": environs.Env().str "type": environs.Env().str,
}, },
"dry_run": { "dry_run": {
"default": False, "default": False,
"env": "DRY_RUN", "env": "DRY_RUN",
"file": True, "file": True,
"type": environs.Env().bool "type": environs.Env().bool,
}, },
"http_timeout": { "http_timeout": {
"default": 60, "default": 60,
"env": "HTTP_TIMEOUT", "env": "HTTP_TIMEOUT",
"file": True, "file": True,
"type": environs.Env().int "type": environs.Env().int,
}, },
"logging.level": { "logging.level": {
"default": "WARNING", "default": "WARNING",
"env": "LOG_LEVEL", "env": "LOG_LEVEL",
"file": True, "file": True,
"type": environs.Env().str "type": environs.Env().str,
}, },
"logging.json": { "logging.json": {
"default": False, "default": False,
"env": "LOG_JSON", "env": "LOG_JSON",
"file": True, "file": True,
"type": environs.Env().bool "type": environs.Env().bool,
}, },
"gc.max_container_age": { "gc.max_container_age": {
"default": "", "default": "",
"env": "GC_MAX_CONTAINER_AGE", "env": "GC_MAX_CONTAINER_AGE",
"file": True, "file": True,
"type": env.timedelta_validator "type": env.timedelta_validator,
}, },
"gc.max_image_age": { "gc.max_image_age": {
"default": "", "default": "",
"env": "GC_MAX_IMAGE_AGE", "env": "GC_MAX_IMAGE_AGE",
"file": True, "file": True,
"type": env.timedelta_validator "type": env.timedelta_validator,
}, },
"gc.dangling_volumes": { "gc.dangling_volumes": {
"default": False, "default": False,
"env": "GC_DANGLING_VOLUMES", "env": "GC_DANGLING_VOLUMES",
"file": True, "file": True,
"type": environs.Env().bool "type": environs.Env().bool,
}, },
"gc.exclude_images": { "gc.exclude_images": {
"default": [], "default": [],
"env": "GC_EXCLUDE_IMAGES", "env": "GC_EXCLUDE_IMAGES",
"file": True, "file": True,
"type": environs.Env().list "type": environs.Env().list,
}, },
"gc.exclude_container_labels": { "gc.exclude_container_labels": {
"default": [], "default": [],
"env": "GC_EXCLUDE_CONTAINER_LABELS", "env": "GC_EXCLUDE_CONTAINER_LABELS",
"file": True, "file": True,
"type": environs.Env().list "type": environs.Env().list,
}, },
"stop.max_run_time": { "stop.max_run_time": {
"default": "", "default": "",
"env": "STOP_MAX_RUN_TIME", "env": "STOP_MAX_RUN_TIME",
"file": True, "file": True,
"type": env.timedelta_validator "type": env.timedelta_validator,
}, },
"stop.prefix": { "stop.prefix": {
"default": [], "default": [],
"env": "STOP_PREFIX", "env": "STOP_PREFIX",
"file": True, "file": True,
"type": environs.Env().list "type": environs.Env().list,
}, },
} }
@ -194,7 +194,7 @@ class Config:
with open(config, encoding="utf8") as stream: with open(config, encoding="utf8") as stream:
s = stream.read() s = stream.read()
try: try:
normalized = ruamel.yaml.safe_load(s) normalized = ruamel.yaml.YAML(typ="safe", pure=True).load(s)
except (ruamel.yaml.composer.ComposerError, ruamel.yaml.scanner.ScannerError) as e: except (ruamel.yaml.composer.ComposerError, ruamel.yaml.scanner.ScannerError) as e:
message = f"{e.context} {e.problem}" message = f"{e.context} {e.problem}"
raise dockertidy.exception.ConfigError( raise dockertidy.exception.ConfigError(
@ -234,20 +234,19 @@ class Config:
try: try:
anyconfig.validate(config, self.schema, ac_schema_safe=False) anyconfig.validate(config, self.schema, ac_schema_safe=False)
except jsonschema.exceptions.ValidationError as e: except jsonschema.exceptions.ValidationError as e:
schema_error = "Failed validating '{validator}' in schema{schema}\n{message}".format( schema = format_as_index(list(e.relative_schema_path)[:-1])
validator=e.validator, schema_error = f"Failed validating '{e.validator}' in schema {schema}\n{e.message}"
schema=format_as_index(list(e.relative_schema_path)[:-1]),
message=e.message
)
raise dockertidy.exception.ConfigError("Configuration error", schema_error) from e raise dockertidy.exception.ConfigError("Configuration error", schema_error) from e
return True return True
def _add_dict_branch(self, tree, vector, value): def _add_dict_branch(self, tree, vector, value):
key = vector[0] key = vector[0]
tree[key] = value \ tree[key] = (
if len(vector) == 1 \ value
else self._add_dict_branch(tree[key] if key in tree else {}, vector[1:], value) if len(vector) == 1
else self._add_dict_branch(tree.get(key, {}), vector[1:], value)
)
return tree return tree

View File

@ -55,7 +55,8 @@ class GarbageCollector:
self.logger.info( self.logger.info(
"Removing container {} {} {}".format( "Removing container {} {} {}".format(
container["Id"][:16], container["Id"][:16],
container.get("Name", "").lstrip("/"), container["State"]["FinishedAt"] container.get("Name", "").lstrip("/"),
container["State"]["FinishedAt"],
) )
) )
@ -73,9 +74,7 @@ class GarbageCollector:
return containers return containers
def include_container(container): def include_container(container):
if self._should_exclude_container_with_labels(container): return not self._should_exclude_container_with_labels(container)
return False
return True
return filter(include_container, containers) return filter(include_container, containers)
@ -163,7 +162,6 @@ class GarbageCollector:
self._remove_image(image_summary, timedelta(config["gc"]["max_image_age"])) self._remove_image(image_summary, timedelta(config["gc"]["max_image_age"]))
def _filter_excluded_images(self, images, exclude_set): def _filter_excluded_images(self, images, exclude_set):
def include_image(image_summary): def include_image(image_summary):
image_tags = image_summary.get("RepoTags") image_tags = image_summary.get("RepoTags")
if self._no_image_tags(image_tags): if self._no_image_tags(image_tags):
@ -176,7 +174,6 @@ class GarbageCollector:
return filter(include_image, images) return filter(include_image, images)
def _filter_images_in_use(self, images, image_tags_in_use): def _filter_images_in_use(self, images, image_tags_in_use):
def get_tag_set(image_summary): def get_tag_set(image_summary):
image_tags = image_summary.get("RepoTags") image_tags = image_summary.get("RepoTags")
if self._no_image_tags(image_tags): if self._no_image_tags(image_tags):
@ -190,7 +187,6 @@ class GarbageCollector:
return filter(image_not_in_use, images) return filter(image_not_in_use, images)
def _filter_images_in_use_by_id(self, images, image_ids_in_use): def _filter_images_in_use_by_id(self, images, image_ids_in_use):
def image_not_in_use(image_summary): def image_not_in_use(image_summary):
return image_summary["Id"] not in image_ids_in_use return image_summary["Id"] not in image_ids_in_use
@ -256,7 +252,6 @@ class GarbageCollector:
self.logger.warning(f"Error calling {func.__name__} {params} {e!s}") self.logger.warning(f"Error calling {func.__name__} {params} {e!s}")
def _format_image(self, image, image_summary): def _format_image(self, image, image_summary):
def get_tags(): def get_tags():
tags = image_summary.get("RepoTags") tags = image_summary.get("RepoTags")
if not tags or tags == ["<none>:<none>"]: if not tags or tags == ["<none>:<none>"]:
@ -313,7 +308,8 @@ class GarbageCollector:
self.cleanup_volumes() self.cleanup_volumes()
if ( if (
not config["gc"]["max_container_age"] and not config["gc"]["max_image_age"] not config["gc"]["max_container_age"]
and not config["gc"]["max_image_age"]
and not config["gc"]["dangling_volumes"] and not config["gc"]["dangling_volumes"]
): ):
self.logger.ing("Skipped, no arguments given") self.logger.ing("Skipped, no arguments given")

View File

@ -46,7 +46,7 @@ class LogFilter:
class MultilineFormatter(logging.Formatter): class MultilineFormatter(logging.Formatter):
"""Logging Formatter to reset color after newline characters.""" """Logging Formatter to reset color after newline characters."""
def format(self, record): # noqa def format(self, record):
record.msg = record.msg.replace("\n", f"\n{colorama.Style.RESET_ALL}... ") record.msg = record.msg.replace("\n", f"\n{colorama.Style.RESET_ALL}... ")
return logging.Formatter.format(self, record) return logging.Formatter.format(self, record)
@ -54,7 +54,7 @@ class MultilineFormatter(logging.Formatter):
class MultilineJsonFormatter(jsonlogger.JsonFormatter): class MultilineJsonFormatter(jsonlogger.JsonFormatter):
"""Logging Formatter to remove newline characters.""" """Logging Formatter to remove newline characters."""
def format(self, record): # noqa def format(self, record):
record.msg = record.msg.replace("\n", " ") record.msg = record.msg.replace("\n", " ")
return jsonlogger.JsonFormatter.format(self, record) return jsonlogger.JsonFormatter.format(self, record)
@ -93,9 +93,7 @@ class Log:
handler.addFilter(LogFilter(logging.WARNING)) handler.addFilter(LogFilter(logging.WARNING))
handler.setFormatter( handler.setFormatter(
MultilineFormatter( MultilineFormatter(
self.warning( self.warning(CONSOLE_FORMAT.format(colorama.Fore.YELLOW, colorama.Style.RESET_ALL))
CONSOLE_FORMAT.format(colorama.Fore.YELLOW, colorama.Style.RESET_ALL)
)
) )
) )

View File

@ -36,10 +36,7 @@ def timedelta(value, dt_format=None):
return None return None
timedelta = dateparser.parse( timedelta = dateparser.parse(
value, settings={ value, settings={"TO_TIMEZONE": "UTC", "RETURN_AS_TIMEZONE_AWARE": True}
"TO_TIMEZONE": "UTC",
"RETURN_AS_TIMEZONE_AWARE": True
}
) )
if dt_format: if dt_format:

View File

@ -1,7 +1,29 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
"""Global utility methods and classes.""" """Global utility methods and classes."""
from distutils.util import strtobool
def strtobool(value):
"""Convert a string representation of truth to true or false."""
_map = {
"y": True,
"yes": True,
"t": True,
"true": True,
"on": True,
"1": True,
"n": False,
"no": False,
"f": False,
"false": False,
"off": False,
"0": False,
}
try:
return _map[str(value).lower()]
except KeyError as err:
raise ValueError(f'"{value}" is not a valid bool value') from err
def to_bool(string): def to_bool(string):
@ -21,7 +43,6 @@ class Singleton(type):
_instances = {} _instances = {}
def __call__(cls, *args, **kwargs): def __call__(cls, *args, **kwargs):
if cls not in cls._instances: if cls not in cls._instances:
cls._instances[cls] = super().__call__(*args, **kwargs) cls._instances[cls] = super().__call__(*args, **kwargs)
return cls._instances[cls] return cls._instances[cls]

View File

@ -7,7 +7,6 @@ title: Documentation
[![Python Version](https://img.shields.io/pypi/pyversions/docker-tidy.svg)](https://pypi.org/project/docker-tidy/) [![Python Version](https://img.shields.io/pypi/pyversions/docker-tidy.svg)](https://pypi.org/project/docker-tidy/)
[![PyPI Status](https://img.shields.io/pypi/status/docker-tidy.svg)](https://pypi.org/project/docker-tidy/) [![PyPI Status](https://img.shields.io/pypi/status/docker-tidy.svg)](https://pypi.org/project/docker-tidy/)
[![PyPI Release](https://img.shields.io/pypi/v/docker-tidy.svg)](https://pypi.org/project/docker-tidy/) [![PyPI Release](https://img.shields.io/pypi/v/docker-tidy.svg)](https://pypi.org/project/docker-tidy/)
[![Codecov](https://img.shields.io/codecov/c/github/thegeeklab/docker-tidy)](https://codecov.io/gh/thegeeklab/docker-tidy)
[![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/graphs/contributors) [![GitHub contributors](https://img.shields.io/github/contributors/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/graphs/contributors)
[![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/docker-tidy) [![Source: GitHub](https://img.shields.io/badge/source-github-blue.svg?logo=github&logoColor=white)](https://github.com/thegeeklab/docker-tidy)
[![License: Apache-2.0](https://img.shields.io/github/license/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/blob/main/LICENSE) [![License: Apache-2.0](https://img.shields.io/github/license/thegeeklab/docker-tidy)](https://github.com/thegeeklab/docker-tidy/blob/main/LICENSE)

1240
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -10,10 +10,10 @@ classifiers = [
"Natural Language :: English", "Natural Language :: English",
"Operating System :: POSIX", "Operating System :: POSIX",
"Programming Language :: Python :: 3", "Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: System :: Systems Administration", "Topic :: System :: Systems Administration",
"Topic :: Utilities", "Topic :: Utilities",
"Topic :: Software Development", "Topic :: Software Development",
@ -21,64 +21,52 @@ classifiers = [
description = "Keep docker hosts tidy." description = "Keep docker hosts tidy."
documentation = "https://docker-tidy.geekdocs.de/" documentation = "https://docker-tidy.geekdocs.de/"
homepage = "https://docker-tidy.geekdocs.de/" homepage = "https://docker-tidy.geekdocs.de/"
include = [ include = ["LICENSE"]
"LICENSE",
]
keywords = ["docker", "gc", "prune", "garbage"] keywords = ["docker", "gc", "prune", "garbage"]
license = "Apache-2.0" license = "Apache-2.0"
name = "docker-tidy" name = "docker-tidy"
packages = [ packages = [{ include = "dockertidy" }]
{include = "dockertidy"},
]
readme = "README.md" readme = "README.md"
repository = "https://github.com/thegeeklab/docker-tidy/" repository = "https://github.com/thegeeklab/docker-tidy/"
version = "0.0.0" version = "0.0.0"
[tool.poetry.dependencies] [tool.poetry.dependencies]
anyconfig = "0.13.0" anyconfig = "0.14.0"
appdirs = "1.4.4" appdirs = "1.4.4"
certifi = "2023.7.22" certifi = "2024.8.30"
colorama = "0.4.6" colorama = "0.4.6"
dateparser = "1.1.8" dateparser = "1.2.0"
docker = "6.1.3" docker = "7.1.0"
docker-pycreds = "0.4.0" docker-pycreds = "0.4.0"
environs = "9.5.0" environs = "11.2.0"
idna = "3.4" idna = "3.10"
ipaddress = "1.0.23" ipaddress = "1.0.23"
jsonschema = "4.19.0" jsonschema = "4.23.0"
nested-lookup = "0.2.25" nested-lookup = "0.2.25"
pathspec = "0.11.2" pathspec = "0.12.1"
python = "^3.8.0" python = "^3.10.0"
python-dateutil = "2.8.2" python-dateutil = "2.9.0.post0"
python-json-logger = "2.0.7" python-json-logger = "2.0.7"
requests = "2.31.0" requests = "2.32.3"
"ruamel.yaml" = "0.17.32" "ruamel.yaml" = "0.18.6"
websocket_client = "1.6.2" websocket_client = "1.8.0"
zipp = "3.16.2" zipp = "3.21.0"
[tool.poetry.scripts] [tool.poetry.scripts]
docker-tidy = "dockertidy.cli:main" docker-tidy = "dockertidy.cli:main"
[tool.poetry.group.dev.dependencies] [tool.poetry.group.dev.dependencies]
ruff = "0.0.286" ruff = "0.7.3"
pytest = "7.4.0" pytest = "8.3.3"
pytest-mock = "3.11.1" pytest-mock = "3.14.0"
pytest-cov = "4.1.0" pytest-cov = "6.0.0"
toml = "0.10.2" toml = "0.10.2"
yapf = "0.40.1"
[tool.poetry-dynamic-versioning] [tool.poetry-dynamic-versioning]
enable = true enable = true
style = "semver" style = "semver"
vcs = "git" vcs = "git"
[tool.isort]
default_section = "THIRDPARTY"
force_single_line = true
line_length = 99
sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"]
skip_glob = ["**/.env*", "**/env/*", "**/.venv/*", "**/docs/*"]
[tool.pytest.ini_options] [tool.pytest.ini_options]
addopts = "dockertidy --cov=dockertidy --cov-report=xml:coverage.xml --cov-report=term --no-cov-on-fail" addopts = "dockertidy --cov=dockertidy --cov-report=xml:coverage.xml --cov-report=term --no-cov-on-fail"
filterwarnings = [ filterwarnings = [
@ -96,17 +84,22 @@ requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
[tool.ruff] [tool.ruff]
exclude = [ exclude = [
".git", ".git",
"__pycache__", "__pycache__",
"build", "build",
"dist", "dist",
"test", "test",
"*.pyc", "*.pyc",
"*.egg-info", "*.egg-info",
".cache", ".cache",
".eggs", ".eggs",
"env*", "env*",
] ]
line-length = 99
indent-width = 4
[tool.ruff.lint]
# Explanation of errors # Explanation of errors
# #
# D102: Missing docstring in public method # D102: Missing docstring in public method
@ -117,47 +110,39 @@ exclude = [
# D203: One blank line required before class docstring # D203: One blank line required before class docstring
# D212: Multi-line docstring summary should start at the first line # D212: Multi-line docstring summary should start at the first line
ignore = [ ignore = [
"D102", "D102",
"D103", "D103",
"D105", "D105",
"D107", "D107",
"D202", "D202",
"D203", "D203",
"D212", "D212",
"UP038", "UP038",
"RUF012", "RUF012",
] ]
line-length = 99
select = [ select = [
"D", "D",
"E", "E",
"F", "F",
"Q", "Q",
"W", "W",
"I", "I",
"S", "S",
"BLE", "BLE",
"N", "N",
"UP", "UP",
"B", "B",
"A", "A",
"C4", "C4",
"T20", "T20",
"SIM", "SIM",
"RET", "RET",
"ARG", "ARG",
"ERA", "ERA",
"RUF", "RUF",
] ]
[tool.ruff.flake8-quotes] [tool.ruff.format]
inline-quotes = "double" quote-style = "double"
indent-style = "space"
[tool.yapf] line-ending = "lf"
based_on_style = "google"
column_limit = 99
dedent_closing_brackets = true
coalesce_brackets = true
split_before_logical_operator = true
indent_dictionary_value = true
allow_split_before_dict_value = false

View File

@ -1,4 +1,12 @@
{ {
"$schema": "https://docs.renovatebot.com/renovate-schema.json", "$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["github>thegeeklab/renovate-presets"] "extends": ["github>thegeeklab/renovate-presets"],
"packageRules": [
{
"matchManagers": ["woodpecker"],
"matchFileNames": [".woodpecker/test.yml"],
"matchPackageNames": ["docker.io/library/python"],
"enabled": false
}
]
} }