From 90c944a26539ff1a36b48be9aa301e543b77b220 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Fri, 19 Jun 2026 09:06:44 +0000 Subject: [PATCH] =?UTF-8?q?woodpecker:=20disable=20partial=20clone=20(part?= =?UTF-8?q?ial:=20false)=20=E2=80=94=20fix=20intermittent=20git=20exit-128?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Infra pipelines were failing intermittently across all authors (e.g. #241-244, #247) with the git clone step exiting 128: git fetch --depth=1 --filter=tree:0 ... (partial/treeless clone) git reset --hard fatal: could not fetch from promisor remote remote: 404 page not found The plugin-git clone defaulted to a partial (treeless) clone. The initial ref fetch carries credentials, but the lazy *promisor* object fetch triggered by `git reset --hard` hits the PRIVATE Forgejo repo without creds -> 404 -> exit 128. Whether it fired was luck-of-the-draw, hence the ~50% intermittent failures fleet-wide (not specific to any commit). Fix: set `partial: false` on every clone block so all objects for the (still shallow) commit are fetched upfront with creds — no fragile lazy promisor fetch. Diagnosed against the woodpecker Postgres DB (steps/log_entries) since the Woodpecker HTTP API was itself flapping. Earlier "permission for ViktorBarzin" log lines were an unrelated cross-forge red herring. Co-Authored-By: Claude Opus 4.8 --- .woodpecker/default.yml | 1 + .woodpecker/drift-detection.yml | 1 + .woodpecker/issue-automation.yml | 1 + .woodpecker/postmortem-todos.yml | 1 + .woodpecker/provision-user.yml | 1 + .woodpecker/pve-nfs-exports-sync.yml | 1 + .woodpecker/registry-config-sync.yml | 1 + .woodpecker/renew-tls.yml | 1 + 8 files changed, 8 insertions(+) diff --git a/.woodpecker/default.yml b/.woodpecker/default.yml index 95fcbd80..ef94ccee 100644 --- a/.woodpecker/default.yml +++ b/.woodpecker/default.yml @@ -19,6 +19,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false depth: 2 attempts: 5 backoff: 10s diff --git a/.woodpecker/drift-detection.yml b/.woodpecker/drift-detection.yml index 5851bc16..b2e303ff 100644 --- a/.woodpecker/drift-detection.yml +++ b/.woodpecker/drift-detection.yml @@ -9,6 +9,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false depth: 1 attempts: 3 diff --git a/.woodpecker/issue-automation.yml b/.woodpecker/issue-automation.yml index ece97dab..2bb46661 100644 --- a/.woodpecker/issue-automation.yml +++ b/.woodpecker/issue-automation.yml @@ -5,6 +5,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false depth: 2 steps: diff --git a/.woodpecker/postmortem-todos.yml b/.woodpecker/postmortem-todos.yml index 729e9a85..68330272 100644 --- a/.woodpecker/postmortem-todos.yml +++ b/.woodpecker/postmortem-todos.yml @@ -11,6 +11,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false depth: 5 steps: diff --git a/.woodpecker/provision-user.yml b/.woodpecker/provision-user.yml index 0f6d5dab..3ba7af7f 100644 --- a/.woodpecker/provision-user.yml +++ b/.woodpecker/provision-user.yml @@ -5,6 +5,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false attempts: 5 backoff: 10s diff --git a/.woodpecker/pve-nfs-exports-sync.yml b/.woodpecker/pve-nfs-exports-sync.yml index 2c26df45..54aea68a 100644 --- a/.woodpecker/pve-nfs-exports-sync.yml +++ b/.woodpecker/pve-nfs-exports-sync.yml @@ -23,6 +23,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false depth: 1 attempts: 3 diff --git a/.woodpecker/registry-config-sync.yml b/.woodpecker/registry-config-sync.yml index a4f03185..aad59fbe 100644 --- a/.woodpecker/registry-config-sync.yml +++ b/.woodpecker/registry-config-sync.yml @@ -38,6 +38,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false depth: 1 attempts: 3 diff --git a/.woodpecker/renew-tls.yml b/.woodpecker/renew-tls.yml index d2d8bf89..cd93fe7c 100644 --- a/.woodpecker/renew-tls.yml +++ b/.woodpecker/renew-tls.yml @@ -6,6 +6,7 @@ clone: git: image: woodpeckerci/plugin-git settings: + partial: false attempts: 5 backoff: 10s