@pg-atlas/data-sdk 0.4.0 → 0.5.0

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.
@@ -56,7 +56,7 @@ export const SubmissionStatusSchema = {
56
56
  'failed'
57
57
  ],
58
58
  title: 'SubmissionStatus',
59
- description: 'Processing state of an SbomSubmission record.'
59
+ description: 'Processing state of an artifact-linked audit record.'
60
60
  };
61
61
  export const ScfSubmissionSchema = {
62
62
  properties: {
@@ -570,6 +570,14 @@ export const RepoDetailResponseSchema = {
570
570
  },
571
571
  incoming_dep_counts: {
572
572
  $ref: '#/components/schemas/DepCounts'
573
+ },
574
+ active_contributors_30d: {
575
+ type: 'integer',
576
+ title: 'Active Contributors 30D'
577
+ },
578
+ active_contributors_90d: {
579
+ type: 'integer',
580
+ title: 'Active Contributors 90D'
573
581
  }
574
582
  },
575
583
  type: 'object',
@@ -591,10 +599,12 @@ export const RepoDetailResponseSchema = {
591
599
  'parent_project',
592
600
  'contributors',
593
601
  'outgoing_dep_counts',
594
- 'incoming_dep_counts'
602
+ 'incoming_dep_counts',
603
+ 'active_contributors_30d',
604
+ 'active_contributors_90d'
595
605
  ],
596
606
  title: 'RepoDetailResponse',
597
- description: 'Full repo detail with parent project, contributors, releases, and\ndependency counts.'
607
+ description: 'Full repo detail with parent project, contributors, releases, dependency counts,\nand active contributor stats.'
598
608
  };
