renovate
status-badge Latest release License: Apache-2.0
Crow CI plugin to execute renovate for automated dependency updates.
Motivation
The plugin was motivated by the need to run a shared renovate bot on Forgejo/Gitea that includes secrets for repository and dependency cache storage bound to the plugin.
With this Crow feature, a global secret containing the redisUrl connection can be provided and restricted to the plugin.
Versioning
The latest tag of the plugin is rebuild daily to make use of the most recent renovate release (which is usually also updated on a daily basis) for the respective major version.
The renovate version used is displayed at the beginning of the log.
If you want to use a custom versioning approach, you can set the renovate_version setting in the plugin.
This will cause the plugin to install the specified version of renovate before starting out.
Note
Installing a custom version takes ~ 20s.
Usage
Basic Example
steps:- name:renovateimage:codeberg.org/crow-plugins/renovate:<version>settings:platform:githubrenovate_token:from_secret:github_tokenWith Self-Hosted Forgejo/Gitea
steps:- name:renovateimage:codeberg.org/crow-plugins/renovate:<version>settings:platform:forgejorenovate_endpoint:https://git.example.comrenovate_token:from_secret:renovate_tokenWith Redis Caching
steps:- name:renovateimage:codeberg.org/crow-plugins/renovate:<version>settings:platform:githubrenovate_token:from_secret:github_tokenredis_url:from_secret:redis_urlWith S3 Storage
steps:- name:renovateimage:codeberg.org/crow-plugins/renovate:<version>settings:platform:gitlabrenovate_endpoint:https://gitlab.example.comrenovate_token:from_secret:gitlab_tokenaws_access_key_id:from_secret:aws_keyaws_secret_access_key:from_secret:aws_secretrenovate_config:AWS_REGION:<region>AWS_ENDPOINT:<endpoint>With Custom Renovate Version
steps:- name:renovateimage:codeberg.org/crow-plugins/renovate:<version>settings:platform:githubrenovate_token:from_secret:github_tokenrenovate_version:"37.440.7"With Additional System Libraries
Install extra apt packages before running Renovate (useful for language-specific managers):
steps:- name:renovateimage:codeberg.org/crow-plugins/renovate:<version>settings:platform:githubrenovate_token:from_secret:github_tokensyslibs:libssl-dev,libffi-devSettings
| Setting | Description | Default | Required |
|---|---|---|---|
platform |
Platform (github, gitlab, gitea, forgejo, etc.) | - | ✓ |
renovate_token |
Repository authentication token | - | ✓ |
renovate_endpoint |
API endpoint for self-hosted instances | - | ✗ |
config_file |
Path to Renovate config file | default.json |
✗ |
redis_url |
Redis connection URL for caching | - | ✗ |
github_token |
GitHub.com API access token | - | ✗ |
aws_access_key_id |
AWS access key ID | - | ✗ |
aws_secret_access_key |
AWS secret access key | - | ✗ |
renovate_version |
Specific Renovate version to install (e.g., "37.440.7" or "latest") | Built-in version | ✗ |
renovate_config |
Additional Renovate configuration (see below) | - | ✗ |
syslibs |
Additional system packages to install (comma-separated apt names) | - | ✗ |
Renovate Config
The renovate_config setting supports multiple formats for passing additional environment variables to Renovate:
YAML-style (multiline)
renovate_config:| RENOVATE_AUTODISCOVER: true
LOG_LEVEL: debugYAML-style (nested)
You can also write nested YAML:
renovate_config:RENOVATE_AUTODISCOVER:trueLOG_LEVEL:infoEnvironment Variables
The plugin maps settings under the renovate_config section as environment variables in the container:
Pre-installed Tools
The container image includes the following tools:
| Tool | Description | Version | Architectures |
|---|---|---|---|
| Node.js | JavaScript runtime | 24 (from base image) | amd64, arm64 |
| Flutter SDK | Cross-platform UI toolkit | 3.38.6 (auto-updated) | amd64 only |
| uv | Fast Python package manager | 0.9.24 (auto-updated) | amd64, arm64 |
| bun | Fast JavaScript runtime/package manager | Latest | amd64, arm64 |
| Git | Version control | From apt | amd64, arm64 |
Flutter is pre-installed and available in PATH on amd64, enabling Renovate to manage Flutter/Dart dependencies. Flutter is not available on arm64 as there are no official Linux arm64 releases.
Details
- The plugin is built as a statically-linked Go binary
- Uses bun for fast package installation
- Executes Renovate directly via Node.js
- Flutter SDK is pre-installed for Flutter/Dart dependency management
License
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.