Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(config)!: experimental flags #28187

Closed
Show file tree
Hide file tree
Changes from 20 commits
Commits
Show all changes
256 commits
Select commit Hold shift + click to select a range
4f0e5c2
Merge branch 'main' into refactor/experimental-flags
RahulGautamSingh Mar 30, 2024
19a52f3
docs: sort headers
RahulGautamSingh Mar 30, 2024
78ec4a8
Merge branch 'refactor/experimental-flags' of https://github.com/Rahu…
RahulGautamSingh Mar 30, 2024
ac91cf0
create new page for experimental flag
RahulGautamSingh Apr 4, 2024
f99e1a1
store and reuse parsed flag values
RahulGautamSingh Apr 4, 2024
6ee7872
Update lib/util/experimental-flags.ts
RahulGautamSingh Apr 7, 2024
87ac66b
Apply suggestions from code review
RahulGautamSingh Apr 7, 2024
15a8720
add tests
RahulGautamSingh Apr 7, 2024
d0baeca
refactor
RahulGautamSingh Apr 7, 2024
5f3ad4d
Merge branch 'main' into refactor/experimental-flags
RahulGautamSingh Apr 7, 2024
bb533fa
Apply suggestions from code review
RahulGautamSingh Apr 8, 2024
ee5d9c8
apply suggestions
RahulGautamSingh Apr 8, 2024
2442baf
add new page to .pages
RahulGautamSingh Apr 8, 2024
69a5e15
Merge branch 'main' into refactor/experimental-flags
viceice Apr 9, 2024
e7326bd
Update lib/util/experimental-flags.spec.ts
RahulGautamSingh Apr 9, 2024
f389c56
add tests
RahulGautamSingh Apr 10, 2024
ffb2d72
class based implementation
RahulGautamSingh Apr 10, 2024
78df147
update docs
RahulGautamSingh Apr 10, 2024
ca3f1d3
autoDiscoverRepoOrder
RahulGautamSingh Apr 10, 2024
82a9181
fix issues
RahulGautamSingh Apr 10, 2024
9a5b0fe
Update docs/usage/self-hosted-experimental-flags.md
RahulGautamSingh Apr 10, 2024
30fcc03
revert boolean type flag
RahulGautamSingh Apr 11, 2024
597811c
autoDiscoverRepoSort
RahulGautamSingh Apr 11, 2024
d4dff27
move ExperimentalFlag class into './global'
RahulGautamSingh Apr 11, 2024
bd52857
fix tests and imports
RahulGautamSingh Apr 11, 2024
f01ccab
validation for autoDiscoverReopSort
RahulGautamSingh Apr 11, 2024
eef2a6c
refacte
RahulGautamSingh Apr 11, 2024
585201e
apply suggestions
RahulGautamSingh Apr 11, 2024
806487f
include getExperimentalFlag() in GlobalConfig class
RahulGautamSingh Apr 11, 2024
bf50241
Update docs/usage/self-hosted-configuration.md
RahulGautamSingh Apr 11, 2024
9320c37
Merge branch 'main' into refactor/experimental-flags
RahulGautamSingh Apr 14, 2024
c7bba4c
modify multiple-strings flag type
RahulGautamSingh Apr 14, 2024
37f4df7
fix coverage
RahulGautamSingh Apr 14, 2024
e92045c
fix formatting
RahulGautamSingh Apr 14, 2024
513552f
fix tests
RahulGautamSingh Apr 16, 2024
467b566
use i flag in regex instead of A-Z
RahulGautamSingh Apr 16, 2024
e3c3476
docs: apply suggestion
RahulGautamSingh Apr 18, 2024
e4d5a0c
Update docs/usage/self-hosted-configuration.md
RahulGautamSingh Apr 19, 2024
3a4debc
Merge branch 'main' into refactor/experimental-flags
RahulGautamSingh Apr 20, 2024
1a0655a
fix lint issues
RahulGautamSingh Apr 20, 2024
6f3ece1
revert non-boolean conversions
RahulGautamSingh Apr 23, 2024
5ecf209
RENOVATE_X_NO_MAVEN_POM_CHECK -> noMavenPomCheck
RahulGautamSingh Apr 23, 2024
6b2b338
RENOVATE_PAGINATE_ALL -> paginateAll
RahulGautamSingh Apr 23, 2024
00a36eb
RENOVATE_X_EXEC_GPID_HANDLE -> execGpidHandle
RahulGautamSingh Apr 23, 2024
a4c1641
RENOVTAE_X_REPO_CACHE_FORCE_LOCAL -> repoCacheForceLocal
RahulGautamSingh Apr 24, 2024
fbdc1b9
RENOVTAE_X_NUGET_DOWNLOAD_NUPKGS -> nugetDownloadNupkgs
RahulGautamSingh Apr 24, 2024
e287522
RENOVTAE_X_REBASE_PAGINATION_LINKS -> rebasePaginationLinks
RahulGautamSingh Apr 24, 2024
ba06fbe
RENOVTAE_X_S3_PATH_STYLE -> s3PathStyle
RahulGautamSingh Apr 24, 2024
00caca0
RENOVTAE_X_SQLITE_PACKAGE_CACHE -> sqlitePackageCache
RahulGautamSingh Apr 24, 2024
dfeae10
RENOVATE_X_SUPPRESS_PRE_COMMIT_WARNING -> supressPreCommitWarning
RahulGautamSingh Apr 24, 2024
0084f4a
RENOVATE_X_YARN_PROXY -> yarnProxy
RahulGautamSingh Apr 24, 2024
02c346f
Merge branch 'main' into refactor/experimental-flags
RahulGautamSingh Apr 24, 2024
c9afba9
RENOVATE_X_USE_OPENPGP -> useOpenpgp
RahulGautamSingh Apr 24, 2024
c629e21
revert s3PathStyle
RahulGautamSingh Apr 24, 2024
18c1b0d
coverage: istanbul ignore
RahulGautamSingh Apr 24, 2024
fc70ddc
refactor
RahulGautamSingh Apr 24, 2024
553ab76
Revert "revert s3PathStyle"
RahulGautamSingh Apr 25, 2024
e7a825f
update docs
RahulGautamSingh Apr 25, 2024
cc2a2ab
revert unwanted changes
RahulGautamSingh Apr 25, 2024
db0ee08
refactor: docs
RahulGautamSingh Apr 25, 2024
1517571
Apply suggestions from code review
RahulGautamSingh Apr 25, 2024
5872d81
fix coverage
RahulGautamSingh Apr 25, 2024
cf8f631
fix validation message
RahulGautamSingh Apr 25, 2024
9257bb0
refactor: tests
RahulGautamSingh Apr 25, 2024
1351064
apply suggestions
RahulGautamSingh Apr 26, 2024
a429055
fix(config)!: globalExtends merge order (#28145)
rarkins Mar 27, 2024
fccde3a
feat(manager/pep621)!: remove group name from depName (#28193)
secustor Apr 2, 2024
b739aa0
feat(gitea)!: use `Bearer` instead of `token` for auth (#28308)
viceice Apr 13, 2024
e3385ba
feat!: stop publishing slim docker tags (#27993)
viceice Apr 14, 2024
ee1a463
fix(config)!: Use `depNameSanitized` in branch name for vulnerability…
takac Apr 14, 2024
68687c0
feat(npm)!: drop transitiveRemediation option (#27985)
rarkins Apr 14, 2024
adb8fae
feat(config)!: change onboardingNoDeps from `boolean` to `enum` (#28133)
RahulGautamSingh Apr 14, 2024
a37987d
feat(config)!: * pattern matches everything (#28556)
rarkins Apr 21, 2024
dfed03c
feat(logging)!: initialize file logging via env (#28104)
RahulGautamSingh Apr 21, 2024
e05a466
feat(package-rules)!: remove depName fallback (#28548)
rarkins Apr 21, 2024
0d5e1bb
feat(datasource/docker)!: prefer hub.docker.com over index.docker.io …
rarkins Apr 21, 2024
59d59f0
feat(packageRules)!: support glob/regex patterns for matchPackageName…
rarkins Apr 23, 2024
1dbd621
build!: drop compatibility from docker image (#28588)
viceice Apr 23, 2024
73df318
feat(git)!: determine branch modification based on all branch commits…
AaronMoat Apr 23, 2024
73e35bc
feat(packageRules)!: support regex or glob matching for all (#28591)
rarkins Apr 23, 2024
86ae4b9
Merge branch 'v38' into refactor/experimental-flags
rarkins Apr 29, 2024
a54ffeb
feat(npm)!: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
rarkins Apr 29, 2024
85525cb
disableDockerHubTags
RahulGautamSingh Apr 29, 2024
cecb426
prettier
RahulGautamSingh Apr 29, 2024
5d2c210
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh Apr 29, 2024
6f4d85e
Merge branch 'refactor/experimental-flags' of https://github.com/Rahu…
RahulGautamSingh Apr 29, 2024
60afba8
add all experimentation flags to allowedFlags list
RahulGautamSingh Apr 29, 2024
dbb7fd8
Apply suggestions from code review
RahulGautamSingh Apr 29, 2024
f4c2dcf
update docs
RahulGautamSingh Apr 29, 2024
e5dfc83
test: update wrong assertion (#28741)
RahulGautamSingh Apr 30, 2024
ee149dc
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh Apr 30, 2024
62a6614
fix(config)!: globalExtends merge order (#28145)
rarkins Mar 27, 2024
d5865e4
feat(manager/pep621)!: remove group name from depName (#28193)
secustor Apr 2, 2024
dfcc4cc
feat(gitea)!: use `Bearer` instead of `token` for auth (#28308)
viceice Apr 13, 2024
401ddc5
feat!: stop publishing slim docker tags (#27993)
viceice Apr 14, 2024
7a574c9
fix(config)!: Use `depNameSanitized` in branch name for vulnerability…
takac Apr 14, 2024
2335b6d
feat(npm)!: drop transitiveRemediation option (#27985)
rarkins Apr 14, 2024
f0d02a8
feat(config)!: change onboardingNoDeps from `boolean` to `enum` (#28133)
RahulGautamSingh Apr 14, 2024
e433de2
feat(config)!: * pattern matches everything (#28556)
rarkins Apr 21, 2024
e6c9524
feat(logging)!: initialize file logging via env (#28104)
RahulGautamSingh Apr 21, 2024
c64ecc3
feat(package-rules)!: remove depName fallback (#28548)
rarkins Apr 21, 2024
79a7c85
feat(datasource/docker)!: prefer hub.docker.com over index.docker.io …
rarkins Apr 21, 2024
40f5015
feat(packageRules)!: support glob/regex patterns for matchPackageName…
rarkins Apr 23, 2024
b13afad
build!: drop compatibility from docker image (#28588)
viceice Apr 23, 2024
58494a9
feat(git)!: determine branch modification based on all branch commits…
AaronMoat Apr 23, 2024
41453e5
feat(packageRules)!: support regex or glob matching for all (#28591)
rarkins Apr 23, 2024
14b6690
feat(npm)!: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
rarkins Apr 29, 2024
bc40d99
test: update wrong assertion (#28741)
RahulGautamSingh Apr 30, 2024
bed9567
chore(deps): update dependency @types/node to v20
rarkins May 5, 2024
70064e8
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh May 5, 2024
65a7227
fix(config)!: globalExtends merge order (#28145)
rarkins Mar 27, 2024
1891c08
feat(manager/pep621)!: remove group name from depName (#28193)
secustor Apr 2, 2024
8654392
feat(gitea)!: use `Bearer` instead of `token` for auth (#28308)
viceice Apr 13, 2024
2e9cdf1
feat!: stop publishing slim docker tags (#27993)
viceice Apr 14, 2024
51c44b2
fix(config)!: Use `depNameSanitized` in branch name for vulnerability…
takac Apr 14, 2024
2651dac
feat(npm)!: drop transitiveRemediation option (#27985)
rarkins Apr 14, 2024
802d389
feat(config)!: change onboardingNoDeps from `boolean` to `enum` (#28133)
RahulGautamSingh Apr 14, 2024
4a89d9a
feat(config)!: * pattern matches everything (#28556)
rarkins Apr 21, 2024
3abc813
feat(logging)!: initialize file logging via env (#28104)
RahulGautamSingh Apr 21, 2024
b5af304
feat(package-rules)!: remove depName fallback (#28548)
rarkins Apr 21, 2024
bcd3e2d
feat(datasource/docker)!: prefer hub.docker.com over index.docker.io …
rarkins Apr 21, 2024
6f527d0
feat(packageRules)!: support glob/regex patterns for matchPackageName…
rarkins Apr 23, 2024
e42f0be
build!: drop compatibility from docker image (#28588)
viceice Apr 23, 2024
148d871
feat(git)!: determine branch modification based on all branch commits…
AaronMoat Apr 23, 2024
00fe5d5
feat(packageRules)!: support regex or glob matching for all (#28591)
rarkins Apr 23, 2024
2e26b8e
feat(npm)!: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
rarkins Apr 29, 2024
645e70f
test: update wrong assertion (#28741)
RahulGautamSingh Apr 30, 2024
28c5c8e
chore(deps): update dependency @types/node to v20
rarkins May 5, 2024
6be9680
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh May 7, 2024
e116b0f
Apply suggestions from code review
RahulGautamSingh May 7, 2024
cdc5c01
fix formatting
RahulGautamSingh May 7, 2024
554510d
fix conflicts
RahulGautamSingh May 7, 2024
52ae946
convert legacy env vars to flags
RahulGautamSingh May 8, 2024
88e5e97
fix(config)!: globalExtends merge order (#28145)
rarkins Mar 27, 2024
8c31ac3
feat(manager/pep621)!: remove group name from depName (#28193)
secustor Apr 2, 2024
b05ac26
feat(gitea)!: use `Bearer` instead of `token` for auth (#28308)
viceice Apr 13, 2024
2f242d4
feat!: stop publishing slim docker tags (#27993)
viceice Apr 14, 2024
739160e
fix(config)!: Use `depNameSanitized` in branch name for vulnerability…
takac Apr 14, 2024
31997aa
feat(npm)!: drop transitiveRemediation option (#27985)
rarkins Apr 14, 2024
4755d7c
feat(config)!: change onboardingNoDeps from `boolean` to `enum` (#28133)
RahulGautamSingh Apr 14, 2024
70ce578
feat(config)!: * pattern matches everything (#28556)
rarkins Apr 21, 2024
68fd387
feat(logging)!: initialize file logging via env (#28104)
RahulGautamSingh Apr 21, 2024
d2419e4
feat(package-rules)!: remove depName fallback (#28548)
rarkins Apr 21, 2024
7fa7415
feat(datasource/docker)!: prefer hub.docker.com over index.docker.io …
rarkins Apr 21, 2024
65d1939
feat(packageRules)!: support glob/regex patterns for matchPackageName…
rarkins Apr 23, 2024
15e64d6
build!: drop compatibility from docker image (#28588)
viceice Apr 23, 2024
e7596ad
feat(git)!: determine branch modification based on all branch commits…
AaronMoat Apr 23, 2024
d8ec625
feat(packageRules)!: support regex or glob matching for all (#28591)
rarkins Apr 23, 2024
e7f474e
feat(npm)!: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
rarkins Apr 29, 2024
1a4f66e
test: update wrong assertion (#28741)
RahulGautamSingh Apr 30, 2024
96c085b
chore(deps): update dependency @types/node to v20
rarkins May 5, 2024
2422191
refactor(vulnerability-alerts): move to REST API (#27378)
RahulGautamSingh May 10, 2024
990b18c
feat(packageRules): migrate matchers and excludes (#28602)
rarkins May 13, 2024
cc6362b
Merge remote-tracking branch 'upstream/v38' into refactor/experimenta…
RahulGautamSingh May 14, 2024
9ec61cf
fix(config)!: globalExtends merge order (#28145)
rarkins Mar 27, 2024
43a437d
feat(manager/pep621)!: remove group name from depName (#28193)
secustor Apr 2, 2024
e909116
feat(gitea)!: use `Bearer` instead of `token` for auth (#28308)
viceice Apr 13, 2024
3b2bab3
feat!: stop publishing slim docker tags (#27993)
viceice Apr 14, 2024
788965c
fix(config)!: Use `depNameSanitized` in branch name for vulnerability…
takac Apr 14, 2024
7eb36b8
feat(npm)!: drop transitiveRemediation option (#27985)
rarkins Apr 14, 2024
9049fb2
feat(config)!: change onboardingNoDeps from `boolean` to `enum` (#28133)
RahulGautamSingh Apr 14, 2024
c9c44e4
feat(config)!: * pattern matches everything (#28556)
rarkins Apr 21, 2024
ceb1381
feat(logging)!: initialize file logging via env (#28104)
RahulGautamSingh Apr 21, 2024
0466b01
feat(package-rules)!: remove depName fallback (#28548)
rarkins Apr 21, 2024
356bdd9
feat(datasource/docker)!: prefer hub.docker.com over index.docker.io …
rarkins Apr 21, 2024
6790556
feat(packageRules)!: support glob/regex patterns for matchPackageName…
rarkins Apr 23, 2024
18be80b
build!: drop compatibility from docker image (#28588)
viceice Apr 23, 2024
917bc18
feat(git)!: determine branch modification based on all branch commits…
AaronMoat Apr 23, 2024
5f2155c
feat(packageRules)!: support regex or glob matching for all (#28591)
rarkins Apr 23, 2024
3be8898
feat(npm)!: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
rarkins Apr 29, 2024
36e5987
test: update wrong assertion (#28741)
RahulGautamSingh Apr 30, 2024
7a93e64
chore(deps): update dependency @types/node to v20
rarkins May 5, 2024
8d91d6a
refactor(vulnerability-alerts): move to REST API (#27378)
RahulGautamSingh May 10, 2024
f9bdc3a
feat(packageRules): migrate matchers and excludes (#28602)
rarkins May 13, 2024
a7dc64f
feat(logging)!: drop `logFile` and `logFileLevel` (#29104)
RahulGautamSingh May 17, 2024
972bd7a
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh May 20, 2024
3d7302d
fix lint issue
RahulGautamSingh May 21, 2024
2035e7e
fix(presets): replace `matchPackagePrefix/Patterns` with `matchPackag…
RahulGautamSingh May 22, 2024
609e464
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh May 22, 2024
3f42faa
feat(github): convert `platformCommit` to enum (#29156)
RahulGautamSingh May 24, 2024
18db845
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh May 24, 2024
c632d02
Update lib/config/validation.ts
RahulGautamSingh May 28, 2024
da5aa41
apply suggestions
RahulGautamSingh May 30, 2024
5d9c5e6
Revert "RENOVTAE_X_SQLITE_PACKAGE_CACHE -> sqlitePackageCache"
RahulGautamSingh May 30, 2024
79c7d08
fix tests
RahulGautamSingh May 30, 2024
e649217
fix(config)!: globalExtends merge order (#28145)
rarkins Mar 27, 2024
545fe54
feat(manager/pep621)!: remove group name from depName (#28193)
secustor Apr 2, 2024
2082cae
feat(gitea)!: use `Bearer` instead of `token` for auth (#28308)
viceice Apr 13, 2024
d79dc3c
feat!: stop publishing slim docker tags (#27993)
viceice Apr 14, 2024
035c863
fix(config)!: Use `depNameSanitized` in branch name for vulnerability…
takac Apr 14, 2024
a5c5454
feat(npm)!: drop transitiveRemediation option (#27985)
rarkins Apr 14, 2024
b2b2d42
feat(config)!: change onboardingNoDeps from `boolean` to `enum` (#28133)
RahulGautamSingh Apr 14, 2024
8877b8f
feat(config)!: * pattern matches everything (#28556)
rarkins Apr 21, 2024
424bb3d
feat(logging)!: initialize file logging via env (#28104)
RahulGautamSingh Apr 21, 2024
2ed9716
feat(package-rules)!: remove depName fallback (#28548)
rarkins Apr 21, 2024
36707ce
feat(datasource/docker)!: prefer hub.docker.com over index.docker.io …
rarkins Apr 21, 2024
b0659cb
feat(packageRules)!: support glob/regex patterns for matchPackageName…
rarkins Apr 23, 2024
0635f40
build!: drop compatibility from docker image (#28588)
viceice Apr 23, 2024
0302a26
feat(git)!: determine branch modification based on all branch commits…
AaronMoat Apr 23, 2024
44493ab
feat(packageRules)!: support regex or glob matching for all (#28591)
rarkins Apr 23, 2024
be5ce9d
feat(npm)!: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
rarkins Apr 29, 2024
26941ea
test: update wrong assertion (#28741)
RahulGautamSingh Apr 30, 2024
52ab702
chore(deps): update dependency @types/node to v20
rarkins May 5, 2024
7f63efd
refactor(vulnerability-alerts): move to REST API (#27378)
RahulGautamSingh May 10, 2024
b66597a
feat(packageRules): migrate matchers and excludes (#28602)
rarkins May 13, 2024
f97852a
feat(logging)!: drop `logFile` and `logFileLevel` (#29104)
RahulGautamSingh May 17, 2024
6aa6b23
fix(presets): replace `matchPackagePrefix/Patterns` with `matchPackag…
RahulGautamSingh May 22, 2024
e2dd8c1
feat(github): convert `platformCommit` to enum (#29156)
RahulGautamSingh May 24, 2024
a0ae617
chore: prettier-fix docs
rarkins May 31, 2024
080ff4b
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh May 31, 2024
c2bec26
Update lib/config/validation.ts
RahulGautamSingh May 31, 2024
2954e06
feat(http): remove `dnsCache` option (#29449)
RahulGautamSingh Jun 5, 2024
77bfe96
fix!: normalize Python depName in every manager (#27733)
not7cd Jun 6, 2024
868f946
fix(config)!: globalExtends merge order (#28145)
rarkins Mar 27, 2024
e1233d3
feat(manager/pep621)!: remove group name from depName (#28193)
secustor Apr 2, 2024
c0a369b
feat(gitea)!: use `Bearer` instead of `token` for auth (#28308)
viceice Apr 13, 2024
2833739
feat!: stop publishing slim docker tags (#27993)
viceice Apr 14, 2024
40df298
fix(config)!: Use `depNameSanitized` in branch name for vulnerability…
takac Apr 14, 2024
3ffd554
feat(npm)!: drop transitiveRemediation option (#27985)
rarkins Apr 14, 2024
40b0414
feat(config)!: change onboardingNoDeps from `boolean` to `enum` (#28133)
RahulGautamSingh Apr 14, 2024
520be38
feat(config)!: * pattern matches everything (#28556)
rarkins Apr 21, 2024
7254d87
feat(logging)!: initialize file logging via env (#28104)
RahulGautamSingh Apr 21, 2024
a240306
feat(package-rules)!: remove depName fallback (#28548)
rarkins Apr 21, 2024
1f4618b
feat(datasource/docker)!: prefer hub.docker.com over index.docker.io …
rarkins Apr 21, 2024
9db51a7
feat(packageRules)!: support glob/regex patterns for matchPackageName…
rarkins Apr 23, 2024
785cfeb
build!: drop compatibility from docker image (#28588)
viceice Apr 23, 2024
deff28b
feat(git)!: determine branch modification based on all branch commits…
AaronMoat Apr 23, 2024
e62e55c
feat(packageRules)!: support regex or glob matching for all (#28591)
rarkins Apr 23, 2024
a856a70
feat(npm)!: remove RENOVATE_CACHE_NPM_MINUTES (#28715)
rarkins Apr 29, 2024
a0f27fc
test: update wrong assertion (#28741)
RahulGautamSingh Apr 30, 2024
cf04dbf
chore(deps): update dependency @types/node to v20
rarkins May 5, 2024
1cede41
refactor(vulnerability-alerts): move to REST API (#27378)
RahulGautamSingh May 10, 2024
ab87dc8
feat(packageRules): migrate matchers and excludes (#28602)
rarkins May 13, 2024
b3e86d9
feat(logging)!: drop `logFile` and `logFileLevel` (#29104)
RahulGautamSingh May 17, 2024
8b4d77c
fix(presets): replace `matchPackagePrefix/Patterns` with `matchPackag…
RahulGautamSingh May 22, 2024
1fbc70e
feat(github): convert `platformCommit` to enum (#29156)
RahulGautamSingh May 24, 2024
fa197c0
chore: prettier-fix docs
rarkins May 31, 2024
cb1afac
feat(http): remove `dnsCache` option (#29449)
RahulGautamSingh Jun 5, 2024
11533dd
fix!: normalize Python depName in every manager (#27733)
not7cd Jun 6, 2024
92c6402
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh Jun 9, 2024
11dadcb
Merge branch 'v38' into refactor/experimental-flags
RahulGautamSingh Jun 9, 2024
40a396f
remove RENOVATE_X_SUPPRESS_PRE_COMMIT_WARNING
RahulGautamSingh Jun 9, 2024
68c8ec8
remove paginateAll and rebasePaginationLinks
RahulGautamSingh Jun 9, 2024
11a2950
remove openPgp
RahulGautamSingh Jun 10, 2024
836a5c5
refactor
RahulGautamSingh Jun 10, 2024
e9405a3
update docs
RahulGautamSingh Jun 10, 2024
fbf9819
Revert "remove openPgp"
RahulGautamSingh Jun 18, 2024
541ebb2
refactor
RahulGautamSingh Jun 18, 2024
d6c6810
apply suggestion
RahulGautamSingh Jul 9, 2024
3e83c36
add test
RahulGautamSingh Jul 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/usage/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ nav:
- 'Overview': 'config-overview.md'
- 'Repository': 'configuration-options.md'
- 'Self-hosted': 'self-hosted-configuration.md'
- 'Self-hosted experimental flags': 'self-hosted-experimental-flags.md'
- 'Presets': 'config-presets.md'
- 'Validation': 'config-validation.md'
- ... | key-concepts
Expand Down
19 changes: 19 additions & 0 deletions docs/usage/self-hosted-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -548,6 +548,25 @@ Information provided mainly in debug log level.
Default execution timeout in minutes for child processes Renovate creates.
If this option is not set, Renovate will fallback to 15 minutes.

## experimentalFlags

The `experimentalFlags` configuration option streamlines managing experimental settings within Renovate.
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved
This option replaces the use of environment variables (prefixed with `RENOVATE_X_`), providing a more structured and manageable approach.

Old Approach: Previously, users had to set experimental environment variables like `RENOVATE_X_DOCKER_MAX_PAGES`, and others.

New Approach: With `experimentalFlags`, users can specify experimental settings directly within the configuration file, enhancing clarity and ease of maintenance.
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved

```js
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved
module.exports = {
experimentalFlags: ['dockerMaxPages=10'],
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved
};
```

Each setting can be specified in the two formats available `flagName` or `flagName=value`.

Read [Self-Hosted Experimental Flags](./self-hosted-experimental.md) for the full list of flags supported by Renovate.

## exposeAllEnv

To keep you safe, Renovate only passes a limited set of environment variables to package managers.
Expand Down
35 changes: 35 additions & 0 deletions docs/usage/self-hosted-experimental-flags.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Self-hosted experimental flags
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved

The following flags are "experimental" because they:

- are not commonly needed
- are typically an effort to work around some other service's or platform's problem
- can be removed at any time
- are variables for Renovate's internal use to validate they work as intended

Experimental variables which are commonly used and for which there is no external solution in sight can be converted to an official configuration option by the Renovate bot developers.

Use these experimental flags at your own risk.
We do not follow Semantic Versioning for any experimental variables.
These flags may be removed or have their behavior changed in **any** version.
We will try to keep breakage to a minimum, but make no guarantees that an experimental flag will keep working.

## `dockerHubTags`

If added to the `experimentalFlags` list, Renovate will use the Docker Hub API (`https://hub.docker.com`) to fetch tags instead of the normal Docker API for images pulled from `https://index.docker.io`.

```js
experimentalFlags: ['dockerHubTags'];
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved
```

## `dockerMaxPages`

The default maximum page number for Docker tags lookup on Docker registries is `20`.
You can override this default by setting a new integer number in the `dockerMaxPages` field.
This is useful for registries which ignore the `n` parameter in the query string and only return `50` tags per page.

Example usage:

```js
experimentalFlags: ['dockerMaxPages=10'];
```
9 changes: 0 additions & 9 deletions docs/usage/self-hosted-experimental.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,6 @@ You can set the config file Renovate should read with the `RENOVATE_CONFIG_FILE`

The process that runs Renovate must have the correct permissions to delete the config file.

## `RENOVATE_X_DOCKER_HUB_TAGS`

If set to any value, Renovate will use the Docker Hub API (`https://hub.docker.com`) to fetch tags instead of the normal Docker API for images pulled from `https://index.docker.io`.

## `RENOVATE_X_DOCKER_MAX_PAGES`

If set to an integer, Renovate will use this as max page number for docker tags lookup on docker registries, instead of the default 20 pages.
This is useful for registries which ignores the `n` parameter in the query string and only return 50 tags per page.

## `RENOVATE_X_EAGER_GLOBAL_EXTENDS`

Resolve and merge `globalExtends` presets before other global config, instead of after.
Expand Down
1 change: 1 addition & 0 deletions lib/config/global.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export class GlobalConfig {
'gitTimeout',
'platform',
'endpoint',
'experimentalFlags',
];

private static config: RepoGlobalConfig = {};
Expand Down
9 changes: 9 additions & 0 deletions lib/config/options/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2981,6 +2981,15 @@ const options: RenovateOptions[] = [
default: null,
supportedPlatforms: ['github'],
},
{
name: 'experimentalFlags',
description:
'Set which experimental flags you want Renovate to use.',
type: 'array',
subType: 'string',
default: null,
globalOnly: true,
},
];

export function getOptions(): RenovateOptions[] {
Expand Down
1 change: 1 addition & 0 deletions lib/config/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ export interface RepoGlobalConfig {
presetCachePersistence?: boolean;
privateKey?: string;
privateKeyOld?: string;
experimentalFlags?: string[];
}

export interface LegacyAdminConfig {
Expand Down
119 changes: 119 additions & 0 deletions lib/config/validation.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1702,4 +1702,123 @@ describe('config/validation', () => {
expect(errors).toHaveLength(0);
});
});

describe('validate experimental flags', () => {
beforeEach(() => {
GlobalConfig.reset();
});

it('warns if invalid flag found', async () => {
const config = {
experimentalFlags: [
'invalidintegertag=10',
'invalidtag',
'invalidstringtag=string',
'invalidarraytag=a,b,c',
10,
],
};
const { warnings } = await configValidation.validateConfig(
'global',
config,
);
expect(warnings).toEqual([
{
topic: 'Configuration Error',
message:
'Experimental flags can only be of type string. Found invalid type',
},
{
topic: 'Configuration Error',
message:
'Invalid flag `invalidarraytag` found in `experimentalFlags`.',
},
{
topic: 'Configuration Error',
message:
'Invalid flag `invalidintegertag` found in `experimentalFlags`.',
},
{
topic: 'Configuration Error',
message:
'Invalid flag `invalidstringtag` found in `experimentalFlags`.',
},
{
topic: 'Configuration Error',
message: 'Invalid flag `invalidtag` found in `experimentalFlags`.',
},
]);
});

it('dockerHubTags', async () => {
const config = {
experimentalFlags: ['dockerHubTags'],
};
const { warnings } = await configValidation.validateConfig(
'global',
config,
);
expect(warnings).toBeEmptyArray();
});

it('warns if invalid value set for dockerHubTags', async () => {
const config = {
experimentalFlags: ['dockerHubTags=10'],
};
const { warnings } = await configValidation.validateConfig(
'global',
config,
);
expect(warnings).toEqual([
{
topic: 'Configuration Error',
message: 'Experimental flag `dockerHubTags` should not have a value.',
},
]);
});

it('dockerMaxPages', async () => {
const config = {
experimentalFlags: ['dockerMaxPages=10'],
};
const { warnings } = await configValidation.validateConfig(
'global',
config,
);
expect(warnings).toBeEmptyArray();
});

it('warns if invalid value set for dockerMaxPages', async () => {
const config = {
experimentalFlags: ['dockerMaxPages=string'],
};
const { warnings } = await configValidation.validateConfig(
'global',
config,
);
expect(warnings).toEqual([
{
topic: 'Configuration Error',
message:
'Experimental flag `dockerMaxPages` should be of type integer. Found invalid type instead.',
},
]);
});

it('warns if no value set for dockerMaxPages', async () => {
const config = {
experimentalFlags: ['dockerMaxPages'],
};
const { warnings } = await configValidation.validateConfig(
'global',
config,
);
expect(warnings).toEqual([
{
topic: 'Configuration Error',
message: 'Experimental flag `dockerMaxPages` should have a value.',
},
]);
});
});
});
84 changes: 83 additions & 1 deletion lib/config/validation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -940,7 +940,24 @@ async function validateGlobalConfig(
}
} else if (type === 'array') {
if (is.array(val)) {
if (key === 'gitNoVerify') {
if (key === 'experimentalFlags') {
for (const flag of val) {
if (is.string(flag)) {
const [flagName, flagValue] = flag.split('=');
validateExperimentalFlag(
flagName,
flagValue ?? null,
warnings,
currentPath,
);
} else {
warnings.push({
topic: 'Configuration Error',
message: `Experimental flags can only be of type string. Found invalid type`,
});
}
}
} else if (key === 'gitNoVerify') {
const allowedValues = ['commit', 'push'];
for (const value of val as string[]) {
if (!allowedValues.includes(value)) {
Expand Down Expand Up @@ -1019,3 +1036,68 @@ function isFalseGlobal(optionName: string, parentPath?: string): boolean {

return false;
}

function validateExperimentalFlag(
flagName: string,
flagValue: string | null,
warnings: ValidationMessage[],
currentPath: string | undefined,
): void {
const allowedExperimentalFlags: Record<string, Record<string, string>> = {
dockerHubTags: {},
dockerMaxPages: { acceptedValue: 'integer' },
};

const flagDetails = allowedExperimentalFlags[flagName];
if (!flagDetails) {
warnings.push({
topic: 'Configuration Error',
message: `Invalid flag \`${flagName}\` found in \`${currentPath}\`.`,
});
return;
}

if (flagDetails.acceptedValue && !flagValue) {
warnings.push({
topic: 'Configuration Error',
message: `Experimental flag \`${flagName}\` should have a value.`,
});
}

if (!flagDetails.acceptedValue && flagValue) {
warnings.push({
topic: 'Configuration Error',
message: `Experimental flag \`${flagName}\` should not have a value.`,
});
}

// will add test soon, for review I wanted to keep it minimal
// istanbul ignore if
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved
if (flagDetails.acceptedValue && flagValue) {
switch (flagDetails.acceptedValue) {
case 'integer':
if (!regEx(/^\d+$/).test(flagValue)) {
warnings.push({
topic: 'Configuration Error',
message: `Experimental flag \`${flagName}\` should be of type integer. Found invalid type instead.`,
});
}
break;
case 'string':
if (!regEx(/^\w+$/).test(flagValue)) {
warnings.push({
topic: 'Configuration Error',
message: `Experimental flag \`${flagName}\` should be of type string. Found invalid type instead.`,
});
}
break;
case 'array':
if (!regEx(/(\w+,?)+/).test(flagValue)) {
warnings.push({
topic: 'Configuration Error',
message: `Experimental flag \`${flagName}\` should be of type array of strings. Found invalid type instead.`,
});
}
}
}
}
12 changes: 6 additions & 6 deletions lib/modules/datasource/docker/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { getDigest, getPkgReleases } from '..';
import { range } from '../../../../lib/util/range';
import * as httpMock from '../../../../test/http-mock';
import { logger, mocked } from '../../../../test/util';
import { GlobalConfig } from '../../../config/global';
import { EXTERNAL_HOST_ERROR } from '../../../constants/error-messages';
import * as _hostRules from '../../../util/host-rules';
import { DockerDatasource } from '.';
Expand Down Expand Up @@ -47,8 +48,7 @@ describe('modules/datasource/docker/index', () => {
password: 'some-password',
});
hostRules.hosts.mockReturnValue([]);
delete process.env.RENOVATE_X_DOCKER_MAX_PAGES;
delete process.env.RENOVATE_X_DOCKER_HUB_TAGS;
RahulGautamSingh marked this conversation as resolved.
Show resolved Hide resolved
GlobalConfig.reset();
});

describe('getDigest', () => {
Expand Down Expand Up @@ -1286,7 +1286,7 @@ describe('modules/datasource/docker/index', () => {
});

it('uses custom max pages', async () => {
process.env.RENOVATE_X_DOCKER_MAX_PAGES = '2';
GlobalConfig.set({ experimentalFlags: ['dockerMaxPages=2'] });
httpMock
.scope(baseUrl)
.get('/library/node/tags/list?n=10000')
Expand Down Expand Up @@ -1793,7 +1793,7 @@ describe('modules/datasource/docker/index', () => {
});

it('Uses Docker Hub tags for registry-1.docker.io', async () => {
process.env.RENOVATE_X_DOCKER_HUB_TAGS = 'true';
GlobalConfig.set({ experimentalFlags: ['dockerHubTags'] });
httpMock
.scope(dockerHubUrl)
.get('/library/node/tags?page_size=1000')
Expand Down Expand Up @@ -1834,7 +1834,7 @@ describe('modules/datasource/docker/index', () => {
});

it('adds library/ prefix for Docker Hub (implicit)', async () => {
process.env.RENOVATE_X_DOCKER_HUB_TAGS = 'true';
GlobalConfig.set({ experimentalFlags: ['dockerHubTags'] });
const tags = ['1.0.0'];
httpMock
.scope(dockerHubUrl)
Expand Down Expand Up @@ -1863,7 +1863,7 @@ describe('modules/datasource/docker/index', () => {
});

it('adds library/ prefix for Docker Hub (explicit)', async () => {
process.env.RENOVATE_X_DOCKER_HUB_TAGS = 'true';
GlobalConfig.set({ experimentalFlags: ['dockerHubTags'] });
httpMock
.scope(dockerHubUrl)
.get('/library/node/tags?page_size=1000')
Expand Down
Loading
Loading