599
609
  export const DepCountsSchema = {
600
610
  properties: {
@@ -800,6 +810,47 @@ export const EdgeConfidenceSchema = {
800
810
  title: 'EdgeConfidence',
801
811
  description: 'How firmly an edge was established.'
802
812
  };
813
+ export const RepoContributorSummarySchema = {
814
+ properties: {
815
+ id: {
816
+ type: 'integer',
817
+ title: 'Id'
818
+ },
819
+ name: {
820
+ type: 'string',
821
+ title: 'Name'
822
+ },
823
+ email_hash: {
824
+ type: 'string',
825
+ title: 'Email Hash'
826
+ },
827
+ number_of_commits: {
828
+ type: 'integer',
829
+ title: 'Number Of Commits'
830
+ },
831
+ first_commit_date: {
832
+ type: 'string',
833
+ format: 'date-time',
834
+ title: 'First Commit Date'
835
+ },
836
+ last_commit_date: {
837
+ type: 'string',
838
+ format: 'date-time',
839
+ title: 'Last Commit Date'
840
+ }
841
+ },
842
+ type: 'object',
843
+ required: [
844
+ 'id',
845
+ 'name',
846
+ 'email_hash',
847
+ 'number_of_commits',
848
+ 'first_commit_date',
849
+ 'last_commit_date'
850
+ ],
851
+ title: 'RepoContributorSummary',
852
+ description: 'Contributor summary with commit counts for one repo.'
853
+ };
803
854
  export const ProjectMetadataSchema = {
804
855
  properties: {
805
856
  scf_submissions: {
@@ -1034,6 +1085,14 @@ export const ProjectDetailResponseSchema = {
1034
1085
  type: 'integer',
1035
1086
  title: 'Project Id'
1036
1087
  },
1088
+ active_contributors_30d: {
1089
+ type: 'integer',
1090
+ title: 'Active Contributors 30D'
1091
+ },
1092
+ active_contributors_90d: {
1093
+ type: 'integer',
1094
+ title: 'Active Contributors 90D'
1095
+ },
1037
1096
  metadata: {
1038
1097
  $ref: '#/components/schemas/ProjectMetadata'
1039
1098
  }
@@ -1051,10 +1110,12 @@ export const ProjectDetailResponseSchema = {
1051
1110
  'adoption_score',
1052
1111
  'updated_at',
1053
1112
  'project_id',
1113
+ 'active_contributors_30d',
1114
+ 'active_contributors_90d',
1054
1115
  'metadata'
1055
1116
  ],
1056
1117
  title: 'ProjectDetailResponse',
1057
- description: 'Full project detail including validated metadata.\n\n``metadata`` is the normalised form of the ``project_metadata`` JSONB column.'
1118
+ description: 'Full project detail including contributor stats and metadata.\n\n``metadata`` is the normalised form of the ``project_metadata`` JSONB column.'
1058
1119
  };
1059
1120
  export const ProjectDependencySchema = {
1060
1121
  properties: {
@@ -1074,6 +1135,35 @@ export const ProjectDependencySchema = {
1074
1135
  title: 'ProjectDependency',
1075
1136
  description: 'A collapsed project-level dependency: aggregates repo-level edges\nbetween two projects into a single summary.'
1076
1137
  };
1138
+ export const ProjectContributorSummarySchema = {
1139
+ properties: {
1140
+ id: {
1141
+ type: 'integer',
1142
+ title: 'Id'
1143
+ },
1144
+ name: {
1145
+ type: 'string',
1146
+ title: 'Name'
1147
+ },
1148
+ email_hash: {
1149
+ type: 'string',
1150
+ title: 'Email Hash'
1151
+ },
1152
+ total_commits_in_project: {
1153
+ type: 'integer',
1154
+ title: 'Total Commits In Project'
1155
+ }
1156
+ },
1157
+ type: 'object',
1158
+ required: [
1159
+ 'id',
1160
+ 'name',
1161
+ 'email_hash',
1162
+ 'total_commits_in_project'
1163
+ ],
1164
+ title: 'ProjectContributorSummary',
1165
+ description: 'Contributor summary aggregated across all repos in a project.'
1166
+ };
1077
1167
  export const PaginatedResponse_RepoSummary_Schema = {
1078
1168
  properties: {
1079
1169
  items: {
@@ -1105,6 +1195,37 @@ export const PaginatedResponse_RepoSummary_Schema = {
1105
1195
  ],
1106
1196
  title: 'PaginatedResponse[RepoSummary]'
1107
1197
  };
1198
+ export const PaginatedResponse_RepoContributorSummary_Schema = {
1199
+ properties: {
1200
+ items: {
1201
+ items: {
1202
+ $ref: '#/components/schemas/RepoContributorSummary'
1203
+ },
1204
+ type: 'array',
1205
+ title: 'Items'
1206
+ },
1207
+ total: {
1208
+ type: 'integer',
1209
+ title: 'Total'
1210
+ },
1211
+ limit: {
1212
+ type: 'integer',
1213
+ title: 'Limit'
1214
+ },
1215
+ offset: {
1216
+ type: 'integer',
1217
+ title: 'Offset'
1218
+ }
1219
+ },
1220
+ type: 'object',
1221
+ required: [
1222
+ 'items',
1223
+ 'total',
1224
+ 'limit',
1225
+ 'offset'
1226
+ ],
1227
+ title: 'PaginatedResponse[RepoContributorSummary]'
1228
+ };
1108
1229
  export const PaginatedResponse_ProjectSummary_Schema = {
1109
1230
  properties: {
1110
1231
  items: {
@@ -1136,6 +1257,180 @@ export const PaginatedResponse_ProjectSummary_Schema = {
1136
1257
  ],
1137
1258
  title: 'PaginatedResponse[ProjectSummary]'
1138
1259
  };
1260
+ export const PaginatedResponse_ProjectContributorSummary_Schema = {
1261
+ properties: {
1262
+ items: {
1263
+ items: {
1264
+ $ref: '#/components/schemas/ProjectContributorSummary'
1265
+ },
1266
+ type: 'array',
1267
+ title: 'Items'
1268
+ },
1269
+ total: {
1270
+ type: 'integer',
1271
+ title: 'Total'
1272
+ },
1273
+ limit: {
1274
+ type: 'integer',
1275
+ title: 'Limit'
1276
+ },
1277
+ offset: {
1278
+ type: 'integer',
1279
+ title: 'Offset'
1280
+ }
1281
+ },
1282
+ type: 'object',
1283
+ required: [
1284
+ 'items',
1285
+ 'total',
1286
+ 'limit',
1287
+ 'offset'
1288
+ ],
1289
+ title: 'PaginatedResponse[ProjectContributorSummary]'
1290
+ };
1291
+ export const PaginatedResponse_GitLogArtifactSummary_Schema = {
1292
+ properties: {
1293
+ items: {
1294
+ items: {
1295
+ $ref: '#/components/schemas/GitLogArtifactSummary'
1296
+ },
1297
+ type: 'array',
1298
+ title: 'Items'
1299
+ },
1300
+ total: {
1301
+ type: 'integer',
1302
+ title: 'Total'
1303
+ },
1304
+ limit: {
1305
+ type: 'integer',
1306
+ title: 'Limit'
1307
+ },
1308
+ offset: {
1309
+ type: 'integer',
1310
+ title: 'Offset'
1311
+ }
1312
+ },
1313
+ type: 'object',
1314
+ required: [
1315
+ 'items',
1316
+ 'total',
1317
+ 'limit',
1318
+ 'offset'
1319
+ ],
1320
+ title: 'PaginatedResponse[GitLogArtifactSummary]'
1321
+ };
1322
+ export const GitLogArtifactSummarySchema = {
1323
+ properties: {
1324
+ id: {
1325
+ type: 'integer',
1326
+ title: 'Id'
1327
+ },
1328
+ repo_id: {
1329
+ type: 'integer',
1330
+ title: 'Repo Id'
1331
+ },
1332
+ repo_canonical_id: {
1333
+ type: 'string',
1334
+ title: 'Repo Canonical Id'
1335
+ },
1336
+ repo_display_name: {
1337
+ type: 'string',
1338
+ title: 'Repo Display Name'
1339
+ },
1340
+ artifact_path: {
1341
+ anyOf: [
1342
+ {
1343
+ type: 'string'
1344
+ },
1345
+ {
1346
+ type: 'null'
1347
+ }
1348
+ ],
1349
+ title: 'Artifact Path'
1350
+ },
1351
+ status: {
1352
+ $ref: '#/components/schemas/SubmissionStatus'
1353
+ },
1354
+ error_detail: {
1355
+ anyOf: [
1356
+ {
1357
+ type: 'string'
1358
+ },
1359
+ {
1360
+ type: 'null'
1361
+ }
1362
+ ],
1363
+ title: 'Error Detail'
1364
+ },
1365
+ since_months: {
1366
+ type: 'integer',
1367
+ title: 'Since Months'
1368
+ },
1369
+ submitted_at: {
1370
+ type: 'string',
1371
+ format: 'date-time',
1372
+ title: 'Submitted At'
1373
+ },
1374
+ processed_at: {
1375
+ anyOf: [
1376
+ {
1377
+ type: 'string',
1378
+ format: 'date-time'
1379
+ },
1380
+ {
1381
+ type: 'null'
1382
+ }
1383
+ ],
1384
+ title: 'Processed At'
1385
+ }
1386
+ },
1387
+ type: 'object',
1388
+ required: [
1389
+ 'id',
1390
+ 'repo_id',
1391
+ 'repo_canonical_id',
1392
+ 'repo_display_name',
1393
+ 'artifact_path',
1394
+ 'status',
1395
+ 'error_detail',
1396
+ 'since_months',
1397
+ 'submitted_at',
1398
+ 'processed_at'
1399
+ ],
1400
+ title: 'GitLogArtifactSummary',
1401
+ description: 'Compact gitlog artifact audit record for list endpoints.'
1402
+ };
1403
+ export const PaginatedResponse_ContributorSummary_Schema = {
1404
+ properties: {
1405
+ items: {
1406
+ items: {
1407
+ $ref: '#/components/schemas/ContributorSummary'
1408
+ },
1409
+ type: 'array',
1410
+ title: 'Items'
1411
+ },
1412
+ total: {
1413
+ type: 'integer',
1414
+ title: 'Total'
1415
+ },
1416
+ limit: {
1417
+ type: 'integer',
1418
+ title: 'Limit'
1419
+ },
1420
+ offset: {
1421
+ type: 'integer',
1422
+ title: 'Offset'
1423
+ }
1424
+ },
1425
+ type: 'object',
1426
+ required: [
1427
+ 'items',
1428
+ 'total',
1429
+ 'limit',
1430
+ 'offset'
1431
+ ],
1432
+ title: 'PaginatedResponse[ContributorSummary]'
1433
+ };
1139
1434
  export const MetadataResponseSchema = {
1140
1435
  properties: {
1141
1436
  total_projects: {
@@ -1150,6 +1445,10 @@ export const MetadataResponseSchema = {
1150
1445
  type: 'integer',
1151
1446
  title: 'Total Repos'
1152
1447
  },
1448
+ active_repos_90d: {
1449
+ type: 'integer',
1450
+ title: 'Active Repos 90D'
1451
+ },
1153
1452
  total_external_repos: {
1154
1453
  type: 'integer',
1155
1454
  title: 'Total External Repos'
@@ -1162,6 +1461,14 @@ export const MetadataResponseSchema = {
1162
1461
  type: 'integer',
1163
1462
  title: 'Total Contributor Edges'
1164
1463
  },
1464
+ active_contributors_30d: {
1465
+ type: 'integer',
1466
+ title: 'Active Contributors 30D'
1467
+ },
1468
+ active_contributors_90d: {
1469
+ type: 'integer',
1470
+ title: 'Active Contributors 90D'
1471
+ },
1165
1472
  last_updated: {
1166
1473
  anyOf: [
1167
1474
  {
@@ -1180,9 +1487,12 @@ export const MetadataResponseSchema = {
1180
1487
  'total_projects',
1181
1488
  'active_projects',
1182
1489
  'total_repos',
1490
+ 'active_repos_90d',
1183
1491
  'total_external_repos',
1184
1492
  'total_dependency_edges',
1185
1493
  'total_contributor_edges',
1494
+ 'active_contributors_30d',
1495
+ 'active_contributors_90d',
1186
1496
  'last_updated'
1187
1497
  ],
1188
1498
  title: 'MetadataResponse',
@@ -1220,6 +1530,98 @@ export const HTTPValidationErrorSchema = {
1220
1530
  type: 'object',
1221
1531
  title: 'HTTPValidationError'
1222
1532
  };
1533
+ export const GitLogArtifactDetailResponseSchema = {
1534
+ properties: {
1535
+ id: {
1536
+ type: 'integer',
1537
+ title: 'Id'
1538
+ },
1539
+ repo_id: {
1540
+ type: 'integer',
1541
+ title: 'Repo Id'
1542
+ },
1543
+ repo_canonical_id: {
1544
+ type: 'string',
1545
+ title: 'Repo Canonical Id'
1546
+ },
1547
+ repo_display_name: {
1548
+ type: 'string',
1549
+ title: 'Repo Display Name'
1550
+ },
1551
+ artifact_path: {
1552
+ anyOf: [
1553
+ {
1554
+ type: 'string'
1555
+ },
1556
+ {
1557
+ type: 'null'
1558
+ }
1559
+ ],
1560
+ title: 'Artifact Path'
1561
+ },
1562
+ status: {
1563
+ $ref: '#/components/schemas/SubmissionStatus'
1564
+ },
1565
+ error_detail: {
1566
+ anyOf: [
1567
+ {
1568
+ type: 'string'
1569
+ },
1570
+ {
1571
+ type: 'null'
1572
+ }
1573
+ ],
1574
+ title: 'Error Detail'
1575
+ },
1576
+ since_months: {
1577
+ type: 'integer',
1578
+ title: 'Since Months'
1579
+ },
1580
+ submitted_at: {
1581
+ type: 'string',
1582
+ format: 'date-time',
1583
+ title: 'Submitted At'
1584
+ },
1585
+ processed_at: {
1586
+ anyOf: [
1587
+ {
1588
+ type: 'string',
1589
+ format: 'date-time'
1590
+ },
1591
+ {
1592
+ type: 'null'
1593
+ }
1594
+ ],
1595
+ title: 'Processed At'
1596
+ },
1597
+ raw_artifact: {
1598
+ anyOf: [
1599
+ {
1600
+ type: 'string'
1601
+ },
1602
+ {
1603
+ type: 'null'
1604
+ }
1605
+ ],
1606
+ title: 'Raw Artifact'
1607
+ }
1608
+ },
1609
+ type: 'object',
1610
+ required: [
1611
+ 'id',
1612
+ 'repo_id',
1613
+ 'repo_canonical_id',
1614
+ 'repo_display_name',
1615
+ 'artifact_path',
1616
+ 'status',
1617
+ 'error_detail',
1618
+ 'since_months',
1619
+ 'submitted_at',
1620
+ 'processed_at'
1621
+ ],
1622
+ title: 'GitLogArtifactDetailResponse',
1623
+ description: 'Full gitlog artifact audit record including raw artifact content.'
1624
+ };
1223
1625
  export const ContributorDetailResponseSchema = {
1224
1626
  properties: {
1225
1627
  id: {
@@ -1,5 +1,5 @@
1
1
  import type { Client, Options as Options2, TDataShape } from './client';
2
- import type { GetContributorData, GetContributorErrors, GetContributorResponses, GetMetadataData, GetMetadataResponses, GetProjectData, GetProjectDependsOnData, GetProjectDependsOnErrors, GetProjectDependsOnResponses, GetProjectErrors, GetProjectHasDependentsData, GetProjectHasDependentsErrors, GetProjectHasDependentsResponses, GetProjectReposData, GetProjectReposErrors, GetProjectReposResponses, GetProjectResponses, GetRepoData, GetRepoDependsOnData, GetRepoDependsOnErrors, GetRepoDependsOnResponses, GetRepoErrors, GetRepoHasDependentsData, GetRepoHasDependentsErrors, GetRepoHasDependentsResponses, GetRepoResponses, GetSbomSubmissionData, GetSbomSubmissionErrors, GetSbomSubmissionResponses, HealthData, HealthResponses, IngestSbomData, IngestSbomErrors, IngestSbomResponses, ListProjectsData, ListProjectsErrors, ListProjectsResponses, ListReposData, ListReposErrors, ListReposResponses, ListSbomSubmissionsData, ListSbomSubmissionsErrors, ListSbomSubmissionsResponses } from './types.gen';
2
+ import type { GetContributorData, GetContributorErrors, GetContributorResponses, GetGitlogArtifactData, GetGitlogArtifactErrors, GetGitlogArtifactResponses, GetMetadataData, GetMetadataResponses, GetProjectContributorsData, GetProjectContributorsErrors, GetProjectContributorsResponses, GetProjectData, GetProjectDependsOnData, GetProjectDependsOnErrors, GetProjectDependsOnResponses, GetProjectErrors, GetProjectHasDependentsData, GetProjectHasDependentsErrors, GetProjectHasDependentsResponses, GetProjectReposData, GetProjectReposErrors, GetProjectReposResponses, GetProjectResponses, GetRepoContributorsData, GetRepoContributorsErrors, GetRepoContributorsResponses, GetRepoData, GetRepoDependsOnData, GetRepoDependsOnErrors, GetRepoDependsOnResponses, GetRepoErrors, GetRepoHasDependentsData, GetRepoHasDependentsErrors, GetRepoHasDependentsResponses, GetRepoResponses, GetSbomSubmissionData, GetSbomSubmissionErrors, GetSbomSubmissionResponses, HealthData, HealthResponses, IngestSbomData, IngestSbomErrors, IngestSbomResponses, ListContributorsData, ListContributorsErrors, ListContributorsResponses, ListGitlogArtifactsData, ListGitlogArtifactsErrors, ListGitlogArtifactsResponses, ListProjectsData, ListProjectsErrors, ListProjectsResponses, ListReposData, ListReposErrors, ListReposResponses, ListSbomSubmissionsData, ListSbomSubmissionsErrors, ListSbomSubmissionsResponses } from './types.gen';
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -78,6 +78,12 @@ export declare const getProject: <ThrowOnError extends boolean = false>(options:
78
78
  * Returns 404 if the project does not exist.
79
79
  */
80
80
  export declare const getProjectRepos: <ThrowOnError extends boolean = false>(options: Options<GetProjectReposData, ThrowOnError>) => import("./client").RequestResult<GetProjectReposResponses, GetProjectReposErrors, ThrowOnError, "fields">;
81
+ /**
82
+ * Contributors across a project's repos
83
+ *
84
+ * Paginated contributors aggregated across all repos belonging to the project.
85
+ */
86
+ export declare const getProjectContributors: <ThrowOnError extends boolean = false>(options: Options<GetProjectContributorsData, ThrowOnError>) => import("./client").RequestResult<GetProjectContributorsResponses, GetProjectContributorsErrors, ThrowOnError, "fields">;
81
87
  /**
82
88
  * Project-level dependencies
83
89
  *
@@ -126,6 +132,12 @@ export declare const getRepoDependsOn: <ThrowOnError extends boolean = false>(op
126
132
  * type, version range, and confidence level.
127
133
  */
128
134
  export declare const getRepoHasDependents: <ThrowOnError extends boolean = false>(options: Options<GetRepoHasDependentsData, ThrowOnError>) => import("./client").RequestResult<GetRepoHasDependentsResponses, GetRepoHasDependentsErrors, ThrowOnError, "fields">;
135
+ /**
136
+ * Contributors for a repo
137
+ *
138
+ * Paginated contributors for one repo with commit-count and commit-date spans.
139
+ */
140
+ export declare const getRepoContributors: <ThrowOnError extends boolean = false>(options: Options<GetRepoContributorsData, ThrowOnError>) => import("./client").RequestResult<GetRepoContributorsResponses, GetRepoContributorsErrors, ThrowOnError, "fields">;
129
141
  /**
130
142
  * Repo detail
131
143
  *
@@ -133,6 +145,12 @@ export declare const getRepoHasDependents: <ThrowOnError extends boolean = false
133
145
  * releases, and dependency counts.
134
146
  */
135
147
  export declare const getRepo: <ThrowOnError extends boolean = false>(options: Options<GetRepoData, ThrowOnError>) => import("./client").RequestResult<GetRepoResponses, GetRepoErrors, ThrowOnError, "fields">;
148
+ /**
149
+ * List contributors
150
+ *
151
+ * Paginated contributor list with optional case-insensitive name filtering.
152
+ */
153
+ export declare const listContributors: <ThrowOnError extends boolean = false>(options?: Options<ListContributorsData, ThrowOnError>) => import("./client").RequestResult<ListContributorsResponses, ListContributorsErrors, ThrowOnError, "fields">;
136
154
  /**
137
155
  * Contributor detail
138
156
  *
@@ -144,3 +162,15 @@ export declare const getRepo: <ThrowOnError extends boolean = false>(options: Op
144
162
  * commit dates across all repos.
145
163
  */
146
164
  export declare const getContributor: <ThrowOnError extends boolean = false>(options: Options<GetContributorData, ThrowOnError>) => import("./client").RequestResult<GetContributorResponses, GetContributorErrors, ThrowOnError, "fields">;
165
+ /**
166
+ * List gitlog processing attempts
167
+ *
168
+ * Paginated list of gitlog processing attempts with optional repo filter.
169
+ */
170
+ export declare const listGitlogArtifacts: <ThrowOnError extends boolean = false>(options?: Options<ListGitlogArtifactsData, ThrowOnError>) => import("./client").RequestResult<ListGitlogArtifactsResponses, ListGitlogArtifactsErrors, ThrowOnError, "fields">;
171
+ /**
172
+ * Get gitlog processing attempt detail
173
+ *
174
+ * Return one gitlog attempt record with its raw artifact content when available.
175
+ */
176
+ export declare const getGitlogArtifact: <ThrowOnError extends boolean = false>(options: Options<GetGitlogArtifactData, ThrowOnError>) => import("./client").RequestResult<GetGitlogArtifactResponses, GetGitlogArtifactErrors, ThrowOnError, "fields">;
@@ -65,6 +65,12 @@ export const getProject = (options) => (options.client ?? client).get({ url: '/p
65
65
  * Returns 404 if the project does not exist.
66
66
  */
67
67
  export const getProjectRepos = (options) => (options.client ?? client).get({ url: '/projects/{canonical_id}/repos', ...options });
68
+ /**
69
+ * Contributors across a project's repos
70
+ *
71
+ * Paginated contributors aggregated across all repos belonging to the project.
72
+ */
73
+ export const getProjectContributors = (options) => (options.client ?? client).get({ url: '/projects/{canonical_id}/contributors', ...options });
68
74
  /**
69
75
  * Project-level dependencies
70
76
  *
@@ -113,6 +119,12 @@ export const getRepoDependsOn = (options) => (options.client ?? client).get({ ur
113
119
  * type, version range, and confidence level.
114
120
  */
115
121
  export const getRepoHasDependents = (options) => (options.client ?? client).get({ url: '/repos/{canonical_id}/has-dependents', ...options });
122
+ /**
123
+ * Contributors for a repo
124
+ *
125
+ * Paginated contributors for one repo with commit-count and commit-date spans.
126
+ */
127
+ export const getRepoContributors = (options) => (options.client ?? client).get({ url: '/repos/{canonical_id}/contributors', ...options });
116
128
  /**
117
129
  * Repo detail
118
130
  *
@@ -120,6 +132,12 @@ export const getRepoHasDependents = (options) => (options.client ?? client).get(
120
132
  * releases, and dependency counts.
121
133
  */
122
134
  export const getRepo = (options) => (options.client ?? client).get({ url: '/repos/{canonical_id}', ...options });
135
+ /**
136
+ * List contributors
137
+ *
138
+ * Paginated contributor list with optional case-insensitive name filtering.
139
+ */
140
+ export const listContributors = (options) => (options?.client ?? client).get({ url: '/contributors', ...options });
123
141
  /**
124
142
  * Contributor detail
125
143
  *
@@ -131,3 +149,15 @@ export const getRepo = (options) => (options.client ?? client).get({ url: '/repo
131
149
  * commit dates across all repos.
132
150
  */
133
151
  export const getContributor = (options) => (options.client ?? client).get({ url: '/contributors/{contributor_id}', ...options });
152
+ /**
153
+ * List gitlog processing attempts
154
+ *
155
+ * Paginated list of gitlog processing attempts with optional repo filter.
156
+ */
157
+ export const listGitlogArtifacts = (options) => (options?.client ?? client).get({ url: '/gitlog', ...options });
158
+ /**
159
+ * Get gitlog processing attempt detail
160
+ *
161
+ * Return one gitlog attempt record with its raw artifact content when available.
162
+ */
163
+ export const getGitlogArtifact = (options) => (options.client ?? client).get({ url: '/gitlog/{artifact_id}', ...options });