Skip to content

Commit 81942b6

Browse files
committed
add support for extra extensions
Signed-off-by: Varsha U N <[email protected]>
1 parent 7d553ca commit 81942b6

File tree

8 files changed

+23
-83
lines changed

8 files changed

+23
-83
lines changed

scanpipe/pipelines/analyze_docker.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,9 @@
2121
# Visit https://github.com/aboutcode-org/scancode.io for support and download.
2222

2323
import logging
24-
<<<<<<< HEAD
25-
from scanpipe.pipelines.analyze_root_filesystem import RootFS
26-
=======
2724
from pathlib import Path
2825

29-
from scanpipe.pipelines import RootFS
30-
>>>>>>> ca3a1ac0c0147a6f3f59999a67bf586eab9b8a36
26+
from scanpipe.pipelines.analyze_root_filesystem import RootFS
3127
from scanpipe.pipes import docker
3228
from scanpipe.pipes import rootfs
3329
from scanpipe.pipes.fetch import store_package_archive

scanpipe/pipelines/analyze_docker_windows.py

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,14 @@
2121
# Visit https://github.com/aboutcode-org/scancode.io for support and download.
2222

2323
import logging
24-
<<<<<<< HEAD
25-
from scanpipe.pipelines.analyze_docker import Docker
26-
=======
2724
from pathlib import Path
2825

29-
from scanpipe.pipelines import Docker
30-
>>>>>>> ca3a1ac0c0147a6f3f59999a67bf586eab9b8a36
26+
from scanpipe.pipelines.analyze_docker import Docker
3127
from scanpipe.pipes import docker
3228
from scanpipe.pipes import rootfs
3329
from scanpipe.pipes import windows
3430
from scanpipe.pipes.fetch import store_package_archive
31+
from scanpipe.pipes.input import is_archive
3532

3633
logger = logging.getLogger(__name__)
3734
class DockerWindows(Docker):
@@ -71,8 +68,8 @@ def store_package_archives(self):
7168

7269
package_files = [
7370
resource.path
74-
for resource in self.project.codebaseresources.filter(
75-
extension__in=[".msi", ".exe"])
71+
for resource in self.project.codebaseresources.all()
72+
if is_archive(resource.path)
7673
]
7774

7875
for package_path in package_files:

scanpipe/pipelines/analyze_root_filesystem.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
from scanpipe.pipes import rootfs
3131
from scanpipe.pipes import scancode
3232
from scanpipe.pipes.fetch import store_package_archive
33+
from scanpipe.pipes.input import is_archive
3334

3435

3536
class RootFS(Pipeline):
@@ -110,9 +111,8 @@ def store_package_archives(self):
110111

111112
package_files = [
112113
resource.path
113-
for resource in self.project.codebaseresources.filter(
114-
extension__in=[".deb", ".apk"]
115-
)
114+
for resource in self.project.codebaseresources.all()
115+
if is_archive(resource.path)
116116
]
117117
for package_path in package_files:
118118
if not Path(package_path).exists():

scanpipe/pipelines/deploy_to_develop.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
# Visit https://github.com/aboutcode-org/scancode.io for support and download.
2222

2323
import logging
24+
from pathlib import Path
25+
2426
from aboutcode.pipeline import optional_step
2527
from scanpipe import pipes
2628
from scanpipe.pipelines import Pipeline
@@ -32,6 +34,7 @@
3234
from scanpipe.pipes import purldb
3335
from scanpipe.pipes import scancode
3436
from scanpipe.pipes.fetch import store_package_archive
37+
from scanpipe.pipes.input import is_archive
3538

3639
logger = logging.getLogger(__name__)
3740

@@ -142,9 +145,8 @@ def store_package_archives(self):
142145
stored_files = []
143146
package_files = [
144147
resource.path
145-
for resource in self.project.codebaseresources.filter(
146-
extension__in=self.purldb_package_extensions
147-
)
148+
for resource in self.project.codebaseresources.all()
149+
if is_archive(resource.path)
148150
]
149151

150152
for package_path in package_files:

scanpipe/pipelines/inspect_packages.py

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,10 @@
2121
# Visit https://github.com/aboutcode-org/scancode.io for support and download.
2222

2323
import logging
24-
<<<<<<< HEAD
25-
from aboutcode.pipeline import optional_step
26-
=======
27-
from pathlib import Path
2824

2925
from aboutcode.pipeline import group
30-
>>>>>>> ca3a1ac0c0147a6f3f59999a67bf586eab9b8a36
3126
from scanpipe.pipelines.scan_codebase import ScanCodebase
3227
from scanpipe.pipes import scancode
33-
from scanpipe.pipes.fetch import store_package_archive
3428

3529
logger = logging.getLogger(__name__)
3630

@@ -75,40 +69,6 @@ def scan_for_application_packages(self):
7569
progress_logger=self.log,
7670
)
7771

