feat(gitlab): run Renovate now on GitLab #151

Merged
deadstyle merged 10 commits from feature/142-gitlab-renovate-run into develop 2026-10-12 11:17:42 -05:00
Owner

N (Run Renovate now) works on GitLab hosts, as the PM decided on 2026-10-12.

  • Setting: on a GitLab host, renovate_workflow is the Renovate project's path, for example group/renovate-runner. Subgroups are allowed. Settings and onboarding refuse anything else with "Use a project path, for example group/renovate-runner". Forgejo, Gitea and GitHub are unchanged.
  • Run: N starts that project's pipeline on its default branch (POST /projects/:id/pipeline). A one-repo run sends the repo as the CI variable RENOVATE_AUTODISCOVER_FILTER, and an all-repos run sends no variables. A 400 (for example, rules that block API-started pipelines) shows GitLab's reason. A 404 counts as not found.
  • Docs: design.md (onboarding step 6, Settings, Running Renovate now), the README and architecture.md describe the GitLab form. The endpoint is marked unverified until it runs against gitlab.com.
  • Existing configs: a GitLab host that already has an owner/repo/file value now fails config load. N was hidden on GitLab before, so none should exist.

Evidence

  • make test ok in every package (-race). golangci-lint v2.14.0 (the CI pin) reports 0 issues, and fmt --diff is clean.
  • Tests were written red-first from the acceptance criteria. Mutation-checked: one hollow spot (the Settings placeholder on GitLab) gained a test.

Refs #142

🤖 Generated with Claude Code

`N` (Run Renovate now) works on GitLab hosts, as the PM decided on 2026-10-12. - **Setting:** on a GitLab host, `renovate_workflow` is the Renovate project's path, for example `group/renovate-runner`. Subgroups are allowed. Settings and onboarding refuse anything else with "Use a project path, for example group/renovate-runner". Forgejo, Gitea and GitHub are unchanged. - **Run:** `N` starts that project's pipeline on its default branch (`POST /projects/:id/pipeline`). A one-repo run sends the repo as the CI variable `RENOVATE_AUTODISCOVER_FILTER`, and an all-repos run sends no variables. A 400 (for example, rules that block API-started pipelines) shows GitLab's reason. A 404 counts as not found. - **Docs:** design.md (onboarding step 6, Settings, Running Renovate now), the README and architecture.md describe the GitLab form. The endpoint is marked unverified until it runs against gitlab.com. - **Existing configs:** a GitLab host that already has an `owner/repo/file` value now fails config load. `N` was hidden on GitLab before, so none should exist. **Evidence** - `make test` ok in every package (`-race`). golangci-lint v2.14.0 (the CI pin) reports `0 issues`, and `fmt --diff` is clean. - Tests were written red-first from the acceptance criteria. Mutation-checked: one hollow spot (the Settings placeholder on GitLab) gained a test. Refs #142 🤖 Generated with [Claude Code](https://claude.com/claude-code)
N starts the configured Renovate project's pipeline on its default
branch; a one-repo run passes RENOVATE_AUTODISCOVER_FILTER as a CI
variable. renovate_workflow is a project path on GitLab and is refused
otherwise in config, Settings and onboarding.

Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
test(ui): Settings workflow editor placeholder follows the host type
All checks were successful
ci / check (pull_request) Successful in 1m10s
9758b9137f
Refs #142

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
deadstyle merged commit 310d28d93d into develop 2026-10-12 11:17:42 -05:00
deadstyle deleted branch feature/142-gitlab-renovate-run 2026-10-12 11:17:42 -05:00
Sign in to join this conversation.
No description provided.