fix: fix replication of multiple projects with numeric names #21474
+21
−15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thank you for contributing to Harbor!
Comprehensive Summary of your change
The original fix to #19027 contained in #19090 worked well for replicating a single project whose name was numeric, but did not resolve the issue when multiple numeric project names were provided.
The issue was in the construction of the API call. The query parameter was previously being constructed as
name={'123 456 789'}
. With the addition of some debug logging (also included in this PR), I noticed that the server was parsing this as'123
,456
,789'
. Note that the single quotes were being associated with the first and last values of the list, so these values were forced into parsing as string values. However, the middle value contains only numbers and so was parsed as such. This doesn't cause a problem when only 1 or 2 values are being passed, but can show itself once there are 3 or more values.The solution is to surround each project name in quotes,
name={'123' '456' '789'}
, so they are all handled as strings by the server.Issue being fixed
Further fixes #19027.
Please indicate you've done the following: