Merge branch 'main' into pr/4861

This commit is contained in:
Robert Kaussow
2025-11-04 13:15:25 +01:00
committed by GitHub
36 changed files with 1242 additions and 1212 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ repos:
- id: trailing-whitespace
exclude: ^docs/versioned_docs/.+/40-cli.md$
- repo: https://github.com/golangci/golangci-lint
rev: v2.5.0
rev: v2.6.0
hooks:
- id: golangci-lint
- repo: https://github.com/igorshubovych/markdownlint-cli
+1 -1
View File
@@ -8,7 +8,7 @@ when:
variables:
- &golang_image 'docker.io/golang:1.25'
- &node_image 'docker.io/node:23-alpine'
- &node_image 'docker.io/node:24-alpine'
- &xgo_image 'docker.io/techknowlogick/xgo:go-1.25.x'
# cspell:words bindata netgo
+1 -1
View File
@@ -1,6 +1,6 @@
variables:
- &golang_image 'docker.io/golang:1.25'
- &node_image 'docker.io/node:23-alpine'
- &node_image 'docker.io/node:24-alpine'
- &xgo_image 'docker.io/techknowlogick/xgo:go-1.25.x'
- &buildx_plugin 'docker.io/woodpeckerci/plugin-docker-buildx:6.0.3'
- &platforms_release 'linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/386,linux/amd64,linux/ppc64le,linux/riscv64,linux/s390x,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64'
+1 -1
View File
@@ -1,6 +1,6 @@
variables:
- &golang_image 'docker.io/golang:1.25'
- &node_image 'docker.io/node:23-alpine'
- &node_image 'docker.io/node:24-alpine'
- &alpine_image 'docker.io/alpine:3.22'
- path: &when_path
- 'docs/**'
+1 -1
View File
@@ -9,7 +9,7 @@ steps:
- event: pull_request
- name: spellcheck
image: docker.io/node:23-alpine
image: docker.io/node:24-alpine
depends_on: []
commands:
- corepack enable
+1 -1
View File
@@ -5,7 +5,7 @@ when:
- release/*
variables:
- &node_image 'docker.io/node:23-alpine'
- &node_image 'docker.io/node:24-alpine'
- &when
path:
# related config files
+1 -1
View File
@@ -1,7 +1,7 @@
# renovate: datasource=github-releases depName=mvdan/gofumpt
GOFUMPT_VERSION := v0.9.2
# renovate: datasource=github-releases depName=golangci/golangci-lint
GOLANGCI_LINT_VERSION := v2.5.0
GOLANGCI_LINT_VERSION := v2.6.0
# renovate: datasource=docker depName=docker.io/techknowlogick/xgo
XGO_VERSION := go-1.25.x
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build test
// +build test
package exec
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build test
// +build test
package main
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build generate
// +build generate
package main
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build !generate
// +build !generate
package main
-1
View File
@@ -17,7 +17,6 @@
// *********************************************************
//go:build generate
// +build generate
package main
+1 -1
View File
@@ -13,7 +13,7 @@ services:
- pgsql:/var/lib/postgresql/data/pgdata
gitea:
image: gitea/gitea:1.24
image: gitea/gitea:1.25
ports:
- 3000:3000
volumes:
+1 -1
View File
@@ -1,6 +1,6 @@
# docker build --rm -f docker/Dockerfile.make -t woodpecker/make:local .
FROM docker.io/golang:1.25-alpine AS golang_image
FROM docker.io/node:23-alpine
FROM docker.io/node:24-alpine
RUN apk add --no-cache --update make gcc binutils-gold musl-dev && \
apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/main protoc && \
@@ -2,6 +2,11 @@
Woodpecker has integrated support for matrix workflows. Woodpecker executes a separate workflow for each combination in the matrix, allowing you to build and test against multiple configurations.
:::warning
Woodpecker currently supports a maximum of **27 matrix axes** per workflow.
If your matrix exceeds this number, any additional axes will be silently ignored.
:::
Example matrix definition:
```yaml
+1 -1
View File
@@ -44,7 +44,7 @@
"@docusaurus/tsconfig": "3.9.2",
"@docusaurus/types": "^3.9.1",
"@ianvs/prettier-plugin-sort-imports": "^4.7.0",
"@types/node": "^22.18.8",
"@types/node": "^24.0.0",
"@types/react": "^19.2.0",
"@types/react-helmet": "^6.1.11",
"@types/react-router-dom": "^5.3.3",
+1 -1
View File
@@ -14,7 +14,7 @@
"@docusaurus/theme-classic": "^3.7.0",
"@docusaurus/types": "^3.7.0",
"@tsconfig/docusaurus": "^2.0.3",
"@types/node": "^22.10.5",
"@types/node": "^24.0.0",
"axios": "^1.7.9",
"concurrently": "^9.1.2",
"isomorphic-dompurify": "^2.19.0",
+648 -656
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -15,4 +15,4 @@ A few important time points:
## Differences to Drone
Woodpecker is a community-focused software that still stay free and open source forever, while Drone is managed by [Harness](https://harness.io/) and published under [Polyform Small Business](https://polyformproject.org/licenses/small-business/1.0.0/) license.
Woodpecker is a community-focused software that will stay free and open source forever, while Drone is managed by [Harness](https://harness.io/) and published under [Polyform Small Business](https://polyformproject.org/licenses/small-business/1.0.0/) license.
@@ -2,6 +2,11 @@
Woodpecker has integrated support for matrix workflows. Woodpecker executes a separate workflow for each combination in the matrix, allowing you to build and test against multiple configurations.
:::warning
Woodpecker currently supports a maximum of **27 matrix axes** per workflow.
If your matrix exceeds this number, any additional axes will be silently ignored.
:::
Example matrix definition:
```yaml
@@ -2,6 +2,11 @@
Woodpecker has integrated support for matrix workflows. Woodpecker executes a separate workflow for each combination in the matrix, allowing you to build and test against multiple configurations.
:::warning
Woodpecker currently supports a maximum of **27 matrix axes** per workflow.
If your matrix exceeds this number, any additional axes will be silently ignored.
:::
Example matrix definition:
```yaml
@@ -2,6 +2,11 @@
Woodpecker has integrated support for matrix workflows. Woodpecker executes a separate workflow for each combination in the matrix, allowing you to build and test against multiple configurations.
:::warning
Woodpecker currently supports a maximum of **27 matrix axes** per workflow.
If your matrix exceeds this number, any additional axes will be silently ignored.
:::
Example matrix definition:
```yaml
@@ -2,6 +2,11 @@
Woodpecker has integrated support for matrix workflows. Woodpecker executes a separate workflow for each combination in the matrix, allowing you to build and test against multiple configurations.
:::warning
Woodpecker currently supports a maximum of **27 matrix axes** per workflow.
If your matrix exceeds this number, any additional axes will be silently ignored.
:::
Example matrix definition:
```yaml
+11 -5
View File
@@ -53,9 +53,9 @@ require (
github.com/urfave/cli-docs/v3 v3.1.1-0.20251022123016-72b87d11c482
github.com/urfave/cli/v3 v3.5.0
github.com/xeipuuv/gojsonschema v1.2.0
github.com/yaronf/httpsign v0.3.3
github.com/yaronf/httpsign v0.4.1
github.com/zalando/go-keyring v0.2.6
gitlab.com/gitlab-org/api/client-go v0.157.1
gitlab.com/gitlab-org/api/client-go v0.158.0
go.uber.org/multierr v1.11.0
golang.org/x/crypto v0.43.0
golang.org/x/net v0.46.0
@@ -102,7 +102,7 @@ require (
github.com/danieljoos/wincred v1.2.3 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/davidmz/go-pageant v1.0.2 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
github.com/docker/docker-credential-helpers v0.8.0 // indirect
github.com/dunglas/httpsfv v1.0.2 // indirect
github.com/dustin/go-humanize v1.0.1 // indirect
@@ -144,12 +144,17 @@ require (
github.com/julienschmidt/httprouter v1.3.0 // indirect
github.com/klauspost/cpuid/v2 v2.3.0 // indirect
github.com/leodido/go-urn v1.4.0 // indirect
github.com/lestrrat-go/blackmagic v1.0.2 // indirect
github.com/lestrrat-go/blackmagic v1.0.4 // indirect
github.com/lestrrat-go/dsig v1.0.0 // indirect
github.com/lestrrat-go/dsig-secp256k1 v1.0.0 // indirect
github.com/lestrrat-go/httpcc v1.0.1 // indirect
github.com/lestrrat-go/httprc v1.0.6 // indirect
github.com/lestrrat-go/httprc/v3 v3.0.1 // indirect
github.com/lestrrat-go/iter v1.0.2 // indirect
github.com/lestrrat-go/jwx/v2 v2.1.2 // indirect
github.com/lestrrat-go/jwx/v3 v3.0.12 // indirect
github.com/lestrrat-go/option v1.0.1 // indirect
github.com/lestrrat-go/option/v2 v2.0.0 // indirect
github.com/lucasb-eyer/go-colorful v1.2.0 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
@@ -183,7 +188,7 @@ require (
github.com/quic-go/quic-go v0.55.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/segmentio/asm v1.2.0 // indirect
github.com/segmentio/asm v1.2.1 // indirect
github.com/sirupsen/logrus v1.9.3 // indirect
github.com/spf13/pflag v1.0.6 // indirect
github.com/stretchr/objx v0.5.2 // indirect
@@ -191,6 +196,7 @@ require (
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.3.0 // indirect
github.com/urfave/cli/v2 v2.25.3 // indirect
github.com/valyala/fastjson v1.6.4 // indirect
github.com/woodsbury/decimal128 v1.3.0 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect
+22 -10
View File
@@ -116,8 +116,8 @@ github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454WvHn0=
github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc=
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40=
github.com/denisenkom/go-mssqldb v0.12.3 h1:pBSGx9Tq67pBOTLmxNuirNTeB8Vjmf886Kx+8Y+8shw=
github.com/denisenkom/go-mssqldb v0.12.3/go.mod h1:k0mtMFOnU+AihqFxPMiF05rtiDrorD1Vrm1KEz5hxDo=
github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk=
@@ -363,18 +363,28 @@ github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ=
github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI=
github.com/lestrrat-go/blackmagic v1.0.2 h1:Cg2gVSc9h7sz9NOByczrbUvLopQmXrfFx//N+AkAr5k=
github.com/lestrrat-go/blackmagic v1.0.2/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU=
github.com/lestrrat-go/blackmagic v1.0.4 h1:IwQibdnf8l2KoO+qC3uT4OaTWsW7tuRQXy9TRN9QanA=
github.com/lestrrat-go/blackmagic v1.0.4/go.mod h1:6AWFyKNNj0zEXQYfTMPfZrAXUWUfTIZ5ECEUEJaijtw=
github.com/lestrrat-go/dsig v1.0.0 h1:OE09s2r9Z81kxzJYRn07TFM9XA4akrUdoMwr0L8xj38=
github.com/lestrrat-go/dsig v1.0.0/go.mod h1:dEgoOYYEJvW6XGbLasr8TFcAxoWrKlbQvmJgCR0qkDo=
github.com/lestrrat-go/dsig-secp256k1 v1.0.0 h1:JpDe4Aybfl0soBvoVwjqDbp+9S1Y2OM7gcrVVMFPOzY=
github.com/lestrrat-go/dsig-secp256k1 v1.0.0/go.mod h1:CxUgAhssb8FToqbL8NjSPoGQlnO4w3LG1P0qPWQm/NU=
github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE=
github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E=
github.com/lestrrat-go/httprc v1.0.6 h1:qgmgIRhpvBqexMJjA/PmwSvhNk679oqD1RbovdCGW8k=
github.com/lestrrat-go/httprc v1.0.6/go.mod h1:mwwz3JMTPBjHUkkDv/IGJ39aALInZLrhBp0X7KGUZlo=
github.com/lestrrat-go/httprc/v3 v3.0.1 h1:3n7Es68YYGZb2Jf+k//llA4FTZMl3yCwIjFIk4ubevI=
github.com/lestrrat-go/httprc/v3 v3.0.1/go.mod h1:2uAvmbXE4Xq8kAUjVrZOq1tZVYYYs5iP62Cmtru00xk=
github.com/lestrrat-go/iter v1.0.2 h1:gMXo1q4c2pHmC3dn8LzRhJfP1ceCbgSiT9lUydIzltI=
github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4=
github.com/lestrrat-go/jwx/v2 v2.1.2 h1:6poete4MPsO8+LAEVhpdrNI4Xp2xdiafgl2RD89moBc=
github.com/lestrrat-go/jwx/v2 v2.1.2/go.mod h1:pO+Gz9whn7MPdbsqSJzG8TlEpMZCwQDXnFJ+zsUVh8Y=
github.com/lestrrat-go/jwx/v3 v3.0.12 h1:p25r68Y4KrbBdYjIsQweYxq794CtGCzcrc5dGzJIRjg=
github.com/lestrrat-go/jwx/v3 v3.0.12/go.mod h1:HiUSaNmMLXgZ08OmGBaPVvoZQgJVOQphSrGr5zMamS8=
github.com/lestrrat-go/option v1.0.1 h1:oAzP2fvZGQKWkvHa1/SAcFolBEca1oN+mQ7eooNBEYU=
github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I=
github.com/lestrrat-go/option/v2 v2.0.0 h1:XxrcaJESE1fokHy3FpaQ/cXW8ZsIdWcdFzzLOcID3Ss=
github.com/lestrrat-go/option/v2 v2.0.0/go.mod h1:oSySsmzMoR0iRzCDCaUfsCzxQHUEuhOViQObyy7S6Vg=
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
@@ -512,8 +522,8 @@ github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0=
github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys=
github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0=
github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8=
github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I=
github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4=
@@ -563,6 +573,8 @@ github.com/urfave/cli/v2 v2.25.3 h1:VJkt6wvEBOoSjPFQvOkv6iWIrsJyCrKGtCtxXWwmGeY=
github.com/urfave/cli/v2 v2.25.3/go.mod h1:GHupkWPMM0M/sj1a2b4wUrWBPzazNrIjouW6fmdJLxc=
github.com/urfave/cli/v3 v3.5.0 h1:qCuFMmdayTF3zmjG8TSsoBzrDqszNrklYg2x3g4MSgw=
github.com/urfave/cli/v3 v3.5.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso=
github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ=
github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
github.com/woodsbury/decimal128 v1.3.0 h1:8pffMNWIlC0O5vbyHWFZAt5yWvWcrHA+3ovIIjVWss0=
github.com/woodsbury/decimal128 v1.3.0/go.mod h1:C5UTmyTjW3JftjUFzOVhC20BEQa2a4ZKOB5I6Zjb+ds=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
@@ -578,8 +590,8 @@ github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e h1:JVG44RsyaB9T2KIHavM
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e/go.mod h1:RbqR21r5mrJuqunuUZ/Dhy/avygyECGrLceyNeo4LiM=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU=
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8=
github.com/yaronf/httpsign v0.3.3 h1:xcu+hXdXKWN5eyrkX7tYfBVjZmGHY30Yqwz1Vl6Kats=
github.com/yaronf/httpsign v0.3.3/go.mod h1:cYB/6toJrJnf4JTLVoo6IHzFH9/Zu1dcKmah4xfX2WA=
github.com/yaronf/httpsign v0.4.1 h1:q2yLLkL4+8G9VmOBR6SIsD4+00ncjt+GyadGA3weY0Y=
github.com/yaronf/httpsign v0.4.1/go.mod h1:euOXi3++HLtx5YlsJEWcIzF3ztK4TL2M2F0Wg3KL+V0=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
@@ -587,8 +599,8 @@ github.com/zalando/go-keyring v0.2.6 h1:r7Yc3+H+Ux0+M72zacZoItR3UDxeWfKTcabvkI8u
github.com/zalando/go-keyring v0.2.6/go.mod h1:2TCrxYrbUNYfNS/Kgy/LSrkSQzZ5UPVH85RwfczwvcI=
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
gitlab.com/gitlab-org/api/client-go v0.157.1 h1:oYbOYk0A2Q+bc1drw8fikSvgi5GImQ9Cj0L0zkZ+PfY=
gitlab.com/gitlab-org/api/client-go v0.157.1/go.mod h1:CQVoxjEswJZeXft4Mi+H+OF1MVrpNVF6m4xvlPTQ2J4=
gitlab.com/gitlab-org/api/client-go v0.158.0 h1:CfWA94ZaU4STlIfsYBGcpks3eUVojXvNFaytmNptbX8=
gitlab.com/gitlab-org/api/client-go v0.158.0/go.mod h1:D0DHF7ILUfFo/JcoGMAEndiKMm8SiP/WjyJ4OfXxCKw=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 h1:TT4fX+nBOA/+LUkobKGW1ydGcn+G3vRw9+g5HwCphpk=
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build test
// +build test
package dummy
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build linux
// +build linux
package local
+37 -31
View File
@@ -180,24 +180,31 @@ func (c *Forgejo) Refresh(ctx context.Context, user *model.User) (bool, error) {
// Teams is supported by the Forgejo driver.
func (c *Forgejo) Teams(ctx context.Context, u *model.User, p *model.ListOptions) ([]*model.Team, error) {
// we paginate internally (https://github.com/woodpecker-ci/woodpecker/issues/5667)
if p.Page != 1 {
return nil, nil
}
client, err := c.newClientToken(ctx, u.AccessToken)
if err != nil {
return nil, err
}
orgs, _, err := client.ListMyOrgs(
forgejo.ListOrgsOptions{
ListOptions: forgejo.ListOptions{
Page: p.Page,
PageSize: c.perPage(ctx, p.PerPage),
return shared_utils.Paginate(func(page int) ([]*model.Team, error) {
orgs, _, err := client.ListMyOrgs(
forgejo.ListOrgsOptions{
ListOptions: forgejo.ListOptions{
Page: page,
PageSize: c.perPage(ctx),
},
},
},
)
teams := make([]*model.Team, 0, len(orgs))
for _, org := range orgs {
teams = append(teams, toTeam(org, c.url))
}
return teams, err
)
teams := make([]*model.Team, 0, len(orgs))
for _, org := range orgs {
teams = append(teams, toTeam(org, c.url))
}
return teams, err
}, -1)
}
// TeamPerm is not supported by the Forgejo driver.
@@ -234,22 +241,27 @@ func (c *Forgejo) Repo(ctx context.Context, u *model.User, remoteID model.ForgeR
// Repos returns a list of all repositories for the Forgejo account, including
// organization repositories.
func (c *Forgejo) Repos(ctx context.Context, u *model.User, p *model.ListOptions) ([]*model.Repo, error) {
// we paginate internally (https://github.com/woodpecker-ci/woodpecker/issues/5667)
if p.Page != 1 {
return nil, nil
}
client, err := c.newClientToken(ctx, u.AccessToken)
if err != nil {
return nil, err
}
repos, _, err := client.ListMyRepos(
forgejo.ListReposOptions{
ListOptions: forgejo.ListOptions{
Page: p.Page,
PageSize: c.perPage(ctx, p.PerPage),
repos, err := shared_utils.Paginate(func(page int) ([]*forgejo.Repository, error) {
repos, _, err := client.ListMyRepos(
forgejo.ListReposOptions{
ListOptions: forgejo.ListOptions{
Page: page,
PageSize: c.perPage(ctx),
},
},
},
)
if err != nil {
return nil, err
}
)
return repos, err
}, -1)
result := make([]*model.Repo, 0, len(repos))
for _, repo := range repos {
@@ -401,7 +413,7 @@ func (c *Forgejo) Deactivate(ctx context.Context, u *model.User, r *model.Repo,
hooks, _, err := client.ListRepoHooks(r.Owner, r.Name, forgejo.ListHooksOptions{
ListOptions: forgejo.ListOptions{
Page: page,
PageSize: c.perPage(ctx, c.pageSize),
PageSize: c.perPage(ctx),
},
})
return hooks, err
@@ -674,7 +686,7 @@ func (c *Forgejo) getTagCommitSHA(ctx context.Context, repo *model.Repo, tagName
return tag.Commit.SHA, nil
}
func (c *Forgejo) perPage(ctx context.Context, customPerPage int) int {
func (c *Forgejo) perPage(ctx context.Context) int {
if c.pageSize == 0 {
client, err := c.newClientToken(ctx, "")
if err != nil {
@@ -687,11 +699,5 @@ func (c *Forgejo) perPage(ctx context.Context, customPerPage int) int {
}
c.pageSize = api.MaxResponseItems
}
pageSize := customPerPage
if pageSize == 0 || pageSize > c.pageSize {
pageSize = c.pageSize
}
return pageSize
return c.pageSize
}
+37 -31
View File
@@ -182,24 +182,31 @@ func (c *Gitea) Refresh(ctx context.Context, user *model.User) (bool, error) {
// Teams is supported by the Gitea driver.
func (c *Gitea) Teams(ctx context.Context, u *model.User, p *model.ListOptions) ([]*model.Team, error) {
// we paginate internally (https://github.com/woodpecker-ci/woodpecker/issues/5667)
if p.Page != 1 {
return nil, nil
}
client, err := c.newClientToken(ctx, u.AccessToken)
if err != nil {
return nil, err
}
orgs, _, err := client.ListMyOrgs(
gitea.ListOrgsOptions{
ListOptions: gitea.ListOptions{
Page: p.Page,
PageSize: c.perPage(ctx, p.PerPage),
return shared_utils.Paginate(func(page int) ([]*model.Team, error) {
orgs, _, err := client.ListMyOrgs(
gitea.ListOrgsOptions{
ListOptions: gitea.ListOptions{
Page: page,
PageSize: c.perPage(ctx),
},
},
},
)
teams := make([]*model.Team, 0, len(orgs))
for _, org := range orgs {
teams = append(teams, toTeam(org, c.url))
}
return teams, err
)
teams := make([]*model.Team, 0, len(orgs))
for _, org := range orgs {
teams = append(teams, toTeam(org, c.url))
}
return teams, err
}, -1)
}
// TeamPerm is not supported by the Gitea driver.
@@ -236,22 +243,27 @@ func (c *Gitea) Repo(ctx context.Context, u *model.User, remoteID model.ForgeRem
// Repos returns a list of all repositories for the Gitea account, including
// organization repositories.
func (c *Gitea) Repos(ctx context.Context, u *model.User, p *model.ListOptions) ([]*model.Repo, error) {
// we paginate internally (https://github.com/woodpecker-ci/woodpecker/issues/5667)
if p.Page != 1 {
return nil, nil
}
client, err := c.newClientToken(ctx, u.AccessToken)
if err != nil {
return nil, err
}
repos, _, err := client.ListMyRepos(
gitea.ListReposOptions{
ListOptions: gitea.ListOptions{
Page: p.Page,
PageSize: c.perPage(ctx, p.PerPage),
repos, err := shared_utils.Paginate(func(page int) ([]*gitea.Repository, error) {
repos, _, err := client.ListMyRepos(
gitea.ListReposOptions{
ListOptions: gitea.ListOptions{
Page: page,
PageSize: c.perPage(ctx),
},
},
},
)
if err != nil {
return nil, err
}
)
return repos, err
}, -1)
result := make([]*model.Repo, 0, len(repos))
for _, repo := range repos {
@@ -403,7 +415,7 @@ func (c *Gitea) Deactivate(ctx context.Context, u *model.User, r *model.Repo, li
hooks, _, err := client.ListRepoHooks(r.Owner, r.Name, gitea.ListHooksOptions{
ListOptions: gitea.ListOptions{
Page: page,
PageSize: c.perPage(ctx, c.pageSize),
PageSize: c.perPage(ctx),
},
})
return hooks, err
@@ -681,7 +693,7 @@ func (c *Gitea) getTagCommitSHA(ctx context.Context, repo *model.Repo, tagName s
return tag.Commit.SHA, nil
}
func (c *Gitea) perPage(ctx context.Context, customPerPage int) int {
func (c *Gitea) perPage(ctx context.Context) int {
if c.pageSize == 0 {
client, err := c.newClientToken(ctx, "")
if err != nil {
@@ -694,11 +706,5 @@ func (c *Gitea) perPage(ctx context.Context, customPerPage int) int {
}
c.pageSize = api.MaxResponseItems
}
pageSize := customPerPage
if pageSize == 0 || pageSize > c.pageSize {
pageSize = c.pageSize
}
return pageSize
return c.pageSize
}
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build !cgo
// +build !cgo
package datastore
-1
View File
@@ -13,7 +13,6 @@
// limitations under the License.
//go:build cgo
// +build cgo
package datastore
+1 -1
View File
@@ -46,7 +46,7 @@
"@tailwindcss/typography": "^0.5.16",
"@tailwindcss/vite": "4.1.16",
"@types/lodash": "^4.17.20",
"@types/node": "^22.10.5",
"@types/node": "^24.0.0",
"@types/prismjs": "^1.26.5",
"@types/semver": "^7.7.0",
"@types/tinycolor2": "^1.4.6",
+428 -451
View File
File diff suppressed because it is too large Load Diff
+18 -3
View File
@@ -374,7 +374,13 @@
},
"trusted": {
"desc": "Los contenedores de pipeline subyacentes obtienen acceso a capacidades escaladas como el montaje de volúmenes.",
"trusted": "Confiado"
"trusted": "Confiado",
"volumes": {
"volumes": "Volúmenes"
},
"security": {
"security": "Seguridad"
}
},
"visibility": {
"internal": {
@@ -390,6 +396,9 @@
"public": "Público"
},
"visibility": "Visibilidad del proyecto"
},
"allow_deploy": {
"allow": "Permitir despliegues"
}
},
"not_allowed": "No tienes acceso a las configuraciónes del repositorio",
@@ -459,7 +468,12 @@
"repositories": {
"title": "Repositorios",
"all": {
"title": "Todos los repositorios"
"title": "Todos los repositorios",
"desc": "Repositorios ordenados por última creación de flujo"
},
"last": {
"title": "Última visita",
"desc": "Repositorios visitados recientemente ordenados por tiempo de acceso"
}
},
"running_version": "Está ejecutando Woodpecker {0}",
@@ -550,5 +564,6 @@
"bitbucket_dc": "Bitbucket Data Center",
"gitea": "Gitea",
"public_only": "Solo público",
"extensions_signatures_public_key": "Clave pública para la firma"
"extensions_signatures_public_key": "Clave pública para la firma",
"login_to_woodpecker_with": "Iniciar sesión en Woodpecker con"
}
+1 -1
View File
@@ -17,7 +17,7 @@ function repoCompare(a: Repo, b: Repo) {
export function useRepoSearch(repos: Ref<Repo[] | undefined>, search: Ref<string>) {
const searchIndex = computed(
() =>
new Fuse(repos.value || [], {
new Fuse(repos.value ?? [], {
includeScore: true,
keys: ['name', 'owner'],
threshold: 0.4,
+2 -2
View File
@@ -37,7 +37,7 @@ export const usePipelineStore = defineStore('pipelines', () => {
const loading = ref(false);
function setPipeline(repoId: number, pipeline: Pipeline) {
const repoPipelines = pipelines.get(repoId) || new Map<number, Pipeline>();
const repoPipelines = pipelines.get(repoId) ?? new Map<number, Pipeline>();
repoPipelines.set(pipeline.number, {
...repoPipelines.get(pipeline.number),
...pipeline,
@@ -54,7 +54,7 @@ export const usePipelineStore = defineStore('pipelines', () => {
}
function getRepoPipelines(repoId: Ref<number>) {
return computed(() => Array.from(pipelines.get(repoId.value)?.values() || []).sort(comparePipelines));
return computed(() => Array.from(pipelines.get(repoId.value)?.values() ?? []).sort(comparePipelines));
}
function getPipeline(repoId: Ref<number>, _pipelineNumber: Ref<string | number>) {