Skip to content

Commit 848b201

Browse files
Escape / in release version (#371)
1 parent e9e5ec1 commit 848b201

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/DependencyInjection/Configuration.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,10 +111,14 @@ public function getConfigTreeBuilder(): TreeBuilder
111111
->prototype('scalar');
112112
$optionsChildNodes->scalarNode('project_root');
113113

114-
$releaseNode = $optionsChildNodes->scalarNode('release')
114+
$optionsChildNodes->scalarNode('release')
115115
->info('Release version to be reported to sentry, see https://docs.sentry.io/workflow/releases/?platform=php')
116-
->example('my/application@ff11bb');
117-
$releaseNode->defaultValue(PrettyVersions::getRootPackageVersion()->getPrettyVersion());
116+
->example('my-application@ff11bb')
117+
->beforeNormalization()
118+
->ifString()
119+
->then($this->escapeInvalidReleaseCharacters())
120+
->end()
121+
->defaultValue(PrettyVersions::getRootPackageVersion()->getPrettyVersion());
118122

119123
$optionsChildNodes->floatNode('sample_rate')
120124
->min(0.0)
@@ -177,6 +181,13 @@ public function getConfigTreeBuilder(): TreeBuilder
177181
return $treeBuilder;
178182
}
179183

184+
private function escapeInvalidReleaseCharacters(): \Closure
185+
{
186+
return static function ($str): string {
187+
return str_replace('/', '-', $str);
188+
};
189+
}
190+
180191
private function getTrimClosure(): \Closure
181192
{
182193
return static function ($str): ?string {

test/DependencyInjection/ConfigurationTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,13 @@ public function optionValuesProvider(): array
137137
];
138138
}
139139

140+
public function testReleaseValueEscaped(): void
141+
{
142+
$processed = $this->processConfiguration(['options' => ['release' => 'abc/123']]);
143+
144+
$this->assertContains(['options' => ['release' => 'abc-123']], $processed);
145+
}
146+
140147
/**
141148
* @dataProvider invalidValuesProvider
142149
*/

0 commit comments

Comments
 (0)