557088a9c0 | ||
---|---|---|
.. | ||
__fixtures__ | ||
checksum.spec.ts | ||
checksum.ts | ||
common.ts | ||
file.spec.ts | ||
file.ts | ||
index.spec.ts | ||
index.ts | ||
readme.md | ||
release.ts | ||
types.ts | ||
url.spec.ts | ||
url.ts |
readme.md
Renovate uses the Debian datasource to update packages from Debian repositories.
The debian
datasource is meant for projects that:
- depend on Debian-based systems, or
- depend on Debian-based distributions, like Ubuntu
By default, Renovate does not detect Debian dependencies. For Renovate to update dependencies, you must combine the Debian datasource with regex managers.
Set URL when using a Debian repository
To use a Debian repository with the datasource, you must set a properly formatted URL with specific query parameters as registryUrl
:
components
: Comma-separated list of repository components (e.g.,main,contrib,non-free
).binaryArch
: Architecture of the binary packages (e.g.,amd64
,all
).- Either
suite
orrelease
:suite
: A rolling release alias likestable
.release
: A fixed release name such asbullseye
orbuster
.
!!! note
These parameters are used to give Renovate context and are not directly used to call the repository.
Therefore, the registryUrl
has not to be a valid URL for a repository.
Example:
https://deb.debian.org/debian?suite=stable&components=main,contrib,non-free&binaryArch=amd64
This URL points to the stable
suite of the Debian repository for amd64
architecture, including main
, contrib
, and non-free
components.
Usage Example
Say you're using apt packages in a Dockerfile and want to update them. With the debian datasource you can "pin" each dependency, and get automatic updates.
First you would set a custom manager in your renovate.json
file for Dockerfile
:
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"customManagers": [
{
"customType": "regex",
"fileMatch": ["^Dockerfile$"],
"matchStrings": [
"#\\s*renovate:\\s*?(release=(?<release>.*?))?\\s*depName=(?<depName>.*?)?\\sENV .*?_VERSION=\"(?<currentValue>.*)\""
],
"registryUrlTemplate": "https://deb.debian.org/debian?{{#if release }}release={{release}}{{else}}suite=stable{{/if}}&components=main,contrib,non-free&binaryArch=amd64",
"datasourceTemplate": "deb"
}
]
}
Then you would put comments in your Dockerfile, to tell Renovate where to find the updates:
FROM debian:bullseye
# renovate: release=bullseye depName=gcc-11
ENV GCC_VERSION="11.2.0-19"
RUN apt-get update && \
apt-get install -y \
gcc-11="${GCC_VERSION}" && \
apt-get clean
When the apt package for gcc
is updated, Renovate updates the environment variable.
{
"packageRules": [
{
"matchDatasources": ["deb"],
"matchPackageNames": ["gcc-11"],
"registryUrls": [
"https://deb.debian.org/debian?suite=stable&components=main,contrib,non-free&binaryArch=amd64"
]
}
]
}
Artifactory
The Debian datasource can be used with Artifactory.
Supported repository types
The debian
datasource supports these repository types:
- virtual
- local
- remote
Set a registryUrl
To use Artifactory, first configure the deb
datasource by setting the registryUrl
.
https://<host>:<port>/artifactory/<repository-slug>?release=<release>&components=<components>&binaryArch=<binaryArch>
https://artifactory.example.com:443/artifactory/debian?release=bookworm&components=main,contrib,non-free&binaryArch=amd64
Authenticating to Artifactory
If Artifactory asks for authentication, you must set up a host rule. First, generate a password for Renovate with Artifactory's "Set Me Up" feature. Then, add the following configuration:
{
"hostRules": [
{
"hostType": "deb",
"matchHost": "https://artifactory.example.com:443/artifactory/debian",
"username": "myuser",
"password": "< the generated password >"
}
]
}