File tree Expand file tree Collapse file tree 2 files changed +12
-4
lines changed
tests/sentry/api/endpoints Expand file tree Collapse file tree 2 files changed +12
-4
lines changed Original file line number Diff line number Diff line change 1616from sentry .utils .apidocs import scenario , attach_scenarios
1717
1818
19+ BAD_RELEASE_CHARS = '\n \f \t /'
20+
21+
1922@scenario ('CreateNewRelease' )
2023def create_new_release_scenario (runner ):
2124 runner .request (
@@ -42,15 +45,20 @@ def list_releases_scenario(runner):
4245
4346
4447class ReleaseSerializer (serializers .Serializer ):
45- version = serializers .RegexField (r'^[a-zA-Z0-9\-_\. \(\)]+\Z' ,
46- max_length = 64 , required = True )
48+ version = serializers .CharField (max_length = 64 , required = True )
4749 ref = serializers .CharField (max_length = 64 , required = False )
4850 url = serializers .URLField (required = False )
4951 owner = UserField (required = False )
5052 dateStarted = serializers .DateTimeField (required = False )
5153 dateReleased = serializers .DateTimeField (required = False )
5254 commits = ListField (child = CommitSerializer (), required = False )
5355
56+ def validate_version (self , attrs , source ):
57+ value = attrs [source ]
58+ if any (c in value for c in BAD_RELEASE_CHARS ) or value in ('.' , '..' ):
59+ raise serializers .ValidationError ('Invalid value for release' )
60+ return attrs
61+
5462
5563class ProjectReleasesEndpoint (ProjectEndpoint ):
5664 doc_section = DocSection .RELEASES
Original file line number Diff line number Diff line change @@ -344,11 +344,11 @@ def test_version_whitespace(self):
344344 assert response .status_code == 400 , response .content
345345
346346 response = self .client .post (url , data = {
347- 'version' : '1.2.3' ,
347+ 'version' : '1.2.3+dev ' ,
348348 'projects' : [project .slug ]
349349 })
350350 assert response .status_code == 201 , response .content
351- assert response .data ['version' ] == '1.2.3'
351+ assert response .data ['version' ] == '1.2.3+dev '
352352
353353 release = Release .objects .get (
354354 organization_id = org .id ,
You can’t perform that action at this time.
0 commit comments