\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).",[2908,2911],{"name":2909,"color":2910},"bug","d73a4a",{"name":2866,"color":2867},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.77493274,{"description":2918,"labels":2919,"number":2927,"owner":2875,"repository":2876,"state":2877,"title":2928,"updated_at":2929,"url":2930,"score":2931},"### Clear and concise description of the problem\r\n\r\nIt is not possible to see list of older pipelines for a repo\r\n\r\n### Suggested solution\r\n\r\nAdd pagination on https://ci.woodpecker-ci.org/repos/3780\r\n\r\n### Alternative\r\n\r\nAdd a load more button.\r\nAlthough, I prefer pagination, because then you can share a link to the page and you will see the same view.\r\n\r\n### Additional context\r\n\r\n#### Relevant code\r\nBackend does have support for pagination\r\nhttps://github.com/woodpecker-ci/woodpecker/blob/6432109daf7e7a466c25dcc1a4f540b3dd766d94/server/api/pipeline.go#L104\r\nThe frontend store needs to support it\r\nhttps://github.com/woodpecker-ci/woodpecker/blob/6432109daf7e7a466c25dcc1a4f540b3dd766d94/web/src/store/pipelines.ts#L50\r\nThe frontend component needs to have a button, etc.\r\nhttps://github.com/woodpecker-ci/woodpecker/blob/6432109daf7e7a466c25dcc1a4f540b3dd766d94/web/src/components/repo/pipeline/PipelineList.vue\r\n\r\n### Validations\r\n\r\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]\r\n- [X] Read the [Contributing Guidelines](https://github.com/woodpecker-ci/woodpecker/blob/main/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 request the same feature to avoid creating a duplicate.",[2920,2921,2924],{"name":2869,"color":2870},{"name":2922,"color":2923},"feature","180DBE",{"name":2925,"color":2926},"good first issue","76ea72",2976,"Add pagination on repo pipelines view","2024-11-27T15:02:03Z","https://github.com/woodpecker-ci/woodpecker/issues/2976",0.7785081,{"description":2933,"labels":2934,"number":2936,"owner":2875,"repository":2876,"state":2877,"title":2937,"updated_at":2938,"url":2939,"score":2940},"### Component\n\nserver\n\n### Describe the bug\n\nRestarting a pipeline that failed due to missing secrets is not enough.\r\nI have seen it in a tag event.\r\n```\r\nsecret \"***\" not found or not allowed to be used\r\n```\r\nThen I added the secret and restarted the pipeline and the error changed to\r\n```\r\n[generic]\r\npipeline definition not found\r\n```\n\n### System Info\n\n```shell\n{\"source\":\"https://github.com/woodpecker-ci/woodpecker\",\"version\":\"next-5a7e314f5a\"}\n```\n\n\n### Additional context\n\nMight be related to https://github.com/woodpecker-ci/woodpecker/issues/1678\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).",[2935],{"name":2909,"color":2910},2982,"Restarting a pipeline that failed due to missing secrets is not enough","2024-12-08T12:10:58Z","https://github.com/woodpecker-ci/woodpecker/issues/2982",0.7924817,{"description":2942,"labels":2943,"number":2945,"owner":2875,"repository":2876,"state":2946,"title":2947,"updated_at":2948,"url":2949,"score":2950},"# Problem\r\n\r\nCurrently `/bin/sh` is used as entrypoint for every ci step. If an image does not contain `/bin/sh` it can not be used with woodpecker ATM. For example `gcr.io/kaniko-project/executor:debug` only ships with `/bin/busybox`. \r\n\r\n```go\r\n// File: /pipeline/frontend/yaml/compiler/convert.go\r\n\r\nentrypoint = []string{\"/bin/sh\", \"-c\"}\r\ncommand = []string{\"echo $CI_SCRIPT | base64 -d | /bin/sh -e\"}\r\n```\r\n\r\n# Solution\r\n\r\nAllow to exec multiple commands with the agent instead of a single combined one. This could allow to use the default entrypoint or even a specific one. Commands could be executed with something like `docker exec` instead.\r\n\r\n# Workaround\r\n\r\nCreate a plugin as plugins can define their entrypoint.",[2944],{"name":2922,"color":2923},278,"closed","Allow to change entrypoint / shell for ci step","2024-01-19T06:31:07Z","https://github.com/woodpecker-ci/woodpecker/issues/278",0.7485741,{"description":2952,"labels":2953,"number":2954,"owner":2875,"repository":2876,"state":2946,"title":2955,"updated_at":2956,"url":2957,"score":2958},"We currently have a default event filter that if not defined adds a none cron event filter. As a user cannot expect this from reading the config I propose to remove this default events list from the event-filter.",[],1863,"Remove default pipeline events filter (currently filtering cron)","2023-06-21T16:12:22Z","https://github.com/woodpecker-ci/woodpecker/issues/1863",0.7491344,{"description":2960,"labels":2961,"number":2963,"owner":2875,"repository":2876,"state":2946,"title":2964,"updated_at":2965,"url":2966,"score":2967},"### Clear and concise description of the problem\n\nsometimes one may want to debug pipelines, which may involve printing sensitive info.\r\nnow, one may fortunately set such a repo to private to protect such info, but ideally, one would be able to cleanse any such sensitive info such as to put such a repo public again.\n\n### Suggested solution\n\nallow deleting runs to cleanse sensitive info\n\n### Alternative\n\nkeep repo private to protect sensitive info\n\n### Additional context\n\nversion: next\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.",[2962],{"name":2922,"color":2923},1883,"allow deleting runs","2023-07-01T07:18:55Z","https://github.com/woodpecker-ci/woodpecker/issues/1883",0.75931907,{"description":2969,"labels":2970,"number":2973,"owner":2875,"repository":2876,"state":2946,"title":2974,"updated_at":2975,"url":2976,"score":2977},"### 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).",[2971,2972],{"name":2909,"color":2910},{"name":2866,"color":2867},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.76880383,["Reactive",2979],{},["Set"],["ShallowReactive",2982],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fcfNJnadKz0qkydbWTvyhGfZmnqJN3P4UalEY7ohzwyY":-1},"/woodpecker-ci/woodpecker/1860"]