gradle: exclude constraints when retrieving dependencies #1563
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.
Overview
This PR excludes constraints when retrieving dependencies.
One of the API calls we use for retrieving Gradle dependencies also includes "constraints", which get treated as a direct dependency. After reviewing the gradle GitHub issues it seems this used to affect
gradle dependencies
but they filtered out the constraint dependencies. Any dependencies (direct or transitive) are still reported without issues.Constraints guide: https://docs.gradle.org/current/userguide/dependency_constraints.html
I did not include tests since the change is specifically to the jsondeps.gradle file and we don't have any testing setup for it. I manually tested the changes, see below
Acceptance criteria
Testing plan
Use this Gradle.build file:
check out the master branch:

run
gradle -I/path/to/fossa-cli/scripts/jsondeps.gradle jsonDeps
look for
RESOLUTIONAPI_JSONDEPS_:_
- then I either copy & paste or use jq on the json snippetin particular - you'll see
org.apache.httpcomponents.client5:httpclient5:5.5
as a direct dependency (resolvedConfigurationDirectComponents
)^ this is no bueno
switch to this branch, run the gradle command again, and now you get:


mucho better!
and the httpclient dependency still exists:
Risks
n/a
Metrics
n/a
References
Ticket: https://fossa.atlassian.net/browse/ANE-2564
Checklist
docs/
.docs/README.ms
and gave consideration to how discoverable or not my documentation is.Changelog.md
. If this PR did not mark a release, I added my changes into an## Unreleased
section at the top..fossa.yml
orfossa-deps.{json.yml}
, I updateddocs/references/files/*.schema.json
AND I have updated example files used byfossa init
command. You may also need to update these if you have added/removed new dependency type (e.g.pip
) or analysis target type (e.g.poetry
).docs/references/subcommands/<subcommand>.md
.