ecosyste-ms-cli 1.3.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. ecosyste_ms_cli-1.3.2.dist-info/METADATA +133 -0
  2. ecosyste_ms_cli-1.3.2.dist-info/RECORD +84 -0
  3. ecosyste_ms_cli-1.3.2.dist-info/WHEEL +5 -0
  4. ecosyste_ms_cli-1.3.2.dist-info/entry_points.txt +2 -0
  5. ecosyste_ms_cli-1.3.2.dist-info/licenses/LICENSE +21 -0
  6. ecosyste_ms_cli-1.3.2.dist-info/top_level.txt +1 -0
  7. ecosystems_cli/__init__.py +3 -0
  8. ecosystems_cli/__main__.py +4 -0
  9. ecosystems_cli/apis/__init__.py +0 -0
  10. ecosystems_cli/apis/advisories.openapi.yaml +347 -0
  11. ecosystems_cli/apis/archives.openapi.yaml +193 -0
  12. ecosystems_cli/apis/commits.openapi.yaml +391 -0
  13. ecosystems_cli/apis/dependabot.openapi.yaml +887 -0
  14. ecosystems_cli/apis/diff.openapi.yaml +90 -0
  15. ecosystems_cli/apis/docker.openapi.yaml +534 -0
  16. ecosystems_cli/apis/issues.openapi.yaml +839 -0
  17. ecosystems_cli/apis/licenses.openapi.yaml +80 -0
  18. ecosystems_cli/apis/opencollective.openapi.yaml +247 -0
  19. ecosystems_cli/apis/packages.openapi.yaml +2522 -0
  20. ecosystems_cli/apis/parser.openapi.yaml +97 -0
  21. ecosystems_cli/apis/registries.yaml +155 -0
  22. ecosystems_cli/apis/repos.openapi.yaml +1521 -0
  23. ecosystems_cli/apis/resolve.openapi.yaml +130 -0
  24. ecosystems_cli/apis/sbom.openapi.yaml +79 -0
  25. ecosystems_cli/apis/sponsors.openapi.yaml +283 -0
  26. ecosystems_cli/apis/summary.openapi.yaml +239 -0
  27. ecosystems_cli/apis/timeline.openapi.yaml +91 -0
  28. ecosystems_cli/cli.py +213 -0
  29. ecosystems_cli/commands/__init__.py +1 -0
  30. ecosystems_cli/commands/advisories.py +109 -0
  31. ecosystems_cli/commands/archives.py +5 -0
  32. ecosystems_cli/commands/commits.py +5 -0
  33. ecosystems_cli/commands/decorators.py +101 -0
  34. ecosystems_cli/commands/dependabot.py +5 -0
  35. ecosystems_cli/commands/diff.py +144 -0
  36. ecosystems_cli/commands/docker.py +5 -0
  37. ecosystems_cli/commands/execution.py +99 -0
  38. ecosystems_cli/commands/generator.py +127 -0
  39. ecosystems_cli/commands/handlers/__init__.py +45 -0
  40. ecosystems_cli/commands/handlers/advisories.py +73 -0
  41. ecosystems_cli/commands/handlers/archives.py +40 -0
  42. ecosystems_cli/commands/handlers/base.py +38 -0
  43. ecosystems_cli/commands/handlers/commits.py +76 -0
  44. ecosystems_cli/commands/handlers/default.py +40 -0
  45. ecosystems_cli/commands/handlers/dependabot.py +205 -0
  46. ecosystems_cli/commands/handlers/diff.py +72 -0
  47. ecosystems_cli/commands/handlers/docker.py +142 -0
  48. ecosystems_cli/commands/handlers/factory.py +60 -0
  49. ecosystems_cli/commands/handlers/issues.py +87 -0
  50. ecosystems_cli/commands/handlers/licenses.py +52 -0
  51. ecosystems_cli/commands/handlers/opencollective.py +86 -0
  52. ecosystems_cli/commands/handlers/packages.py +103 -0
  53. ecosystems_cli/commands/handlers/parser.py +57 -0
  54. ecosystems_cli/commands/handlers/repos.py +97 -0
  55. ecosystems_cli/commands/handlers/resolve.py +68 -0
  56. ecosystems_cli/commands/handlers/sbom.py +52 -0
  57. ecosystems_cli/commands/handlers/sponsors.py +52 -0
  58. ecosystems_cli/commands/handlers/summary.py +81 -0
  59. ecosystems_cli/commands/handlers/timeline.py +45 -0
  60. ecosystems_cli/commands/issues.py +5 -0
  61. ecosystems_cli/commands/licenses.py +135 -0
  62. ecosystems_cli/commands/mcp.py +54 -0
  63. ecosystems_cli/commands/opencollective.py +5 -0
  64. ecosystems_cli/commands/packages.py +151 -0
  65. ecosystems_cli/commands/parser.py +135 -0
  66. ecosystems_cli/commands/repos.py +5 -0
  67. ecosystems_cli/commands/resolve.py +160 -0
  68. ecosystems_cli/commands/sbom.py +135 -0
  69. ecosystems_cli/commands/sponsors.py +5 -0
  70. ecosystems_cli/commands/summary.py +5 -0
  71. ecosystems_cli/commands/timeline.py +5 -0
  72. ecosystems_cli/constants.py +92 -0
  73. ecosystems_cli/exceptions.py +149 -0
  74. ecosystems_cli/helpers/click_params.py +49 -0
  75. ecosystems_cli/helpers/flatten_dict.py +15 -0
  76. ecosystems_cli/helpers/format_value.py +30 -0
  77. ecosystems_cli/helpers/get_domain.py +68 -0
  78. ecosystems_cli/helpers/load_api_spec.py +31 -0
  79. ecosystems_cli/helpers/print_error.py +15 -0
  80. ecosystems_cli/helpers/print_operations.py +73 -0
  81. ecosystems_cli/helpers/print_output.py +183 -0
  82. ecosystems_cli/helpers/purl_parser.py +121 -0
  83. ecosystems_cli/mcp_server.py +267 -0
  84. ecosystems_cli/openapi_client.py +461 -0