78-
def store_package_archives(self):
79-
"""Store identified package archives locally if enabled."""
80-
if not self.project.use_local_storage:
81-
logger.info(f"Local storage is disabled for project: {self.project.name}."
82-
"Skipping package storage.")
83-
return []
84-
85-
logger.info(f"Storing package archives for project: {self.project.name}")
86-
stored_files = []
87-
package_files = [
88-
resource.path
89-
for resource in self.project.codebaseresources.filter(
90-
extension__in=[
91-
".zip", ".whl", ".tar.gz", ".deb", ".rpm", ".apk", ".nupkg", ".msi",
92-
".exe"]
93-
)
94-
]
95-
96-
for package_path in package_files:
97-
if not Path(package_path).exists():
98-
logger.error(f"Invalid or missing package path: {package_path}")
99-
continue
100-
package_path_str = str(package_path)
101-
logger.info(f"Storing package archive: {package_path_str}")
102-
try:
103-
result = store_package_archive(
104-
self.project, url=None, file_path=package_path_str
105-
)
106-
logger.info(f"Stored package archive {package_path_str}: {result}")
107-
stored_files.append(result)
108-
except Exception as e:
109-
logger.error(f"Failed to store {package_path_str}: {e}")
110-
111-
return stored_files
11272

11373
@group("StaticResolver")
11474
def resolve_dependencies(self):

scanpipe/pipelines/resolve_dependencies.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,15 @@
2121
# Visit https://github.com/aboutcode-org/scancode.io for support and download.
2222

2323
import logging
24-
<<<<<<< HEAD
25-
=======
2624
from pathlib import Path
27-
>>>>>>> ca3a1ac0c0147a6f3f59999a67bf586eab9b8a36
28-
from aboutcode.pipeline import optional_step
25+
2926
from aboutcode.pipeline import group
27+
from aboutcode.pipeline import optional_step
3028
from scanpipe.pipelines.scan_codebase import ScanCodebase
3129
from scanpipe.pipes import resolve
3230
from scanpipe.pipes import scancode
3331
from scanpipe.pipes.fetch import store_package_archive
32+
from scanpipe.pipes.input import is_archive
3433

3534
logger = logging.getLogger(__name__)
3635
class ResolveDependencies(ScanCodebase):
@@ -119,11 +118,8 @@ def store_package_archives(self):
119118
stored_files = []
120119
package_files = [
121120
resource.path
122-
for resource in self.project.codebaseresources.filter(
123-
extension__in=[
124-
".whl", ".tar.gz", ".zip", ".deb", ".rpm", ".apk", ".nupkg"
125-
]
126-
)
121+
for resource in self.project.codebaseresources.all()
122+
if is_archive(resource.path)
127123
]
128124

129125
for package_path in package_files:

scanpipe/pipelines/scan_codebase.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
from scanpipe.pipes import scancode
2929
from scanpipe.pipes.fetch import store_package_archive
3030
from scanpipe.pipes.input import copy_inputs
31+
from scanpipe.pipes.input import is_archive
3132

3233
logger = logging.getLogger(__name__)
3334

@@ -71,11 +72,8 @@ def store_package_archives(self):
7172
stored_files = []
7273
package_files = [
7374
resource.path
74-
for resource in self.project.codebaseresources.filter(
75-
extension__in=[
76-
".whl", ".tar.gz", ".zip", ".deb", ".rpm", ".apk", ".nupkg", ".msi",
77-
".exe"]
78-
)
75+
for resource in self.project.codebaseresources.all()
76+
if is_archive(resource.path)
7977
]
8078

8179
for package_path in package_files:

scanpipe/pipes/fetch.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import re
2929
import subprocess
3030
import tempfile
31+
from cgi import parse_header_parameters
3132
from collections import namedtuple
3233
from pathlib import Path
3334
from urllib.parse import unquote
@@ -41,8 +42,6 @@
4142
from commoncode import command
4243
from commoncode.hash import multi_checksums
4344
from commoncode.text import python_safe_name
44-
from packageurl import PackageURL
45-
from packageurl.contrib import purl2url
4645
from plugincode.location_provider import get_location
4746
from requests import auth as request_auth
4847

@@ -363,10 +362,6 @@ def fetch_git_repo(url, to=None):
363362
)
364363

365364

366-
<<<<<<< HEAD
367-
=======
368-
369-
>>>>>>> ca3a1ac0c0147a6f3f59999a67bf586eab9b8a36
370365
def store_package_archive(project, url=None, file_path=None):
371366
"""
372367
Store a package in PackageArchive and link it to DownloadedPackage.
@@ -441,10 +436,6 @@ def store_package_archive(project, url=None, file_path=None):
441436
return None
442437

443438

444-
<<<<<<< HEAD
445-
=======
446-
447-
>>>>>>> ca3a1ac0c0147a6f3f59999a67bf586eab9b8a36
448439
SCHEME_TO_FETCHER_MAPPING = {
449440
"http": fetch_http,
450441
"https": fetch_http,
@@ -461,7 +452,7 @@ def get_fetcher(url):
461452
return fetch_git_repo
462453

463454
if url.startswith("pkg:"):
464-
return fetch_package_url
455+
return fetch_url
465456

466457
# Not using `urlparse(url).scheme` for the scheme as it converts to lower case.
467458
scheme = url.split("://")[0]

0 commit comments

Comments
 (0)