\r\n\n\n### Steps to reproduce\n\n.\n\n### Expected behavior\n\n_No response_\n\n### System Info\n\n```shell\n\"next-d126cf9e35\"\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]",[2004,2007],{"name":2005,"color":2006},"bug","d73a4a",{"name":1988,"color":1989},4677,"`tag` pipelines are missing avatar and commit title","2025-01-12T06:19:42Z","https://github.com/woodpecker-ci/woodpecker/issues/4677",0.75443524,{"description":2014,"labels":2015,"number":2020,"owner":1994,"repository":1995,"state":1996,"title":2021,"updated_at":2022,"url":2023,"score":2024},"I think we should have a look at https://nextcloud.com/contribute/ and chery-pick some ideas from that",[2016,2019],{"name":2017,"color":2018},"documentation","7D625D",{"name":1991,"color":1992},4113,"Improve docs about starting to contribute","2024-09-15T09:47:05Z","https://github.com/woodpecker-ci/woodpecker/issues/4113",0.7662658,{"description":2026,"labels":2027,"number":2030,"owner":1994,"repository":1995,"state":1996,"title":2031,"updated_at":2032,"url":2033,"score":2034},"https://ci.woodpecker-ci.org/repos/8987/pipeline/94/errors\r\n\r\nversion: current main",[2028,2029],{"name":2005,"color":2006},{"name":1985,"color":1986},4249,"[Bug] MultiForge: second forge can not be used","2024-10-25T17:33:00Z","https://github.com/woodpecker-ci/woodpecker/issues/4249",0.77437764,{"description":2036,"labels":2037,"number":2039,"owner":1994,"repository":1995,"state":1996,"title":2040,"updated_at":2041,"url":2042,"score":2043},"### 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).",[2038],{"name":2005,"color":2006},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.7747087,{"description":2045,"labels":2046,"number":2049,"owner":1994,"repository":1995,"state":1996,"title":2050,"updated_at":2051,"url":2052,"score":2053},"### Clear and concise description of the problem\n\nWhen following the logs of a step I would like the UI to automatically select the next step if the step I am currently looking at has finished.\n\n### Suggested solution\n\nAutomatically jump to the next step when currently visible step status changes to successfully finished.\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 [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.",[2047,2048],{"name":1988,"color":1989},{"name":1991,"color":1992},3801,"Log jump to next step when finished","2024-06-24T11:59:39Z","https://github.com/woodpecker-ci/woodpecker/issues/3801",0.77667606,{"description":2055,"labels":2056,"number":2064,"owner":1994,"repository":1995,"state":2065,"title":2066,"updated_at":2067,"url":2068,"score":2069},"like the agent:\r\nhttps://github.com/woodpecker-ci/woodpecker/blob/205f8ecc1649ab48a9d5fb52b0ecd7b8c24abf4f/docker/Dockerfile.agent.multiarch#L21\r\n\r\nref https://docs.docker.com/engine/reference/builder/#healthcheck\r\n\r\nTODO:\r\n- [ ] add subcommand to server that can test against https://github.com/woodpecker-ci/woodpecker/blob/205f8ecc1649ab48a9d5fb52b0ecd7b8c24abf4f/server/router/router.go#L69\r\n- [ ] use subcommand in container",[2057,2058,2061],{"name":1985,"color":1986},{"name":2059,"color":2060},"feature","180DBE",{"name":2062,"color":2063},"good first issue","76ea72",1943,"closed","Add an healthcheck to server container","2023-07-25T13:55:31Z","https://github.com/woodpecker-ci/woodpecker/issues/1943",0.71428514,{"description":2071,"labels":2072,"number":2077,"owner":1994,"repository":1995,"state":2065,"title":2078,"updated_at":2079,"url":2080,"score":2081},"### Clear and concise description of the problem\r\n\r\nI'm trying to run a container image build step in my pipeline that uses [buildah](https://quay.io/repository/buildah/stable?tab=info). I'm running into a lot of permission errors like this:\r\n\r\n```\r\ntime=\"2023-10-07T19:59:26Z\" level=error msg=\"writing \\\"0 0 4294967295\\\\n\\\" to /proc/17/uid_map: write /proc/17/uid_map: operation not permitted\"\r\ntime=\"2023-10-07T19:59:26Z\" level=error msg=\"(Unable to determine exit status)\"\r\n```\r\n\r\nAfter some experimentation with podman and buildah containers on my cluster, I have determined that I need to configure a few different settings at the Pod level for this to work:\r\n\r\n- `metadata.annotations`: I need to be able to set `container.apparmor.security.beta.kubernetes.io/\u003Ccontainer_name>` to use a custom apparmor profile for my buildah container. I would like to use the `WOODPECKER_BACKEND_K8S_POD_ANNOTATIONS` env variable, but since the container names are randomly generated I'm not sure how to make this work.\r\n- `spec.securityContext`: The only way I have found to make buildah work is to run it as non-root. This means that I need to set `runAsUser`, `runAsGroup`, and `fsGroup` on the Pod level `securityContext` (not the container level).\r\n\r\n### Suggested solution\r\n\r\nAdding support for `securityContext` seems like it should be fairly straightforward. We could just follow that same approach that is currently used for `resources`, `nodeSelector`, etc. [documented here](https://woodpecker-ci.org/docs/next/administration/backends/kubernetes#resources).\r\n\r\nThe AppArmor profile is trickier since the container name needs to be included in the annotation key. I'm imagining a configuration like `backend_options.kubernetes.appArmorProfile` that could take all of the possible values for the annotation [documented here](https://kubernetes.io/docs/tutorials/security/apparmor/). Then, the pod generation logic would just look for this configuration and add the appropriate annotation if it's found.\r\n\r\n### Alternative\r\n\r\nI could disable AppArmor entirely, but that's not really advisable for a production environment. I could also try to find a way to get the buildah container running as root (it should be possible), but again, that's not ideal from a security perspective.\r\n\r\n### Additional context\r\n\r\nThis is somewhat of a follow up from #2510. I'm trying to get Woodpecker to run on my kubeadm/CRI-O based cluster running on Debian which I believe makes me some kind of leprechaun/unicorn/lochness monster. There definitely aren't many of us out there.\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.",[2073,2074],{"name":1991,"color":1992},{"name":2075,"color":2076},"backend/kubernetes","bfdadc",2545,"Support AppArmor annotations and securityContext in kubernetes backend","2024-01-12T22:32:26Z","https://github.com/woodpecker-ci/woodpecker/issues/2545",0.73470193,{"description":2083,"labels":2084,"number":2086,"owner":1994,"repository":1995,"state":2065,"title":2087,"updated_at":2088,"url":2089,"score":2090},"### Component\n\nserver, agent\n\n### Describe the bug\n\nIf you try to set proxy related env vars in a pipeline step, they won't get used. They are present but without the given values:\r\n\r\n```yaml\r\nwhen:\r\n - event: [pull_request, tag, cron]\r\n - event: push\r\n branch:\r\n - ${CI_REPO_DEFAULT_BRANCH}\r\n - renovate/*\r\n\r\nvariables:\r\n - &golang \"golang:1.21\"\r\n - proxy_args: &proxy_args\r\n - \"http_proxy=http://swarmproxy:8888\"\r\n - \"https_proxy=http://swarmproxy:8888\"\r\n - \"no_proxy=.myhost.com\"\r\n - \"TESTENV=DEBUGGING\"\r\nsteps:\r\n test:\r\n image: *golang\r\n environment:\r\n - \u003C\u003C: *proxy_args\r\n commands:\r\n - env | sort\r\n - go test -cover ./...\r\n```\r\n\r\nThe output looks like this:\r\n\r\n```shell\r\n....\r\nGOLANG_VERSION=1.21.4\r\nGOPATH=/go\r\nGOTOOLCHAIN=local\r\nHOME=/root\r\nHOSTNAME=45d463959e69\r\nHTTPS_PROXY=\r\nHTTP_PROXY=\r\nNO_PROXY=\r\nPATH=/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\r\nPWD=/woodpecker/src/xxxxxx/Templates/plugin-extend-env\r\nSHELL=/bin/sh\r\nTESTENV=DEBUGGING\r\nhttp_proxy=\r\nhttps_proxy=\r\nno_proxy=\r\n+ go test -cover ./...\r\ngo: downloading github.com/urfave/cli/v2 v2.25.7\r\ngo: downloading github.com/sirupsen/logrus v1.9.3\r\ngo: downloading github.com/Masterminds/semver/v3 v3.2.1\r\ngo: downloading github.com/joho/godotenv v1.5.1\r\nsemver.go:6:2: github.com/Masterminds/semver/v3@v3.2.1: Get \"https://proxy.golang.org/github.com/%21masterminds/semver/v3/@v/v3.2.1.zip\": dial tcp: lookup proxy.golang.org on 127.0.0.11:53: no such host\r\ntools.go:3:8: github.com/joho/godotenv@v1.5.1: Get \"https://proxy.golang.org/github.com/joho/godotenv/@v/v1.5.1.zip\": dial tcp: lookup proxy.golang.org on 127.0.0.11:53: no such host\r\nlogger.go:6:2: github.com/sirupsen/logrus@v1.9.3: Get \"https://proxy.golang.org/github.com/sirupsen/logrus/@v/v1.9.3.zip\": dial tcp: lookup proxy.golang.org on 127.0.0.11:53: no such host\r\nflags.go:4:2: github.com/urfave/cli/v2@v2.25.7: Get \"https://proxy.golang.org/github.com/urfave/cli/v2/@v/v2.25.7.zip\": dial tcp: lookup proxy.golang.org on 127.0.0.11:53: no such host\r\n...\r\n```\n\n### System Info\n\n```shell\n{\r\n \"source\": \"https://github.com/woodpecker-ci/woodpecker\",\r\n \"version\": \"1.0.5\"\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).",[2085],{"name":2005,"color":2006},2858,"Proxy environment variables not passed through in pipeline steps","2023-12-03T16:50:09Z","https://github.com/woodpecker-ci/woodpecker/issues/2858",0.7372586,{"description":2092,"labels":2093,"number":2096,"owner":1994,"repository":1995,"state":2065,"title":2097,"updated_at":2098,"url":2099,"score":2100},"### Clear and concise description of the problem\r\n\r\nIt doesn't make much sense to duplicate the repositories in the `last visited` block too, if there are \u003C=4 in total\r\n\r\n\r\nBesides, odd number of items look not so smooth.\r\n\r\n### Suggested solution\r\n\r\nDo not display `last visited` block if there are only four repositories\r\n\r\n### Alternative\r\n\r\nUse [repos pinning](https://github.com/woodpecker-ci/woodpecker/issues/4424#issuecomment-2493207007)\r\n\r\n### Additional context\r\n\r\nWoodpecker `next-9f0611d1a1`, Gitea `1.22.4`, Postgres `16`\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 [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.",[2094,2095],{"name":1988,"color":1989},{"name":1991,"color":1992},4517,"Do not show last visited repos if there is less than 4 in total","2025-01-20T15:23:54Z","https://github.com/woodpecker-ci/woodpecker/issues/4517",0.7401337,["Reactive",2102],{},["Set"],["ShallowReactive",2105],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"hwOi67m_4C3j4koUfc0gJ89kpZZzrFlB0VzN-Jy0r-Y":-1},"/woodpecker-ci/woodpecker/3553"]