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,1521 @@
1
+ ---
2
+ openapi: 3.0.1
3
+ info:
4
+ title: 'Ecosyste.ms: Repos'
5
+ description: An open API service providing repository metadata for many open source
6
+ software ecosystems.
7
+ contact:
8
+ name: Ecosyste.ms
9
+ email: support@ecosyste.ms
10
+ url: https://ecosyste.ms
11
+ version: 1.0.0
12
+ license:
13
+ name: CC-BY-SA-4.0
14
+ url: https://creativecommons.org/licenses/by-sa/4.0/
15
+ externalDocs:
16
+ description: GitHub Repository
17
+ url: https://github.com/ecosyste-ms/repos
18
+ servers:
19
+ - url: https://repos.ecosyste.ms/api/v1
20
+ paths:
21
+ "/topics":
22
+ get:
23
+ summary: Get topics
24
+ operationId: topics
25
+ parameters:
26
+ - name: page
27
+ in: query
28
+ description: pagination page number
29
+ required: false
30
+ schema:
31
+ type: integer
32
+ - name: per_page
33
+ in: query
34
+ description: Number of records to return
35
+ required: false
36
+ schema:
37
+ type: integer
38
+ responses:
39
+ 200:
40
+ description: OK
41
+ content:
42
+ application/json:
43
+ schema:
44
+ type: array
45
+ items:
46
+ "$ref": "#/components/schemas/Topic"
47
+ "/topics/{topic}":
48
+ get:
49
+ summary: Get topic
50
+ operationId: topic
51
+ parameters:
52
+ - name: topic
53
+ in: path
54
+ description: The topic to get
55
+ required: true
56
+ schema:
57
+ type: string
58
+ - name: page
59
+ in: query
60
+ description: pagination page number
61
+ required: false
62
+ schema:
63
+ type: integer
64
+ - name: per_page
65
+ in: query
66
+ description: Number of records to return
67
+ required: false
68
+ schema:
69
+ type: integer
70
+ - name: created_after
71
+ in: query
72
+ description: filter by created_at after given time
73
+ required: false
74
+ schema:
75
+ type: string
76
+ format: date-time
77
+ - name: updated_after
78
+ in: query
79
+ description: filter by updated_at after given time
80
+ required: false
81
+ schema:
82
+ type: string
83
+ format: date-time
84
+ - name: fork
85
+ in: query
86
+ description: filter by fork
87
+ required: false
88
+ schema:
89
+ type: boolean
90
+ - name: archived
91
+ in: query
92
+ description: filter by archived
93
+ required: false
94
+ schema:
95
+ type: boolean
96
+ - name: sort
97
+ in: query
98
+ description: field to order results by
99
+ required: false
100
+ schema:
101
+ type: string
102
+ - name: order
103
+ in: query
104
+ description: direction to order results by
105
+ required: false
106
+ schema:
107
+ type: string
108
+ responses:
109
+ 200:
110
+ description: OK
111
+ content:
112
+ application/json:
113
+ schema:
114
+ "$ref": "#/components/schemas/TopicWithRepositories"
115
+ "/repositories/lookup":
116
+ get:
117
+ summary: Lookup repository metadata by url or purl
118
+ operationId: repositoriesLookup
119
+ parameters:
120
+ - name: url
121
+ in: query
122
+ description: The URL of the repository to lookup
123
+ required: false
124
+ schema:
125
+ type: string
126
+ - name: purl
127
+ in: query
128
+ description: 'Package URL (PURL) of the repository to lookup. Supported types:
129
+ github, gitlab, gitea, bitbucket, forgejo, sourcehut'
130
+ required: false
131
+ schema:
132
+ type: string
133
+ example: pkg:github/ecosyste-ms/repos
134
+ responses:
135
+ 200:
136
+ description: OK
137
+ content:
138
+ application/json:
139
+ schema:
140
+ "$ref": "#/components/schemas/Repository"
141
+ "/usage":
142
+ get:
143
+ summary: Get package usage ecosystems
144
+ operationId: usage
145
+ responses:
146
+ 200:
147
+ description: OK
148
+ content:
149
+ application/json:
150
+ schema:
151
+ type: array
152
+ items:
153
+ "$ref": "#/components/schemas/Ecosystem"
154
+ "/usage/{ecosystem}":
155
+ get:
156
+ summary: Get package usage for an ecosystem
157
+ operationId: usageEcosystem
158
+ parameters:
159
+ - name: ecosystem
160
+ in: path
161
+ description: The ecosystem to get usage for
162
+ required: true
163
+ schema:
164
+ type: string
165
+ - name: page
166
+ in: query
167
+ description: pagination page number
168
+ required: false
169
+ schema:
170
+ type: integer
171
+ - name: per_page
172
+ in: query
173
+ description: Number of records to return
174
+ required: false
175
+ schema:
176
+ type: integer
177
+ responses:
178
+ 200:
179
+ description: OK
180
+ content:
181
+ application/json:
182
+ schema:
183
+ type: array
184
+ items:
185
+ "$ref": "#/components/schemas/PackageUsage"
186
+ "/usage/{ecosystem}/{package}":
187
+ get:
188
+ summary: Get package usage for a package
189
+ operationId: usagePackage
190
+ parameters:
191
+ - name: ecosystem
192
+ in: path
193
+ description: The ecosystem to get usage for
194
+ required: true
195
+ schema:
196
+ type: string
197
+ - name: package
198
+ in: path
199
+ description: The package to get usage for
200
+ required: true
201
+ schema:
202
+ type: string
203
+ responses:
204
+ 200:
205
+ description: OK
206
+ content:
207
+ application/json:
208
+ schema:
209
+ "$ref": "#/components/schemas/PackageUsage"
210
+ "/usage/{ecosystem}/{package}/dependencies":
211
+ get:
212
+ summary: Get dependencies for a package
213
+ operationId: usagePackageDependencies
214
+ parameters:
215
+ - name: ecosystem
216
+ in: path
217
+ description: The ecosystem to get usage for
218
+ required: true
219
+ schema:
220
+ type: string
221
+ - name: package
222
+ in: path
223
+ description: The package to get usage for
224
+ required: true
225
+ schema:
226
+ type: string
227
+ - name: page
228
+ in: query
229
+ description: pagination page number
230
+ required: false
231
+ schema:
232
+ type: integer
233
+ - name: per_page
234
+ in: query
235
+ description: Number of records to return
236
+ required: false
237
+ schema:
238
+ type: integer
239
+ - name: after
240
+ in: query
241
+ description: filter to dependencies with id greater than given value (for
242
+ keyset pagination)
243
+ required: false
244
+ schema:
245
+ type: integer
246
+ responses:
247
+ 200:
248
+ description: OK
249
+ content:
250
+ application/json:
251
+ schema:
252
+ type: array
253
+ items:
254
+ "$ref": "#/components/schemas/DependencyWithRepository"
255
+ "/usage/{ecosystem}/{package}/dependent_repositories":
256
+ get:
257
+ summary: Get dependent repositories for a package
258
+ operationId: usagePackageDependentRepositories
259
+ parameters:
260
+ - name: ecosystem
261
+ in: path
262
+ description: The ecosystem to get usage for
263
+ required: true
264
+ schema:
265
+ type: string
266
+ - name: package
267
+ in: path
268
+ description: The package to get usage for
269
+ required: true
270
+ schema:
271
+ type: string
272
+ - name: page
273
+ in: query
274
+ description: pagination page number
275
+ required: false
276
+ schema:
277
+ type: integer
278
+ - name: per_page
279
+ in: query
280
+ description: Number of records to return
281
+ required: false
282
+ schema:
283
+ type: integer
284
+ - name: sort
285
+ in: query
286
+ description: field to order results by
287
+ required: false
288
+ schema:
289
+ type: string
290
+ - name: order
291
+ in: query
292
+ description: direction to order results by
293
+ required: false
294
+ schema:
295
+ type: string
296
+ - name: after_id
297
+ in: query
298
+ description: filter to repositories with id greater than given value (for
299
+ keyset pagination)
300
+ required: false
301
+ schema:
302
+ type: integer
303
+ - name: fork
304
+ in: query
305
+ description: filter by fork
306
+ required: false
307
+ schema:
308
+ type: boolean
309
+ - name: archived
310
+ in: query
311
+ description: filter by archived
312
+ required: false
313
+ schema:
314
+ type: boolean
315
+ - name: starred
316
+ in: query
317
+ description: filter to only starred repositories
318
+ required: false
319
+ schema:
320
+ type: boolean
321
+ - name: min_stars
322
+ in: query
323
+ description: filter to repositories with at least this many stars
324
+ required: false
325
+ schema:
326
+ type: integer
327
+ responses:
328
+ 200:
329
+ description: OK
330
+ content:
331
+ application/json:
332
+ schema:
333
+ type: array
334
+ items:
335
+ "$ref": "#/components/schemas/Repository"
336
+ "/hosts":
337
+ get:
338
+ summary: list registies
339
+ operationId: getRegistries
340
+ parameters:
341
+ - name: page
342
+ in: query
343
+ description: pagination page number
344
+ required: false
345
+ schema:
346
+ type: integer
347
+ - name: per_page
348
+ in: query
349
+ description: Number of records to return
350
+ required: false
351
+ schema:
352
+ type: integer
353
+ responses:
354
+ 200:
355
+ description: OK
356
+ content:
357
+ application/json:
358
+ schema:
359
+ type: array
360
+ items:
361
+ "$ref": "#/components/schemas/Host"
362
+ "/hosts/{hostName}":
363
+ get:
364
+ summary: get a host by name
365
+ operationId: getHost
366
+ parameters:
367
+ - in: path
368
+ name: hostName
369
+ schema:
370
+ type: string
371
+ required: true
372
+ description: name of host
373
+ - name: page
374
+ in: query
375
+ description: pagination page number
376
+ required: false
377
+ schema:
378
+ type: integer
379
+ - name: per_page
380
+ in: query
381
+ description: Number of records to return
382
+ required: false
383
+ schema:
384
+ type: integer
385
+ responses:
386
+ 200:
387
+ description: OK
388
+ content:
389
+ application/json:
390
+ schema:
391
+ "$ref": "#/components/schemas/Host"
392
+ "/hosts/{hostName}/owners":
393
+ get:
394
+ summary: get a list of owners from a host
395
+ operationId: getHostOwners
396
+ parameters:
397
+ - in: path
398
+ name: hostName
399
+ schema:
400
+ type: string
401
+ required: true
402
+ description: name of host
403
+ - name: page
404
+ in: query
405
+ description: pagination page number
406
+ required: false
407
+ schema:
408
+ type: integer
409
+ - name: per_page
410
+ in: query
411
+ description: Number of records to return
412
+ required: false
413
+ schema:
414
+ type: integer
415
+ - name: created_after
416
+ in: query
417
+ description: filter by created_at after given time
418
+ required: false
419
+ schema:
420
+ type: string
421
+ format: date-time
422
+ - name: updated_after
423
+ in: query
424
+ description: filter by updated_at after given time
425
+ required: false
426
+ schema:
427
+ type: string
428
+ format: date-time
429
+ - name: sort
430
+ in: query
431
+ description: field to order results by
432
+ required: false
433
+ schema:
434
+ type: string
435
+ - name: order
436
+ in: query
437
+ description: direction to order results by
438
+ required: false
439
+ schema:
440
+ type: string
441
+ - name: kind
442
+ in: query
443
+ description: filter by owner kind
444
+ required: false
445
+ schema:
446
+ type: string
447
+ enum:
448
+ - user
449
+ - organization
450
+ - name: has_sponsors_listing
451
+ in: query
452
+ description: filter to owners with a sponsors listing
453
+ required: false
454
+ schema:
455
+ type: boolean
456
+ responses:
457
+ 200:
458
+ description: OK
459
+ content:
460
+ application/json:
461
+ schema:
462
+ type: array
463
+ items:
464
+ "$ref": "#/components/schemas/Owner"
465
+ "/hosts/{HostName}/owners/lookup":
466
+ get:
467
+ summary: lookup owner by name or email
468
+ operationId: lookupHostOwner
469
+ parameters:
470
+ - in: path
471
+ name: HostName
472
+ schema:
473
+ type: string
474
+ required: true
475
+ description: name of host
476
+ - name: name
477
+ in: query
478
+ description: name of owner
479
+ required: false
480
+ schema:
481
+ type: string
482
+ - name: email
483
+ in: query
484
+ description: email of owner
485
+ required: false
486
+ schema:
487
+ type: string
488
+ responses:
489
+ 200:
490
+ description: OK
491
+ content:
492
+ application/json:
493
+ schema:
494
+ type: array
495
+ items:
496
+ "$ref": "#/components/schemas/Owner"
497
+ "/hosts/{hostName}/owners/{ownerLogin}":
498
+ get:
499
+ summary: get a owner by login
500
+ operationId: getHostOwner
501
+ parameters:
502
+ - in: path
503
+ name: hostName
504
+ schema:
505
+ type: string
506
+ required: true
507
+ description: name of host
508
+ - in: path
509
+ name: ownerLogin
510
+ schema:
511
+ type: string
512
+ required: true
513
+ description: login of owner
514
+ responses:
515
+ 200:
516
+ description: OK
517
+ content:
518
+ application/json:
519
+ schema:
520
+ "$ref": "#/components/schemas/Owner"
521
+ "/hosts/{hostName}/owners/{ownerLogin}/repositories":
522
+ get:
523
+ summary: get a list of repositories from a owner
524
+ operationId: getHostOwnerRepositories
525
+ parameters:
526
+ - in: path
527
+ name: hostName
528
+ schema:
529
+ type: string
530
+ required: true
531
+ description: name of host
532
+ - in: path
533
+ name: ownerLogin
534
+ schema:
535
+ type: string
536
+ required: true
537
+ description: login of owner
538
+ - name: page
539
+ in: query
540
+ description: pagination page number
541
+ required: false
542
+ schema:
543
+ type: integer
544
+ - name: per_page
545
+ in: query
546
+ description: Number of records to return
547
+ required: false
548
+ schema:
549
+ type: integer
550
+ - name: created_after
551
+ in: query
552
+ description: filter by created_at after given time
553
+ required: false
554
+ schema:
555
+ type: string
556
+ format: date-time
557
+ - name: updated_after
558
+ in: query
559
+ description: filter by updated_at after given time
560
+ required: false
561
+ schema:
562
+ type: string
563
+ format: date-time
564
+ - name: fork
565
+ in: query
566
+ description: filter by fork
567
+ required: false
568
+ schema:
569
+ type: boolean
570
+ - name: archived
571
+ in: query
572
+ description: filter by archived
573
+ required: false
574
+ schema:
575
+ type: boolean
576
+ - name: sort
577
+ in: query
578
+ description: field to order results by
579
+ required: false
580
+ schema:
581
+ type: string
582
+ - name: order
583
+ in: query
584
+ description: direction to order results by
585
+ required: false
586
+ schema:
587
+ type: string
588
+ responses:
589
+ 200:
590
+ description: OK
591
+ content:
592
+ application/json:
593
+ schema:
594
+ type: array
595
+ items:
596
+ "$ref": "#/components/schemas/Repository"
597
+ "/hosts/{hostName}/repositories":
598
+ get:
599
+ summary: get a list of repositories from a host
600
+ operationId: getHostRepositories
601
+ parameters:
602
+ - in: path
603
+ name: hostName
604
+ schema:
605
+ type: string
606
+ required: true
607
+ description: name of host
608
+ - name: page
609
+ in: query
610
+ description: pagination page number
611
+ required: false
612
+ schema:
613
+ type: integer
614
+ - name: per_page
615
+ in: query
616
+ description: Number of records to return
617
+ required: false
618
+ schema:
619
+ type: integer
620
+ - name: created_after
621
+ in: query
622
+ description: filter by created_at after given time
623
+ required: false
624
+ schema:
625
+ type: string
626
+ format: date-time
627
+ - name: updated_after
628
+ in: query
629
+ description: filter by updated_at after given time
630
+ required: false
631
+ schema:
632
+ type: string
633
+ format: date-time
634
+ - name: fork
635
+ in: query
636
+ description: filter by fork
637
+ required: false
638
+ schema:
639
+ type: boolean
640
+ - name: archived
641
+ in: query
642
+ description: filter by archived
643
+ required: false
644
+ schema:
645
+ type: boolean
646
+ - name: sort
647
+ in: query
648
+ description: field to order results by
649
+ required: false
650
+ schema:
651
+ type: string
652
+ - name: order
653
+ in: query
654
+ description: direction to order results by
655
+ required: false
656
+ schema:
657
+ type: string
658
+ responses:
659
+ 200:
660
+ description: OK
661
+ content:
662
+ application/json:
663
+ schema:
664
+ type: array
665
+ items:
666
+ "$ref": "#/components/schemas/Repository"
667
+ "/hosts/{hostName}/repository_names":
668
+ get:
669
+ summary: get a list of repository names from a host
670
+ operationId: getHostRepositoryNames
671
+ parameters:
672
+ - in: path
673
+ name: hostName
674
+ schema:
675
+ type: string
676
+ required: true
677
+ description: name of host
678
+ - name: page
679
+ in: query
680
+ description: pagination page number
681
+ required: false
682
+ schema:
683
+ type: integer
684
+ - name: per_page
685
+ in: query
686
+ description: Number of records to return
687
+ required: false
688
+ schema:
689
+ type: integer
690
+ - name: created_after
691
+ in: query
692
+ description: filter by created_at after given time
693
+ required: false
694
+ schema:
695
+ type: string
696
+ format: date-time
697
+ - name: updated_after
698
+ in: query
699
+ description: filter by updated_at after given time
700
+ required: false
701
+ schema:
702
+ type: string
703
+ format: date-time
704
+ - name: fork
705
+ in: query
706
+ description: filter by fork
707
+ required: false
708
+ schema:
709
+ type: boolean
710
+ - name: archived
711
+ in: query
712
+ description: filter by archived
713
+ required: false
714
+ schema:
715
+ type: boolean
716
+ - name: sort
717
+ in: query
718
+ description: field to order results by
719
+ required: false
720
+ schema:
721
+ type: string
722
+ - name: order
723
+ in: query
724
+ description: direction to order results by
725
+ required: false
726
+ schema:
727
+ type: string
728
+ responses:
729
+ 200:
730
+ description: OK
731
+ content:
732
+ application/json:
733
+ schema:
734
+ type: array
735
+ items:
736
+ type: string
737
+ "/hosts/{hostName}/owners/names":
738
+ get:
739
+ summary: get a list of owner names from a host
740
+ operationId: getHostOwnerNames
741
+ parameters:
742
+ - in: path
743
+ name: hostName
744
+ schema:
745
+ type: string
746
+ required: true
747
+ description: name of host
748
+ - name: page
749
+ in: query
750
+ description: pagination page number
751
+ required: false
752
+ schema:
753
+ type: integer
754
+ - name: per_page
755
+ in: query
756
+ description: Number of records to return
757
+ required: false
758
+ schema:
759
+ type: integer
760
+ - name: kind
761
+ in: query
762
+ description: filter by owner kind
763
+ required: false
764
+ schema:
765
+ type: string
766
+ enum:
767
+ - user
768
+ - organization
769
+ responses:
770
+ 200:
771
+ description: OK
772
+ content:
773
+ application/json:
774
+ schema:
775
+ type: array
776
+ items:
777
+ type: string
778
+ "/hosts/{hostName}/owners/sponsors_logins":
779
+ get:
780
+ summary: get a list of owner logins with sponsors listings from a host
781
+ operationId: getHostOwnerSponsorsLogins
782
+ parameters:
783
+ - in: path
784
+ name: hostName
785
+ schema:
786
+ type: string
787
+ required: true
788
+ description: name of host
789
+ responses:
790
+ 200:
791
+ description: OK
792
+ content:
793
+ application/json:
794
+ schema:
795
+ type: array
796
+ items:
797
+ type: string
798
+ "/hosts/{hostName}/repositories/{repositoryName}":
799
+ get:
800
+ summary: get a repository by name
801
+ operationId: getHostRepository
802
+ parameters:
803
+ - in: path
804
+ name: hostName
805
+ schema:
806
+ type: string
807
+ required: true
808
+ description: name of host
809
+ - in: path
810
+ name: repositoryName
811
+ schema:
812
+ type: string
813
+ required: true
814
+ description: name of repository
815
+ responses:
816
+ 200:
817
+ description: OK
818
+ content:
819
+ application/json:
820
+ schema:
821
+ "$ref": "#/components/schemas/Repository"
822
+ "/hosts/{hostName}/repositories/{repositoryName}/manifests":
823
+ get:
824
+ summary: get a list of manifests for a repository
825
+ operationId: getHostRepositoryManifests
826
+ parameters:
827
+ - in: path
828
+ name: hostName
829
+ schema:
830
+ type: string
831
+ required: true
832
+ description: name of host
833
+ - in: path
834
+ name: repositoryName
835
+ schema:
836
+ type: string
837
+ required: true
838
+ description: name of repository
839
+ - name: page
840
+ in: query
841
+ description: pagination page number
842
+ required: false
843
+ schema:
844
+ type: integer
845
+ - name: per_page
846
+ in: query
847
+ description: Number of records to return
848
+ required: false
849
+ schema:
850
+ type: integer
851
+ responses:
852
+ 200:
853
+ description: OK
854
+ content:
855
+ application/json:
856
+ schema:
857
+ type: array
858
+ items:
859
+ "$ref": "#/components/schemas/Manifest"
860
+ "/hosts/{hostName}/repositories/{repositoryName}/tags":
861
+ get:
862
+ summary: get a list of tags for a repository
863
+ operationId: getHostRepositoryTags
864
+ parameters:
865
+ - in: path
866
+ name: hostName
867
+ schema:
868
+ type: string
869
+ required: true
870
+ description: name of host
871
+ - in: path
872
+ name: repositoryName
873
+ schema:
874
+ type: string
875
+ required: true
876
+ description: name of repository
877
+ - name: page
878
+ in: query
879
+ description: pagination page number
880
+ required: false
881
+ schema:
882
+ type: integer
883
+ - name: per_page
884
+ in: query
885
+ description: Number of records to return
886
+ required: false
887
+ schema:
888
+ type: integer
889
+ - name: sort
890
+ in: query
891
+ description: field to order results by
892
+ required: false
893
+ schema:
894
+ type: string
895
+ - name: order
896
+ in: query
897
+ description: direction to order results by
898
+ required: false
899
+ schema:
900
+ type: string
901
+ responses:
902
+ 200:
903
+ description: OK
904
+ content:
905
+ application/json:
906
+ schema:
907
+ type: array
908
+ items:
909
+ "$ref": "#/components/schemas/Tag"
910
+ "/hosts/{hostName}/repositories/{repositoryName}/tags/{tag}":
911
+ get:
912
+ summary: get a tag for a repository
913
+ operationId: getHostRepositoryTag
914
+ parameters:
915
+ - in: path
916
+ name: hostName
917
+ schema:
918
+ type: string
919
+ required: true
920
+ description: name of host
921
+ - in: path
922
+ name: repositoryName
923
+ schema:
924
+ type: string
925
+ required: true
926
+ description: name of repository
927
+ - in: path
928
+ name: tag
929
+ schema:
930
+ type: string
931
+ required: true
932
+ description: name of tag
933
+ responses:
934
+ 200:
935
+ description: OK
936
+ content:
937
+ application/json:
938
+ schema:
939
+ "$ref": "#/components/schemas/Tag"
940
+ "/hosts/{hostName}/repositories/{repositoryName}/tags/{tag}/manifests":
941
+ get:
942
+ summary: get dependency manifests for a tag
943
+ operationId: getHostRepositoryTagManifests
944
+ parameters:
945
+ - in: path
946
+ name: hostName
947
+ schema:
948
+ type: string
949
+ required: true
950
+ description: name of host
951
+ - in: path
952
+ name: repositoryName
953
+ schema:
954
+ type: string
955
+ required: true
956
+ description: name of repository
957
+ - in: path
958
+ name: tag
959
+ schema:
960
+ type: string
961
+ required: true
962
+ description: name of tag
963
+ responses:
964
+ 200:
965
+ description: OK
966
+ content:
967
+ application/json:
968
+ schema:
969
+ type: array
970
+ items:
971
+ "$ref": "#/components/schemas/Manifest"
972
+ "/hosts/{hostName}/repositories/{repositoryName}/releases":
973
+ get:
974
+ summary: get a list of releases for a repository
975
+ operationId: getHostRepositoryReleases
976
+ parameters:
977
+ - in: path
978
+ name: hostName
979
+ schema:
980
+ type: string
981
+ required: true
982
+ description: name of host
983
+ - in: path
984
+ name: repositoryName
985
+ schema:
986
+ type: string
987
+ required: true
988
+ description: name of repository
989
+ - name: page
990
+ in: query
991
+ description: pagination page number
992
+ required: false
993
+ schema:
994
+ type: integer
995
+ - name: per_page
996
+ in: query
997
+ description: Number of records to return
998
+ required: false
999
+ schema:
1000
+ type: integer
1001
+ - name: sort
1002
+ in: query
1003
+ description: field to order results by
1004
+ required: false
1005
+ schema:
1006
+ type: string
1007
+ - name: order
1008
+ in: query
1009
+ description: direction to order results by
1010
+ required: false
1011
+ schema:
1012
+ type: string
1013
+ responses:
1014
+ 200:
1015
+ description: OK
1016
+ content:
1017
+ application/json:
1018
+ schema:
1019
+ type: array
1020
+ items:
1021
+ "$ref": "#/components/schemas/Tag"
1022
+ "/hosts/{hostName}/repositories/{repositoryName}/sbom":
1023
+ get:
1024
+ summary: get a software bill of materials (SBOM) for a repository
1025
+ operationId: getHostRepositorySbom
1026
+ parameters:
1027
+ - in: path
1028
+ name: hostName
1029
+ schema:
1030
+ type: string
1031
+ required: true
1032
+ description: name of host
1033
+ - in: path
1034
+ name: repositoryName
1035
+ schema:
1036
+ type: string
1037
+ required: true
1038
+ description: name of repository
1039
+ responses:
1040
+ 200:
1041
+ description: OK
1042
+ content:
1043
+ application/json:
1044
+ schema:
1045
+ type: object
1046
+ "/hosts/{hostName}/repositories/{repositoryName}/releases/{release}":
1047
+ get:
1048
+ summary: get a release for a repository
1049
+ operationId: getHostRepositoryRelease
1050
+ parameters:
1051
+ - in: path
1052
+ name: hostName
1053
+ schema:
1054
+ type: string
1055
+ required: true
1056
+ description: name of host
1057
+ - in: path
1058
+ name: repositoryName
1059
+ schema:
1060
+ type: string
1061
+ required: true
1062
+ description: name of repository
1063
+ - in: path
1064
+ name: release
1065
+ schema:
1066
+ type: string
1067
+ required: true
1068
+ description: tag_name of release
1069
+ responses:
1070
+ 200:
1071
+ description: OK
1072
+ content:
1073
+ application/json:
1074
+ schema:
1075
+ "$ref": "#/components/schemas/Release"
1076
+ components:
1077
+ schemas:
1078
+ Host:
1079
+ type: object
1080
+ properties:
1081
+ name:
1082
+ type: string
1083
+ url:
1084
+ type: string
1085
+ kind:
1086
+ type: string
1087
+ repositories_count:
1088
+ type: integer
1089
+ owners_count:
1090
+ type: integer
1091
+ icon_url:
1092
+ type: string
1093
+ host_url:
1094
+ type: string
1095
+ repositoris_url:
1096
+ type: string
1097
+ repository_names_url:
1098
+ type: string
1099
+ owners_url:
1100
+ type: string
1101
+ version:
1102
+ type: string
1103
+ created_at:
1104
+ type: string
1105
+ format: date-time
1106
+ updated_at:
1107
+ type: string
1108
+ format: date-time
1109
+ status:
1110
+ type: string
1111
+ enum:
1112
+ - online
1113
+ - timeout
1114
+ - connection_failed
1115
+ - http_error
1116
+ - ssl_error
1117
+ - error
1118
+ description: Current status of the host
1119
+ status_checked_at:
1120
+ type: string
1121
+ format: date-time
1122
+ description: Timestamp when status was last checked
1123
+ response_time:
1124
+ type: integer
1125
+ description: Response time in milliseconds (null if host is offline)
1126
+ nullable: true
1127
+ last_error:
1128
+ type: string
1129
+ description: Last error message encountered
1130
+ nullable: true
1131
+ robots_txt_status:
1132
+ type: string
1133
+ enum:
1134
+ - success
1135
+ - not_found
1136
+ - error_404
1137
+ - error_500
1138
+ - error_timeout
1139
+ description: Status of robots.txt fetch
1140
+ robots_txt_updated_at:
1141
+ type: string
1142
+ format: date-time
1143
+ description: Timestamp when robots.txt was last fetched
1144
+ nullable: true
1145
+ robots_txt_url:
1146
+ type: string
1147
+ description: URL to the host's robots.txt file
1148
+ online:
1149
+ type: boolean
1150
+ description: Whether the host is currently online
1151
+ can_crawl_api:
1152
+ type: boolean
1153
+ description: Whether API crawling is allowed by robots.txt
1154
+ Repository:
1155
+ type: object
1156
+ properties:
1157
+ id:
1158
+ type: integer
1159
+ uuid:
1160
+ type: string
1161
+ full_name:
1162
+ type: string
1163
+ owner:
1164
+ type: string
1165
+ description:
1166
+ type: string
1167
+ archived:
1168
+ type: boolean
1169
+ fork:
1170
+ type: boolean
1171
+ pushed_at:
1172
+ type: string
1173
+ format: date-time
1174
+ size:
1175
+ type: integer
1176
+ stargazers_count:
1177
+ type: integer
1178
+ open_issues_count:
1179
+ type: integer
1180
+ forks_count:
1181
+ type: integer
1182
+ subscribers_count:
1183
+ type: integer
1184
+ default_branch:
1185
+ type: string
1186
+ last_synced_at:
1187
+ type: string
1188
+ format: date-time
1189
+ etag:
1190
+ type: string
1191
+ topics:
1192
+ type: array
1193
+ items:
1194
+ type: string
1195
+ latest_commit_sha:
1196
+ type: string
1197
+ homepage:
1198
+ type: string
1199
+ language:
1200
+ type: string
1201
+ has_issues:
1202
+ type: boolean
1203
+ has_wiki:
1204
+ type: boolean
1205
+ has_pages:
1206
+ type: boolean
1207
+ mirror_url:
1208
+ type: string
1209
+ source_name:
1210
+ type: string
1211
+ license:
1212
+ type: string
1213
+ status:
1214
+ type: string
1215
+ scm:
1216
+ type: string
1217
+ pull_requests_enabled:
1218
+ type: boolean
1219
+ icon_url:
1220
+ type: string
1221
+ metadata:
1222
+ type: object
1223
+ created_at:
1224
+ type: string
1225
+ format: date-time
1226
+ updated_at:
1227
+ type: string
1228
+ format: date-time
1229
+ dependencies_parsed_at:
1230
+ type: string
1231
+ format: date-time
1232
+ dependency_job_id:
1233
+ type: string
1234
+ html_url:
1235
+ type: string
1236
+ previous_names:
1237
+ type: array
1238
+ items:
1239
+ type: string
1240
+ tags_count:
1241
+ type: integer
1242
+ template:
1243
+ type: boolean
1244
+ template_full_name:
1245
+ type: string
1246
+ latest_tag_name:
1247
+ type: string
1248
+ latest_tag_published_at:
1249
+ type: string
1250
+ format: date-time
1251
+ repository_url:
1252
+ type: string
1253
+ tags_url:
1254
+ type: string
1255
+ releases_url:
1256
+ type: string
1257
+ manifests_url:
1258
+ type: string
1259
+ owner_url:
1260
+ type: string
1261
+ download_url:
1262
+ type: string
1263
+ purl:
1264
+ type: string
1265
+ commit_stats:
1266
+ type: object
1267
+ scorecard:
1268
+ type: object
1269
+ nullable: true
1270
+ "$ref": "#/components/schemas/Scorecard"
1271
+ host:
1272
+ type: object
1273
+ "$ref": "#/components/schemas/Host"
1274
+ Manifest:
1275
+ type: object
1276
+ properties:
1277
+ ecosystem:
1278
+ type: string
1279
+ filepath:
1280
+ type: string
1281
+ sha:
1282
+ type: string
1283
+ kind:
1284
+ type: string
1285
+ created_at:
1286
+ type: string
1287
+ format: date-time
1288
+ updated_at:
1289
+ type: string
1290
+ format: date-time
1291
+ repository_link:
1292
+ type: string
1293
+ dependencies:
1294
+ type: array
1295
+ items:
1296
+ "$ref": "#/components/schemas/Dependency"
1297
+ Dependency:
1298
+ type: object
1299
+ properties:
1300
+ id:
1301
+ type: integer
1302
+ package_name:
1303
+ type: string
1304
+ ecosystem:
1305
+ type: string
1306
+ requirements:
1307
+ type: string
1308
+ kind:
1309
+ type: string
1310
+ direct:
1311
+ type: boolean
1312
+ optional:
1313
+ type: boolean
1314
+ DependencyWithRepository:
1315
+ type: object
1316
+ properties:
1317
+ id:
1318
+ type: integer
1319
+ package_name:
1320
+ type: string
1321
+ ecosystem:
1322
+ type: string
1323
+ requirements:
1324
+ type: string
1325
+ kind:
1326
+ type: string
1327
+ direct:
1328
+ type: boolean
1329
+ optional:
1330
+ type: boolean
1331
+ repository:
1332
+ type: object
1333
+ "$ref": "#/components/schemas/Repository"
1334
+ manifest:
1335
+ type: object
1336
+ "$ref": "#/components/schemas/Manifest"
1337
+ Tag:
1338
+ type: object
1339
+ properties:
1340
+ name:
1341
+ type: string
1342
+ sha:
1343
+ type: string
1344
+ kind:
1345
+ type: string
1346
+ published_at:
1347
+ type: string
1348
+ format: date-time
1349
+ download_url:
1350
+ type: string
1351
+ html_url:
1352
+ type: string
1353
+ dependencies_parsed_at:
1354
+ type: string
1355
+ format: date-time
1356
+ dependency_job_id:
1357
+ type: string
1358
+ purl:
1359
+ type: string
1360
+ tag_url:
1361
+ type: string
1362
+ manifests_url:
1363
+ type: string
1364
+ Ecosystem:
1365
+ type: object
1366
+ properties:
1367
+ name:
1368
+ type: string
1369
+ packages_count:
1370
+ type: integer
1371
+ ecosystem_url:
1372
+ type: string
1373
+ PackageUsage:
1374
+ type: object
1375
+ properties:
1376
+ ecosystem:
1377
+ type: string
1378
+ name:
1379
+ type: string
1380
+ dependents_count:
1381
+ type: integer
1382
+ package_usage_url:
1383
+ type: string
1384
+ dependencies_url:
1385
+ type: string
1386
+ Owner:
1387
+ type: object
1388
+ properties:
1389
+ name:
1390
+ type: string
1391
+ uuid:
1392
+ type: string
1393
+ kind:
1394
+ type: string
1395
+ email:
1396
+ type: string
1397
+ login:
1398
+ type: string
1399
+ company:
1400
+ type: string
1401
+ location:
1402
+ type: string
1403
+ description:
1404
+ type: string
1405
+ twitter:
1406
+ type: string
1407
+ website:
1408
+ type: string
1409
+ metadata:
1410
+ type: object
1411
+ icon_url:
1412
+ type: string
1413
+ created_at:
1414
+ type: string
1415
+ format: date-time
1416
+ updated_at:
1417
+ type: string
1418
+ format: date-time
1419
+ repositories_count:
1420
+ type: integer
1421
+ last_synced_at:
1422
+ type: string
1423
+ format: date-time
1424
+ owner_url:
1425
+ type: string
1426
+ repositories_url:
1427
+ type: string
1428
+ html_url:
1429
+ type: string
1430
+ funding_links:
1431
+ type: array
1432
+ items:
1433
+ type: string
1434
+ total_stars:
1435
+ type: integer
1436
+ followers:
1437
+ type: integer
1438
+ following:
1439
+ type: integer
1440
+ Topic:
1441
+ type: object
1442
+ properties:
1443
+ name:
1444
+ type: string
1445
+ repositories_count:
1446
+ type: integer
1447
+ topic_url:
1448
+ type: string
1449
+ TopicWithRepositories:
1450
+ type: object
1451
+ properties:
1452
+ name:
1453
+ type: string
1454
+ repositories_count:
1455
+ type: integer
1456
+ topic_url:
1457
+ type: string
1458
+ related_topics:
1459
+ type: array
1460
+ items:
1461
+ "$ref": "#/components/schemas/Topic"
1462
+ repositories:
1463
+ type: array
1464
+ items:
1465
+ "$ref": "#/components/schemas/Repository"
1466
+ Release:
1467
+ type: object
1468
+ properties:
1469
+ name:
1470
+ type: string
1471
+ uuid:
1472
+ type: string
1473
+ tag_name:
1474
+ type: string
1475
+ target_commitish:
1476
+ type: string
1477
+ body:
1478
+ type: string
1479
+ draft:
1480
+ type: boolean
1481
+ prerelease:
1482
+ type: boolean
1483
+ published_at:
1484
+ type: string
1485
+ format: date-time
1486
+ created_at:
1487
+ type: string
1488
+ format: date-time
1489
+ author:
1490
+ type: string
1491
+ assets:
1492
+ type: array
1493
+ items:
1494
+ type: object
1495
+ last_synced_at:
1496
+ type: string
1497
+ format: date-time
1498
+ tag_url:
1499
+ type: string
1500
+ html_url:
1501
+ type: string
1502
+ Scorecard:
1503
+ type: object
1504
+ properties:
1505
+ id:
1506
+ type: integer
1507
+ data:
1508
+ type: object
1509
+ description: Raw scorecard data from the API
1510
+ last_synced_at:
1511
+ type: string
1512
+ format: date-time
1513
+ nullable: true
1514
+ repository_id:
1515
+ type: integer
1516
+ created_at:
1517
+ type: string
1518
+ format: date-time
1519
+ updated_at:
1520
+ type: string
1521
+ format: date-time