Skip to content

Commit e744ad5

Browse files
committed
Update collect_issue_pr_v2 to use the new AdvisoryDataV2 and refactor the code
Signed-off-by: ziad hany <ziadhany2016@gmail.com>
1 parent 359de5b commit e744ad5

File tree

3 files changed

+193
-14
lines changed

3 files changed

+193
-14
lines changed

vulnerabilities/importers/__init__.py

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,15 @@
4747
from vulnerabilities.pipelines.v2_importers import apache_kafka_importer as apache_kafka_importer_v2
4848
from vulnerabilities.pipelines.v2_importers import apache_tomcat_importer as apache_tomcat_v2
4949
from vulnerabilities.pipelines.v2_importers import archlinux_importer as archlinux_importer_v2
50-
from vulnerabilities.pipelines.v2_importers import collect_issue_pr as collect_issue_pr_v2
5150
from vulnerabilities.pipelines.v2_importers import collect_fix_commits as collect_fix_commits_v2
51+
from vulnerabilities.pipelines.v2_importers import collect_issue_pr as collect_issue_pr_v2
5252
from vulnerabilities.pipelines.v2_importers import curl_importer as curl_importer_v2
5353
from vulnerabilities.pipelines.v2_importers import debian_importer as debian_importer_v2
5454
from vulnerabilities.pipelines.v2_importers import (
5555
elixir_security_importer as elixir_security_importer_v2,
5656
)
5757
from vulnerabilities.pipelines.v2_importers import epss_importer_v2
5858
from vulnerabilities.pipelines.v2_importers import fireeye_importer_v2
59-
from vulnerabilities.pipelines.v2_importers import github_issue_pr as github_issue_pr_v2
6059
from vulnerabilities.pipelines.v2_importers import gentoo_importer as gentoo_importer_v2
6160
from vulnerabilities.pipelines.v2_importers import github_osv_importer as github_osv_importer_v2
6261
from vulnerabilities.pipelines.v2_importers import gitlab_importer as gitlab_importer_v2
@@ -115,8 +114,6 @@
115114
nginx_importer_v2.NginxImporterPipeline,
116115
debian_importer_v2.DebianImporterPipeline,
117116
mattermost_importer_v2.MattermostImporterPipeline,
118-
collect_issue_pr_v2.CollectIssuePRPipeline,
119-
github_issue_pr_v2.GithubPipelineIssuePRPipeline,
120117
apache_tomcat_v2.ApacheTomcatImporterPipeline,
121118
suse_score_importer_v2.SUSESeverityScoreImporterPipeline,
122119
retiredotnet_importer_v2.RetireDotnetImporterPipeline,
@@ -158,9 +155,6 @@
158155
ubuntu_usn.UbuntuUSNImporter,
159156
fireeye.FireyeImporter,
160157
oss_fuzz.OSSFuzzImporter,
161-
collect_issue_pr_v2.CollectKubernetesPRSIssues,
162-
collect_issue_pr_v2.CollectWiresharkPRSIssues,
163-
github_issue_pr_v2.GithubPipelineIssuePR,
164158
collect_fix_commits_v2.CollectLinuxFixCommitsPipeline,
165159
collect_fix_commits_v2.CollectBusyBoxFixCommitsPipeline,
166160
collect_fix_commits_v2.CollectNginxFixCommitsPipeline,
@@ -198,5 +192,37 @@
198192
collect_fix_commits_v2.CollectGitFixCommitsPipeline,
199193
collect_fix_commits_v2.CollectJenkinsFixCommitsPipeline,
200194
collect_fix_commits_v2.CollectGitlabFixCommitsPipeline,
195+
collect_issue_pr_v2.CollectBusyBoxPRSIssuesPipeline,
196+
collect_issue_pr_v2.CollectNginxPRSIssuesPipeline,
197+
collect_issue_pr_v2.CollectApacheTomcatPRSIssuesPipeline,
198+
collect_issue_pr_v2.CollectMongodbPRSIssuesPipeline,
199+
collect_issue_pr_v2.CollectRedisPRSIssuesPipeline,
200+
collect_issue_pr_v2.CollectPhpPRSIssuesPipeline,
201+
collect_issue_pr_v2.CollectPythonCpythonPRSIssuesPipeline,
202+
collect_issue_pr_v2.CollectRubyPRSIssuesPipeline,
203+
collect_issue_pr_v2.CollectGoPRSIssuesPipeline,
204+
collect_issue_pr_v2.CollectNodeJsPRSIssuesPipeline,
205+
collect_issue_pr_v2.CollectRustPRSIssuesPipeline,
206+
collect_issue_pr_v2.CollectOpenjdkPRSIssuesPipeline,
207+
collect_issue_pr_v2.CollectSwiftPRSIssuesPipeline,
208+
collect_issue_pr_v2.CollectDjangoPRSIssuesPipeline,
209+
collect_issue_pr_v2.CollectLaravelPRSIssuesPipeline,
210+
collect_issue_pr_v2.CollectSpringFrameworkPRSIssuesPipeline,
211+
collect_issue_pr_v2.CollectRailsPRSIssuesPipeline,
212+
collect_issue_pr_v2.CollectReactPRSIssuesPipeline,
213+
collect_issue_pr_v2.CollectAngularPRSIssuesPipeline,
214+
collect_issue_pr_v2.CollectWordpressPRSIssuesPipeline,
215+
collect_issue_pr_v2.CollectDockerMobyPRSIssuesPipeline,
216+
collect_issue_pr_v2.CollectKubernetesPRSIssuesPipeline,
217+
collect_issue_pr_v2.CollectXenProjectPRSIssuesPipeline,
218+
collect_issue_pr_v2.CollectVirtualboxPRSIssuesPipeline,
219+
collect_issue_pr_v2.CollectContainerdPRSIssuesPipeline,
220+
collect_issue_pr_v2.CollectAnsiblePRSIssuesPipeline,
221+
collect_issue_pr_v2.CollectTerraformPRSIssuesPipeline,
222+
collect_issue_pr_v2.CollectTcpdumpPRSIssuesPipeline,
223+
collect_issue_pr_v2.CollectJenkinsPRSIssuesPipeline,
224+
collect_issue_pr_v2.CollectGitlabPRSIssuesPipeline,
225+
collect_issue_pr_v2.CollectWiresharkPRSIssuesPipeline,
226+
collect_issue_pr_v2.CollectQemuPRSIssuesPipeline,
201227
]
202228
)

