Compare commits

..

557 Commits
v1.1.9 ... main

Author SHA1 Message Date
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
renovate[bot]
5f2594710f chore(deps): update dependency ruff to v0.0.286 2023-08-28 03:34:59 +00:00
renovate[bot]
16e6aec457 chore(docker): update python:3.11-alpine docker digest to 5d769f9 2023-08-26 09:47:36 +00:00
7c1bab90c9
fix: use poetry-dynamic-versioning backend wrapper 2023-08-25 00:28:39 +02:00
4f6b8880c4
add back pytest to ci 2023-08-24 23:53:26 +02:00
renovate[bot]
f0b927edd2
chore(deps): lock file maintenance (#575)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 23:30:31 +02:00
renovate[bot]
bb651f9e10
fix(deps): update dependency websocket_client to v1.6.2 (#577)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-24 23:24:22 +02:00
9b2094d0f2
ci: migrate to woodpecker (#578) 2023-08-24 22:56:04 +02:00
renovate[bot]
034100a706 chore(deps): update dependency ruff to v0.0.285 2023-08-21 04:55:14 +00:00
renovate[bot]
b6c0253a04 chore(deps): update dependency ruff to v0.0.284 2023-08-14 03:37:02 +00:00
renovate[bot]
cae751f84a chore(docker): update python:3.11-alpine docker digest to 603975e 2023-08-09 13:04:49 +00:00
renovate[bot]
e7622ecf28 chore(docker): update python:3.11-alpine docker digest to 4352dc7 2023-08-09 06:48:26 +00:00
renovate[bot]
69c1ddecb6
fix(deps): update dependency jsonschema to v4.19.0 (#570)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 07:34:32 +02:00
renovate[bot]
81de219b8a
chore(deps): lock file maintenance (#569)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-09 07:34:03 +02:00
renovate[bot]
304c54cdaa chore(docker): update python:3.11-alpine docker digest to bd16cc5 2023-08-08 11:14:17 +00:00
renovate[bot]
3562868a44 chore(deps): update dependency ruff to v0.0.282 2023-08-07 05:09:28 +00:00
renovate[bot]
0b9ce24909
fix(deps): update dependency jsonschema to v4.18.6 (#567)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-05 15:50:19 +02:00
renovate[bot]
6397347f6e
fix(deps): update dependency jsonschema to v4.18.5 (#566)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 22:00:18 +02:00
renovate[bot]
53db01a050
chore(deps): lock file maintenance (#565)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 10:47:11 +02:00
renovate[bot]
4a3ffc823b
fix(deps): update dependency pathspec to v0.11.2 (#564)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-08-02 10:44:28 +02:00
renovate[bot]
88ddece439 chore(deps): update dependency ruff to v0.0.280 2023-07-24 04:05:17 +00:00
renovate[bot]
b4fcf55bad
fix(deps): update dependency jsonschema to v4.18.4 (#554)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-23 13:48:14 +02:00
renovate[bot]
eb600badab
fix(deps): update dependency zipp to v3.16.2 (#555)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-23 13:36:31 +02:00
00d3334ec8
chore: drop support for python 3.7 (#562)
BREAKING CHANGE: The support for Python 3.7 was removed.
2023-07-23 13:14:45 +02:00
renovate[bot]
f8c0ffc313
fix(deps): update dependency certifi to v2023.7.22 (#561)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-23 10:01:59 +02:00
renovate[bot]
5a14273f81
chore(deps): lock file maintenance (#546)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-07-19 10:38:06 +02:00
renovate[bot]
08c0bce852
chore(deps): update dependency ruff to v0.0.278 (#560)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2023-07-19 10:36:03 +02:00
renovate[bot]
f8cc44c8c8 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.40.1 2023-07-12 12:42:03 +00:00
renovate[bot]
8dd1af4c8c chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.40.0 2023-07-11 23:23:17 +00:00
5ac47c0af6
ci: bump hugo to v0.115.2 (#558) 2023-07-11 21:29:37 +02:00
renovate[bot]
330045634e chore(deps): update dependency ruff to v0.0.277 2023-07-10 04:52:23 +00:00
renovate[bot]
9a36af321b chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.7 2023-07-03 11:17:34 +00:00
renovate[bot]
e77b94a096 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.6 2023-06-28 22:58:07 +00:00
renovate[bot]
8e12d9d38d
chore(deps): update devdeps non-major (#551)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2023-06-28 10:10:26 +02:00
renovate[bot]
62b2865424
fix(deps): update dependency websocket_client to v1.6.1 (#550)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-28 07:53:47 +02:00
renovate[bot]
ce31cb7109 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.5 2023-06-23 12:41:47 +00:00
b99be1f3a5
ci: bump hugo to v0.114.0 (#549) 2023-06-23 11:13:55 +02:00
9d81d2fd66
docs: replace socialmedia image (#547) 2023-06-20 14:23:50 +02:00
renovate[bot]
2258638555 chore(deps): update dependency pytest-mock to v3.11.1 2023-06-19 04:13:29 +00:00
renovate[bot]
59dbc8daef
fix(deps): update dependency ruamel.yaml to v0.17.32 (#543)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 17:22:06 +02:00
renovate[bot]
aa20b9aa32
fix(deps): update dependency websocket_client to v1.6.0 (#544)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-17 15:22:40 +02:00
renovate[bot]
c1a372ebd0 chore(docker): update python:3.11-alpine docker digest to 25df32b 2023-06-15 16:38:45 +00:00
renovate[bot]
2ecdb5ce2c
chore(deps): lock file maintenance (#541)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-15 09:20:17 +02:00
renovate[bot]
983911a58b
chore(deps): update devdeps non-major (#540)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
2023-06-15 09:20:09 +02:00
renovate[bot]
b88a8fe280
fix(deps): update dependency websocket_client to v1.5.3 (#539)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-10 15:33:57 +02:00
renovate[bot]
758888ef93 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.4 2023-06-09 11:23:13 +00:00
renovate[bot]
28baf4f9bc chore(docker): update python:3.11-alpine docker digest to 995c7fc 2023-06-08 03:25:54 +00:00
renovate[bot]
f27e44e979 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.3 2023-06-05 18:22:10 +00:00
renovate[bot]
69761af054
fix(deps): update dependency ruamel.yaml to v0.17.31 (#533)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 10:35:56 +02:00
renovate[bot]
352bd11129
chore(deps): lock file maintenance (#535)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 10:06:36 +02:00
renovate[bot]
b048c76870
fix(deps): update dependency docker to v6.1.3 (#534)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-06-05 10:06:19 +02:00
renovate[bot]
fb8d7d835d chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.2 2023-05-29 12:28:00 +00:00
renovate[bot]
6f2ed5ca86
fix(deps): update dependency ruamel.yaml to v0.17.28 (#529)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 12:23:43 +02:00
renovate[bot]
92eb995799
chore(deps): lock file maintenance (#531)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 12:07:44 +02:00
renovate[bot]
c3c2cec106
fix(deps): update dependency websocket_client to v1.5.2 (#526)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-29 12:07:19 +02:00
renovate[bot]
82036df6ab
chore(deps): update devdeps non-major (#524) 2023-05-29 11:35:27 +02:00
renovate[bot]
5c457a3715
fix(deps): update dependency requests to v2.31.0 [security] (#528)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 23:10:05 +02:00
renovate[bot]
68cfc83503
chore(deps): lock file maintenance (#525)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 15:28:55 +02:00
renovate[bot]
3630fdc4e2
fix(deps): update dependency certifi to v2023 (#520)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-28 15:28:41 +02:00
7b2270d4f1
chore: remove poetry experimental.new-installer flag (#530) 2023-05-28 15:18:52 +02:00
renovate[bot]
f198a21b70
fix(deps): update dependency docker to v6.1.2 (#519)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-14 19:48:05 +02:00
renovate[bot]
a3b539953f
chore(deps): lock file maintenance (#506)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-14 18:56:44 +02:00
renovate[bot]
4de34d58f5
fix(deps): update dependency requests to v2.30.0 (#518)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-14 18:55:38 +02:00
renovate[bot]
839765c19d
fix(deps): update dependency ruamel.yaml to v0.17.26 (#513)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-05-13 11:11:54 +02:00
renovate[bot]
cafb48dd8c chore(docker): update python:3.11-alpine docker digest to 4e8e9a5 2023-05-12 19:26:32 +00:00
renovate[bot]
c09cbcecd5 chore(docker): update python:3.11-alpine docker digest to 2f2dadb 2023-05-12 08:02:20 +00:00
renovate[bot]
afcd209277 chore(deps): update dependency ruff to v0.0.265 2023-05-08 08:06:07 +00:00
renovate[bot]
3ff50a673f chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.1 2023-05-04 16:15:45 +00:00
renovate[bot]
7865d4bfe3 chore(docker): update python:3.11-alpine docker digest to 7210235 2023-05-03 23:27:41 +00:00
renovate[bot]
32eb2fcaed chore(docker): update python:3.11-alpine docker digest to 06a3f7b 2023-05-03 14:19:14 +00:00
7695d32d61
fix bare url in contribution file (#515) 2023-05-03 09:36:55 +02:00
renovate[bot]
3b4e4f042a chore(deps): update dependency ruff to v0.0.263 2023-05-01 04:36:48 +00:00
renovate[bot]
ffa9f1de98
fix(deps): update dependency requests to v2.29.0 (#511)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-04-27 08:46:50 +02:00
renovate[bot]
222fdb9a24 chore(deps): update devdeps non-major 2023-04-24 05:43:03 +00:00
renovate[bot]
b26ea42ad0 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.39.0 2023-04-20 03:21:34 +00:00
renovate[bot]
beb4a34349 chore(deps): update dependency pytest to v7.3.1 2023-04-17 17:40:38 +00:00
5b55a2585c
ci: switch to new codecov uploader (#508) 2023-04-17 16:22:23 +02:00
renovate[bot]
9232d91088 chore(deps): update devdeps non-major 2023-04-10 04:43:37 +00:00
renovate[bot]
ae7d326db0 chore(docker): update python:3.11-alpine docker digest to 507818d 2023-04-08 02:25:54 +00:00
renovate[bot]
ffc99756d9 chore(docker): update python:3.11-alpine docker digest to 5405826 2023-04-06 10:01:41 +00:00
renovate[bot]
f453268586 chore(docker): update python:3.11-alpine docker digest to 4b4078a 2023-03-30 08:05:07 +00:00
renovate[bot]
e186b101f9 chore(docker): update python:3.11-alpine docker digest to 4d53bc4 2023-03-30 01:51:21 +00:00
renovate[bot]
61ff009407 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.38.1 2023-03-27 22:11:45 +00:00
renovate[bot]
1d71983c0a
chore(deps): lock file maintenance (#499) 2023-03-27 21:09:09 +02:00
renovate[bot]
f4a3917675
fix(deps): update dependency dateparser to v1.1.8 (#496) 2023-03-27 21:08:55 +02:00
renovate[bot]
1d3d472507 chore(docker): update python:3.11-alpine docker digest to 8af856d 2023-03-27 14:04:31 +00:00
renovate[bot]
99437083fc
chore(deps): update dependency ruff to v0.0.259 (#498) 2023-03-27 13:15:09 +02:00
renovate[bot]
f6039d90b8 chore(docker): update python:3.11-alpine docker digest to 506eed4 2023-03-23 19:52:15 +00:00
renovate[bot]
711acd985c
fix(deps): update dependency pathspec to v0.11.1 (#493) 2023-03-20 11:00:25 +01:00
renovate[bot]
b4caa60b51
chore(deps): lock file maintenance (#489) 2023-03-20 10:37:06 +01:00
renovate[bot]
f268028c67
chore(deps): update dependency ruff to v0.0.257 (#494) 2023-03-20 10:34:08 +01:00
renovate[bot]
088bcebfb0 chore(docker): update python:3.11-alpine docker digest to 741e650 2023-03-14 18:27:47 +00:00
6c97a93bc4
chore: exclude ruff linter rule UP038 (#490) 2023-03-07 14:21:44 +01:00
renovate[bot]
3f8f86351b chore(deps): update devdependencies (non-major) 2023-03-06 05:06:31 +00:00
renovate[bot]
913b5aab01 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.38.0 2023-03-05 00:51:31 +00:00
renovate[bot]
445e0e9435
fix(deps): update dependency zipp to v3.15.0 (#484) 2023-02-27 09:33:21 +01:00
renovate[bot]
005a44842e
fix(deps): update dependency python-json-logger to v2.0.7 (#482) 2023-02-27 09:21:42 +01:00
renovate[bot]
83e3c0a158
chore(deps): update dependency ruff to v0.0.252 (#485) 2023-02-27 09:02:39 +01:00
renovate[bot]
5e163ba5b5 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.37.5 2023-02-27 04:54:22 +00:00
renovate[bot]
baa8dbe240 chore(docker): update python:3.11-alpine docker digest to 1a5c146 2023-02-25 11:32:46 +00:00
renovate[bot]
1c1bc5fe32
fix(deps): update dependency python-json-logger to v2.0.6 (#478) 2023-02-18 14:34:38 +01:00
renovate[bot]
4cc8f89505
fix(deps): update dependency zipp to v3.14.0 (#481) 2023-02-18 14:25:13 +01:00
renovate[bot]
7480d76db5 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.37.4 2023-02-17 15:41:09 +00:00
renovate[bot]
20c43043c7 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.37.3 2023-02-16 16:41:47 +00:00
9073896721
refctor: migrate flake8 to ruff python linter (#477) 2023-02-12 14:46:35 +01:00
renovate[bot]
bff68cb9bd chore(docker): update python:3.11-alpine docker digest to 8463061 2023-02-11 19:07:50 +00:00
renovate[bot]
4ed5285d63 chore(docker): update python:3.11-alpine docker digest to dbc4bbe 2023-02-11 10:38:24 +00:00
renovate[bot]
80a953e930
fix(deps): update dependency zipp to v3.13.0 (#474) 2023-02-09 19:50:25 +01:00
5c92916f51
ci: bump container build plugin to drone-docker-buildx:23 (#473) 2023-02-09 19:42:09 +01:00
renovate[bot]
fd4eb05830 chore(docker): update python:3.11-alpine docker digest to deb0f63 2023-02-09 09:43:17 +00:00
6a2454d081
fix drone-matrix template (#471) 2023-02-08 21:57:33 +01:00
renovate[bot]
6d4ff66b3f
fix(deps): update dependency websocket_client to v1.5.1 (#469) 2023-02-08 12:11:52 +01:00
renovate[bot]
ca1db20838
fix(deps): update dependency zipp to v3.12.1 (#470) 2023-02-08 10:03:12 +01:00
renovate[bot]
ef35312edf chore(docker): update python:3.11-alpine docker digest to d8b0703 2023-02-04 11:25:08 +00:00
renovate[bot]
33d4d8cea3
fix(deps): update dependency dateparser to v1.1.7 (#467) 2023-02-02 21:33:45 +01:00
renovate[bot]
cf5af9f34f
fix(deps): update dependency pathspec to v0.11.0 (#464) 2023-02-02 12:21:23 +01:00
renovate[bot]
fbcc0e3dfa
fix(deps): update dependency websocket_client to v1.5.0 (#465) 2023-02-02 10:24:27 +01:00
renovate[bot]
6bbc993e48
chore(deps): lock file maintenance (#462) 2023-02-02 09:22:59 +01:00
renovate[bot]
4bc7375c13
fix(deps): update dependency zipp to v3.12.0 (#466) 2023-02-02 09:16:06 +01:00
renovate[bot]
98c740fb90 chore(docker): update python:3.11-alpine docker digest to ca1298a 2023-01-24 11:25:33 +00:00
renovate[bot]
31994c8c06 chore(deps): update devdependencies (non-major) 2023-01-23 05:52:37 +00:00
renovate[bot]
9346326e0b chore(docker): update python:3.11-alpine docker digest to 625383c 2023-01-18 13:11:59 +00:00
renovate[bot]
6f7e3cf889
fix(deps): update dependency dateparser to v1.1.6 (#457) 2023-01-16 09:46:17 +01:00
renovate[bot]
82d21e5b07
fix(deps): update dependency requests to v2.28.2 (#458) 2023-01-16 09:33:43 +01:00
8135f73ee2
refactor: use buildx for multiarch container builds (#459) 2023-01-16 09:10:35 +01:00
renovate[bot]
fa1d245f12 chore(docker): update docker digests 2023-01-10 05:19:59 +00:00
renovate[bot]
ff722181f9
chore(deps): lock file maintenance (#448) 2023-01-09 21:17:32 +01:00
renovate[bot]
1219aaa1c7 chore(deps): update dependency pydocstyle to v6.2.3 2023-01-09 03:36:22 +00:00
renovate[bot]
6929c94a3a chore(docker): update docker digests 2023-01-08 18:29:30 +00:00
8b8e3eafae
chore: remove support for arm32 (#454)
BREAKING CHANGE: We dropped the arm32 platform support and builds.
2023-01-08 16:12:23 +01:00
renovate[bot]
a3d1ee6d2a
chore(deps): update dependency flake8-isort to v6 (#450) 2023-01-03 14:52:39 +01:00
renovate[bot]
fcaf3e47d0
fix(deps): update dependency dateparser to v1.1.5 (#452) 2023-01-03 14:08:40 +01:00
renovate[bot]
55248a7199 chore(deps): update devdependencies (non-major) 2022-12-26 03:52:06 +00:00
renovate[bot]
522941a6e3 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.37.1 2022-12-21 20:29:48 +00:00
renovate[bot]
354d0ad8a7 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.37.0 2022-12-12 00:12:29 +00:00
renovate[bot]
825068c98d
fix(deps): update dependency pathspec to v0.10.3 (#446) 2022-12-11 12:42:21 +01:00
renovate[bot]
9e0e4d3bfa
chore(deps): lock file maintenance (#433) 2022-12-09 22:45:43 +01:00
renovate[bot]
26a4ca5601
chore(docker): update docker digests (#443) 2022-12-09 22:45:31 +01:00
renovate[bot]
a6973289bf
fix(deps): update dependency certifi to v2022.12.7 [security] (#444) 2022-12-09 22:14:08 +01:00
renovate[bot]
65af002494
fix(deps): update dependency zipp to v3.11.0 (#438) 2022-12-04 19:05:50 +01:00
renovate[bot]
1f15102098
fix(deps): update dependency jsonschema to v4.17.3 (#440) 2022-12-04 18:21:08 +01:00
renovate[bot]
9cd7526026 chore(docker): update docker digests 2022-11-30 04:40:48 +00:00
renovate[bot]
0d85108bc1 chore(deps): update dependency flake8-logging-format to v0.9.0 2022-11-28 03:34:14 +00:00
82ec4f3138
ci: use python311 base image on ci (#437) 2022-11-24 21:35:40 +01:00
renovate[bot]
2d27816802
fix(deps): update dependency dateparser to v1.1.4 (#434) 2022-11-24 15:10:22 +01:00
renovate[bot]
edddd5ea30
fix(deps): update dependency jsonschema to v4.17.1 (#435) 2022-11-24 10:46:24 +01:00
renovate[bot]
b3eb7c6659 chore(deps): update dependency flake8-isort to v5.0.3 2022-11-21 04:26:04 +00:00
renovate[bot]
62a6ecb92a
chore(deps): lock file maintenance (#425) 2022-11-17 21:40:02 +01:00
renovate[bot]
4d55cab3f0
fix(deps): update dependency pathspec to v0.10.2 (#429) 2022-11-17 21:39:48 +01:00
renovate[bot]
52241caf28 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.36.1 2022-11-17 00:26:29 +00:00
renovate[bot]
c823004049 chore(docker): update docker digests 2022-11-16 12:24:14 +00:00
renovate[bot]
b4442b9a95 chore(docker): update docker digests 2022-11-12 15:30:23 +00:00
renovate[bot]
c4dd01eb1a chore(docker): update docker digests 2022-11-11 16:08:02 +00:00
renovate[bot]
1347dbe794 chore(docker): update docker digests 2022-11-11 06:11:43 +00:00
renovate[bot]
6d66189180 chore(deps): update dependency flake8-builtins to v2.0.1 2022-11-07 04:47:47 +00:00
renovate[bot]
3a9eec8eb9
fix(deps): update dependency docker to v6.0.1 (#419) 2022-11-05 14:09:44 +01:00
renovate[bot]
fa86bb6aea
fix(deps): update dependency dateparser to v1.1.3 (#420) 2022-11-05 09:20:25 +01:00
104f38790b
chore: bump hugo to v0.105.0 (#423) 2022-11-05 09:20:01 +01:00
renovate[bot]
85c9bfe492
fix(deps): update dependency websocket_client to v1.4.2 (#421) 2022-11-05 07:46:30 +01:00
198c08f684
ci: refactor broken link check (#422) 2022-11-04 12:58:11 +01:00
renovate[bot]
45c5213b61 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.36.0 2022-11-03 18:49:54 +00:00
06a9dd3772
ci: add test step for python 11 (#417) 2022-11-02 13:01:40 +01:00
renovate[bot]
07f0d1b83e
fix(deps): update dependency jsonschema to v4.17.0 (#416) 2022-11-02 10:01:58 +01:00
renovate[bot]
54dac885be
chore(deps): lock file maintenance (#415) 2022-11-02 09:11:24 +01:00
renovate[bot]
31ae49ed2c chore(deps): update dependency pytest to v7.2.0 2022-10-31 05:36:22 +00:00
renovate[bot]
f15a5beb16
fix(deps): update dependency dateparser to v1.1.2 (#405) 2022-10-26 09:26:43 +02:00
renovate[bot]
6b2043486b
fix(deps): update dependency zipp to v3.10.0 (#407) 2022-10-26 08:40:52 +02:00
renovate[bot]
b3003266b6
chore(deps): update arm64v8/python docker tag to v3.11 (#411) 2022-10-26 08:40:43 +02:00
renovate[bot]
ce62684262
chore(deps): update arm32v7/python docker tag to v3.11 (#412) 2022-10-26 08:40:37 +02:00
renovate[bot]
fa83c61dd6 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.8 2022-10-26 02:12:23 +00:00
renovate[bot]
1c74385b2c
chore(deps): lock file maintenance (#403) 2022-10-25 21:33:21 +02:00
renovate[bot]
9772d31eeb
chore(deps): update python docker tag to v3.11 (#409) 2022-10-25 21:33:04 +02:00
renovate[bot]
1f941b38bc
fix(deps): update dependency colorama to v0.4.6 (#410) 2022-10-25 21:32:50 +02:00
renovate[bot]
2fcdec3888 chore(docker): update docker digests 2022-10-25 13:50:17 +00:00
renovate[bot]
119308d609 chore(docker): update docker digests 2022-10-21 00:44:44 +00:00
renovate[bot]
e3522464ce chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.7 2022-10-17 10:59:35 +00:00
renovate[bot]
3d2b4189a2
chore(deps): lock file maintenance (#402) 2022-10-11 21:03:05 +02:00
renovate[bot]
0e7ee6e916 chore(deps): update devdependencies (non-major) 2022-10-10 03:08:18 +00:00
renovate[bot]
f0e9769c96
fix(deps): update dependency zipp to v3.9.0 (#399) 2022-10-09 21:15:49 +02:00
renovate[bot]
696cfebd23
chore(deps): update dependency flake8-builtins to v2 (#397) 2022-10-09 16:30:40 +02:00
renovate[bot]
456093413c
chore(deps): update dependency flake8-pep3101 to v2 (#398) 2022-10-09 13:40:09 +02:00
renovate[bot]
ab87570886
chore(deps): update dependency flake8-isort to v5 (#400) 2022-10-09 11:35:21 +02:00
renovate[bot]
f3ed88edd9 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.6 2022-10-04 13:18:55 +00:00
renovate[bot]
0c1c0626d7
chore(deps): update dependency pytest-cov to v4 (#395) 2022-09-29 08:54:27 +02:00
renovate[bot]
a67deea0ac chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.5 2022-09-28 12:47:35 +00:00
renovate[bot]
f0c6a52006
chore(deps): lock file maintenance (#393) 2022-09-28 08:40:51 +02:00
renovate[bot]
8df41f515d
fix(deps): update dependency certifi to v2022.9.24 (#391) 2022-09-28 08:40:40 +02:00
renovate[bot]
dd97930c20 chore(deps): update dependency flake8-eradicate to v1.4.0 2022-09-26 05:15:19 +00:00
renovate[bot]
e9793ca648 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.4 2022-09-23 22:47:10 +00:00
renovate[bot]
1a306faca2
fix(deps): update dependency idna to v3.4 (#388) 2022-09-19 09:07:12 +02:00
renovate[bot]
cf80327e73
chore(deps): lock file maintenance (#389) 2022-09-19 09:06:05 +02:00
renovate[bot]
30b7370b4e
fix(deps): update dependency certifi to v2022.9.14 (#387) 2022-09-15 09:44:55 +02:00
renovate[bot]
23656f2a94 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.3 2022-09-12 17:03:39 +00:00
renovate[bot]
3353a10578
chore(docker): update docker digests (#383) 2022-09-12 10:26:15 +02:00
renovate[bot]
f4b28177c4
fix(deps): update dependency jsonschema to v4.16.0 (#384) 2022-09-12 10:26:04 +02:00
renovate[bot]
0c511f6f1f
fix(deps): update dependency certifi to v2022.6.15.1 (#385) 2022-09-12 09:23:47 +02:00
renovate[bot]
60200964d3
fix(deps): update dependency websocket_client to v1.4.1 (#379) 2022-09-06 09:26:10 +02:00
renovate[bot]
9a213d2afd
fix(deps): update dependency jsonschema to v4.15.0 (#377) 2022-09-06 08:39:59 +02:00
renovate[bot]
effb7d6df8 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.2 2022-09-05 22:44:41 +00:00
renovate[bot]
50c379fb82
chore(deps): lock file maintenance (#381) 2022-09-05 20:40:14 +02:00
renovate[bot]
954cef5635
fix(deps): update dependency pathspec to v0.10.1 (#376) 2022-09-05 20:37:36 +02:00
renovate[bot]
1b3840f654 chore(deps): update dependency pytest to v7.1.3 2022-09-05 06:42:32 +00:00
renovate[bot]
69059b1492 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.1 2022-09-02 14:13:44 +00:00
renovate[bot]
5b4bde8a7c chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.35.0 2022-08-30 15:12:29 +00:00
renovate[bot]
2d7d473b31
chore(deps): lock file maintenance (#374) 2022-08-29 21:46:40 +02:00
renovate[bot]
478ba06a96
fix(deps): update dependency websocket_client to v1.4.0 (#373) 2022-08-29 21:18:59 +02:00
renovate[bot]
99b8ad5ac9 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.34.2 2022-08-23 02:02:26 +00:00
renovate[bot]
67e431c5c3
chore(deps): lock file maintenance (#347)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-22 10:01:27 +02:00
renovate[bot]
a68018500b
fix(deps): update dependency jsonschema to v4.14.0 (#370)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-22 09:59:48 +02:00
renovate[bot]
f667915ef4
chore(deps): update dependency flake8 to v5 (#353)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-22 08:40:14 +02:00
renovate[bot]
81c7bbd881
chore(deps): update devdependencies (non-major) (#366) 2022-08-22 00:08:31 +02:00
renovate[bot]
9e066f0099
fix(deps): update dependency jsonschema to v4.13.0 (#369)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-19 22:26:38 +02:00
renovate[bot]
31bad7357e
fix(deps): update dependency docker to v6 (#368) 2022-08-19 12:01:18 +02:00
renovate[bot]
ac13339ddc
fix(deps): update dependency jsonschema to v4.12.1 (#367)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2022-08-18 21:58:48 +02:00
renovate[bot]
64ffb12722 chore(docker): update docker digests 2022-08-11 05:34:16 +00:00
renovate[bot]
8cceb71ad1 chore(docker): update docker digests to 3fe6aa2 2022-08-10 12:43:03 +00:00
renovate[bot]
9b15c1b3e3 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.34.1 2022-08-08 22:45:22 +00:00
renovate[bot]
f9ea8a959b chore(deps): update dependency flake8-isort to v4.2.0 2022-08-08 05:17:11 +00:00
renovate[bot]
0d8f854db0 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.34.0 2022-08-04 23:54:49 +00:00
renovate[bot]
4e0a346dd6 chore(docker): update python digest to 4543fd9 2022-08-03 23:49:25 +00:00
renovate[bot]
3d06abfc94
fix(deps): update dependency jsonschema to v4.9.1 (#359) 2022-08-03 20:17:46 +02:00
renovate[bot]
b3ea853840 chore(docker): update docker digests to 4fd92f2 2022-08-03 15:17:57 +00:00
renovate[bot]
86fcb17237 chore(docker): update python digest to ffc9076 2022-08-03 05:59:57 +00:00
renovate[bot]
2388ca8c48 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.33.2 2022-08-02 04:22:16 +00:00
renovate[bot]
826a949d0e
fix(deps): update dependency jsonschema to v4.9.0 (#354) 2022-08-01 21:16:12 +02:00
renovate[bot]
083307b673 chore(deps): update dependency flake8-isort to v4.1.2.post0 2022-08-01 03:19:23 +00:00
renovate[bot]
d2e60c36c9
fix(deps): update dependency jsonschema to v4.8.0 (#352) 2022-07-30 21:43:09 +02:00
renovate[bot]
c03ad419aa chore(docker): update docker digests to dcc75b5 2022-07-27 17:36:47 +00:00
renovate[bot]
46caa3d2d0 chore(docker): update docker digests to fe93ef5 2022-07-27 05:37:16 +00:00
9f1c0c39d2
ci: switch to thegeeklab/drone-s3-sync plugin 2022-07-26 14:47:52 +02:00
4eac4e6035
[skip ci] adjust repo config 2022-07-21 09:51:00 +02:00
renovate[bot]
12317162c4 chore(docker): update docker digests to 8042f9a 2022-07-19 12:38:10 +00:00
renovate[bot]
83304370c0 chore(docker): update docker digests to 5e8298e 2022-07-19 05:41:06 +00:00
renovate[bot]
433af8a364 chore(deps): update dependency pep8-naming to v0.13.1 2022-07-18 02:08:19 +00:00
renovate[bot]
789fad25ad chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.33.1 2022-07-17 22:07:11 +00:00
30adbcf2e2
ci: switch alpine-tools image 2022-07-17 20:54:35 +02:00
renovate[bot]
7e26330409 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.33.0 2022-07-15 19:48:22 +00:00
8d1642db90
docs: fix spelling in readme 2022-07-15 08:50:09 +02:00
renovate[bot]
5da9cad46f
fix(deps): update dependency python-json-logger to v2.0.4 (#342) 2022-07-13 12:25:24 +02:00
renovate[bot]
d168316802
fix(deps): update dependency jsonschema to v4.7.2 (#339) 2022-07-13 10:30:57 +02:00
renovate[bot]
d8a1766ad5
fix(deps): update dependency zipp to v3.8.1 (#343) 2022-07-13 08:58:07 +02:00
renovate[bot]
0e2014dbd2
chore(deps): lock file maintenance (#334) 2022-07-11 13:29:00 +02:00
renovate[bot]
877edacc05
fix(deps): update dependency python-json-logger to v2.0.3 (#340) 2022-07-11 10:49:19 +02:00
renovate[bot]
adcff64901
fix(deps): update dependency nested-lookup to v0.2.25 (#338) 2022-07-11 08:48:23 +02:00
renovate[bot]
112fb4561a chore(deps): update dependency pytest-mock to v3.8.2 2022-07-11 05:21:42 +00:00
renovate[bot]
2053091beb
fix(deps): update dependency requests to v2.28.1 (#337) 2022-06-29 21:04:51 +02:00
renovate[bot]
405d444812
fix(deps): update dependency jsonschema to v4.6.1 (#336) 2022-06-29 08:57:19 +02:00
renovate[bot]
e43c8e55fc chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.32.4 2022-06-27 14:54:53 +00:00
renovate[bot]
d2e8dcb887 chore(deps): update dependency pytest-mock to v3.8.1 2022-06-27 05:38:51 +00:00
renovate[bot]
6950924a3e
chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.32.3 (#332) 2022-06-22 10:02:07 +02:00
renovate[bot]
b4bb4a6b03
fix(deps): update dependency websocket_client to v1.3.3 (#331) 2022-06-20 21:04:42 +02:00
renovate[bot]
b88532308c
chore(deps): lock file maintenance (#330) 2022-06-20 10:25:19 +02:00
renovate[bot]
d7e23976f0
fix(deps): update dependency colorama to v0.4.5 (#329) 2022-06-20 08:53:27 +02:00
renovate[bot]
31e1985f70
fix(deps): update dependency requests to v2.28.0 (#325) 2022-06-19 23:35:17 +02:00
renovate[bot]
dbce4d72c8
chore(deps): lock file maintenance (#323) 2022-06-19 14:55:04 +02:00
renovate[bot]
99e6d7cef8
fix(deps): update dependency certifi to v2022.6.15 (#328) 2022-06-19 14:54:46 +02:00
Renovate Bot
c394ac85d4 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.32.2 2022-06-12 17:12:02 +00:00
Renovate Bot
fcdeb0eb98 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.32.1 2022-06-11 02:08:56 +00:00
Renovate Bot
fe131bfb04 chore(docker): update docker digests to 22fb80b 2022-06-08 03:12:28 +00:00
Renovate Bot
f2c6073f24 chore(deps): update dependency pep8-naming to v0.13.0 2022-06-06 05:57:59 +00:00
Renovate Bot
d316266174 chore(docker): update docker digests to 7467540 2022-06-03 05:39:54 +00:00
renovate[bot]
649dc4eca1
chore(deps): lock file maintenance (#314) 2022-06-02 14:04:47 +02:00
renovate[bot]
4379e29dac
fix(deps): update dependency jsonschema to v4.6.0 (#320) 2022-06-02 14:04:36 +02:00
Renovate Bot
21576991a5 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.32.0 2022-06-02 02:56:38 +00:00
Renovate Bot
c07e22f62f chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.31.0 2022-05-30 23:49:54 +00:00
Renovate Bot
f4ccdc2324 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.30.2 2022-05-26 17:50:52 +00:00
Renovate Bot
cda55122f2 chore(docker): update docker digests to 4051162 2022-05-26 04:04:35 +00:00
Renovate Bot
cf7b43f7e4 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.30.1 2022-05-24 12:36:52 +00:00
Renovate Bot
648e9961b8 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.30.0 2022-05-23 01:34:10 +00:00
Renovate Bot
29fdc2c6ea chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.29.6 2022-05-21 19:03:28 +00:00
renovate[bot]
753795636e
fix(deps): update dependency certifi to v2022 (#310) 2022-05-21 13:20:55 +02:00
renovate[bot]
041f29eb58
chore(deps): lock file maintenance (#307) 2022-05-20 17:09:35 +02:00
13a0f35cd5
ci: switch to linkchecker (#311) 2022-05-20 16:25:12 +02:00
Renovate Bot
a942d85542 chore(docker): update docker digests to b1c7b16 2022-05-18 13:11:26 +00:00
Renovate Bot
b4c7b3f2d2 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.29.5 2022-05-12 19:02:22 +00:00
Renovate Bot
d21b4ef7b1 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.29.4 2022-05-07 11:18:16 +00:00
renovate[bot]
d3147dc3f2
chore(deps): lock file maintenance (#303) 2022-05-06 16:45:03 +02:00
renovate[bot]
8b7797ed1a
fix(deps): update dependency jsonschema to v4.5.1 (#305) 2022-05-06 16:44:03 +02:00
Renovate Bot
5d65ea8dd3 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.29.3 2022-05-02 23:48:16 +00:00
4dfe569d7c
update to hugo:0.97.3 in ci 2022-05-02 22:07:14 +02:00
e23f3462d8
docs: fix hugo hint shortcode 2022-05-02 21:51:52 +02:00
Renovate Bot
1d3294acee chore(deps): update devdependencies (non-major) 2022-05-02 04:16:01 +00:00
Renovate Bot
88e81b827d chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.29.2 2022-04-30 14:37:54 +00:00
Renovate Bot
d31a978097 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.29.1 2022-04-28 13:27:46 +00:00
Renovate Bot
36a55225bc chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.29.0 2022-04-23 17:49:28 +00:00
renovate[bot]
74192442bd
chore(deps): lock file maintenance [security] (#298) 2022-04-23 14:25:39 +02:00
Renovate Bot
91079cf6d5 chore(docker): update docker digests to 032fd45 2022-04-21 01:04:57 +00:00
5228cc6393
chore: adjust yapf dict formatting to avoid line breaks (#289) 2022-04-20 21:03:47 +02:00
Renovate Bot
412a331879 chore(docker): update docker digests to 49d6cf8 2022-04-14 23:00:54 +00:00
Renovate Bot
02b2755cbb chore(docker): update docker digests to 31f39ec 2022-04-14 14:44:14 +00:00
Renovate Bot
334febbfd7 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.28.0 2022-04-11 14:18:47 +00:00
Renovate Bot
24c851d4c4 chore(docker): update docker digests to 3703b9d 2022-04-07 20:50:39 +00:00
Renovate Bot
87eef8597a chore(docker): update docker digests to e619558 2022-04-05 23:33:37 +00:00
Renovate Bot
87221f5268 chore(docker): update docker digests to 0822e90 2022-04-05 15:20:24 +00:00
renovate[bot]
f739352312
fix(deps): update dependency anyconfig to v0.13.0 (#287) 2022-04-04 10:13:00 +02:00
renovate[bot]
55ff80562d
fix(deps): update dependency zipp to v3.8.0 (#288) 2022-04-04 09:04:29 +02:00
renovate[bot]
37c8e003e0
chore(deps): lock file maintenance (#282) 2022-03-31 20:51:41 +02:00
renovate[bot]
5a24e940ae
fix(deps): update dependency websocket_client to v1.3.2 (#284) 2022-03-31 20:51:30 +02:00
Renovate Bot
dfa1a95dda chore(docker): update docker digests to b927a8a 2022-03-30 19:04:28 +00:00
Renovate Bot
25f6f8b7c2 chore(docker): update docker digests to 289e6ba 2022-03-30 00:26:20 +00:00
Renovate Bot
a4df85fd00 chore(docker): update python digest to bbf8cad 2022-03-29 12:36:38 +00:00
Renovate Bot
880a7ffd89 chore(docker): update docker digests to dfdc8ff 2022-03-25 11:19:11 +00:00
Renovate Bot
5dc9ddb32a chore(docker): update docker digests to 87eded0 2022-03-24 12:31:41 +00:00
Renovate Bot
ea7584ddb3 chore(docker): update docker digests to 7393522 2022-03-24 05:52:32 +00:00
Renovate Bot
426c9d976f chore(docker): update python digest to 9b00807 2022-03-23 23:32:08 +00:00
Renovate Bot
ead57f5924 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.27.5 2022-03-21 14:20:44 +00:00
renovate[bot]
bcd3753a3c
chore(deps): lock file maintenance (#270) 2022-03-21 08:52:31 +01:00
renovate[bot]
8a659c33bf
fix(deps): update dependency dateparser to v1.1.1 (#275)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-21 08:52:19 +01:00
Renovate Bot
1c8e72ca0a chore(deps): update devdependencies (non-major) 2022-03-21 04:36:03 +00:00
Renovate Bot
eb47e30856 chore(docker): update docker digests to 9a1e361 2022-03-18 17:33:37 +00:00
Renovate Bot
9943311515 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.27.4 2022-03-14 13:15:24 +00:00
Renovate Bot
38c3bc2348 chore(deps): update dependency pytest to v7.1.0 2022-03-14 03:11:49 +00:00
Renovate Bot
44d40a45fd chore(docker): update docker digests to bdf7490 2022-03-08 12:35:46 +00:00
Renovate Bot
27d7003039 chore(deps): update dependency bandit to v1.7.4 2022-03-07 03:09:23 +00:00
de4ec94d1f
ci: update hugo to v0.93.2 2022-03-05 16:57:05 +01:00
renovate[bot]
dc17262c54
chore(deps): lock file maintenance (#262) 2022-02-28 09:03:41 +01:00
renovate[bot]
7e2c30fd27
fix(deps): update dependency websocket_client to v1.3.1 (#265) 2022-02-28 09:03:30 +01:00
Renovate Bot
94068ce963 chore(deps): update dependency bandit to v1.7.3 2022-02-28 03:16:56 +00:00
Renovate Bot
4d56b45802 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.27.3 2022-02-26 19:29:08 +00:00
Renovate Bot
4f95cf9de0 chore(docker): update docker digests to 9871be3 2022-02-26 12:57:33 +00:00
Renovate Bot
06a8e3a0bf chore(docker): update docker digests to 1a3046e 2022-02-24 09:43:22 +00:00
Renovate Bot
415ea92069 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.27.2 2022-02-21 11:29:21 +00:00
Renovate Bot
2476fccf42 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.27.1 2022-02-18 23:07:52 +00:00
renovate[bot]
1ca4a29ed4
chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.27.0 (#260) 2022-02-18 12:10:00 +01:00
Renovate Bot
8081f64912 chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.26.3 2022-02-15 00:24:09 +00:00
renovate[bot]
db3481778b
chore(deps): lock file maintenance (#253) 2022-02-14 21:34:08 +01:00
renovate[bot]
703460ebeb
fix(deps): update dependency ruamel.yaml to v0.17.21 (#256) 2022-02-14 21:33:09 +01:00
Renovate Bot
4014972c67 chore(docker): update docker digests to c1a3d00 2022-02-14 10:48:47 +00:00
Renovate Bot
a2e5c83b06 chore(deps): update dependency pytest to v7.0.1 2022-02-14 02:53:34 +00:00
Renovate Bot
2fa962da30 chore(deps): update dependency tomli to v2.0.1 2022-02-08 13:57:12 +00:00
Renovate Bot
e0ff861fda chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.26.1 2022-02-07 17:53:10 +00:00
renovate[bot]
7e34443aa8
chore(deps): update dependency pytest to v7 (#251) 2022-02-07 13:47:38 +01:00
8a1e7b3d9d
fix: add toml to dev dependencies as yapf requirement (#252) 2022-02-05 15:01:42 +01:00
Renovate Bot
ca2718eb8e chore(deps): update dependency thegeeklab/hugo-geekdoc to v0.25.2 2022-02-03 15:15:09 +00:00
41 changed files with 1549 additions and 2603 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

View File

@ -1,512 +0,0 @@
local PythonVersion(pyversion='3.7') = {
name: 'python' + std.strReplace(pyversion, '.', '') + '-pytest',
image: 'python:' + pyversion,
environment: {
PY_COLORS: 1,
},
commands: [
'pip install poetry poetry-dynamic-versioning -qq',
'poetry config experimental.new-installer false',
'poetry install',
'poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail',
'poetry version',
'poetry run docker-tidy --help',
],
depends_on: [
'fetch',
],
};
local PipelineLint = {
kind: 'pipeline',
name: 'lint',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
name: 'yapf',
image: 'python:3.10',
environment: {
PY_COLORS: 1,
},
commands: [
'git fetch -tq',
'pip install poetry poetry-dynamic-versioning -qq',
'poetry config experimental.new-installer false',
'poetry install',
'poetry run yapf -dr ./dockertidy',
],
},
{
name: 'flake8',
image: 'python:3.10',
environment: {
PY_COLORS: 1,
},
commands: [
'git fetch -tq',
'pip install poetry poetry-dynamic-versioning -qq',
'poetry config experimental.new-installer false',
'poetry install',
'poetry run flake8 ./dockertidy',
],
},
],
trigger: {
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineTest = {
kind: 'pipeline',
name: 'test',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
name: 'fetch',
image: 'python:3.10',
commands: [
'git fetch -tq',
],
},
PythonVersion(pyversion='3.7'),
PythonVersion(pyversion='3.8'),
PythonVersion(pyversion='3.9'),
PythonVersion(pyversion='3.10'),
{
name: 'codecov',
image: 'python:3.10',
environment: {
PY_COLORS: 1,
CODECOV_TOKEN: { from_secret: 'codecov_token' },
},
commands: [
'pip install codecov -qq',
'codecov --required -X gcov',
],
depends_on: [
'python37-pytest',
'python38-pytest',
'python39-pytest',
'python310-pytest',
],
},
],
depends_on: [
'lint',
],
trigger: {
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineSecurity = {
kind: 'pipeline',
name: 'security',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
name: 'bandit',
image: 'python:3.10',
environment: {
PY_COLORS: 1,
},
commands: [
'git fetch -tq',
'pip install poetry poetry-dynamic-versioning -qq',
'poetry config experimental.new-installer false',
'poetry install',
'poetry run bandit -r ./dockertidy -x ./dockertidy/test',
],
},
],
depends_on: [
'test',
],
trigger: {
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineBuildPackage = {
kind: 'pipeline',
name: 'build-package',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
name: 'build',
image: 'python:3.10',
commands: [
'git fetch -tq',
'pip install poetry poetry-dynamic-versioning -qq',
'poetry build',
],
},
{
name: 'checksum',
image: 'alpine',
commands: [
'cd dist/ && sha256sum * > ../sha256sum.txt',
],
},
{
name: 'changelog-generate',
image: 'thegeeklab/git-chglog',
commands: [
'git fetch -tq',
'git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased unreleased}',
],
},
{
name: 'changelog-format',
image: 'thegeeklab/alpine-tools',
commands: [
'prettier CHANGELOG.md',
'prettier -w CHANGELOG.md',
],
},
{
name: 'publish-github',
image: 'plugins/github-release',
settings: {
overwrite: true,
api_key: { from_secret: 'github_token' },
files: ['dist/*', 'sha256sum.txt'],
title: '${DRONE_TAG}',
note: 'CHANGELOG.md',
},
when: {
ref: ['refs/tags/**'],
},
},
{
name: 'publish-pypi',
image: 'python:3.10',
commands: [
'git fetch -tq',
'pip install poetry poetry-dynamic-versioning -qq',
'poetry publish -n',
],
environment: {
POETRY_HTTP_BASIC_PYPI_USERNAME: { from_secret: 'pypi_username' },
POETRY_HTTP_BASIC_PYPI_PASSWORD: { from_secret: 'pypi_password' },
},
when: {
ref: ['refs/tags/**'],
},
},
],
depends_on: [
'security',
],
trigger: {
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineBuildContainer(arch='amd64') = {
local build = if arch == 'arm' then [{
name: 'build',
image: 'python:3.10-alpine',
commands: [
'apk add -Uq --no-cache build-base openssl-dev libffi-dev musl-dev python3-dev git cargo',
'git fetch -tq',
'pip install poetry poetry-dynamic-versioning -qq',
'poetry build',
],
environment: {
CARGO_NET_GIT_FETCH_WITH_CLI: true,
},
}] else [{
name: 'build',
image: 'python:3.10',
commands: [
'git fetch -tq',
'pip install poetry poetry-dynamic-versioning -qq',
'poetry build',
],
}],
kind: 'pipeline',
name: 'build-container-' + arch,
platform: {
os: 'linux',
arch: arch,
},
steps: build + [
{
name: 'dryrun',
image: 'thegeeklab/drone-docker:19',
settings: {
dry_run: true,
dockerfile: 'docker/Dockerfile.' + arch,
repo: 'thegeeklab/${DRONE_REPO_NAME}',
username: { from_secret: 'docker_username' },
password: { from_secret: 'docker_password' },
},
depends_on: ['build'],
when: {
ref: ['refs/pull/**'],
},
},
{
name: 'publish-dockerhub',
image: 'thegeeklab/drone-docker:19',
settings: {
auto_tag: true,
auto_tag_suffix: arch,
dockerfile: 'docker/Dockerfile.' + arch,
repo: 'thegeeklab/${DRONE_REPO_NAME}',
username: { from_secret: 'docker_username' },
password: { from_secret: 'docker_password' },
},
when: {
ref: ['refs/heads/main', 'refs/tags/**'],
},
depends_on: ['dryrun'],
},
{
name: 'publish-quay',
image: 'thegeeklab/drone-docker:19',
settings: {
auto_tag: true,
auto_tag_suffix: arch,
dockerfile: 'docker/Dockerfile.' + arch,
registry: 'quay.io',
repo: 'quay.io/thegeeklab/${DRONE_REPO_NAME}',
username: { from_secret: 'quay_username' },
password: { from_secret: 'quay_password' },
},
when: {
ref: ['refs/heads/main', 'refs/tags/**'],
},
depends_on: ['dryrun'],
},
],
depends_on: [
'security',
],
trigger: {
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineDocs = {
kind: 'pipeline',
name: 'docs',
platform: {
os: 'linux',
arch: 'amd64',
},
concurrency: {
limit: 1,
},
steps: [
{
name: 'assets',
image: 'thegeeklab/alpine-tools',
commands: [
'make doc',
],
},
{
name: 'markdownlint',
image: 'thegeeklab/markdownlint-cli',
commands: [
"markdownlint 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md'",
],
},
{
name: 'spellcheck',
image: 'node:lts-alpine',
commands: [
'npm install -g spellchecker-cli',
"spellchecker --files 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls --no-suggestions",
],
environment: {
FORCE_COLOR: true,
NPM_CONFIG_LOGLEVEL: 'error',
},
},
{
name: 'testbuild',
image: 'thegeeklab/hugo:0.91.0',
commands: [
'hugo -s docs/ -b http://localhost/',
],
},
{
name: 'link-validation',
image: 'thegeeklab/link-validator',
commands: [
'link-validator -ro',
],
environment: {
LINK_VALIDATOR_BASE_DIR: 'docs/public',
},
},
{
name: 'build',
image: 'thegeeklab/hugo:0.91.0',
commands: [
'hugo -s docs/',
],
},
{
name: 'beautify',
image: 'node:lts-alpine',
commands: [
'npm install -g js-beautify',
"html-beautify -r -f 'docs/public/**/*.html'",
],
environment: {
FORCE_COLOR: true,
NPM_CONFIG_LOGLEVEL: 'error',
},
},
{
name: 'publish',
image: 'plugins/s3-sync',
settings: {
access_key: { from_secret: 's3_access_key' },
bucket: 'geekdocs',
delete: true,
endpoint: 'https://sp.rknet.org',
path_style: true,
secret_key: { from_secret: 's3_secret_access_key' },
source: 'docs/public/',
strip_prefix: 'docs/public/',
target: '/${DRONE_REPO_NAME}',
},
when: {
ref: ['refs/heads/main', 'refs/tags/**'],
},
},
],
depends_on: [
'build-package',
'build-container-amd64',
'build-container-arm64',
'build-container-arm',
],
trigger: {
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
},
};
local PipelineNotifications = {
kind: 'pipeline',
name: 'notifications',
platform: {
os: 'linux',
arch: 'amd64',
},
steps: [
{
image: 'plugins/manifest',
name: 'manifest-dockerhub',
settings: {
ignore_missing: true,
auto_tag: true,
username: { from_secret: 'docker_username' },
password: { from_secret: 'docker_password' },
spec: 'docker/manifest.tmpl',
},
when: {
status: ['success'],
},
},
{
image: 'plugins/manifest',
name: 'manifest-quay',
settings: {
ignore_missing: true,
auto_tag: true,
username: { from_secret: 'quay_username' },
password: { from_secret: 'quay_password' },
spec: 'docker/manifest-quay.tmpl',
},
when: {
status: ['success'],
},
},
{
name: 'pushrm-dockerhub',
pull: 'always',
image: 'chko/docker-pushrm:1',
environment: {
DOCKER_PASS: {
from_secret: 'docker_password',
},
DOCKER_USER: {
from_secret: 'docker_username',
},
PUSHRM_FILE: 'README.md',
PUSHRM_SHORT: 'Keep docker hosts tidy',
PUSHRM_TARGET: 'thegeeklab/${DRONE_REPO_NAME}',
},
when: {
status: ['success'],
},
},
{
name: 'pushrm-quay',
pull: 'always',
image: 'chko/docker-pushrm:1',
environment: {
APIKEY__QUAY_IO: {
from_secret: 'quay_token',
},
PUSHRM_FILE: 'README.md',
PUSHRM_TARGET: 'quay.io/thegeeklab/${DRONE_REPO_NAME}',
},
when: {
status: ['success'],
},
},
{
name: 'matrix',
image: 'thegeeklab/drone-matrix',
settings: {
homeserver: { from_secret: 'matrix_homeserver' },
roomid: { from_secret: 'matrix_roomid' },
template: 'Status: **{{ build.Status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.Link }}){{#if build.Branch}} ({{ build.Branch }}){{/if}} by {{ commit.Author }}<br/> Message: {{ commit.Message.Title }}',
username: { from_secret: 'matrix_username' },
password: { from_secret: 'matrix_password' },
},
when: {
status: ['success', 'failure'],
},
},
],
depends_on: [
'docs',
],
trigger: {
ref: ['refs/heads/main', 'refs/tags/**'],
status: ['success', 'failure'],
},
};
[
PipelineLint,
PipelineTest,
PipelineSecurity,
PipelineBuildPackage,
PipelineBuildContainer(arch='amd64'),
PipelineBuildContainer(arch='arm64'),
PipelineBuildContainer(arch='arm'),
PipelineDocs,
PipelineNotifications,
]

View File

@ -1,654 +0,0 @@
---
kind: pipeline
name: lint
platform:
os: linux
arch: amd64
steps:
- name: yapf
image: python:3.10
commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry config experimental.new-installer false
- poetry install
- poetry run yapf -dr ./dockertidy
environment:
PY_COLORS: 1
- name: flake8
image: python:3.10
commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry config experimental.new-installer false
- poetry install
- poetry run flake8 ./dockertidy
environment:
PY_COLORS: 1
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
---
kind: pipeline
name: test
platform:
os: linux
arch: amd64
steps:
- name: fetch
image: python:3.10
commands:
- git fetch -tq
- name: python37-pytest
image: python:3.7
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry config experimental.new-installer false
- poetry install
- poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail
- poetry version
- poetry run docker-tidy --help
environment:
PY_COLORS: 1
depends_on:
- fetch
- name: python38-pytest
image: python:3.8
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry config experimental.new-installer false
- poetry install
- poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail
- poetry version
- poetry run docker-tidy --help
environment:
PY_COLORS: 1
depends_on:
- fetch
- name: python39-pytest
image: python:3.9
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry config experimental.new-installer false
- poetry install
- poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail
- poetry version
- poetry run docker-tidy --help
environment:
PY_COLORS: 1
depends_on:
- fetch
- name: python310-pytest
image: python:3.10
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry config experimental.new-installer false
- poetry install
- poetry run pytest dockertidy --cov=dockertidy --cov-append --no-cov-on-fail
- poetry version
- poetry run docker-tidy --help
environment:
PY_COLORS: 1
depends_on:
- fetch
- name: codecov
image: python:3.10
commands:
- pip install codecov -qq
- codecov --required -X gcov
environment:
CODECOV_TOKEN:
from_secret: codecov_token
PY_COLORS: 1
depends_on:
- python37-pytest
- python38-pytest
- python39-pytest
- python310-pytest
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
depends_on:
- lint
---
kind: pipeline
name: security
platform:
os: linux
arch: amd64
steps:
- name: bandit
image: python:3.10
commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry config experimental.new-installer false
- poetry install
- poetry run bandit -r ./dockertidy -x ./dockertidy/test
environment:
PY_COLORS: 1
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
depends_on:
- test
---
kind: pipeline
name: build-package
platform:
os: linux
arch: amd64
steps:
- name: build
image: python:3.10
commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry build
- name: checksum
image: alpine
commands:
- cd dist/ && sha256sum * > ../sha256sum.txt
- name: changelog-generate
image: thegeeklab/git-chglog
commands:
- git fetch -tq
- git-chglog --no-color --no-emoji -o CHANGELOG.md ${DRONE_TAG:---next-tag unreleased unreleased}
- name: changelog-format
image: thegeeklab/alpine-tools
commands:
- prettier CHANGELOG.md
- prettier -w CHANGELOG.md
- name: publish-github
image: plugins/github-release
settings:
api_key:
from_secret: github_token
files:
- dist/*
- sha256sum.txt
note: CHANGELOG.md
overwrite: true
title: ${DRONE_TAG}
when:
ref:
- refs/tags/**
- name: publish-pypi
image: python:3.10
commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry publish -n
environment:
POETRY_HTTP_BASIC_PYPI_PASSWORD:
from_secret: pypi_password
POETRY_HTTP_BASIC_PYPI_USERNAME:
from_secret: pypi_username
when:
ref:
- refs/tags/**
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
depends_on:
- security
---
kind: pipeline
name: build-container-amd64
platform:
os: linux
arch: amd64
steps:
- name: build
image: python:3.10
commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry build
- name: dryrun
image: thegeeklab/drone-docker:19
settings:
dockerfile: docker/Dockerfile.amd64
dry_run: true
password:
from_secret: docker_password
repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
ref:
- refs/pull/**
depends_on:
- build
- name: publish-dockerhub
image: thegeeklab/drone-docker:19
settings:
auto_tag: true
auto_tag_suffix: amd64
dockerfile: docker/Dockerfile.amd64
password:
from_secret: docker_password
repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
ref:
- refs/heads/main
- refs/tags/**
depends_on:
- dryrun
- name: publish-quay
image: thegeeklab/drone-docker:19
settings:
auto_tag: true
auto_tag_suffix: amd64
dockerfile: docker/Dockerfile.amd64
password:
from_secret: quay_password
registry: quay.io
repo: quay.io/thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: quay_username
when:
ref:
- refs/heads/main
- refs/tags/**
depends_on:
- dryrun
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
depends_on:
- security
---
kind: pipeline
name: build-container-arm64
platform:
os: linux
arch: arm64
steps:
- name: build
image: python:3.10
commands:
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry build
- name: dryrun
image: thegeeklab/drone-docker:19
settings:
dockerfile: docker/Dockerfile.arm64
dry_run: true
password:
from_secret: docker_password
repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
ref:
- refs/pull/**
depends_on:
- build
- name: publish-dockerhub
image: thegeeklab/drone-docker:19
settings:
auto_tag: true
auto_tag_suffix: arm64
dockerfile: docker/Dockerfile.arm64
password:
from_secret: docker_password
repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
ref:
- refs/heads/main
- refs/tags/**
depends_on:
- dryrun
- name: publish-quay
image: thegeeklab/drone-docker:19
settings:
auto_tag: true
auto_tag_suffix: arm64
dockerfile: docker/Dockerfile.arm64
password:
from_secret: quay_password
registry: quay.io
repo: quay.io/thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: quay_username
when:
ref:
- refs/heads/main
- refs/tags/**
depends_on:
- dryrun
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
depends_on:
- security
---
kind: pipeline
name: build-container-arm
platform:
os: linux
arch: arm
steps:
- name: build
image: python:3.10-alpine
commands:
- apk add -Uq --no-cache build-base openssl-dev libffi-dev musl-dev python3-dev git cargo
- git fetch -tq
- pip install poetry poetry-dynamic-versioning -qq
- poetry build
environment:
CARGO_NET_GIT_FETCH_WITH_CLI: true
- name: dryrun
image: thegeeklab/drone-docker:19
settings:
dockerfile: docker/Dockerfile.arm
dry_run: true
password:
from_secret: docker_password
repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
ref:
- refs/pull/**
depends_on:
- build
- name: publish-dockerhub
image: thegeeklab/drone-docker:19
settings:
auto_tag: true
auto_tag_suffix: arm
dockerfile: docker/Dockerfile.arm
password:
from_secret: docker_password
repo: thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: docker_username
when:
ref:
- refs/heads/main
- refs/tags/**
depends_on:
- dryrun
- name: publish-quay
image: thegeeklab/drone-docker:19
settings:
auto_tag: true
auto_tag_suffix: arm
dockerfile: docker/Dockerfile.arm
password:
from_secret: quay_password
registry: quay.io
repo: quay.io/thegeeklab/${DRONE_REPO_NAME}
username:
from_secret: quay_username
when:
ref:
- refs/heads/main
- refs/tags/**
depends_on:
- dryrun
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
depends_on:
- security
---
kind: pipeline
name: docs
platform:
os: linux
arch: amd64
concurrency:
limit: 1
steps:
- name: assets
image: thegeeklab/alpine-tools
commands:
- make doc
- name: markdownlint
image: thegeeklab/markdownlint-cli
commands:
- markdownlint 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md'
- name: spellcheck
image: node:lts-alpine
commands:
- npm install -g spellchecker-cli
- spellchecker --files 'docs/content/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls --no-suggestions
environment:
FORCE_COLOR: true
NPM_CONFIG_LOGLEVEL: error
- name: testbuild
image: thegeeklab/hugo:0.91.0
commands:
- hugo -s docs/ -b http://localhost/
- name: link-validation
image: thegeeklab/link-validator
commands:
- link-validator -ro
environment:
LINK_VALIDATOR_BASE_DIR: docs/public
- name: build
image: thegeeklab/hugo:0.91.0
commands:
- hugo -s docs/
- name: beautify
image: node:lts-alpine
commands:
- npm install -g js-beautify
- html-beautify -r -f 'docs/public/**/*.html'
environment:
FORCE_COLOR: true
NPM_CONFIG_LOGLEVEL: error
- name: publish
image: plugins/s3-sync
settings:
access_key:
from_secret: s3_access_key
bucket: geekdocs
delete: true
endpoint: https://sp.rknet.org
path_style: true
secret_key:
from_secret: s3_secret_access_key
source: docs/public/
strip_prefix: docs/public/
target: /${DRONE_REPO_NAME}
when:
ref:
- refs/heads/main
- refs/tags/**
trigger:
ref:
- refs/heads/main
- refs/tags/**
- refs/pull/**
depends_on:
- build-package
- build-container-amd64
- build-container-arm64
- build-container-arm
---
kind: pipeline
name: notifications
platform:
os: linux
arch: amd64
steps:
- name: manifest-dockerhub
image: plugins/manifest
settings:
auto_tag: true
ignore_missing: true
password:
from_secret: docker_password
spec: docker/manifest.tmpl
username:
from_secret: docker_username
when:
status:
- success
- name: manifest-quay
image: plugins/manifest
settings:
auto_tag: true
ignore_missing: true
password:
from_secret: quay_password
spec: docker/manifest-quay.tmpl
username:
from_secret: quay_username
when:
status:
- success
- name: pushrm-dockerhub
pull: always
image: chko/docker-pushrm:1
environment:
DOCKER_PASS:
from_secret: docker_password
DOCKER_USER:
from_secret: docker_username
PUSHRM_FILE: README.md
PUSHRM_SHORT: Keep docker hosts tidy
PUSHRM_TARGET: thegeeklab/${DRONE_REPO_NAME}
when:
status:
- success
- name: pushrm-quay
pull: always
image: chko/docker-pushrm:1
environment:
APIKEY__QUAY_IO:
from_secret: quay_token
PUSHRM_FILE: README.md
PUSHRM_TARGET: quay.io/thegeeklab/${DRONE_REPO_NAME}
when:
status:
- success
- name: matrix
image: thegeeklab/drone-matrix
settings:
homeserver:
from_secret: matrix_homeserver
password:
from_secret: matrix_password
roomid:
from_secret: matrix_roomid
template: "Status: **{{ build.Status }}**<br/> Build: [{{ repo.Owner }}/{{ repo.Name }}]({{ build.Link }}){{#if build.Branch}} ({{ build.Branch }}){{/if}} by {{ commit.Author }}<br/> Message: {{ commit.Message.Title }}"
username:
from_secret: matrix_username
when:
status:
- success
- failure
trigger:
ref:
- refs/heads/main
- refs/tags/**
status:
- success
- failure
depends_on:
- docs
---
kind: signature
hmac: 1841bc8bcbf056bae7577aaa9a11fb3f1627777745155ce86f48ff87d6d812de
...

View File

@ -52,6 +52,11 @@ branches:
required_status_checks:
strict: false
contexts:
- continuous-integration/drone/pr
enforce_admins: null
- ci/woodpecker/pr/lint
- ci/woodpecker/pr/test
- ci/woodpecker/pr/build-package
- ci/woodpecker/pr/build-container
- ci/woodpecker/pr/docs
enforce_admins: false
required_linear_history: true
restrictions: null

2
.gitignore vendored
View File

@ -106,7 +106,9 @@ pip-wheel-metadata
docs/themes/
docs/public/
resources/_gen/
.hugo_build.lock
# Misc
.dockertidy*
CHANGELOG.md
.ruff_cache

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

@ -0,0 +1,82 @@
---
when:
- event: [pull_request, tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
steps:
- name: build
image: docker.io/library/python:3.13
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry build
- name: security-build
image: quay.io/thegeeklab/wp-docker-buildx:5
depends_on: [build]
settings:
containerfile: Containerfile.multiarch
output: type=oci,dest=oci/${CI_REPO_NAME},tar=false
repo: ${CI_REPO}
- name: security-scan
image: docker.io/aquasec/trivy
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:5
depends_on: [security-scan]
settings:
auto_tag: true
containerfile: Containerfile.multiarch
password:
from_secret: docker_password
platforms:
- linux/amd64
- linux/arm64
provenance: false
repo: ${CI_REPO}
username:
from_secret: docker_username
when:
- event: [tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
- name: publish-quay
image: quay.io/thegeeklab/wp-docker-buildx:5
depends_on: security-scan
settings:
auto_tag: true
containerfile: Containerfile.multiarch
password:
from_secret: quay_password
platforms:
- linux/amd64
- linux/arm64
provenance: false
registry: quay.io
repo: quay.io/${CI_REPO}
username:
from_secret: quay_username
when:
- event: [tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
depends_on:
- lint
- test

View File

@ -0,0 +1,56 @@
---
when:
- event: [pull_request, tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
steps:
- name: build
image: docker.io/library/python:3.13
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry build
- name: checksum
image: quay.io/thegeeklab/alpine-tools
commands:
- cd dist/ && sha256sum * > ../sha256sum.txt
- name: changelog
image: quay.io/thegeeklab/git-sv
commands:
- git sv current-version
- git sv release-notes -t ${CI_COMMIT_TAG:-next} -o CHANGELOG.md
- cat CHANGELOG.md
- name: publish-github
image: docker.io/plugins/github-release
settings:
api_key:
from_secret: github_token
files:
- dist/*
- sha256sum.txt
note: CHANGELOG.md
overwrite: true
title: ${CI_COMMIT_TAG}
when:
- event: [tag]
- name: publish-pypi
image: docker.io/library/python:3.13
environment:
POETRY_HTTP_BASIC_PYPI_PASSWORD:
from_secret: pypi_password
POETRY_HTTP_BASIC_PYPI_USERNAME:
from_secret: pypi_username
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry publish -n
when:
- event: [tag]
depends_on:
- lint
- test

101
.woodpecker/docs.yml Normal file
View File

@ -0,0 +1,101 @@
---
when:
- event: [pull_request, tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
steps:
- name: assets
image: quay.io/thegeeklab/alpine-tools
commands:
- make doc
- name: markdownlint
image: quay.io/thegeeklab/markdownlint-cli
depends_on: [assets]
commands:
- markdownlint 'README.md' 'CONTRIBUTING.md'
- name: spellcheck
image: quay.io/thegeeklab/alpine-tools
depends_on: [assets]
commands:
- spellchecker --files 'docs/**/*.md' 'README.md' 'CONTRIBUTING.md' -d .dictionary -p spell indefinite-article syntax-urls
environment:
FORCE_COLOR: "true"
- name: link-validation
image: docker.io/lycheeverse/lychee
depends_on: [assets]
commands:
- lychee --no-progress --format detailed docs/content README.md
- name: build
image: quay.io/thegeeklab/hugo:0.136.5
depends_on: [link-validation]
commands:
- hugo --panicOnWarning -s docs/
- name: beautify
image: quay.io/thegeeklab/alpine-tools
depends_on: [build]
commands:
- html-beautify -r -f 'docs/public/**/*.html'
- name: publish
image: quay.io/thegeeklab/wp-s3-action
depends_on: [beautify]
settings:
access_key:
from_secret: s3_access_key
bucket: geekdocs
delete: true
endpoint:
from_secret: s3_endpoint
path_style: true
secret_key:
from_secret: s3_secret_access_key
source: docs/public/
strip_prefix: docs/public/
target: /${CI_REPO_NAME}
when:
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
status: [success, failure]
- name: pushrm-dockerhub
image: docker.io/chko/docker-pushrm:1
depends_on: [publish]
environment:
DOCKER_PASS:
from_secret: docker_password
DOCKER_USER:
from_secret: docker_username
PUSHRM_FILE: README.md
PUSHRM_SHORT: Keep docker hosts tidy
PUSHRM_TARGET: ${CI_REPO}
when:
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
status: [success]
- name: pushrm-quay
image: docker.io/chko/docker-pushrm:1
depends_on: [publish]
environment:
APIKEY__QUAY_IO:
from_secret: quay_token
PUSHRM_FILE: README.md
PUSHRM_TARGET: quay.io/${CI_REPO}
when:
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
status: [success]
depends_on:
- build-package
- build-container

27
.woodpecker/lint.yml Normal file
View File

@ -0,0 +1,27 @@
---
when:
- event: [pull_request, tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
steps:
- name: check-format
image: docker.io/library/python:3.13
depends_on: []
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry install
- poetry run ruff format --check --diff ./${CI_REPO_NAME//-/}
environment:
PY_COLORS: "1"
- name: check-coding
image: docker.io/library/python:3.13
depends_on: []
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry install
- poetry run ruff check ./${CI_REPO_NAME//-/}
environment:
PY_COLORS: "1"

26
.woodpecker/notify.yml Normal file
View File

@ -0,0 +1,26 @@
---
when:
- event: [tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
runs_on: [success, failure]
steps:
- name: matrix
image: quay.io/thegeeklab/wp-matrix
settings:
homeserver:
from_secret: matrix_homeserver
room_id:
from_secret: matrix_room_id
user_id:
from_secret: matrix_user_id
access_token:
from_secret: matrix_access_token
when:
- status: [success, failure]
depends_on:
- docs

35
.woodpecker/test.yml Normal file
View File

@ -0,0 +1,35 @@
---
when:
- event: [pull_request, tag]
- event: [push, manual]
branch:
- ${CI_REPO_DEFAULT_BRANCH}
variables:
- &pytest_base
depends_on: []
commands:
- pip install poetry poetry-dynamic-versioning -qq
- poetry install
- poetry run pytest --cov-append
- poetry version
- poetry run ${CI_REPO_NAME} --help
environment:
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

@ -3,7 +3,7 @@
## Security
If you think you have found a **security issue**, please do not mention it in this repository.
Instead, send an email to security@thegeeklab.de with as many details as possible so it can be handled confidential.
Instead, send an email to `security@thegeeklab.de` with as many details as possible so it can be handled confidential.
## Bug Reports and Feature Requests

View File

@ -1,4 +1,4 @@
FROM python:3.10-alpine@sha256:dce56d40d885d2c8847aa2a278a29d50450c8e3d10f9d7ffeb2f38dcc1eb0ea4
FROM python:3.13-alpine@sha256:c38ead8bcf521573dad837d7ecfdebbc87792202e89953ba8b2b83a9c5a520b6
LABEL maintainer="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
THEME_VERSION := v0.25.1
THEME_VERSION := v1.2.1
THEME := hugo-geekdoc
BASEDIR := docs
THEMEDIR := $(BASEDIR)/themes

View File

@ -2,12 +2,11 @@
Keep docker hosts tidy
[![Build Status](https://img.shields.io/drone/build/thegeeklab/docker-tidy?logo=drone&server=https%3A%2F%2Fdrone.thegeeklab.de)](https://drone.thegeeklab.de/thegeeklab/docker-tidy)
[![Build Status](https://ci.thegeeklab.de/api/badges/thegeeklab/docker-tidy/status.svg)](https://ci.thegeeklab.de/repos/thegeeklab/docker-tidy)
[![Docker Hub](https://img.shields.io/badge/docker-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/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 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)
[![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)
@ -18,7 +17,7 @@ You can find the full documentation at [https://docker-tidy.geekdocs.de](https:/
## Contributors
Special thanks goes to all [contributors](https://github.com/thegeeklab/docker-tidy/graphs/contributors). If you would like to contribute,
Special thanks to all [contributors](https://github.com/thegeeklab/docker-tidy/graphs/contributors). If you would like to contribute,
please see the [instructions](https://github.com/thegeeklab/docker-tidy/blob/main/CONTRIBUTING.md).
## License

View File

@ -1,26 +0,0 @@
FROM arm32v7/python:3.10-alpine@sha256:12675b471e7e8cff36cf9124b72bc99e8b56c326fb0a53dabac537532e634e1f
LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.title="docker-tidy"
LABEL org.opencontainers.image.url="https://docker-tidy.geekdocs.de/"
LABEL org.opencontainers.image.source="https://github.com/thegeeklab/docker-tidy"
LABEL org.opencontainers.image.documentation="https://docker-tidy.geekdocs.de/"
ENV PY_COLORS=1
ENV TZ=UTC
ADD dist/docker_tidy-*.whl /
RUN apk --update add --virtual .build-deps build-base libffi-dev openssl-dev && \
pip install --upgrade --no-cache-dir pip && \
pip install --no-cache-dir $(find / -name "docker_tidy-*.whl") && \
apk del .build-deps && \
rm -f docker_tidy-*.whl && \
rm -rf /var/cache/apk/* && \
rm -rf /root/.cache/ && \
rm -rf /tmp/*
USER root
CMD []
ENTRYPOINT ["/usr/local/bin/docker-tidy", "gc"]

View File

@ -1,26 +0,0 @@
FROM arm64v8/python:3.10-alpine@sha256:696a82b99de314cb5407a6ca3029df2514e4ecd09f63f115e8fb6988edc2914d
LABEL maintainer="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.authors="Robert Kaussow <mail@thegeeklab.de>"
LABEL org.opencontainers.image.title="docker-tidy"
LABEL org.opencontainers.image.url="https://docker-tidy.geekdocs.de/"
LABEL org.opencontainers.image.source="https://github.com/thegeeklab/docker-tidy"
LABEL org.opencontainers.image.documentation="https://docker-tidy.geekdocs.de/"
ENV PY_COLORS=1
ENV TZ=UTC
ADD dist/docker_tidy-*.whl /
RUN apk --update add --virtual .build-deps build-base libffi-dev openssl-dev && \
pip install --upgrade --no-cache-dir pip && \
pip install --no-cache-dir $(find / -name "docker_tidy-*.whl") && \
apk del .build-deps && \
rm -f docker_tidy-*.whl && \
rm -rf /var/cache/apk/* && \
rm -rf /root/.cache/ && \
rm -rf /tmp/*
USER root
CMD []
ENTRYPOINT ["/usr/local/bin/docker-tidy", "gc"]

View File

@ -1,24 +0,0 @@
image: quay.io/thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}
{{/each}}
{{/if}}
manifests:
- image: quay.io/thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64
platform:
architecture: amd64
os: linux
- image: quay.io/thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64
platform:
architecture: arm64
os: linux
variant: v8
- image: quay.io/thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm
platform:
architecture: arm
os: linux
variant: v7

View File

@ -1,24 +0,0 @@
image: thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}
{{/each}}
{{/if}}
manifests:
- image: thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}amd64
platform:
architecture: amd64
os: linux
- image: thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm64
platform:
architecture: arm64
os: linux
variant: v8
- image: thegeeklab/docker-tidy:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}arm
platform:
architecture: arm
os: linux
variant: v7

View File

@ -2,10 +2,10 @@
"""Stop long running docker iamges."""
import dateutil.parser
import docker
import docker.errors
import requests.exceptions
import docker
from dockertidy.config import SingleConfig
from dockertidy.logger import SingleLog
from dockertidy.parser import timedelta
@ -45,9 +45,7 @@ class AutoStop:
) or (not prefix and self._has_been_running_since(container, max_run_time)):
self.logger.info(
"Stopping container {id} {name}: running since {started}".format(
id=container["Id"][:16],
name=name,
started=container["State"]["StartedAt"]
id=container["Id"][:16], name=name, started=container["State"]["StartedAt"]
)
)
@ -58,12 +56,11 @@ class AutoStop:
try:
client.stop(cid)
except requests.exceptions.Timeout as e:
self.logger.warn("Failed to stop container {id}: {msg}".format(id=cid, msg=str(e)))
self.logger.warning(f"Failed to stop container {cid}: {e!s}")
except docker.errors.APIError as e:
self.logger.warn("Error stopping {id}: {msg}".format(id=cid, msg=str(e)))
self.logger.warning(f"Error stopping {cid}: {e!s}")
def _build_container_matcher(self, prefixes):
def matcher(name):
return any(name.startswith(prefix) for prefix in prefixes)
@ -89,4 +86,4 @@ class AutoStop:
self.stop_containers()
if not config["stop"]["max_run_time"]:
self.logger.warn("Skipped, no arguments given")
self.logger.warning("Skipped, no arguments given")

View File

@ -36,7 +36,7 @@ class DockerTidy:
action="store_true",
default=None,
dest="dry_run",
help="only log actions, don't stop anything"
help="only log actions, don't stop anything",
)
parser.add_argument(
"-t",
@ -44,7 +44,7 @@ class DockerTidy:
type=int,
dest="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(
"-v", dest="logging.level", action="append_const", const=-1, help="increase log level"
@ -52,9 +52,7 @@ class DockerTidy:
parser.add_argument(
"-q", dest="logging.level", action="append_const", const=1, help="decrease log level"
)
parser.add_argument(
"--version", action="version", version="%(prog)s {}".format(__version__)
)
parser.add_argument("--version", action="version", version=f"%(prog)s {__version__}")
subparsers = parser.add_subparsers(dest="command", help="sub-command help")
subparsers.required = True
@ -66,7 +64,7 @@ class DockerTidy:
dest="gc.max_container_age",
metavar="MAX_CONTAINER_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(
"--max-image-age",
@ -74,13 +72,13 @@ class DockerTidy:
dest="gc.max_image_age",
metavar="MAX_IMAGE_AGE",
help="maxium age for an image, images older than this age will be "
"removed (dateparser value)"
"removed (dateparser value)",
)
parser_gc.add_argument(
"--dangling-volumes",
action="store_true",
dest="gc.dangling_volumes",
help="dangling volumes will be removed"
help="dangling volumes will be removed",
)
parser_gc.add_argument(
"--exclude-image",
@ -88,7 +86,7 @@ class DockerTidy:
type=str,
dest="gc.exclude_images",
metavar="EXCLUDE_IMAGE",
help="never remove images with this tag"
help="never remove images with this tag",
)
parser_gc.add_argument(
"--exclude-container-label",
@ -96,8 +94,7 @@ class DockerTidy:
type=str,
dest="gc.exclude_container_labels",
metavar="EXCLUDE_CONTAINER_LABEL",
help="never remove containers with this label key "
"or label key=value"
help="never remove containers with this label key or label key=value",
)
parser_stop = subparsers.add_parser(
@ -108,7 +105,7 @@ class DockerTidy:
type=timedelta_validator,
dest="stop.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(
"--prefix",
@ -116,7 +113,7 @@ class DockerTidy:
type=str,
dest="stop.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__
@ -130,10 +127,10 @@ class DockerTidy:
try:
self.log.set_level(config.config["logging"]["level"])
except ValueError as e:
self.log.sysexit_with_message("Can not set log level.\n{}".format(str(e)))
self.log.sysexit_with_message(f"Can not set log level.\n{e!s}")
self.logger.info("Using config file {}".format(config.config_file))
self.logger.debug("Config dump: {}".format(config.config))
self.logger.info(f"Using config file {config.config_file}")
self.logger.debug(f"Config dump: {config.config}")
return config

View File

@ -13,15 +13,15 @@ from jsonschema._utils import format_as_index
import dockertidy.exception
import dockertidy.parser
from dockertidy.parser import env
from dockertidy.utils import Singleton
from dockertidy.utils import dict_intersect
from dockertidy.utils import Singleton, dict_intersect
config_dir = AppDirs("docker-tidy").user_config_dir
default_config_file = os.path.join(config_dir, "config.yml")
class Config():
"""Create an object with all necessary settings.
class Config:
"""
Create an object with all necessary settings.
Settings are loade from multiple locations in defined order (last wins):
- default settings defined by `self._get_defaults()`
@ -36,77 +36,77 @@ class Config():
"config_file": {
"default": "",
"env": "CONFIG_FILE",
"type": environs.Env().str
"type": environs.Env().str,
},
"dry_run": {
"default": False,
"env": "DRY_RUN",
"file": True,
"type": environs.Env().bool
"type": environs.Env().bool,
},
"http_timeout": {
"default": 60,
"env": "HTTP_TIMEOUT",
"file": True,
"type": environs.Env().int
"type": environs.Env().int,
},
"logging.level": {
"default": "WARNING",
"env": "LOG_LEVEL",
"file": True,
"type": environs.Env().str
"type": environs.Env().str,
},
"logging.json": {
"default": False,
"env": "LOG_JSON",
"file": True,
"type": environs.Env().bool
"type": environs.Env().bool,
},
"gc.max_container_age": {
"default": "",
"env": "GC_MAX_CONTAINER_AGE",
"file": True,
"type": env.timedelta_validator
"type": env.timedelta_validator,
},
"gc.max_image_age": {
"default": "",
"env": "GC_MAX_IMAGE_AGE",
"file": True,
"type": env.timedelta_validator
"type": env.timedelta_validator,
},
"gc.dangling_volumes": {
"default": False,
"env": "GC_DANGLING_VOLUMES",
"file": True,
"type": environs.Env().bool
"type": environs.Env().bool,
},
"gc.exclude_images": {
"default": [],
"env": "GC_EXCLUDE_IMAGES",
"file": True,
"type": environs.Env().list
"type": environs.Env().list,
},
"gc.exclude_container_labels": {
"default": [],
"env": "GC_EXCLUDE_CONTAINER_LABELS",
"file": True,
"type": environs.Env().list
"type": environs.Env().list,
},
"stop.max_run_time": {
"default": "",
"env": "STOP_MAX_RUN_TIME",
"file": True,
"type": env.timedelta_validator
"type": env.timedelta_validator,
},
"stop.prefix": {
"default": [],
"env": "STOP_PREFIX",
"file": True,
"type": environs.Env().list
"type": environs.Env().list,
},
}
def __init__(self, args={}):
def __init__(self, args=None):
"""
Initialize a new settings class.
@ -115,7 +115,10 @@ class Config():
:returns: None
"""
self._args = args
if args is None:
self._args = {}
else:
self._args = args
self._schema = None
self.config_file = default_config_file
self.config = None
@ -159,12 +162,12 @@ class Config():
value = item["type"](envname)
normalized = self._add_dict_branch(normalized, key.split("."), value)
except environs.EnvError as e:
if '"{}" not set'.format(envname) in str(e):
if f'"{envname}" not set' in str(e):
pass
else:
raise dockertidy.exception.ConfigError(
"Unable to read environment variable", str(e)
)
) from e
return normalized
@ -188,15 +191,15 @@ class Config():
source_files.append(os.path.join(os.getcwd(), ".dockertidy.yaml"))
for config in [i for i in source_files if os.path.exists(i)]:
with open(config, "r", encoding="utf8") as stream:
with open(config, encoding="utf8") as stream:
s = stream.read()
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:
message = "{} {}".format(e.context, e.problem)
message = f"{e.context} {e.problem}"
raise dockertidy.exception.ConfigError(
"Unable to read config file {}".format(config), message
)
f"Unable to read config file {config}", message
) from e
if self._validate(normalized):
anyconfig.merge(files_raw, normalized, ac_merge=anyconfig.MS_DICTS)
@ -224,27 +227,26 @@ class Config():
if not os.path.isabs(path):
base = os.path.join(os.getcwd(), path)
return os.path.abspath(os.path.expanduser(os.path.expandvars(base)))
else:
return path
return path
def _validate(self, config):
try:
anyconfig.validate(config, self.schema, ac_schema_safe=False)
except jsonschema.exceptions.ValidationError as e:
schema_error = "Failed validating '{validator}' in schema{schema}\n{message}".format(
validator=e.validator,
schema=format_as_index(list(e.relative_schema_path)[:-1]),
message=e.message
)
raise dockertidy.exception.ConfigError("Configuration error", schema_error)
schema = format_as_index(list(e.relative_schema_path)[:-1])
schema_error = f"Failed validating '{e.validator}' in schema {schema}\n{e.message}"
raise dockertidy.exception.ConfigError("Configuration error", schema_error) from e
return True
def _add_dict_branch(self, tree, vector, value):
key = vector[0]
tree[key] = value \
if len(vector) == 1 \
else self._add_dict_branch(tree[key] if key in tree else {}, vector[1:], value)
tree[key] = (
value
if len(vector) == 1
else self._add_dict_branch(tree.get(key, {}), vector[1:], value)
)
return tree

View File

@ -6,7 +6,7 @@ class TidyError(Exception):
"""Generic exception class for docker-tidy."""
def __init__(self, msg, original_exception=""):
super(TidyError, self).__init__("{msg}\n{org}".format(msg=msg, org=original_exception))
super().__init__(f"{msg}\n{original_exception}")
self.original_exception = original_exception

View File

@ -5,10 +5,10 @@ import fnmatch
from collections import namedtuple
import dateutil.parser
import docker
import docker.errors
import requests.exceptions
import docker
from dockertidy.config import SingleConfig
from dockertidy.logger import SingleLog
from dockertidy.parser import timedelta
@ -55,7 +55,8 @@ class GarbageCollector:
self.logger.info(
"Removing container {} {} {}".format(
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
def include_container(container):
if self._should_exclude_container_with_labels(container):
return False
return True
return not self._should_exclude_container_with_labels(container)
return filter(include_container, containers)
@ -163,7 +162,6 @@ class GarbageCollector:
self._remove_image(image_summary, timedelta(config["gc"]["max_image_age"]))
def _filter_excluded_images(self, images, exclude_set):
def include_image(image_summary):
image_tags = image_summary.get("RepoTags")
if self._no_image_tags(image_tags):
@ -176,12 +174,11 @@ class GarbageCollector:
return filter(include_image, images)
def _filter_images_in_use(self, images, image_tags_in_use):
def get_tag_set(image_summary):
image_tags = image_summary.get("RepoTags")
if self._no_image_tags(image_tags):
# The repr of the image Id used by client.containers()
return set(["{id}:latest".format(id=image_summary["Id"][:12])])
return {"{id}:latest".format(id=image_summary["Id"][:12])}
return set(image_tags)
def image_not_in_use(image_summary):
@ -190,7 +187,6 @@ class GarbageCollector:
return filter(image_not_in_use, images)
def _filter_images_in_use_by_id(self, images, image_ids_in_use):
def image_not_in_use(image_summary):
return image_summary["Id"] not in image_ids_in_use
@ -210,9 +206,7 @@ class GarbageCollector:
if not image or not self._is_image_old(image, min_date):
return
self.logger.info(
"Removing image {name}".format(name=self._format_image(image, image_summary))
)
self.logger.info(f"Removing image {self._format_image(image, image_summary)}")
if config["dry_run"]:
return
@ -251,22 +245,13 @@ class GarbageCollector:
try:
return func(**kwargs)
except requests.exceptions.Timeout as e:
params = ",".join("%s=%s" % item for item in kwargs.items()) # noqa
self.logger.warn(
"Failed to call {name} {params} {msg}".format(
name=func.__name__, params=params, msg=str(e)
)
)
params = ",".join("%s=%s" % item for item in kwargs.items()) # noqa:UP031
self.logger.warning(f"Failed to call {func.__name__} {params} {e!s}")
except docker.errors.APIError as e:
params = ",".join("%s=%s" % item for item in kwargs.items()) # noqa
self.logger.warn(
"Error calling {name} {params} {msg}".format(
name=func.__name__, params=params, msg=str(e)
)
)
params = ",".join("%s=%s" % item for item in kwargs.items()) # noqa:UP031
self.logger.warning(f"Error calling {func.__name__} {params} {e!s}")
def _format_image(self, image, image_summary):
def get_tags():
tags = image_summary.get("RepoTags")
if not tags or tags == ["<none>:<none>"]:
@ -277,12 +262,11 @@ class GarbageCollector:
def _build_exclude_set(self):
config = self.config.config
exclude_set = set(config["gc"]["exclude_images"])
def is_image_tag(line):
return line and not line.startswith("#")
return exclude_set
return set(config["gc"]["exclude_images"])
def _format_exclude_labels(self):
config = self.config.config
@ -291,10 +275,7 @@ class GarbageCollector:
for exclude_label_arg in config["gc"]["exclude_container_labels"]:
split_exclude_label = exclude_label_arg.split("=", 1)
exclude_label_key = split_exclude_label[0]
if len(split_exclude_label) == 2:
exclude_label_value = split_exclude_label[1]
else:
exclude_label_value = None
exclude_label_value = split_exclude_label[1] if len(split_exclude_label) == 2 else None
exclude_labels.append(
self.ExcludeLabel(
key=exclude_label_key,
@ -308,7 +289,7 @@ class GarbageCollector:
try:
return docker.APIClient(version="auto", timeout=config["http_timeout"])
except docker.errors.DockerException as e:
self.log.sysexit_with_message("Can't create docker client\n{}".format(e))
self.log.sysexit_with_message(f"Can't create docker client\n{e}")
def run(self):
"""Garbage collector main method."""
@ -327,7 +308,8 @@ class GarbageCollector:
self.cleanup_volumes()
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"]
):
self.logger.warn("Skipped, no arguments given")
self.logger.ing("Skipped, no arguments given")

View File

@ -8,8 +8,7 @@ import sys
import colorama
from pythonjsonlogger import jsonlogger
from dockertidy.utils import Singleton
from dockertidy.utils import to_bool
from dockertidy.utils import Singleton, to_bool
CONSOLE_FORMAT = "{}[%(levelname)s]{} %(message)s"
JSON_FORMAT = "%(asctime)s %(levelname)s %(message)s"
@ -26,7 +25,7 @@ def _should_do_markup():
colorama.init(autoreset=True, strip=not _should_do_markup())
class LogFilter(object):
class LogFilter:
"""A custom log filter which excludes log messages above the logged level."""
def __init__(self, level):
@ -47,15 +46,15 @@ class LogFilter(object):
class MultilineFormatter(logging.Formatter):
"""Logging Formatter to reset color after newline characters."""
def format(self, record): # noqa
record.msg = record.msg.replace("\n", "\n{}... ".format(colorama.Style.RESET_ALL))
def format(self, record):
record.msg = record.msg.replace("\n", f"\n{colorama.Style.RESET_ALL}... ")
return logging.Formatter.format(self, record)
class MultilineJsonFormatter(jsonlogger.JsonFormatter):
"""Logging Formatter to remove newline characters."""
def format(self, record): # noqa
def format(self, record):
record.msg = record.msg.replace("\n", " ")
return jsonlogger.JsonFormatter.format(self, record)
@ -63,11 +62,11 @@ class MultilineJsonFormatter(jsonlogger.JsonFormatter):
class Log:
"""Base logging object."""
def __init__(self, level=logging.WARN, name="dockertidy", json=False):
def __init__(self, level=logging.WARNING, name="dockertidy", json=False):
self.logger = logging.getLogger(name)
self.logger.setLevel(level)
self.logger.addHandler(self._get_error_handler(json=json))
self.logger.addHandler(self._get_warn_handler(json=json))
self.logger.addHandler(self._get_warning_handler(json=json))
self.logger.addHandler(self._get_info_handler(json=json))
self.logger.addHandler(self._get_critical_handler(json=json))
self.logger.addHandler(self._get_debug_handler(json=json))
@ -88,13 +87,13 @@ class Log:
return handler
def _get_warn_handler(self, json=False):
def _get_warning_handler(self, json=False):
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(logging.WARN)
handler.addFilter(LogFilter(logging.WARN))
handler.setLevel(logging.WARNING)
handler.addFilter(LogFilter(logging.WARNING))
handler.setFormatter(
MultilineFormatter(
self.warn(CONSOLE_FORMAT.format(colorama.Fore.YELLOW, colorama.Style.RESET_ALL))
self.warning(CONSOLE_FORMAT.format(colorama.Fore.YELLOW, colorama.Style.RESET_ALL))
)
)
@ -164,8 +163,8 @@ class Log:
"""Format error messages and return string."""
return msg
def warn(self, msg):
"""Format warn messages and return string."""
def warning(self, msg):
"""Format warning messages and return string."""
return msg
def info(self, msg):
@ -181,7 +180,7 @@ class Log:
:returns: string
"""
return "{}{}{}".format(color, msg, colorama.Style.RESET_ALL)
return f"{color}{msg}{colorama.Style.RESET_ALL}"
def sysexit(self, code=1):
"""Exit running program with given exit code."""

View File

@ -10,7 +10,8 @@ env = environs.Env()
def timedelta_validator(value):
"""Return the dateparser string for a time in the past.
"""
Return the dateparser string for a time in the past.
:param value: a string containing a time format supported by
mod:`dateparser`
@ -19,13 +20,14 @@ def timedelta_validator(value):
return None
if not dateparser.parse(value):
raise ArgumentTypeError("'{}' is not a valid timedelta string".format(value))
raise ArgumentTypeError(f"'{value}' is not a valid timedelta string")
return value
def timedelta(value, dt_format=None):
"""Return the :class:`datetime.datetime.DateTime` for a time in the past.
"""
Return the :class:`datetime.datetime.DateTime` for a time in the past.
:param value: a string containing a time format supported by
mod:`dateparser`
@ -34,10 +36,7 @@ def timedelta(value, dt_format=None):
return None
timedelta = dateparser.parse(
value, settings={
"TO_TIMEZONE": "UTC",
"RETURN_AS_TIMEZONE_AWARE": True
}
value, settings={"TO_TIMEZONE": "UTC", "RETURN_AS_TIMEZONE_AWARE": True}
)
if dt_format:
@ -52,4 +51,4 @@ def timedelta_parser(value):
timedelta_validator(value)
return value
except ArgumentTypeError as e:
raise environs.EnvError(e)
raise environs.EnvError(e) from e

View File

@ -1,8 +1,8 @@
"""Test Autostop class."""
import docker
import pytest
import docker
from dockertidy import autostop
pytest_plugins = [

View File

@ -1,9 +1,9 @@
"""Test GarbageCollector class."""
import docker
import pytest
import requests
import docker
from dockertidy import garbage_collector
pytest_plugins = [
@ -358,7 +358,7 @@ def test_api_call_with_timeout(mocker, gc):
gc._api_call(func, image=image)
func.assert_called_once_with(image="abcd")
mock_log.warn.assert_called_once_with("Failed to call remove_image " + "image=abcd msg")
mock_log.warning.assert_called_once_with("Failed to call remove_image " + "image=abcd msg")
def test_api_call_with_api_error(mocker, gc):
@ -376,7 +376,7 @@ def test_api_call_with_api_error(mocker, gc):
gc._api_call(func, image=image)
func.assert_called_once_with(image="abcd")
mock_log.warn.assert_called_once_with(
mock_log.warning.assert_called_once_with(
"Error calling remove_image image=abcd "
'409 Client Error for dummy: Conflict ("failed")'
)

View File

@ -1,7 +1,29 @@
#!/usr/bin/env python3
"""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):
@ -20,8 +42,7 @@ class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs): # noqa
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
cls._instances[cls] = super().__call__(*args, **kwargs)
return cls._instances[cls]

View File

@ -18,11 +18,16 @@ markup:
startLevel: 1
params:
description: >
Keep docker hosts tidy. docker-tidy is a tool to remove outdated and unused docker resources based on filters.
images:
- "socialmedia2.png"
geekdocMenuBundle: true
geekdocToC: 3
geekdocRepo: https://github.com/thegeeklab/docker-tidy
geekdocEditPath: edit/main/docs/content
geekdocEditPath: edit/main/docs
geekdocDateFormat: "Jan 2, 2006"
geekdocSearch: true

View File

@ -2,12 +2,11 @@
title: Documentation
---
[![Build Status](https://img.shields.io/drone/build/thegeeklab/docker-tidy?logo=drone&server=https%3A%2F%2Fdrone.thegeeklab.de)](https://drone.thegeeklab.de/thegeeklab/docker-tidy)
[![Build Status](https://ci.thegeeklab.de/api/badges/thegeeklab/docker-tidy/status.svg)](https://ci.thegeeklab.de/repos/thegeeklab/docker-tidy)
[![Docker Hub](https://img.shields.io/badge/docker-latest-blue.svg?logo=docker&logoColor=white)](https://hub.docker.com/r/thegeeklab/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 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)
[![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)

View File

@ -2,9 +2,11 @@
title: Setup
---
<!-- prettier-ignore-start -->
<!-- spellchecker-disable -->
{{< toc >}}
<!-- spellchecker-enable -->
<!-- prettier-ignore-end -->
## Pip
@ -46,8 +48,7 @@ docker run \
<!-- prettier-ignore-start -->
<!-- markdownlint-disable -->
{{< hint info >}}
**Info**\
{{< hint type=note >}}
Keep in mind, that you have to pass SELinux labels (:Z or :z) to your mount option if you are working on SELinux enabled systems.
{{< /hint >}}
<!-- markdownlint-restore -->

162
docs/static/socialmedia.svg vendored Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 20 KiB

BIN
docs/static/socialmedia2.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

1832
poetry.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -10,10 +10,10 @@ classifiers = [
"Natural Language :: English",
"Operating System :: POSIX",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: System :: Systems Administration",
"Topic :: Utilities",
"Topic :: Software Development",
@ -21,81 +21,57 @@ classifiers = [
description = "Keep docker hosts tidy."
documentation = "https://docker-tidy.geekdocs.de/"
homepage = "https://docker-tidy.geekdocs.de/"
include = [
"LICENSE",
]
include = ["LICENSE"]
keywords = ["docker", "gc", "prune", "garbage"]
license = "Apache-2.0"
name = "docker-tidy"
packages = [
{include = "dockertidy"},
]
packages = [{ include = "dockertidy" }]
readme = "README.md"
repository = "https://github.com/thegeeklab/docker-tidy/"
version = "0.0.0"
[tool.poetry.dependencies]
anyconfig = "0.12.0"
anyconfig = "0.14.0"
appdirs = "1.4.4"
certifi = "2021.10.8"
colorama = "0.4.4"
dateparser = "1.1.0"
docker = "5.0.3"
certifi = "2024.8.30"
colorama = "0.4.6"
dateparser = "1.2.0"
docker = "7.1.0"
docker-pycreds = "0.4.0"
environs = "9.5.0"
idna = "3.3"
environs = "11.1.0"
idna = "3.10"
ipaddress = "1.0.23"
jsonschema = "4.4.0"
nested-lookup = "0.2.23"
pathspec = "0.9.0"
python = "^3.7.0"
python-dateutil = "2.8.2"
python-json-logger = "2.0.2"
requests = "2.27.1"
"ruamel.yaml" = "0.17.20"
websocket_client = "1.2.3"
zipp = "3.7.0"
[tool.poetry.dev-dependencies]
bandit = "1.7.2"
flake8 = "4.0.1"
flake8-blind-except = "0.2.0"
flake8-builtins = "1.5.3"
flake8-docstrings = "1.6.0"
flake8-eradicate = "1.2.0"
flake8-isort = "4.1.1"
flake8-logging-format = "0.6.0"
flake8-pep3101 = "1.3.0"
flake8-polyfill = "1.0.2"
flake8-quotes = "3.3.1"
pep8-naming = "0.12.1"
pydocstyle = "6.1.1"
pytest = "6.2.5"
pytest-cov = "3.0.0"
pytest-mock = "3.7.0"
tomli = "2.0.0"
yapf = "0.32.0"
jsonschema = "4.23.0"
nested-lookup = "0.2.25"
pathspec = "0.12.1"
python = "^3.10.0"
python-dateutil = "2.9.0.post0"
python-json-logger = "2.0.7"
requests = "2.32.3"
"ruamel.yaml" = "0.18.6"
websocket_client = "1.8.0"
zipp = "3.21.0"
[tool.poetry.scripts]
docker-tidy = "dockertidy.cli:main"
[tool.poetry.group.dev.dependencies]
ruff = "0.7.3"
pytest = "8.3.3"
pytest-mock = "3.14.0"
pytest-cov = "6.0.0"
toml = "0.10.2"
[tool.poetry-dynamic-versioning]
enable = true
style = "semver"
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]
addopts = "dockertidy --cov=dockertidy --cov-report=xml:coverage.xml --cov-report=term --cov-append --no-cov-on-fail"
addopts = "dockertidy --cov=dockertidy --cov-report=xml:coverage.xml --cov-report=term --no-cov-on-fail"
filterwarnings = [
"ignore::FutureWarning",
"ignore:.*collections.*:DeprecationWarning",
"ignore::DeprecationWarning",
"ignore:.*pep8.*:FutureWarning",
]
@ -103,5 +79,70 @@ filterwarnings = [
omit = ["**/test/*"]
[build-system]
build-backend = "poetry.core.masonry.api"
build-backend = "poetry_dynamic_versioning.backend"
requires = ["poetry-core>=1.0.0", "poetry-dynamic-versioning"]
[tool.ruff]
exclude = [
".git",
"__pycache__",
"build",
"dist",
"test",
"*.pyc",
"*.egg-info",
".cache",
".eggs",
"env*",
]
line-length = 99
indent-width = 4
[tool.ruff.lint]
# Explanation of errors
#
# D102: Missing docstring in public method
# D103: Missing docstring in public function
# D105: Missing docstring in magic method
# D107: Missing docstring in __init__
# D202: No blank lines allowed after function docstring
# D203: One blank line required before class docstring
# D212: Multi-line docstring summary should start at the first line
ignore = [
"D102",
"D103",
"D105",
"D107",
"D202",
"D203",
"D212",
"UP038",
"RUF012",
]
select = [
"D",
"E",
"F",
"Q",
"W",
"I",
"S",
"BLE",
"N",
"UP",
"B",
"A",
"C4",
"T20",
"SIM",
"RET",
"ARG",
"ERA",
"RUF",
]
[tool.ruff.format]
quote-style = "double"
indent-style = "space"
line-ending = "lf"

View File

@ -1,4 +1,12 @@
{
"$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
}
]
}

View File

@ -1,20 +0,0 @@
[flake8]
# Explanation of errors
#
# D102: Missing docstring in public method
# D103: Missing docstring in public function
# D105: Missing docstring in magic method
# D107: Missing docstring in __init__
# D202: No blank lines allowed after function docstring
# W503:Line break occurred before a binary operator
ignore = D102, D103, D105, D107, D202, W503
max-line-length = 99
inline-quotes = double
exclude = .git, __pycache__, build, dist, test, *.pyc, *.egg-info, .cache, .eggs, env*
[yapf]
based_on_style = google
column_limit = 99
dedent_closing_brackets = true
coalesce_brackets = true
split_before_logical_operator = true