From f8943e50e43c15b47ea38dd755163ab45c060966 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Wed, 25 Mar 2026 19:36:44 +1100 Subject: [PATCH] Replace gitea-release plugin with curl-based release upload Uses basic auth (droneci user) and Gitea API directly to create the release and upload the binary asset. Fix the golangci-lint issues --- .woodpecker/release.yaml | 18 +++++++++++------- main_test.go | 8 ++++---- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.woodpecker/release.yaml b/.woodpecker/release.yaml index 5bb6f28..9ab5495 100644 --- a/.woodpecker/release.yaml +++ b/.woodpecker/release.yaml @@ -15,16 +15,20 @@ steps: depends_on: [test] - name: release - image: woodpeckerci/plugin-gitea-release - settings: - api_key: - from_secret: GITEA_TOKEN - base_url: https://git.unkin.net - files: node-lookup - title: ${CI_COMMIT_TAG} + image: alpine/curl environment: DRONECI_PASSWORD: from_secret: DRONECI_PASSWORD + commands: + - | + RELEASE_ID=$(curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases" \ + -u "droneci:$DRONECI_PASSWORD" \ + -H "Content-Type: application/json" \ + -d "{\"tag_name\":\"${CI_COMMIT_TAG}\",\"name\":\"${CI_COMMIT_TAG}\"}" \ + | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) + curl -sf -X POST "https://git.unkin.net/api/v1/repos/${CI_REPO}/releases/${RELEASE_ID}/assets" \ + -u "droneci:$DRONECI_PASSWORD" \ + -F "attachment=@node-lookup" backend_options: kubernetes: serviceAccountName: default diff --git a/main_test.go b/main_test.go index 3ea6d45..28353df 100644 --- a/main_test.go +++ b/main_test.go @@ -354,11 +354,11 @@ func TestAllFactsForNode_QueryContainsCertname(t *testing.T) { srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { receivedQuery = r.URL.Query().Get("query") w.Header().Set("Content-Type", "application/json") - json.NewEncoder(w).Encode([]fact{}) + _ = json.NewEncoder(w).Encode([]fact{}) })) defer srv.Close() - allFactsForNode(srv.URL+"/pdb/query/v4/facts", "mynode.example.com") + _, _ = allFactsForNode(srv.URL+"/pdb/query/v4/facts", "mynode.example.com") if !strings.Contains(receivedQuery, "mynode.example.com") { t.Fatalf("expected certname in query, got: %s", receivedQuery) } @@ -405,10 +405,10 @@ func TestRun_AllFacts_PrintsSortedByName(t *testing.T) { cfg := config{PuppetDBURL: srv.URL + "/pdb/query/v4/facts", RoleFact: "enc_role"} err := run(cfg, "node1", "", "", "", false, false, false, false, false, false, true) - w.Close() + _ = w.Close() os.Stdout = old var buf strings.Builder - io.Copy(&buf, r) + _, _ = io.Copy(&buf, r) out := buf.String() if err != nil {