From d809f1691221b24b6f912f00b31f3e7e00ec8a71 Mon Sep 17 00:00:00 2001 From: Roemer Date: Tue, 12 May 2026 15:58:52 +0000 Subject: [PATCH] feat: Added presets for renovate/gonovate --- .vscode/settings.json | 5 + gonovate-preset.yaml | 146 ++++++++++ renovate-preset.json | 626 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 777 insertions(+) create mode 100644 .vscode/settings.json create mode 100644 gonovate-preset.yaml create mode 100644 renovate-preset.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..b7082f9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "json.schemaDownload.trustedDomains": { + "https://docs.renovatebot.com/renovate-schema.json": true + } +} \ No newline at end of file diff --git a/gonovate-preset.yaml b/gonovate-preset.yaml new file mode 100644 index 0000000..820bd80 --- /dev/null +++ b/gonovate-preset.yaml @@ -0,0 +1,146 @@ +rules: + # Special rules for some dependencies + - matches: + dependencyNames: + - nginx/nginx + dependencyConfig: + extractVersion: (?:release-)?(.*) + # Rule for the dependencies inside the features + - matches: + managerTypes: + - devcontainer + managerConfig: + devcontainerConfig: + ghcr.io/postfinance/devcontainer-features/browsers: + - property: chromeVersion + datasource: browser-version + dependencyName: chrome + - property: firefoxVersion + datasource: browser-version + dependencyName: firefox + # TODO: build-essential + ghcr.io/postfinance/devcontainer-features/claude-code: + - property: version + datasource: github-tags + dependencyName: anthropics/claude-code + ghcr.io/postfinance/devcontainer-features/docker-out: + - property: version + datasource: github-tags + dependencyName: docker/cli + - property: composeVersion + datasource: github-tags + dependencyName: docker/compose + - property: buildxVersion + datasource: github-tags + dependencyName: docker/buildx + # TODO: dotnet + ghcr.io/postfinance/devcontainer-features/git-lfs: + - property: version + datasource: github-tags + dependencyName: git-lfs/git-lfs + ghcr.io/postfinance/devcontainer-features/github-cli: + - property: version + datasource: github-tags + dependencyName: cli/cli + ghcr.io/postfinance/devcontainer-features/github-copilot-cli: + - property: version + datasource: github-tags + dependencyName: github/copilot-cli + ghcr.io/postfinance/devcontainer-features/gitlab-cli: + - property: version + datasource: gitlab-packages + dependencyName: gitlab-org/cli:glab + ghcr.io/postfinance/devcontainer-features/go: + - property: version + datasource: go-version + dependencyName: go-stable + ghcr.io/postfinance/devcontainer-features/gonovate: + - property: version + datasource: github-tags + dependencyName: Roemer/gonovate + ghcr.io/postfinance/devcontainer-features/goreleaser: + - property: version + datasource: github-tags + dependencyName: goreleaser/goreleaser + # TODO: instant-client + ghcr.io/postfinance/devcontainer-features/jfrog-cli: + - property: version + datasource: github-tags + dependencyName: jfrog/jfrog-cli + ghcr.io/postfinance/devcontainer-features/kubectl: + - property: version + datasource: github-tags + dependencyName: kubernetes/kubectl + - property: kubectxVersion + datasource: github-tags + dependencyName: ahmetb/kubectx + - property: kubensVersion + datasource: github-tags + dependencyName: ahmetb/kubectx + - property: k9sVersion + datasource: github-tags + dependencyName: derailed/k9s + - property: helmVersion + datasource: github-tags + dependencyName: helm/helm + - property: kustomizeVersion + datasource: github-tags + dependencyName: kubernetes-sigs/kustomize + - property: kubeconformVersion + datasource: github-tags + dependencyName: yannh/kubeconform + - property: kubescoreVersion + datasource: github-tags + dependencyName: zegl/kube-score + ghcr.io/postfinance/devcontainer-features/nginx: + - property: version + datasource: github-tags + dependencyName: nginx/nginx + ghcr.io/postfinance/devcontainer-features/node: + - property: version + datasource: nodejs + dependencyName: nodejs-stable + - property: npmVersion + datasource: npm + dependencyName: npm + - property: yarnVersion + datasource: npm + dependencyName: yarn + - property: pnpmVersion + datasource: npm + dependencyName: pnpm + - property: corepackVersion + datasource: npm + dependencyName: corepack + # TODO: nvidia-cuda + ghcr.io/postfinance/devcontainer-features/opencode: + - property: version + datasource: github-tags + dependencyName: anomalyco/opencode + ghcr.io/postfinance/devcontainer-features/python: + - property: version + datasource: github-tags + dependencyName: python/cpython + ghcr.io/postfinance/devcontainer-features/rust: + - property: version + datasource: github-tags + dependencyName: rust-lang/rust + - property: rustupVersion + datasource: github-tags + dependencyName: rust-lang/rustup + ghcr.io/postfinance/devcontainer-features/sonar-scanner-cli: + - property: version + datasource: github-tags + dependencyName: SonarSource/sonar-scanner-cli + ghcr.io/postfinance/devcontainer-features/terraform: + - property: version + datasource: github-tags + dependencyName: hashicorp/terraform + ghcr.io/postfinance/devcontainer-features/vault-cli: + - property: version + datasource: github-tags + dependencyName: hashicorp/vault + ghcr.io/postfinance/devcontainer-features/zig: + - property: version + datasource: github-tags + dependencyName: ziglang/zig diff --git a/renovate-preset.json b/renovate-preset.json new file mode 100644 index 0000000..e9d2e3f --- /dev/null +++ b/renovate-preset.json @@ -0,0 +1,626 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "enabledManagers": [ + "custom.regex" + ], + //////////////////// + // Custom Datasources + //////////////////// + "customDatasources": { + "browsers-google-chrome": { + "defaultRegistryUrlTemplate": "https://versionhistory.googleapis.com/v1/chrome/platforms/linux/channels/stable/versions", + "format": "json", + "transformTemplates": [ + "{ \"releases\": $map($.versions, function($v) { { \"version\": $v.version } }), \"sourceUrl\": \"https://chromium.googlesource.com/chromium/src\" }" + ] + }, + "browsers-firefox": { + "defaultRegistryUrlTemplate": "https://product-details.mozilla.org/1.0/firefox_history_stability_releases.json", + "format": "json", + "transformTemplates": [ + "{ \"releases\": $map($keys($), function($k) { { \"version\": $k, \"releaseTimestamp\": $lookup($, $k) & \"T00:00:00.000Z\" } }), \"sourceUrl\": \"https://github.com/mozilla/gecko-dev\" }" + ] + } + }, + //////////////////// + // Custom Managers + //////////////////// + "customManagers": [ + //////////////////////////////////////////////////////////////////////////////// + // browsers + //////////////////////////////////////////////////////////////////////////////// + // chrome + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/browsers:[^\"]+\":\\s*\\{[^}]*\"chromeVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "custom.browsers-google-chrome", + "depNameTemplate": "google-chrome", + "versioningTemplate": "loose" + }, + // firefox + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/browsers:[^\"]+\":\\s*\\{[^}]*\"firefoxVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "custom.browsers-firefox", + "depNameTemplate": "firefox", + "versioningTemplate": "loose" + }, + //////////////////////////////////////////////////////////////////////////////// + // build-essential + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/build-essential:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "deb", + "depNameTemplate": "build-essential", + "registryUrlTemplate": "https://deb.debian.org/debian?suite=stable&components=main&binaryArch=amd64" + }, + //////////////////////////////////////////////////////////////////////////////// + // claude-code + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/claude-code:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "anthropics/claude-code" + }, + //////////////////////////////////////////////////////////////////////////////// + // docker-out + //////////////////////////////////////////////////////////////////////////////// + // docker + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/docker-out:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "docker/cli" + }, + // compose + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/docker-out:[^\"]+\":\\s*\\{[^}]*\"composeVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "docker/compose" + }, + // buildx + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/docker-out:[^\"]+\":\\s*\\{[^}]*\"buildxVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "docker/buildx" + }, + //////////////////////////////////////////////////////////////////////////////// + // dotnet + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/dotnet:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "dotnet-version", + "depNameTemplate": "dotnet-sdk" + }, + //////////////////////////////////////////////////////////////////////////////// + // git-lfs + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/git-lfs:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "git-lfs/git-lfs" + }, + //////////////////////////////////////////////////////////////////////////////// + // github-cli + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/github-cli:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "cli/cli" + }, + //////////////////////////////////////////////////////////////////////////////// + // github-copilot-cli + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/github-copilot-cli:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "github/copilot-cli" + }, + //////////////////////////////////////////////////////////////////////////////// + // gitlab-cli + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/gitlab-cli:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "gitlab-tags", + "depNameTemplate": "gitlab-org/cli" + }, + //////////////////////////////////////////////////////////////////////////////// + // go + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/go:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "golang-version", + "depNameTemplate": "go" + }, + //////////////////////////////////////////////////////////////////////////////// + // gonovate + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/gonovate:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "roemer/gonovate" + }, + //////////////////////////////////////////////////////////////////////////////// + // goreleaser + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/goreleaser:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "goreleaser/goreleaser" + }, + //////////////////////////////////////////////////////////////////////////////// + // instant-client + //////////////////////////////////////////////////////////////////////////////// + // TODO + //////////////////////////////////////////////////////////////////////////////// + // jfrog-cli + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/jfrog-cli:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "jfrog/jfrog-cli" + }, + //////////////////////////////////////////////////////////////////////////////// + // kubectl + //////////////////////////////////////////////////////////////////////////////// + // kubectl + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "kubernetes/kubectl" + }, + // kubectx + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"kubectxVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "ahmetb/kubectx" + }, + // kubens + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"kubensVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "ahmetb/kubectx" + }, + // k9s + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"k9sVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "derailed/k9s" + }, + // helm + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"helmVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "helm/helm" + }, + // kustomize + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"kustomizeVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "kubernetes-sigs/kustomize" + }, + // kubeconform + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"kubeconformVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "yannh/kubeconform" + }, + // kubescore + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/kubectl:[^\"]+\":\\s*\\{[^}]*\"kubescoreVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "zegl/kube-score" + }, + //////////////////////////////////////////////////////////////////////////////// + // nginx + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/nginx:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "nginx/nginx", + "extractVersionTemplate": "^release-(?.+)$" + }, + //////////////////////////////////////////////////////////////////////////////// + // Node + //////////////////////////////////////////////////////////////////////////////// + // node + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/node:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "node-version", + "depNameTemplate": "node" + }, + // npm + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/node:[^\"]+\":\\s*\\{[^}]*\"npmVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "npm", + "depNameTemplate": "npm" + }, + // yarn + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/node:[^\"]+\":\\s*\\{[^}]*\"yarnVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "npm", + "depNameTemplate": "yarn" + }, + // pnpm + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/node:[^\"]+\":\\s*\\{[^}]*\"pnpmVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "npm", + "depNameTemplate": "pnpm" + }, + // corepack + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/node:[^\"]+\":\\s*\\{[^}]*\"corepackVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "npm", + "depNameTemplate": "corepack" + }, + //////////////////////////////////////////////////////////////////////////////// + // nvidia-cuda + //////////////////////////////////////////////////////////////////////////////// + // TODO + //////////////////////////////////////////////////////////////////////////////// + // opencode + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/opencode:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "anomalyco/opencode" + }, + //////////////////////////////////////////////////////////////////////////////// + // python + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/python:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "python/cpython" + }, + //////////////////////////////////////////////////////////////////////////////// + // rust + //////////////////////////////////////////////////////////////////////////////// + // rust + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/rust:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "rust-lang/rust" + }, + // rustup + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/rust:[^\"]+\":\\s*\\{[^}]*\"rustupVersion\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "rust-lang/rustup" + }, + //////////////////////////////////////////////////////////////////////////////// + // sonar-scanner-cli + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/sonar-scanner-cli:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "SonarSource/sonar-scanner-cli", + "versioningTemplate": "loose" + }, + //////////////////////////////////////////////////////////////////////////////// + // terraform + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/terraform:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "hashicorp/terraform" + }, + //////////////////////////////////////////////////////////////////////////////// + // vault-cli + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/vault-cli:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "hashicorp/vault" + }, + //////////////////////////////////////////////////////////////////////////////// + // zig + //////////////////////////////////////////////////////////////////////////////// + { + "customType": "regex", + "managerFilePatterns": [ + "/^\\.devcontainer/devcontainer\\.json$/", + "/^\\.devcontainer\\.json$/", + "/^\\.devcontainer/[^/]+/devcontainer\\.json$/" + ], + "matchStrings": [ + "\"[^\"]+/postfinance/devcontainer-features/zig:[^\"]+\":\\s*\\{[^}]*\"version\":\\s*\"(?[^\"]+)\"" + ], + "datasourceTemplate": "github-tags", + "depNameTemplate": "ziglang/zig" + } + ] +} \ No newline at end of file