@@ -0,0 +1,887 @@
1
+ ---
2
+ openapi: 3.0.1
3
+ info:
4
+ title: 'Ecosyste.ms: Dependabot'
5
+ description: 'An open API service providing issue metadata for open source projects. '
6
+ contact:
7
+ name: Ecosyste.ms
8
+ email: support@ecosyste.ms
9
+ url: https://ecosyste.ms
10
+ version: 1.0.0
11
+ license:
12
+ name: CC-BY-SA-4.0
13
+ url: https://creativecommons.org/licenses/by-sa/4.0/
14
+ externalDocs:
15
+ description: GitHub Repository
16
+ url: https://github.com/ecosyste-ms/dependabot
17
+ servers:
18
+ - url: https://dependabot.ecosyste.ms/api/v1
19
+ paths:
20
+ "/packages":
21
+ get:
22
+ summary: List packages
23
+ operationId: getPackages
24
+ parameters:
25
+ - name: page
26
+ in: query
27
+ description: pagination page number
28
+ required: false
29
+ schema:
30
+ type: integer
31
+ - name: per_page
32
+ in: query
33
+ description: Number of records to return
34
+ required: false
35
+ schema:
36
+ type: integer
37
+ - name: ecosystem
38
+ in: query
39
+ description: Filter by ecosystem
40
+ required: false
41
+ schema:
42
+ type: string
43
+ - name: name
44
+ in: query
45
+ description: Search by package name
46
+ required: false
47
+ schema:
48
+ type: string
49
+ - name: repository_url
50
+ in: query
51
+ description: Filter by repository URL
52
+ required: false
53
+ schema:
54
+ type: string
55
+ - name: sort
56
+ in: query
57
+ description: field to order results by (name or issues_count)
58
+ required: false
59
+ schema:
60
+ type: string
61
+ - name: order
62
+ in: query
63
+ description: direction to order results by (asc or desc)
64
+ required: false
65
+ schema:
66
+ type: string
67
+ responses:
68
+ 200:
69
+ description: OK
70
+ content:
71
+ application/json:
72
+ schema:
73
+ type: object
74
+ properties:
75
+ packages:
76
+ type: array
77
+ items:
78
+ "$ref": "#/components/schemas/Package"
79
+ "/packages/ecosystems":
80
+ get:
81
+ summary: List available ecosystems
82
+ operationId: getPackageEcosystems
83
+ responses:
84
+ 200:
85
+ description: OK
86
+ content:
87
+ application/json:
88
+ schema:
89
+ type: array
90
+ items:
91
+ type: string
92
+ "/packages/{ecosystem}":
93
+ get:
94
+ summary: List packages in an ecosystem
95
+ operationId: getEcosystemPackages
96
+ parameters:
97
+ - in: path
98
+ name: ecosystem
99
+ schema:
100
+ type: string
101
+ required: true
102
+ description: ecosystem name
103
+ - name: page
104
+ in: query
105
+ description: pagination page number
106
+ required: false
107
+ schema:
108
+ type: integer
109
+ - name: per_page
110
+ in: query
111
+ description: Number of records to return
112
+ required: false
113
+ schema:
114
+ type: integer
115
+ - name: name
116
+ in: query
117
+ description: Search by package name
118
+ required: false
119
+ schema:
120
+ type: string
121
+ - name: repository_url
122
+ in: query
123
+ description: Filter by repository URL
124
+ required: false
125
+ schema:
126
+ type: string
127
+ - name: sort
128
+ in: query
129
+ description: field to order results by (name or issues_count)
130
+ required: false
131
+ schema:
132
+ type: string
133
+ - name: order
134
+ in: query
135
+ description: direction to order results by (asc or desc)
136
+ required: false
137
+ schema:
138
+ type: string
139
+ responses:
140
+ 200:
141
+ description: OK
142
+ content:
143
+ application/json:
144
+ schema:
145
+ type: object
146
+ properties:
147
+ packages:
148
+ type: array
149
+ items:
150
+ "$ref": "#/components/schemas/Package"
151
+ "/packages/{ecosystem}/{name}":
152
+ get:
153
+ summary: Get a specific package
154
+ operationId: getPackage
155
+ parameters:
156
+ - in: path
157
+ name: ecosystem
158
+ schema:
159
+ type: string
160
+ required: true
161
+ description: ecosystem name
162
+ - in: path
163
+ name: name
164
+ schema:
165
+ type: string
166
+ required: true
167
+ description: package name
168
+ responses:
169
+ 200:
170
+ description: OK
171
+ content:
172
+ application/json:
173
+ schema:
174
+ allOf:
175
+ - "$ref": "#/components/schemas/Package"
176
+ - type: object
177
+ properties:
178
+ recent_issues:
179
+ type: array
180
+ items:
181
+ "$ref": "#/components/schemas/Issue"
182
+ issue_packages:
183
+ type: array
184
+ items:
185
+ "$ref": "#/components/schemas/IssuePackage"
186
+ "/issues/{issueId}/packages":
187
+ get:
188
+ summary: Get packages for a specific issue
189
+ operationId: getIssuePackages
190
+ parameters:
191
+ - in: path
192
+ name: issueId
193
+ schema:
194
+ type: integer
195
+ required: true
196
+ description: issue ID
197
+ responses:
198
+ 200:
199
+ description: OK
200
+ content:
201
+ application/json:
202
+ schema:
203
+ type: object
204
+ properties:
205
+ issue_packages:
206
+ type: array
207
+ items:
208
+ allOf:
209
+ - "$ref": "#/components/schemas/IssuePackage"
210
+ - type: object
211
+ properties:
212
+ package:
213
+ "$ref": "#/components/schemas/Package"
214
+ "/repositories/lookup":
215
+ get:
216
+ summary: Lookup repository metadata
217
+ operationId: repositoriesLookup
218
+ parameters:
219
+ - name: url
220
+ in: query
221
+ description: The URL of the repository to lookup
222
+ required: true
223
+ schema:
224
+ type: string
225
+ responses:
226
+ 200:
227
+ description: OK
228
+ content:
229
+ application/json:
230
+ schema:
231
+ "$ref": "#/components/schemas/Repository"
232
+ "/hosts":
233
+ get:
234
+ summary: list registies
235
+ operationId: getRegistries
236
+ parameters:
237
+ - name: page
238
+ in: query
239
+ description: pagination page number
240
+ required: false
241
+ schema:
242
+ type: integer
243
+ - name: per_page
244
+ in: query
245
+ description: Number of records to return
246
+ required: false
247
+ schema:
248
+ type: integer
249
+ responses:
250
+ 200:
251
+ description: OK
252
+ content:
253
+ application/json:
254
+ schema:
255
+ type: array
256
+ items:
257
+ "$ref": "#/components/schemas/Host"
258
+ "/hosts/{hostName}":
259
+ get:
260
+ summary: get a host by name
261
+ operationId: getHost
262
+ parameters:
263
+ - in: path
264
+ name: hostName
265
+ schema:
266
+ type: string
267
+ required: true
268
+ description: name of host
269
+ - name: page
270
+ in: query
271
+ description: pagination page number
272
+ required: false
273
+ schema:
274
+ type: integer
275
+ - name: per_page
276
+ in: query
277
+ description: Number of records to return
278
+ required: false
279
+ schema:
280
+ type: integer
281
+ responses:
282
+ 200:
283
+ description: OK
284
+ content:
285
+ application/json:
286
+ schema:
287
+ "$ref": "#/components/schemas/Host"
288
+ "/hosts/{hostName}/repositories":
289
+ get:
290
+ summary: get a list of repositories from a host
291
+ operationId: getHostRepositories
292
+ parameters:
293
+ - in: path
294
+ name: hostName
295
+ schema:
296
+ type: string
297
+ required: true
298
+ description: name of host
299
+ - name: page
300
+ in: query
301
+ description: pagination page number
302
+ required: false
303
+ schema:
304
+ type: integer
305
+ - name: per_page
306
+ in: query
307
+ description: Number of records to return
308
+ required: false
309
+ schema:
310
+ type: integer
311
+ - name: created_after
312
+ in: query
313
+ description: filter by created_at after given time
314
+ required: false
315
+ schema:
316
+ type: string
317
+ format: date-time
318
+ - name: updated_after
319
+ in: query
320
+ description: filter by updated_at after given time
321
+ required: false
322
+ schema:
323
+ type: string
324
+ format: date-time
325
+ - name: sort
326
+ in: query
327
+ description: field to order results by
328
+ required: false
329
+ schema:
330
+ type: string
331
+ - name: order
332
+ in: query
333
+ description: direction to order results by
334
+ required: false
335
+ schema:
336
+ type: string
337
+ responses:
338
+ 200:
339
+ description: OK
340
+ content:
341
+ application/json:
342
+ schema:
343
+ type: array
344
+ items:
345
+ "$ref": "#/components/schemas/Repository"
346
+ "/hosts/{hostName}/repositories/{repoName}":
347
+ get:
348
+ summary: get a repository from a host
349
+ operationId: getHostRepository
350
+ parameters:
351
+ - in: path
352
+ name: hostName
353
+ schema:
354
+ type: string
355
+ required: true
356
+ description: name of host
357
+ - in: path
358
+ name: repoName
359
+ schema:
360
+ type: string
361
+ required: true
362
+ description: name of repository
363
+ responses:
364
+ 200:
365
+ description: OK
366
+ content:
367
+ application/json:
368
+ schema:
369
+ "$ref": "#/components/schemas/Repository"
370
+ "/hosts/{hostName}/repositories/{repoName}/issues":
371
+ get:
372
+ summary: get a list of issues from a repository
373
+ operationId: getHostRepositoryIssues
374
+ parameters:
375
+ - in: path
376
+ name: hostName
377
+ schema:
378
+ type: string
379
+ required: true
380
+ description: name of host
381
+ - in: path
382
+ name: repoName
383
+ schema:
384
+ type: string
385
+ required: true
386
+ description: name of repository
387
+ - name: page
388
+ in: query
389
+ description: pagination page number
390
+ required: false
391
+ schema:
392
+ type: integer
393
+ - name: per_page
394
+ in: query
395
+ description: Number of records to return
396
+ required: false
397
+ schema:
398
+ type: integer
399
+ - name: created_after
400
+ in: query
401
+ description: filter by created_at after given time
402
+ required: false
403
+ schema:
404
+ type: string
405
+ format: date-time
406
+ - name: updated_after
407
+ in: query
408
+ description: filter by updated_at after given time
409
+ required: false
410
+ schema:
411
+ type: string
412
+ format: date-time
413
+ - name: sort
414
+ in: query
415
+ description: field to order results by
416
+ required: false
417
+ schema:
418
+ type: string
419
+ - name: order
420
+ in: query
421
+ description: direction to order results by
422
+ required: false
423
+ schema:
424
+ type: string
425
+ - name: pull_request
426
+ in: query
427
+ description: Filter by pull request status (true/false)
428
+ required: false
429
+ schema:
430
+ type: string
431
+ - name: state
432
+ in: query
433
+ description: Filter by issue state (open/closed)
434
+ required: false
435
+ schema:
436
+ type: string
437
+ - name: security
438
+ in: query
439
+ description: Filter for security-related PRs containing CVE/GHSA/RUSTSEC identifiers
440
+ (true/false)
441
+ required: false
442
+ schema:
443
+ type: string
444
+ responses:
445
+ 200:
446
+ description: OK
447
+ content:
448
+ application/json:
449
+ schema:
450
+ type: array
451
+ items:
452
+ "$ref": "#/components/schemas/Issue"
453
+ "/hosts/{hostName}/repositories/{repoName}/issues/{issueNumber}":
454
+ get:
455
+ summary: get an issue from a repository
456
+ operationId: getHostRepositoryIssue
457
+ parameters:
458
+ - in: path
459
+ name: hostName
460
+ schema:
461
+ type: string
462
+ required: true
463
+ description: name of host
464
+ - in: path
465
+ name: repoName
466
+ schema:
467
+ type: string
468
+ required: true
469
+ description: name of repository
470
+ - in: path
471
+ name: issueNumber
472
+ schema:
473
+ type: integer
474
+ required: true
475
+ description: number of issue
476
+ responses:
477
+ 200:
478
+ description: OK
479
+ content:
480
+ application/json:
481
+ schema:
482
+ "$ref": "#/components/schemas/Issue"
483
+ "/advisories":
484
+ get:
485
+ summary: List security advisories
486
+ operationId: getAdvisories
487
+ parameters:
488
+ - name: page
489
+ in: query
490
+ description: pagination page number
491
+ required: false
492
+ schema:
493
+ type: integer
494
+ - name: per_page
495
+ in: query
496
+ description: Number of records to return
497
+ required: false
498
+ schema:
499
+ type: integer
500
+ - name: severity
501
+ in: query
502
+ description: Filter by severity (CRITICAL, HIGH, MODERATE, LOW)
503
+ required: false
504
+ schema:
505
+ type: string
506
+ enum:
507
+ - CRITICAL
508
+ - HIGH
509
+ - MODERATE
510
+ - LOW
511
+ - name: ecosystem
512
+ in: query
513
+ description: Filter by ecosystem
514
+ required: false
515
+ schema:
516
+ type: string
517
+ - name: package_name
518
+ in: query
519
+ description: Filter by package name (requires ecosystem)
520
+ required: false
521
+ schema:
522
+ type: string
523
+ - name: repository_url
524
+ in: query
525
+ description: Filter by repository URL
526
+ required: false
527
+ schema:
528
+ type: string
529
+ - name: q
530
+ in: query
531
+ description: Search by advisory identifier
532
+ required: false
533
+ schema:
534
+ type: string
535
+ - name: sort
536
+ in: query
537
+ description: field to order results by (published_at, severity, or issues_count)
538
+ required: false
539
+ schema:
540
+ type: string
541
+ enum:
542
+ - published_at
543
+ - severity
544
+ - issues_count
545
+ - name: order
546
+ in: query
547
+ description: direction to order results by (asc or desc)
548
+ required: false
549
+ schema:
550
+ type: string
551
+ enum:
552
+ - asc
553
+ - desc
554
+ responses:
555
+ 200:
556
+ description: OK
557
+ content:
558
+ application/json:
559
+ schema:
560
+ type: object
561
+ properties:
562
+ advisories:
563
+ type: array
564
+ items:
565
+ "$ref": "#/components/schemas/Advisory"
566
+ "/advisories/{advisoryId}":
567
+ get:
568
+ summary: Get a specific security advisory
569
+ operationId: getAdvisory
570
+ parameters:
571
+ - in: path
572
+ name: advisoryId
573
+ schema:
574
+ type: string
575
+ required: true
576
+ description: advisory UUID or identifier (e.g., CVE-2023-1234 or GHSA-xxxx-xxxx-xxxx)
577
+ - name: state
578
+ in: query
579
+ description: Filter related issues by state (open, closed, merged)
580
+ required: false
581
+ schema:
582
+ type: string
583
+ enum:
584
+ - open
585
+ - closed
586
+ - merged
587
+ responses:
588
+ 200:
589
+ description: OK
590
+ content:
591
+ application/json:
592
+ schema:
593
+ allOf:
594
+ - "$ref": "#/components/schemas/Advisory"
595
+ - type: object
596
+ properties:
597
+ issues:
598
+ type: array
599
+ items:
600
+ "$ref": "#/components/schemas/Issue"
601
+ components:
602
+ schemas:
603
+ Host:
604
+ type: object
605
+ properties:
606
+ name:
607
+ type: string
608
+ url:
609
+ type: string
610
+ kind:
611
+ type: string
612
+ repositories_count:
613
+ type: integer
614
+ issues_count:
615
+ type: integer
616
+ pull_requests_count:
617
+ type: integer
618
+ authors_count:
619
+ type: integer
620
+ last_synced_at:
621
+ type: string
622
+ format: date-time
623
+ icon_url:
624
+ type: string
625
+ Repository:
626
+ type: object
627
+ properties:
628
+ full_name:
629
+ type: string
630
+ html_url:
631
+ type: string
632
+ last_synced_at:
633
+ type: string
634
+ format: date-time
635
+ status:
636
+ type: string
637
+ issues_count:
638
+ type: integer
639
+ pull_requests_count:
640
+ type: integer
641
+ avg_time_to_close_issue:
642
+ type: number
643
+ avg_time_to_close_pull_request:
644
+ type: number
645
+ issues_closed_count:
646
+ type: integer
647
+ pull_requests_closed_count:
648
+ type: integer
649
+ pull_request_authors_count:
650
+ type: integer
651
+ issue_authors_count:
652
+ type: integer
653
+ avg_comments_per_issue:
654
+ type: number
655
+ avg_comments_per_pull_request:
656
+ type: number
657
+ merged_pull_requests_count:
658
+ type: integer
659
+ bot_issues_count:
660
+ type: integer
661
+ bot_pull_requests_count:
662
+ type: integer
663
+ past_year_issues_count:
664
+ type: integer
665
+ past_year_pull_requests_count:
666
+ type: integer
667
+ past_year_avg_time_to_close_issue:
668
+ type: number
669
+ past_year_avg_time_to_close_pull_request:
670
+ type: number
671
+ past_year_issues_closed_count:
672
+ type: integer
673
+ past_year_pull_requests_closed_count:
674
+ type: integer
675
+ past_year_pull_request_authors_count:
676
+ type: integer
677
+ past_year_issue_authors_count:
678
+ type: integer
679
+ past_year_avg_comments_per_issue:
680
+ type: number
681
+ past_year_avg_comments_per_pull_request:
682
+ type: number
683
+ past_year_merged_pull_requests_count:
684
+ type: integer
685
+ past_year_bot_issues_count:
686
+ type: integer
687
+ past_year_bot_pull_requests_count:
688
+ type: integer
689
+ updated_at:
690
+ type: string
691
+ format: date-time
692
+ created_at:
693
+ type: string
694
+ format: date-time
695
+ issues_url:
696
+ type: string
697
+ Issue:
698
+ type: object
699
+ properties:
700
+ uuid:
701
+ type: integer
702
+ number:
703
+ type: integer
704
+ node_id:
705
+ type: string
706
+ title:
707
+ type: string
708
+ user:
709
+ type: string
710
+ labels:
711
+ type: array
712
+ items:
713
+ type: string
714
+ assignees:
715
+ type: array
716
+ items:
717
+ type: string
718
+ comments_count:
719
+ type: integer
720
+ pull_request:
721
+ type: boolean
722
+ author_association:
723
+ type: string
724
+ state:
725
+ type: string
726
+ state_reason:
727
+ type: string
728
+ time_to_close:
729
+ type: integer
730
+ merged_at:
731
+ type: string
732
+ format: date-time
733
+ dependency_metadata:
734
+ type: object
735
+ locked:
736
+ type: boolean
737
+ comments:
738
+ type: integer
739
+ created_at:
740
+ type: string
741
+ format: date-time
742
+ updated_at:
743
+ type: string
744
+ format: date-time
745
+ closed_at:
746
+ type: string
747
+ format: date-time
748
+ html_url:
749
+ type: string
750
+ url:
751
+ type: string
752
+ body:
753
+ type: string
754
+ Package:
755
+ type: object
756
+ properties:
757
+ id:
758
+ type: integer
759
+ name:
760
+ type: string
761
+ ecosystem:
762
+ type: string
763
+ repository_url:
764
+ type: string
765
+ issues_count:
766
+ type: integer
767
+ purl:
768
+ type: string
769
+ metadata:
770
+ type: object
771
+ created_at:
772
+ type: string
773
+ format: date-time
774
+ updated_at:
775
+ type: string
776
+ format: date-time
777
+ IssuePackage:
778
+ type: object
779
+ properties:
780
+ old_version:
781
+ type: string
782
+ new_version:
783
+ type: string
784
+ update_type:
785
+ type: string
786
+ path:
787
+ type: string
788
+ pr_created_at:
789
+ type: string
790
+ format: date-time
791
+ version_change:
792
+ type: string
793
+ issue:
794
+ "$ref": "#/components/schemas/Issue"
795
+ Advisory:
796
+ type: object
797
+ properties:
798
+ uuid:
799
+ type: string
800
+ description: Unique identifier for the advisory
801
+ url:
802
+ type: string
803
+ description: URL to the advisory on GitHub
804
+ title:
805
+ type: string
806
+ description: Advisory title
807
+ description:
808
+ type: string
809
+ description: Advisory description
810
+ origin:
811
+ type: string
812
+ description: Origin of the advisory
813
+ severity:
814
+ type: string
815
+ enum:
816
+ - CRITICAL
817
+ - HIGH
818
+ - MODERATE
819
+ - LOW
820
+ description: Severity level
821
+ published_at:
822
+ type: string
823
+ format: date-time
824
+ description: When the advisory was published
825
+ withdrawn_at:
826
+ type: string
827
+ format: date-time
828
+ description: When the advisory was withdrawn (if applicable)
829
+ classification:
830
+ type: string
831
+ description: Advisory classification
832
+ cvss_score:
833
+ type: number
834
+ description: CVSS score
835
+ cvss_vector:
836
+ type: string
837
+ description: CVSS vector string
838
+ references:
839
+ type: array
840
+ items:
841
+ type: string
842
+ description: Reference URLs
843
+ source_kind:
844
+ type: string
845
+ description: Source of the advisory
846
+ identifiers:
847
+ type: array
848
+ items:
849
+ type: string
850
+ description: Advisory identifiers (CVE, GHSA, etc.)
851
+ repository_url:
852
+ type: string
853
+ description: Repository URL associated with the advisory
854
+ blast_radius:
855
+ type: number
856
+ description: Blast radius metric
857
+ packages:
858
+ type: array
859
+ items:
860
+ type: object
861
+ properties:
862
+ ecosystem:
863
+ type: string
864
+ package_name:
865
+ type: string
866
+ versions:
867
+ type: array
868
+ items:
869
+ type: object
870
+ properties:
871
+ vulnerable_version_range:
872
+ type: string
873
+ first_patched_version:
874
+ type: string
875
+ description: Affected packages
876
+ epss_percentage:
877
+ type: number
878
+ description: EPSS percentage
879
+ epss_percentile:
880
+ type: number
881
+ description: EPSS percentile
882
+ created_at:
883
+ type: string
884
+ format: date-time
885
+ updated_at:
886
+ type: string
887
+ format: date-time