-
Notifications
You must be signed in to change notification settings - Fork 57
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
add support for ASM exclusion filters #2667
base: master
Are you sure you want to change the base?
add support for ASM exclusion filters #2667
Conversation
4075102
to
18caced
Compare
f9803de
to
e6d4c74
Compare
230f6e3
to
07bab2f
Compare
6b912b4
to
6c8176f
Compare
4940539
to
a0baadc
Compare
c31d058
to
8142b5c
Compare
8142b5c
to
232436a
Compare
} | ||
|
||
localVarPath := localBasePath + "/api/v2/remote_config/products/asm/waf/exclusion_filters/{exclusion_filter_id}" | ||
localVarPath = strings.Replace(localVarPath, "{"+"exclusion_filter_id"+"}", _neturl.PathEscape(datadog.ParameterToString(exclusionFilterId, "")), -1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟠 Code Quality Violation
localVarPath = strings.Replace(localVarPath, "{"+"exclusion_filter_id"+"}", _neturl.PathEscape(datadog.ParameterToString(exclusionFilterId, "")), -1) | |
localVarPath = strings.ReplaceAll(localVarPath, "{"+"exclusion_filter_id"+"}", _neturl.PathEscape(datadog.ParameterToString(exclusionFilterId, ""))) |
Do not call Replace with a negative limit, use ReplaceAll instead (...read more)
In Go, the strings.Replace()
function is used to replace a certain substring within a string with another substring. The function takes in four parameters: the original string, the old substring to be replaced, the new substring that will replace the old one, and an integer limit dictating how many replacements to be made.
Calling strings.Replace()
with a negative limit doesn't really make sense. According to the Go documentation, if limit is negative, there is no limit on the number of replacements. Which means it will replace all instances of old substring in the original string with a new substring.
For example:
fmt.Println(strings.Replace("oink oink oink", "k", "ky", -2))
In this example, Replace returns a copy of the string "oink oink oink" where "k" is replaced by "ky" everywhere it appears, because limit is -2.
So it's not necessarily "incorrect" to use a negative limit, but it can create misunderstandings in your code. It's best to use a limit of -1
when you want to replace all instances, as this convention is more commonly understood to mean "no limit".
But if you specifically want to avoid using negative limit for Replace or looking for replace method with better efficiency, using strings.NewReplacer()
could be a better option when there are multiple string pairs need to be replaced, where you can specify a list of old-new string pairs.
Or you can use strings.ReplaceAll()
. It is equivalent to Replace with a limit of -1
. It's arguably clearer and more self-explanatory than using a negative limit with strings.Replace()
.
For example:
fmt.Println(strings.ReplaceAll("oink oink oink", "o", "ky"))
It replaces all instances of "o" in the string "oink oink oink" by "ky".
b476499
to
df621a6
Compare
See DataDog/datadog-api-spec#3084
Test branch datadog-api-spec/test/quentin.guillard/asm-v2-spec