vulnerabilities/pipelines/__init__.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,11 @@
2525
from aboutcode.pipeline import PipelineDefinition
2626
from aboutcode.pipeline import humanize_time
2727
from github import Github
28+
from gitlab import GitlabAuthenticationError
29+
from gitlab import GitlabSearchError
2830

2931
from vulnerabilities.importer import AdvisoryData
32+
from vulnerabilities.importer import AdvisoryDataV2
3033
from vulnerabilities.importer import ReferenceV2
3134
from vulnerabilities.improver import MAX_CONFIDENCE
3235
from vulnerabilities.models import Advisory
@@ -389,12 +392,11 @@ def collect_advisories(self):
389392
"""
390393
self.log("Generating AdvisoryData objects from GitHub/Gitlab issues and PRs.")
391394
for vuln_id, refs in self.collected_items.items():
392-
print(vuln_id, refs)
393395
references = [ReferenceV2(reference_type=ref_id, url=url) for ref_id, url in refs]
394-
yield AdvisoryData(
396+
yield AdvisoryDataV2(
395397
advisory_id=vuln_id,
396398
aliases=[],
397-
references_v2=references,
399+
references=references,
398400
url=self.repo_url,
399401
)
400402

vulnerabilities/pipelines/v2_importers/collect_issue_pr.py

Lines changed: 155 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,166 @@
66
# See https://github.com/aboutcode-org/vulnerablecode for support or download.
77
# See https://aboutcode.org for more information about nexB OSS projects.
88
#
9+
910
from vulnerabilities.pipelines import GitHubCollector
1011
from vulnerabilities.pipelines import GitLabCollector
1112

1213

13-
class CollectKubernetesPRSIssues(GitHubCollector):
14-
pipeline_id = "collect-kubernetes-prs-issues"
14+
class CollectBusyBoxPRSIssuesPipeline(GitHubCollector):
15+
pipeline_id = "collect_busybox_prs-issues"
16+
repo_url = "https://github.com/mirror/busybox"
17+
18+
19+
class CollectNginxPRSIssuesPipeline(GitHubCollector):
20+
pipeline_id = "collect_nginx_prs-issues"
21+
repo_url = "https://github.com/nginx/nginx"
22+
23+
24+
class CollectApacheTomcatPRSIssuesPipeline(GitHubCollector):
25+
pipeline_id = "collect_apache_tomcat_prs-issues"
26+
repo_url = "https://github.com/apache/tomcat"
27+
28+
29+
class CollectMongodbPRSIssuesPipeline(GitHubCollector):
30+
pipeline_id = "collect_mongodb_prs-issues"
31+
repo_url = "https://github.com/mongodb/mongo"
32+
33+
34+
class CollectRedisPRSIssuesPipeline(GitHubCollector):
35+
pipeline_id = "collect_redis_prs-issues"
36+
repo_url = "https://github.com/redis/redis"
37+
38+
39+
class CollectPhpPRSIssuesPipeline(GitHubCollector):
40+
pipeline_id = "collect_php_prs-issues"
41+
repo_url = "https://github.com/php/php-src"
42+
43+
44+
class CollectPythonCpythonPRSIssuesPipeline(GitHubCollector):
45+
pipeline_id = "collect_python_cpython_prs-issues"
46+
repo_url = "https://github.com/python/cpython"
47+
48+
49+
class CollectRubyPRSIssuesPipeline(GitHubCollector):
50+
pipeline_id = "collect_ruby_prs-issues"
51+
repo_url = "https://github.com/ruby/ruby"
52+
53+
54+
class CollectGoPRSIssuesPipeline(GitHubCollector):
55+
pipeline_id = "collect_go_prs-issues"
56+
repo_url = "https://github.com/golang/go"
57+
58+
59+
class CollectNodeJsPRSIssuesPipeline(GitHubCollector):
60+
pipeline_id = "collect_node_js_prs-issues"
61+
repo_url = "https://github.com/nodejs/node"
62+
63+
64+
class CollectRustPRSIssuesPipeline(GitHubCollector):
65+
pipeline_id = "collect_rust_prs-issues"
66+
repo_url = "https://github.com/rust-lang/rust"
67+
68+
69+
class CollectOpenjdkPRSIssuesPipeline(GitHubCollector):
70+
pipeline_id = "collect_openjdk_prs-issues"
71+
repo_url = "https://github.com/openjdk/jdk"
72+
73+
74+
class CollectSwiftPRSIssuesPipeline(GitHubCollector):
75+
pipeline_id = "collect_swift_prs-issues"
76+
repo_url = "https://github.com/swiftlang/swift"
77+
78+
79+
class CollectDjangoPRSIssuesPipeline(GitHubCollector):
80+
pipeline_id = "collect_django_prs-issues"
81+
repo_url = "https://github.com/django/django"
82+
83+
84+
class CollectRailsPRSIssuesPipeline(GitHubCollector):
85+
pipeline_id = "collect_rails_prs-issues"
86+
repo_url = "https://github.com/rails/rails"
87+
88+
89+
class CollectLaravelPRSIssuesPipeline(GitHubCollector):
90+
pipeline_id = "collect_laravel_prs-issues"
91+
repo_url = "https://github.com/laravel/framework"
92+
93+
94+
class CollectSpringFrameworkPRSIssuesPipeline(GitHubCollector):
95+
pipeline_id = "collect_spring_framework_prs-issues"
96+
repo_url = "https://github.com/spring-projects/spring-framework"
97+
98+
99+
class CollectReactPRSIssuesPipeline(GitHubCollector):
100+
pipeline_id = "collect_react_prs-issues"
101+
repo_url = "https://github.com/facebook/react"
102+
103+
104+
class CollectAngularPRSIssuesPipeline(GitHubCollector):
105+
pipeline_id = "collect_angular_prs-issues"
106+
repo_url = "https://github.com/angular/angular"
107+
108+
109+
class CollectWordpressPRSIssuesPipeline(GitHubCollector):
110+
pipeline_id = "collect_wordpress_prs-issues"
111+
repo_url = "https://github.com/WordPress/WordPress"
112+
113+
114+
class CollectDockerMobyPRSIssuesPipeline(GitHubCollector):
115+
pipeline_id = "collect_docker_moby_prs-issues"
116+
repo_url = "https://github.com/moby/moby"
117+
118+
119+
class CollectKubernetesPRSIssuesPipeline(GitHubCollector):
120+
pipeline_id = "collect_kubernetes_prs-issues"
15121
repo_url = "https://github.com/kubernetes/kubernetes"
16122

17123

18-
class CollectWiresharkPRSIssues(GitLabCollector):
19-
pipeline_id = "collect-wireshark-prs-issues"
124+
class CollectXenProjectPRSIssuesPipeline(GitHubCollector):
125+
pipeline_id = "collect_xen_project_prs-issues"
126+
repo_url = "https://github.com/xen-project/xen"
127+
128+
129+
class CollectVirtualboxPRSIssuesPipeline(GitHubCollector):
130+
pipeline_id = "collect_virtualbox_prs-issues"
131+
repo_url = "https://github.com/mirror/vbox"
132+
133+
134+
class CollectContainerdPRSIssuesPipeline(GitHubCollector):
135+
pipeline_id = "collect_containerd_prs-issues"
136+
repo_url = "https://github.com/containerd/containerd"
137+
138+
139+
class CollectAnsiblePRSIssuesPipeline(GitHubCollector):
140+
pipeline_id = "collect_ansible_prs-issues"
141+
repo_url = "https://github.com/ansible/ansible"
142+
143+
144+
class CollectTerraformPRSIssuesPipeline(GitHubCollector):
145+
pipeline_id = "collect_terraform_prs-issues"
146+
repo_url = "https://github.com/hashicorp/terraform"
147+
148+
149+
class CollectTcpdumpPRSIssuesPipeline(GitHubCollector):
150+
pipeline_id = "collect_tcpdump_prs-issues"
151+
repo_url = "https://github.com/the-tcpdump-group/tcpdump"
152+
153+
154+
class CollectJenkinsPRSIssuesPipeline(GitHubCollector):
155+
pipeline_id = "collect_jenkins_prs-issues"
156+
repo_url = "https://github.com/jenkinsci/jenkins"
157+
158+
159+
class CollectGitlabPRSIssuesPipeline(GitLabCollector):
160+
pipeline_id = "collect_gitlab_prs-issues"
161+
repo_url = "https://gitlab.com/gitlab-org/gitlab-foss"
162+
163+
164+
class CollectWiresharkPRSIssuesPipeline(GitLabCollector):
165+
pipeline_id = "collect_wireshark_prs-issues"
20166
repo_url = "https://gitlab.com/wireshark/wireshark"
167+
168+
169+
class CollectQemuPRSIssuesPipeline(GitLabCollector):
170+
pipeline_id = "collect_qemu_prs-issues"
171+
repo_url = "https://gitlab.com/qemu-project/qemu"

0 commit comments

Comments
 (0)