|
40 | 40 | from univers.version_range import from_gitlab_native |
41 | 41 | from univers.versions import Version |
42 | 42 |
|
43 | | -from vulnerabilities.helpers import AffectedPackage as LegacyAffectedPackage |
44 | | -from vulnerabilities.helpers import get_affected_packages_by_patched_package |
45 | | -from vulnerabilities.helpers import nearest_patched_package |
46 | | -from vulnerabilities.helpers import resolve_version_range |
47 | 43 | from vulnerabilities.importer import AdvisoryData |
48 | 44 | from vulnerabilities.importer import AffectedPackage |
49 | 45 | from vulnerabilities.importer import Importer |
|
56 | 52 | from vulnerabilities.package_managers import GoproxyVersionAPI |
57 | 53 | from vulnerabilities.package_managers import VersionAPI |
58 | 54 | from vulnerabilities.package_managers import get_api_package_name |
| 55 | +from vulnerabilities.utils import AffectedPackage as LegacyAffectedPackage |
| 56 | +from vulnerabilities.utils import build_description |
| 57 | +from vulnerabilities.utils import get_affected_packages_by_patched_package |
| 58 | +from vulnerabilities.utils import nearest_patched_package |
| 59 | +from vulnerabilities.utils import resolve_version_range |
59 | 60 |
|
60 | 61 | logger = logging.getLogger(__name__) |
61 | 62 |
|
62 | 63 |
|
63 | 64 | PURL_TYPE_BY_GITLAB_SCHEME = { |
| 65 | + # "conan": "conan", |
64 | 66 | "gem": "gem", |
65 | | - "go": "golang", |
| 67 | + # Entering issue to parse go package names https://github.com/nexB/vulnerablecode/issues/742 |
| 68 | + # "go": "golang", |
66 | 69 | "maven": "maven", |
67 | 70 | "npm": "npm", |
68 | 71 | "nuget": "nuget", |
69 | | - "pypi": "pypi", |
70 | 72 | "packagist": "composer", |
71 | | - # "conan": "conan", |
| 73 | + "pypi": "pypi", |
72 | 74 | } |
73 | 75 |
|
74 | 76 |
|
@@ -125,7 +127,7 @@ def get_purl(package_slug): |
125 | 127 | name = parts[1] |
126 | 128 | return PackageURL(type=purl_type, name=name) |
127 | 129 | # if package slug is of the form: |
128 | | - # "nuget/github/user/abc/NuGet.Core" |
| 130 | + # "nuget/github.com/beego/beego/v2/nuget" |
129 | 131 | if len(parts) >= 3: |
130 | 132 | name = parts[-1] |
131 | 133 | namespace = "/".join(parts[1:-1]) |
@@ -187,11 +189,11 @@ def parse_gitlab_advisory(file): |
187 | 189 |
|
188 | 190 | # refer to schema here https://gitlab.com/gitlab-org/advisories-community/-/blob/main/ci/schema/schema.json |
189 | 191 | aliases = gitlab_advisory.get("identifiers") |
190 | | - summary = ". ".join([gitlab_advisory.get("title"), gitlab_advisory.get("description")]) |
| 192 | + summary = build_description(gitlab_advisory.get("title"), gitlab_advisory.get("description")) |
191 | 193 | urls = gitlab_advisory.get("urls") |
192 | 194 | references = [Reference.from_url(u) for u in urls] |
193 | 195 | date_published = dateparser.parse(gitlab_advisory.get("pubdate")) |
194 | | - date_published = pytz.utc.localize(date_published) |
| 196 | + date_published = date_published.replace(tzinfo=pytz.UTC) |
195 | 197 | package_slug = gitlab_advisory.get("package_slug") |
196 | 198 | purl: PackageURL = get_purl(package_slug=package_slug) |
197 | 199 | if not purl: |
|
0 commit comments