\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).",[2042,2045],{"name":2043,"color":2044},"bug","d73a4a",{"name":1985,"color":1986},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.7425724,{"description":2052,"labels":2053,"number":2056,"owner":1994,"repository":1995,"state":1996,"title":2057,"updated_at":2058,"url":2059,"score":2060},"Restarting PR pipelines after the PR was closed, or approving them and running them that way should be prevented.",[2054,2055],{"name":1985,"color":1986},{"name":1991,"color":1992},1759,"Prevent PR pipelines from running when PR got closed already","2023-08-20T16:37:21Z","https://github.com/woodpecker-ci/woodpecker/issues/1759",0.75555885,{"description":2062,"labels":2063,"number":2068,"owner":1994,"repository":1995,"state":2069,"title":2070,"updated_at":2071,"url":2072,"score":2073},"### Component\n\nagent\n\n### Describe the bug\n\nI have a workflow that specifies an entrypoint, during execution the following error is shown\r\n\r\n`Additional property entrypoint is not allowed`\n\n### System Info\n\n```shell\nWoodpecker 2.3.0, docker.io/woodpeckerci/woodpecker-agent:v2.3.0\n```\n\n\n### Additional context\n\nPipeline snippet\r\n\r\n```\r\ncache-baseimages:\r\n image: gcr.io/kaniko-project/warmer\r\n entrypoint:\r\n - /kaniko/warmer\r\n - --dockerfile=./Dockerfile\r\n```\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]",[2064,2065],{"name":2043,"color":2044},{"name":2066,"color":2067},"backend/kubernetes","bfdadc",3477,"closed","Overriding 'entrypoint' in kubernetes backend does not work","2024-05-02T12:52:03Z","https://github.com/woodpecker-ci/woodpecker/issues/3477",0.6854281,{"description":2075,"labels":2076,"number":2079,"owner":1994,"repository":1995,"state":2069,"title":2080,"updated_at":2081,"url":2082,"score":2083},"### Component\n\nserver\n\n### Describe the bug\n\nAfter migration form 0.15.11 After migration from 0.15.11 during start of server, we get this error:\r\n\r\n```\r\nwodpecker-server_1 | {\"time\":\"2023-08-01T07:07:19Z\",\"message\":\"LogLevel = info\"}\r\nwoodpecker-server_1 | {\"level\":\"error\",\"error\":\"Migrating logs to log_entries is skipped, as we have 49180 entries to convert. Set 'WOODPECKER_MIGRATIONS_ALLOW_LONG' to 'true' to migrate anyway\",\"time\":\"2023-08-01T07:07:19Z\",\"message\":\"migration task 'migrate-logs-to-log_entries' failed but is not required\"}\r\nwoodpecker-server_1 | {\"level\":\"info\",\"time\":\"2023-08-01T07:07:19Z\",\"message\":\"Starting Woodpecker server with version '1.0.0'\"}\r\n\r\n```\r\nSetting WOODPECKER_MIGRATIONS_ALLOW_LONG to true does nothing. \r\n\n\n### System Info\n\n```shell\n{\"source\":\"https://github.com/woodpecker-ci/woodpecker\",\"version\":\"1.0.0\"}\r\n\r\n\r\nversion: '3'\r\n\r\nservices:\r\n woodpeckerdb:\r\n image: postgres:14.5-alpine\r\n restart: always\r\n environment:\r\n POSTGRES_DB: xxxxx\r\n POSTGRES_USER: xxx\r\n POSTGRES_PASSWORD: xxx\r\n TZ: Europe/Zagreb\r\n volumes:\r\n - ./_data/db/postgres:/var/lib/postgresql/data\r\n \r\n woodpecker-server:\r\n #image: woodpeckerci/woodpecker-server:v0.15.11-alpine\r\n image: woodpeckerci/woodpecker-server:v1.0.0-alpine\r\n restart: always\r\n depends_on:\r\n - woodpeckerdb\r\n volumes:\r\n - ./_data/woodpecker:/var/lib/woodpecker\r\n environment:\r\n - WOODPECKER_OPEN=true\r\n - WOODPECKER_OPEN=true\r\n - WOODPECKER_HOST=https://ci.domain.local\r\n - WOODPECKER_AGENT_SECRET=xxxx\r\n - WOODPECKER_GITEA=true\r\n - WOODPECKER_GITEA_URL=https://gitea.domain.local\r\n - WOODPECKER_GITEA_CLIENT=085e34c6-a362-42d2-9344-d4ab5f556bb4\r\n - WOODPECKER_GITEA_SECRET=gto_53npywpjlwwp4planwetxa2ixqbjloh4rq37sl6dfwqqzlej547q\r\n - WOODPECKER_AUTHENTICATE_PUBLIC_REPOS=true\r\n - WOODPECKER_BACKEND_DOCKER_NETWORK=fronted_network\r\n - WOODPECKER_DATABASE_DRIVER=postgres\r\n - WOODPECKER_DATABASE_DATASOURCE=postgres://woodpecker:woodpecker@woodpeckerdb:5432/woodpeckerdb?sslmode=disable\r\n - WOODPECKER_MIGRATIONS_ALLOW_LONG=true\r\n```\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).",[2077,2078],{"name":2043,"color":2044},{"name":1985,"color":1986},2079,"After migration from 0.15.11 getting error \"error\":\"Migrating logs to log_entries is skipped, as we have 49180 entries to convert on app start","2023-08-21T07:29:47Z","https://github.com/woodpecker-ci/woodpecker/issues/2079",0.6970846,{"description":2085,"labels":2086,"number":2088,"owner":1994,"repository":1995,"state":2069,"title":2089,"updated_at":2090,"url":2091,"score":2092},"### Clear and concise description of the problem\n\nAllow for the pipeline to cache artifacts, much like what Travis CI allows you to do: https://docs.travis-ci.com/user/caching/\r\n\r\nThis is currently possible in Woodpecker, but only if using volumes. It would be pretty neat if volumes weren't required and Woodpecker could cache items without exposing security issues.\n\n### Suggested solution\n\nWhen the pipeline completes, save the indicated directories somewhere. Then, on subsequent runs of the pipeline, mount that directory automatically. Perhaps automatic volume creation?\n\n### Alternative\n\nThe current method is insecure and should not be available to untrusted users.\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/master/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.",[2087],{"name":2005,"color":2006},758,"Allow caching artifacts without privileged containers and volumes","2023-08-20T20:32:08Z","https://github.com/woodpecker-ci/woodpecker/issues/758",0.7196437,{"description":2094,"labels":2095,"number":2097,"owner":1994,"repository":1995,"state":2069,"title":2098,"updated_at":2099,"url":2100,"score":2101},"### Clear and concise description of the problem\n\nIt seems like `index.html` hardcodes assets like this `/web-config.js`, etc.\r\n\r\nServing it under a path like `/ci` means that all URLs are broken.\r\n\r\nI didn't see anything in the documentation or existing issues about serving the web UI at a non-root (`/`) path.\n\n### Suggested solution\n\nPerhaps if `WOODPECKER_HOST` looks like this: `https://DOMAIN/ci`, then Woodpecker CI should infer the path from there and contructs its links correctly (adding a `/ci` prefix automatically).\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/master/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.",[2096],{"name":2005,"color":2006},1636,"Make serving under a subpath work","2023-04-29T15:51:52Z","https://github.com/woodpecker-ci/woodpecker/issues/1636",0.7270214,["Reactive",2103],{},["Set"],["ShallowReactive",2106],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"4SA95tnqAfKGXMyEcf8vsp3BJSHE4SArG7SoHhoktps":-1},"/woodpecker-ci/woodpecker/1883"]