Skip to content

Commit da1f97b

Browse files
committed
Add configuration options to retain stale revisions
1 parent 82a1034 commit da1f97b

3 files changed

Lines changed: 48 additions & 1 deletion

File tree

docs/configuration-reference.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ dirigent:
3535
dev_packages: false
3636
metadata:
3737
mirror_vcs_repositories: false
38+
retain_stale_revisions:
39+
enabled: true
40+
tagged_versions: true
41+
dev_versions: false
3842
```
3943
4044
## dirigent (root)
@@ -131,6 +135,26 @@ Fetch mirrored packages from their VCS repositories by default when possible.
131135

132136
Sets the fetch strategy of new mirrored packages to **Fetch from VCS**.
133137

138+
### retain_stale_revisions
139+
140+
#### enabled
141+
142+
Type: `boolean` | Default: `true`
143+
144+
Whether to enable or disable retaining stale revisions of packages.
145+
146+
#### tagged_versions
147+
148+
Type: `boolean` | Default: `true`
149+
150+
Retain stale revisions of tagged package versions.
151+
152+
#### dev_versions
153+
154+
Type: `boolean` | Default: `false`
155+
156+
Retain stale revisions of development package versions.
157+
134158
[iso-8601-durations]: https://en.wikipedia.org/wiki/ISO_8601#Durations
135159
[symfony]: https://symfony.com
136160
[symfony-docs-config]: https://symfony.com/doc/current/configuration.html

src/DependencyInjection/DirigentConfiguration.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,19 @@ private function addMetadataSection(ArrayNodeDefinition|NodeDefinition $rootNode
9393
->defaultFalse()
9494
->info('Fetch mirrored packages from their VCS repositories by default when possible.')
9595
->end()
96+
->arrayNode('retain_stale_revisions')
97+
->canBeDisabled('Retain stale revisions of package versions.')
98+
->children()
99+
->booleanNode('tagged_versions')
100+
->defaultTrue()
101+
->info('Retain stale revisions of tagged package versions.')
102+
->end()
103+
->booleanNode('dev_versions')
104+
->defaultFalse()
105+
->info('Retain stale revisions of development package versions.')
106+
->end()
107+
->end()
108+
->end()
96109
->end()
97110
->end();
98111
}

src/DependencyInjection/DirigentExtension.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,21 @@ private function registerEncryptionConfiguration(array $config, ContainerBuilder
5656
}
5757

5858
/**
59-
* @param array{mirror_vcs_repositories: bool} $config
59+
* @param array{mirror_vcs_repositories: bool, retain_stale_revisions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}} $config
6060
*/
6161
private function registerMetadataConfiguration(array $config, ContainerBuilder $container): void
6262
{
6363
$container->setParameter('dirigent.metadata.mirror_vcs_repositories', $config['mirror_vcs_repositories']);
64+
65+
$retainStaleRevisions = $config['retain_stale_revisions']['enabled'];
66+
$container->setParameter(
67+
name: 'dirigent.metadata.retain_stale_revisions.tagged_versions',
68+
value: $retainStaleRevisions && $config['retain_stale_revisions']['tagged_versions'],
69+
);
70+
$container->setParameter(
71+
name: 'dirigent.metadata.retain_stale_revisions.dev_versions',
72+
value: $retainStaleRevisions && $config['retain_stale_revisions']['dev_versions'],
73+
);
6474
}
6575

6676
/**

0 commit comments

Comments
 (0)