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

upgrade nexus version to 3.74.0 #1052

Merged
merged 2 commits into from
Jan 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/gating.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Validate OpenAPI definition
uses: char0n/[email protected].0
uses: swaggerexpert/[email protected].2
with:
definition-file: cachito/web/static/api_v1.yaml

Expand Down
2 changes: 1 addition & 1 deletion cachito/workers/nexus.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ def get_component_info_from_nexus(
)
if group is NULL_GROUP:
# the Nexus API does not allow to directly search for components without groups
components = [c for c in components if c["group"] is None]
components = [c for c in components if not c["group"]]

if len(components) > 1:
log.error(
Expand Down
4 changes: 2 additions & 2 deletions cachito/workers/pkg_managers/pip.py
Original file line number Diff line number Diff line change
Expand Up @@ -2123,13 +2123,13 @@ def get_raw_component_name(requirement):
orig_url = urllib.parse.urlparse(requirement.url)
file_ext = next(ext for ext in SDIST_FILE_EXTENSIONS if orig_url.path.endswith(ext))
filename = f"{package}-external-{algorithm}-{digest}{file_ext}"
raw_component_name = f"{package}/{filename}"
raw_component_name = f"/{package}/{filename}"
elif requirement.kind == "vcs":
git_info = extract_git_info(requirement.url)
repo_name = git_info["repo"]
ref = git_info["ref"]
filename = f"{repo_name}-external-gitcommit-{ref}.tar.gz"
raw_component_name = f"{repo_name}/{filename}"
raw_component_name = f"/{repo_name}/{filename}"

return raw_component_name

Expand Down
2 changes: 1 addition & 1 deletion cachito/workers/pkg_managers/rubygems.py
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ def _download_git_package(gem, rubygems_deps_dir, rubygems_raw_repo_name, nexus_

filename = f"{git_info['repo']}-external-gitcommit-{gem.version}.tar.gz"
download_path = package_dir / filename
raw_component_name = f"{git_info['repo']}/{filename}"
raw_component_name = f"/{git_info['repo']}/{filename}"

# Download raw component if we already have it
have_raw_component = download_raw_component(
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ services:
- 3000:3000

nexus:
image: docker.io/sonatype/nexus3:3.45.0
image: docker.io/sonatype/nexus3:3.74.0
environment:
# Enable the script API. This is disabled by default in 3.21.2+.
INSTALL4J_ADD_VM_PARAMS: >
Expand Down
4 changes: 2 additions & 2 deletions tests/test_workers/test_nexus.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def components_search_results():
"id": "Y2FjaGl0by1qcy1ob3N0ZWQ6MTNiMjllNDQ5ZjBlM2I4ZDM5OTY0ZWQzZTExMGUyZTM",
"repository": "cachito-js-hosted",
"format": "npm",
"group": None,
"group": "",
"name": "rxjs",
"version": "7.0.0-beta.0-external-dfa239d41b97504312fa95e13f4d593d95b49c4b",
"assets": [
Expand Down Expand Up @@ -366,7 +366,7 @@ def test_get_component_info_from_nexus_no_results(mock_search_components, mock_s
def test_get_component_info_from_nexus_null_group(mock_search_components):
mock_search_components.return_value = [
{"name": "foo", "group": "some", "version": "1.0.0"},
{"name": "foo", "group": None, "version": "1.0.0"},
{"name": "foo", "group": "", "version": "1.0.0"},
]

result = nexus.get_component_info_from_nexus(
Expand Down
24 changes: 12 additions & 12 deletions tests/test_workers/test_pkg_managers/test_pip.py
Original file line number Diff line number Diff line change
Expand Up @@ -2651,7 +2651,7 @@ def test_download_vcs_package(
mock_requirement, tmp_path, "cachito-pip-raw", ("username", "password")
)

raw_component = f"eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz"
raw_component = f"/eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz"

assert download_info == {
"package": "eggs",
Expand Down Expand Up @@ -2742,7 +2742,7 @@ def test_download_url_package(
set(trusted_hosts),
)

raw_component = "foo/foo-external-sha256-abcdef.tar.gz"
raw_component = "/foo/foo-external-sha256-abcdef.tar.gz"

assert download_info == {
"package": "foo",
Expand Down Expand Up @@ -3071,7 +3071,7 @@ def test_download_dependencies(
"package": "eggs",
"path": vcs_download,
"repo": "eggs",
"raw_component_name": f"eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz",
"raw_component_name": f"/eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz",
"have_raw_component": have_vcs_raw_component,
# etc., not important for this test
}
Expand All @@ -3080,7 +3080,7 @@ def test_download_dependencies(
"original_url": plain_url,
"url_with_hash": plain_url,
"path": url_download,
"raw_component_name": "bar/bar-external-sha256-654321.tar.gz",
"raw_component_name": "/bar/bar-external-sha256-654321.tar.gz",
"have_raw_component": have_url_raw_component,
}

Expand Down Expand Up @@ -3160,7 +3160,7 @@ def test_download_dependencies(
mock_upload_raw_package.assert_any_call(
raw_repo,
vcs_download,
vcs_info["repo"],
vcs_info["raw_component_name"].rsplit("/", 1)[0],
vcs_download.name,
is_request_repository=False,
)
Expand All @@ -3172,7 +3172,7 @@ def test_download_dependencies(
mock_upload_raw_package.assert_any_call(
raw_repo,
url_download,
url_info["package"],
url_info["raw_component_name"].rsplit("/", 1)[0],
url_download.name,
is_request_repository=False,
)
Expand Down Expand Up @@ -3395,7 +3395,7 @@ def test_push_downloaded_requirement_non_pypi(mock_upload, dev, kind):
path = "some/path"
if kind == "vcs":
version = f"git+https://github.com/spam/eggs@{GIT_REF}"
raw_component = f"eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz"
raw_component = f"/eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz"
additional_keys = {
"url": "https://github.com/spam/eggs",
"host": "github.com",
Expand All @@ -3407,7 +3407,7 @@ def test_push_downloaded_requirement_non_pypi(mock_upload, dev, kind):
url = "https://example.org/eggs.tar.gz"
url_with_hash = f"{url}#cachito_hash=sha256:abcdef"
version = url_with_hash
raw_component = "eggs/eggs.tar.gz"
raw_component = "/eggs/eggs.tar.gz"
additional_keys = {"original_url": url, "url_with_hash": url_with_hash}
else:
raise Exception("Invalid dependency kind.")
Expand Down Expand Up @@ -3444,7 +3444,7 @@ def test_push_downloaded_requirement_non_pypi_duplicated(
path = "some/path"
if kind == "vcs":
version = f"git+https://github.com/spam/eggs@{GIT_REF}"
raw_component = f"eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz"
raw_component = f"/eggs/eggs-external-gitcommit-{GIT_REF}.tar.gz"
additional_keys = {
"url": "https://github.com/spam/eggs",
"host": "github.com",
Expand All @@ -3456,7 +3456,7 @@ def test_push_downloaded_requirement_non_pypi_duplicated(
url = "https://example.org/eggs.tar.gz"
url_with_hash = f"{url}#cachito_hash=sha256:abcdef"
version = url_with_hash
raw_component = "eggs/eggs.tar.gz"
raw_component = "/eggs/eggs.tar.gz"
additional_keys = {"original_url": url, "url_with_hash": url_with_hash}
else:
raise Exception("Invalid dependency kind.")
Expand Down Expand Up @@ -3596,9 +3596,9 @@ def test_get_raw_component_name(component_kind, url):
)
raw_component = pip.get_raw_component_name(requirement)
if component_kind == "url":
assert raw_component == "package/package-external-sha256-noRealHash.tar.gz"
assert raw_component == "/package/package-external-sha256-noRealHash.tar.gz"
elif component_kind == "vcs":
assert raw_component == f"mypkg/mypkg-external-gitcommit-{'f'*40}.tar.gz"
assert raw_component == f"/mypkg/mypkg-external-gitcommit-{'f'*40}.tar.gz"
else:
assert not raw_component

Expand Down
12 changes: 8 additions & 4 deletions tests/test_workers/test_pkg_managers/test_rubygems.py
Original file line number Diff line number Diff line change
Expand Up @@ -547,7 +547,7 @@ def test_download_git_package(
dependency, tmp_path, "cachito-rubygems-raw", ("username", "password")
)

raw_component = f"json/json-external-gitcommit-{GIT_REF}.tar.gz"
raw_component = f"/json/json-external-gitcommit-{GIT_REF}.tar.gz"

url = "https://github.com/org/json.git"
assert download_info == {
Expand Down Expand Up @@ -625,10 +625,10 @@ def test_download_dependencies(
"path": rubygems_download,
}
git_info = {
"name": "bar",
"name": "/bar",
"path": git_download,
"version": f"git+{git_url}@{GIT_REF}",
"raw_component_name": f"bar/bar-external-gitcommit-{GIT_REF}.tar.gz",
"raw_component_name": f"/bar/bar-external-gitcommit-{GIT_REF}.tar.gz",
"have_raw_component": have_raw_component,
}
path_info = {"name": "baz", "version": "./vendor/active-docs"}
Expand Down Expand Up @@ -682,7 +682,11 @@ def test_download_dependencies(
f"'{git_info['raw_component_name']}'"
) in caplog.text
mock_upload_raw.assert_any_call(
raw_repo, git_download, git_dep.name, git_archive_name, is_request_repository=False
raw_repo,
git_download,
git_info["raw_component_name"].rsplit("/", 1)[0],
git_archive_name,
is_request_repository=False,
)
assert mock_upload_raw.call_count == (0 if have_raw_component else 1)
# </check calls to raw package upload method>
Expand Down
4 changes: 2 additions & 2 deletions tests/test_workers/test_tasks/test_pip.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,11 +133,11 @@ def test_fetch_pip_source(
["foo==1\n", None],
[
f"mypkg @ git+https://www.github.com/cachito/mypkg.git@{'f'*40}?egg=mypkg\n",
f"mypkg/mypkg-external-gitcommit-{'f'*40}.tar.gz",
f"/mypkg/mypkg-external-gitcommit-{'f'*40}.tar.gz",
],
[
"mypkg @ https://example.com/cachito/mypkg.tar.gz#egg=mypkg&cachito_hash=sha256%3Ax\n",
"mypkg/mypkg-external-sha256-x.tar.gz",
"/mypkg/mypkg-external-sha256-x.tar.gz",
],
],
)
Expand Down
Loading