\r\n \u003Clink rel=\"alternate icon\" type=\"image/png\" href=\"/favicons/favicon-light-default.png\" id=\"favicon-png\" />\r\n \u003Clink rel=\"icon\" type=\"image/svg+xml\" href=\"/favicons/favicon-light-default.svg\" id=\"favicon-svg\" />\r\n \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\r\n \u003Cmeta name=\"theme-color\" content=\"#65a30d\" />\r\n \u003Ctitle>Woodpecker\u003C/title>\r\n \u003Cscript type=\"\" src=\"/web-config.js\">\u003C/script>\r\n \u003Cscript type=\"module\" crossorigin src=\"/assets/index-4b7b57db.js\">\u003C/script>\r\n \u003Clink rel=\"stylesheet\" href=\"/assets/index-f123c06a.css\">\r\n \u003C/head>\r\n \u003Cbody>\r\n \u003Cdiv id=\"app\">\u003C/div>\r\n\r\n \u003C/body>\r\n\u003C/html>\r\n```\r\n\r\nThat is basically an \"empty\" page. Let's look at the response code:\r\n```\r\n$ curl -I http://localhost:8000/foo\r\nHTTP/1.1 200 OK\r\nX-Woodpecker-Version: next-45319b24\r\n# ...etc.\r\n```\r\n\r\nThat should have returned 404.\r\n\r\nNow let's request a non-existent API endpoint:\r\n```\r\n$ curl -I http://localhost:8000/api/bar\r\nHTTP/1.1 200 OK\r\nX-Woodpecker-Version: next-45319b24\r\n# ...etc.\r\n```\r\n\r\nSame thing.\r\n\r\nNow let's request a real API endpoint, for healthchecks:\r\n```\r\n$ curl http://localhost:8000/api/healthz\r\n\u003C!DOCTYPE html>\r\n\u003Chtml lang=\"en\">\r\n # ...\r\n\u003C/html>\r\n\r\n$ curl -I http://localhost:8000/api/healthz\r\nHTTP/1.1 200 OK\r\nX-Woodpecker-Version: next-45319b24\r\n# ...etc.\r\n```\r\n\r\nSame thing. Also, it should not return a page, only a REST response.\r\n\r\nClean up:\r\n```\r\n$ apk delete curl\r\n$ exit\r\n```\r\n\r\nSummary:\r\n- both existent and non-existent endpoints and pages respond with 200\r\n- that means the `/api/healthz` endpoint is not working: it's a \"proof of life\" rather than \"proof of health\"\r\n- and the health endpoint should only return a json REST response, not a page\r\n\r\n### System Info\r\n\r\n```shell\r\nversion next-45319b24-alpine\r\ndockerised\r\n```\r\n\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Validations\r\n\r\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/master/CONTRIBUTING.md).\r\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\r\n- [X] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\r\n- [X] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]\r\n- [X] Check that this is a concrete bug. For Q&A join our [Discord Chat Server](https://discord.gg/fcMQqSMXJy) or the [Matrix room](https://matrix.to/#/#woodpecker:matrix.org).",[2946,2949],{"name":2947,"color":2948},"bug","d73a4a",{"name":2950,"color":2951},"server","5D7A92",1947,"All pages and API endpoints (including non-existent ones) return 200","2025-03-16T13:50:31Z","https://github.com/woodpecker-ci/woodpecker/issues/1947",0.786662,{"description":2958,"labels":2959,"number":2965,"owner":2907,"repository":2908,"state":2909,"title":2966,"updated_at":2967,"url":2968,"score":2969},"### Clear and concise description of the problem\n\nThe \"Run pipeline\" button in the UI, which is triggered for `\"event: manual\"`, currently executes all existing pipeline definitions under `.woodpecker/`.\n\n### Suggested solution\n\nThe button could allow invoking specific pipelines only instead of starting all existing ones.\n\n### Alternative\n\n_No response_\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Checked that the feature isn't part of the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't already an [issue](https://github.com/woodpecker-ci/woodpecker/issues) that request the same feature to avoid creating a duplicate.",[2960,2961,2962],{"name":2950,"color":2951},{"name":2904,"color":2905},{"name":2963,"color":2964},"ux","fef2c0",2763,"Run pipeline: allow executing a single/specific pipeline if more than one pipeline definitions exist","2023-12-20T12:51:01Z","https://github.com/woodpecker-ci/woodpecker/issues/2763",0.7868964,{"description":2971,"labels":2972,"number":2974,"owner":2907,"repository":2908,"state":2909,"title":2975,"updated_at":2976,"url":2977,"score":2978},"### Component\n\nserver\n\n### Describe the bug\n\n\r\n\r\nUsing 2 dependent workflows and the autoscaler with `WOODPECKER_MIN_AGENTS=0` and `WOODPECKER_AGENT_IDLE_TIMEOUT=0s` it is possible to create the above queue state.\r\n\r\nThe task is waiting for dependencies, but all dependencies are already done.\r\n\r\nThe task is moved to pending when an agent is manually added. It should move to pending without an agent being present.\r\n\r\nBecause there is no task in pending the autoscaler also doesn't create a new agent, which creates a deadlock.\n\n### Steps to reproduce\n\n1. Create two dependent workflows.\r\n2. Use the autoscaler with `WOODPECKER_MIN_AGENTS=0` and `WOODPECKER_AGENT_IDLE_TIMEOUT=0s`\n\n### Expected behavior\n\nWhen a task has no dependencies left it should move from `waiting for dependencies` to `pending`.\n\n### System Info\n\n```shell\nnext-4683968925\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]",[2973],{"name":2947,"color":2948},4125,"Task stuck at waiting for dependencies","2024-11-05T02:56:35Z","https://github.com/woodpecker-ci/woodpecker/issues/4125",0.7905553,{"description":2980,"labels":2981,"number":2983,"owner":2907,"repository":2908,"state":2984,"title":2985,"updated_at":2986,"url":2987,"score":2988},"Queue seems to be missing items. This could be either caused by a server restart or by adding / removing agents through the autoscaler.\r\n\r\nWe have just 1 queue entry, but at least 3 pipelines should be running somehow.\r\n\r\n\r\n\r\n\r\n",[2982],{"name":2947,"color":2948},1915,"closed","Queue items not matching running pipelines","2024-02-09T14:07:38Z","https://github.com/woodpecker-ci/woodpecker/issues/1915",0.7456469,{"description":2990,"labels":2991,"number":2994,"owner":2907,"repository":2908,"state":2984,"title":2995,"updated_at":2996,"url":2997,"score":2998},"### Component\n\nweb-ui\n\n### Describe the bug\n\nopen a pipeline with its direct link, e.g. https://ci.woodpecker-ci.org/repos/3780/pipeline/11014 (or reload existing)\r\n\r\nthe \"Warnings\" tab has different positions, but it's not between workflows/configs:\r\n\r\n\r\nIt's working if opening from the list.\r\n\r\nExpected: \r\n\r\n\n\n### System Info\n\n```shell\nci.woodpecker-ci.org\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]\n- [X] Check that this is a concrete bug. For Q&A join our [Discord Chat Server](https://discord.gg/fcMQqSMXJy) or the [Matrix room](https://matrix.to/#/#woodpecker:matrix.org).",[2992,2993],{"name":2947,"color":2948},{"name":2918,"color":2919},3021,"Opening ui directly: tabs have wrong order","2025-01-20T14:21:07Z","https://github.com/woodpecker-ci/woodpecker/issues/3021",0.74996614,{"description":3000,"labels":3001,"number":3003,"owner":2907,"repository":2908,"state":2984,"title":3004,"updated_at":3005,"url":3006,"score":3007},"### Component\n\nserver, agent\n\n### Describe the bug\n\nThe server seems to refuse connections on port 9000, even though it says it is listening.\n\n### System Info\n\n```shell\n2.1.1\r\n\r\nThis is running in kubernetes via a custom helm chart.\r\n\r\nI have the server available through a traefik ingress.\r\n\r\nThe gRPC service is available to the agent as a clusterIP.\r\n\r\nI did also try this with the `latest` image tag for both the server and the agent.\n```\n\n\n### Additional context\n\nAgent logs:\r\n```\r\n{\"level\":\"info\",\"time\":\"2024-01-20T15:16:24Z\",\"caller\":\"/src/cmd/common/logger.go:100\",\"message\":\"LogLevel = trace\"}\r\n{\"level\":\"info\",\"time\":\"2024-01-20T15:16:24Z\",\"caller\":\"/src/cmd/agent/config.go:45\",\"message\":\"no agent config found at '/etc/woodpecker/agent.conf', start with defaults\"}\r\nrpc error: code = DeadlineExceeded desc = context deadline exceeded\r\n```\r\n\r\nGiven that there is no shell (scratch image) on either the server or the agent, I could not exec in and do any diagnostics.\r\n\r\nI did run a `kubectl exec ... /bin/woodpecker-server`:\r\n```\r\n3:26PM INF LogLevel = info\r\n3:26PM FTL failed to listen on grpc-addr error=\"listen tcp :9000: bind: address already in use\"\r\n```\r\n\r\nI have also written an `initContainer` for the agent:\r\n\r\n```\r\nwhile ! nc -z woodpecker.woodpecker.svc.cluster.local 9000; do\r\n echo \"Waiting for port 9000 to be available...\"\r\n sleep 2\r\ndone\r\n```\r\n\r\nUnfortunately, this hangs indefinitely.\r\n\r\n\r\nAlso, your [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md) link does not exist.\n\n### Validations\n\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]\n- [X] Check that this is a concrete bug. For Q&A join our [Discord Chat Server](https://discord.gg/fcMQqSMXJy) or the [Matrix room](https://matrix.to/#/#woodpecker:matrix.org).",[3002],{"name":2947,"color":2948},3231,"Agent Cannot Connect To Server","2024-01-20T17:17:39Z","https://github.com/woodpecker-ci/woodpecker/issues/3231",0.76134235,{"description":3009,"labels":3010,"number":3013,"owner":2907,"repository":2908,"state":2984,"title":3014,"updated_at":3015,"url":3016,"score":3017},"### Component\n\nserver\n\n### Describe the bug\n\nWhen I provision my woodpecker server, I supply a `gitea-access-token` global secret via the API (`https://woodpecker.example.com/api/secrets`). If I go to the \"settings\" page then the \"secrets\" tab, I can see that global secret in the list.\r\n\r\nThat global secret is used whenever a pipeline runs a \"push\" step - which uses the docker buildx plugin to push an image to the gitea docker registry.\r\n\r\nEven though that works, it logs an error (notice at the end it complains about `gitea-access-token`):\r\n```\r\n2023/08/01 14:17:28 [Recovery] 2023/08/01 - 14:17:28 panic recovered:\r\nruntime error: invalid memory address or nil pointer dereference\r\n/usr/local/go/src/runtime/panic.go:260 (0x45455c)\r\n/usr/local/go/src/runtime/signal_unix.go:837 (0x45452c)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/forge/gitea/gitea.go:492 (0xdfa9ae)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/api/hook.go:111 (0xd4c370)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xdb6f4d)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/token/token.go:33 (0xdb6ad8)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xd44821)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/session/user.go:69 (0xd44807)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xd4691e)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/store.go:29 (0xd46905)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xd46247)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/logger.go:23 (0xd4622a)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xdb6939)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/header/header.go:38 (0xdb6864)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xdb67c1)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/middleware/header/header.go:30 (0xdb67a6)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xdbbfca)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/router/router.go:44 (0xdbbfb0)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xafcc41)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/recovery.go:102 (0xafcc2c)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/context.go:174 (0xafba4a)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/gin.go:620 (0xafb6d1)\r\n/woodpecker/src/github.com/woodpecker-ci/woodpecker/vendor/github.com/gin-gonic/gin/gin.go:576 (0xafb1fc)\r\n/usr/local/go/src/net/http/server.go:2936 (0x7b2195)\r\n/usr/local/go/src/net/http/server.go:1995 (0x7ad6b1)\r\n/usr/local/go/src/runtime/asm_amd64.s:1598 (0x4748a0)\r\n\r\n{\"level\":\"error\",\"error\":\"no secret found for \\\"gitea-access-token\\\"\",\"time\":\"2023-08-01T14:17:28+01:00\",\"message\":\"paramsToEnv\"}\r\n```\r\n\r\nI don't understand this error because **everything works**. Really weird!\n\n### System Info\n\n```shell\n1.0.0\r\ndocker\n```\n\n\n### Additional context\n\n_No response_\n\n### Validations\n\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/main/CONTRIBUTING.md).\n- [X] Read the [docs](https://woodpecker-ci.org/docs/intro).\n- [X] Check that there isn't [already an issue](https://github.com/woodpecker-ci/woodpecker/issues) that reports the same bug to avoid creating a duplicate.\n- [X] Checked that the bug isn't fixed in the `next` version already [https://woodpecker-ci.org/faq#which-version-of-woodpecker-should-i-use]\n- [X] Check that this is a concrete bug. For Q&A join our [Discord Chat Server](https://discord.gg/fcMQqSMXJy) or the [Matrix room](https://matrix.to/#/#woodpecker:matrix.org).",[3011,3012],{"name":2947,"color":2948},{"name":2950,"color":2951},2084,"\"No secret found\" error for global secret","2023-11-03T09:55:06Z","https://github.com/woodpecker-ci/woodpecker/issues/2084",0.7654545,["Reactive",3019],{},["Set"],["ShallowReactive",3022],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f7S8gbKKfE1t5uJk_1M3KRHUD1SfQq8O1-P0_YtoNA8U":-1},"/woodpecker-ci/woodpecker/708"]