Skip to content
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

Update vulnerabilities to use new Tool specification #438

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

shaikhu
Copy link

@shaikhu shaikhu commented Jun 25, 2024

According to the docs, since v1.5 the Tools format has been deprecated and a new format recommended. While the entity Metada has been updated to use the new format (new method setToolChoice), Vulnerability has not. This PR adds a similar method to Vulnerability.

@shaikhu shaikhu requested a review from a team as a code owner June 25, 2024 09:12
@nscuro nscuro added the enhancement New feature or request label Jun 25, 2024
Copy link

codacy-production bot commented Jun 25, 2024

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
+0.97% 97.84%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (134c36e) 6029 4400 72.98%
Head commit (691649c) 6264 (+235) 4632 (+232) 73.95% (+0.97%)

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#438) 278 272 97.84%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

Codacy stopped sending the deprecated coverage status on June 5th, 2024. Learn more

@shaikhu shaikhu requested a review from nscuro July 8, 2024 15:22
vulnerability.setProperties(properties);
}

if (node.has("tools")) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what if it's an older version and has only the toolChoice?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what if it's an older version and has only the toolChoice?

Looking at the docs, both the new and deprecated field has the same name Tools. Also the xsd only defines Tools not Tools and ToolChoice.

However looking at the docs, the field is of type Object, while the previous type was Array. For this reason I'm dropping the JacksonXmlElementWrapper annotation on the new type. See 691649c. Let me know if you think it should be added back.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Get it, this if looks the same as the one in the metadata deserializer, I would have one method for both in a util classes or something

Copy link
Author

@shaikhu shaikhu Sep 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Get it, this if looks the same as the one in the metadata deserializer, I would have one method for both in a util classes or something

👍 28e15c1

Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>

@SuppressWarnings("unused")
public final class TimestampUtils {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssX");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would rather not introduce this for some serializers only, I would update the test files instead, the reason for that is that some dates might have different formats, so maybe a future enhancement will be to update all the dates, there's already a CustomDateSerializer, so maybe you need to include that one for the values you are using?

@mr-zepol
Copy link
Contributor

@shaikhu new fields were introduced to the vulnerability class, so you might need to rebase and add them to the serializer you are creating

Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Signed-off-by: Usman Shaikh <shaikhu@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants