in src/ci_workflow/ci_check_gradle_dependencies.py [0:0]
def __get_dependencies(self):
cmd = " ".join(
[
f"./gradlew {self.gradle_project or ''}:dependencies",
f"-Dopensearch.version={self.target.opensearch_version}",
f"-Dbuild.snapshot={str(self.target.snapshot).lower()}",
"--configuration compileOnly",
'| grep -e "---"',
]
)
lines = self.git_repo.output(cmd)
stack = ["root"]
props = PropertiesFile("")
for line in lines.split("\n"):
# e.g. "| +--- org.opensearch:opensearch-core:1.1.0-SNAPSHOT"
# see job_scheduler_dependencies.txt in tests for an example
match = re.search(r"---\s(.*):([0-9,\w,.-]*)[\s]*", line)
if match:
levels = line.count(" ") + line.count("---")
while levels < len(stack):
del stack[-1]
if levels == len(stack):
stack[-1] = match.group(1).strip()
elif levels > len(stack):
stack.append(match.group(1).strip())
key = "/".join(stack)
value = match.group(2).strip()
logging.debug(f"{key}={value}")
props[key] = value
return props