mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2026-04-15 01:41:56 +00:00
Merge branch 'main' into pr/4861
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,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,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/**'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build test
|
||||
// +build test
|
||||
|
||||
package exec
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build test
|
||||
// +build test
|
||||
|
||||
package main
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build generate
|
||||
// +build generate
|
||||
|
||||
package main
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build !generate
|
||||
// +build !generate
|
||||
|
||||
package main
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
// *********************************************************
|
||||
|
||||
//go:build generate
|
||||
// +build generate
|
||||
|
||||
package main
|
||||
|
||||
|
||||
@@ -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,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
@@ -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",
|
||||
|
||||
@@ -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",
|
||||
|
||||
Generated
+648
-656
File diff suppressed because it is too large
Load Diff
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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=
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build test
|
||||
// +build test
|
||||
|
||||
package dummy
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build linux
|
||||
// +build linux
|
||||
|
||||
package local
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build !cgo
|
||||
// +build !cgo
|
||||
|
||||
package datastore
|
||||
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
// limitations under the License.
|
||||
|
||||
//go:build cgo
|
||||
// +build cgo
|
||||
|
||||
package datastore
|
||||
|
||||
|
||||
+1
-1
@@ -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",
|
||||
|
||||
Generated
+428
-451
File diff suppressed because it is too large
Load Diff
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>) {
|
||||
|
||||
Reference in New Issue
Block a user