Dockerfile 内でインストールしているソフトウェアのバージョンとチェックサムを更新する
#Renovate
https://docs.renovatebot.com/presets-customManagers/#custommanagersdockerfileversions をベースに _VERSION_SHA256SUM の capture group を追加
https://docs.renovatebot.com/modules/datasource/github-release-attachments/ を datasource として使う
この datasource における digest は GitHub Release に含まれる asset のうちサイズの小さいそれっぽいもの
https://github.com/renovatebot/renovate/blob/298f0e60133736e221701e5239be60ed618b4c15/lib/modules/datasource/github-release-attachments/index.ts#L76
この datasource は SHA256 と SHA512 をサポートしているが、自分のユースケースでは大体 SHA256 なので決め打ち
https://github.com/renovatebot/renovate/blob/298f0e60133736e221701e5239be60ed618b4c15/lib/modules/datasource/github-release-attachments/index.ts#L24-L32
code:regex
# renovate: datasource=(?<datasource>a-zA-Z0-9-._+?) depName=(?<depName>^\s+?)(?: (lookupName|packageName)=(?<packageName>^\s+?))?(?: versioning=(?<versioning>^\s+?))?(?: extractVersion=(?<extractVersion>^\s+?))?(?: registryUrl=(?<registryUrl>^\s+?))?\s(?:ENV|ARG)\s+A-Za-z0-9_+?_VERSION ="'?(?<currentValue>.+?)"'?\s(?:ENV|ARG)\s+A-Za-z0-9_+?_VERSION_SHA256SUM ="'?(?<currentDigest>a-z\d+?)"'?\s
https://regex101.com/r/UEVvDj/1
code:json
{
"customManagers": [
{
"customType": "regex",
"managerFilePatterns": [
"/(^|/|\\.)(Ddocker|Ccontainer)file$/",
"/(^|/)(Ddocker|Ccontainer)file^/*$/"
],
"matchStrings": [
"# renovate: datasource=(?<datasource>a-zA-Z0-9-._+?) depName=(?<depName>^\\s+?)(?: (lookupName|packageName)=(?<packageName>^\\s+?))?(?: versioning=(?<versioning>^\\s+?))?(?: extractVersion=(?<extractVersion>^\\s+?))?(?: registryUrl=(?<registryUrl>^\\s+?))?\\s(?:ENV|ARG)\\s+A-Za-z0-9_+?_VERSION =\"'?(?<currentValue>.+?)\"'?\\s(?:ENV|ARG)\\s+A-Za-z0-9_+?_VERSION_SHA256SUM =\"'?(?<currentDigest>a-z\\d+?)\"'?\\s"
]
}
]
}
code:Dockerfile
# renovate: datasource=github-release-attachements depName=test/test
ENV XXX_VERSION="3.4.6"
ENV XXX_VERSION_SHA256SUM=0000aaaa1111bbbb
ref: 任意の文字列を JSON のフィールド用ににエンコードする