@gitbeaker/rest 39.17.0 → 39.19.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.
package/README.md CHANGED
@@ -74,17 +74,19 @@
74
74
  - [Features](#features)
75
75
  - [Usage](#usage)
76
76
  - [API Client](#api-client)
77
+ - [Expanded Payloads](#expanded-payloads)
77
78
  - [Pagination](#pagination)
79
+ - [Rate Limits](#rate-limits)
78
80
  - [Error Handling](#error-handling)
79
81
  - [Examples](#examples)
80
82
  - [Testing](../../docs/TESTING.md)
81
- - [FAQ](../../FAQ.md)
83
+ - [FAQ](../../docs/FAQ.md)
82
84
  - [Contributors](#contributors)
83
85
  - [Changelog](./CHANGELOG.md)
84
86
 
85
87
  ## Features
86
88
 
87
- - **Complete** - All features of Gitlab's exposed APIs are covered up to version [16.0](https://docs.gitlab.com/16.0/ee/api/api_resources.html).
89
+ - **Complete** - All features of Gitlab's exposed APIs are covered up to version [16.0](https://docs.gitlab.com/16.0/ee/api/api_resources.html). See [here](./packages/core/README.md#supported-apis) for the full list.
88
90
  - **Universal** - Works in all modern browsers, [Node.js](https://nodejs.org/), and [Deno](https://deno.land/).
89
91
  - **Tested** - All libraries have > 80% test coverage.
90
92
  - **Typed** - All libraries have extensive TypeScript declarations.
@@ -154,9 +156,37 @@ Available instantiating options:
154
156
  | `queryTimeout` | Yes | `300000` | Query Timeout in ms |
155
157
  | `profileToken` | Yes | N/A | [Requests Profiles Token](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) |
156
158
  | `profileMode` | Yes | `execution` | [Requests Profiles Token](https://docs.gitlab.com/ee/administration/monitoring/performance/request_profiling.html) |
159
+ | `rateLimits` | No | [DEFAULT_RATE_LIMITS](#rate-limits) | Global and endpoint specific adjustable rate limits |
157
160
 
158
161
  > \*One of these options must be supplied.
159
162
 
163
+ ### Expanded Payloads
164
+
165
+ For simplicity, only the response body is returned from the API methods. However, seeing additional response fields, such as the status, headers, etc., may be helpful. For this purpose, an additional optional parameter, `showExpanded` can be passed for most API methods.
166
+
167
+ For methods that return non-paginated results, the payload has this structure:
168
+
169
+ ```ts
170
+ type ResponseBodyTypes =
171
+ | Record<string, unknown>
172
+ | Record<string, unknown>[]
173
+ | ReadableStream
174
+ | Blob
175
+ | string
176
+ | string[]
177
+ | number
178
+ | void
179
+ | null;
180
+
181
+ interface FormattedResponse<T extends ResponseBodyTypes = ResponseBodyTypes> {
182
+ body: T;
183
+ headers: Record<string, string>;
184
+ status: number;
185
+ }
186
+ ```
187
+
188
+ For methods that return paginated results, the payload also includes paginated information outlined in the [Pagination documentation](#pagination)
189
+
160
190
  ### Pagination
161
191
 
162
192
  Available pagination options:
@@ -239,6 +269,72 @@ const { data } = await api.Projects.all({
239
269
  });
240
270
  ```
241
271
 
272
+ ### Rate Limits
273
+
274
+ Rate limits are completely customizable, and are used to limit the request rate between consecutive API requests within the library. By default, all non-specified endpoints use a 3000 rps rate limit, while some endpoints have much smaller rates as dictated by the [Gitlab Docs](https://docs.gitlab.com/ee/security/rate_limits.html). See below for the default values:
275
+
276
+ ```js
277
+ const DEFAULT_RATE_LIMITS = Object.freeze({
278
+ // Default rate limit
279
+ '**': 3000,
280
+
281
+ // Import/Export
282
+ 'projects/import': 6,
283
+ 'projects/*/export': 6,
284
+ 'projects/*/download': 1,
285
+ 'groups/import': 6,
286
+ 'groups/*/export': 6,
287
+ 'groups/*/download': 1,
288
+
289
+ // Note creation
290
+ 'projects/*/issues/*/notes': {
291
+ method: 'post',
292
+ limit: 300,
293
+ },
294
+ 'projects/*/snippets/*/notes': {
295
+ method: 'post',
296
+ limit: 300,
297
+ },
298
+ 'projects/*/merge_requests/*/notes': {
299
+ method: 'post',
300
+ limit: 300,
301
+ },
302
+ 'groups/*/epics/*/notes': {
303
+ method: 'post',
304
+ limit: 300,
305
+ },
306
+
307
+ // Repositories - get file archive
308
+ 'projects/*/repository/archive*': 5,
309
+
310
+ // Project Jobs
311
+ 'projects/*/jobs': 600,
312
+
313
+ // Member deletion
314
+ 'projects/*/members': 60,
315
+ 'groups/*/members': 60,
316
+ });
317
+ ```
318
+
319
+ Rate limits can be overridden when instantiating a API wrapper. For ease of use, these limits are configured using glob patterns, and can be formatted in two ways.
320
+
321
+ 1. The glob for the endpoint with the corresponding rate per second
322
+ 2. The glob for the endpoint, with an object specifying the specific method for the endpoint and the corresponding rate limit
323
+
324
+ ```js
325
+ const api = new Gitlab({
326
+ token: 'token',
327
+ rateLimits: {
328
+ '**': 30,
329
+ 'projects/import/*': 40,
330
+ 'projects/*/issues/*/notes': {
331
+ method: 'post',
332
+ limit: 300,
333
+ },
334
+ },
335
+ });
336
+ ```
337
+
242
338
  ### Error Handling
243
339
 
244
340
  Request errors are returned back within a plain Error instance, using the cause to hold the original response and a text description of the error pulled from the response's error or message fields if JSON, or its plain text value:
@@ -410,6 +506,7 @@ projectsAPI.create({
410
506
  <td align="center" valign="top" width="3.84%"><a href="https://github.com/demedos"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/16702156?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt="Alessandro Diez"/></td>
411
507
  <td align="center" valign="top" width="3.84%"><a href="https://github.com/artlist-scottambrose"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/124692101?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt="artlist-scottambrose"/></td>
412
508
  <td align="center" valign="top" width="3.84%"><a href="https://github.com/mercutiodesign"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/1114120?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt="Martin Dreher"/></td>
509
+ <td align="center" valign="top" width="3.84%"><a href="https://github.com/glensc"><img src="https://images.weserv.nl/?url=https://avatars.githubusercontent.com/u/199095?v=4&h=25&w=25&fit=cover&mask=circle&maxage=7d" alt="Elan Ruusamäe"/></td>
413
510
  </tr>
414
511
  </p>
415
512
 
package/dist/index.d.mts CHANGED
@@ -11,6 +11,7 @@ declare const ApplicationStatistics: typeof Resources.ApplicationStatistics;
11
11
  declare const AuditEvents: typeof Resources.AuditEvents;
12
12
  declare const Avatar: typeof Resources.Avatar;
13
13
  declare const BroadcastMessages: typeof Resources.BroadcastMessages;
14
+ declare const CodeSuggestions: typeof Resources.CodeSuggestions;
14
15
  declare const Composer: typeof Resources.Composer;
15
16
  declare const Conan: typeof Resources.Conan;
16
17
  declare const DashboardAnnotations: typeof Resources.DashboardAnnotations;
@@ -22,6 +23,7 @@ declare const DockerfileTemplates: typeof Resources.DockerfileTemplates;
22
23
  declare const Events: typeof Resources.Events;
23
24
  declare const Experiments: typeof Resources.Experiments;
24
25
  declare const GeoNodes: typeof Resources.GeoNodes;
26
+ declare const GeoSites: typeof Resources.GeoSites;
25
27
  declare const GitignoreTemplates: typeof Resources.GitignoreTemplates;
26
28
  declare const GitLabCIYMLTemplates: typeof Resources.GitLabCIYMLTemplates;
27
29
  declare const Import: typeof Resources.Import;
@@ -42,6 +44,7 @@ declare const PersonalAccessTokens: typeof Resources.PersonalAccessTokens;
42
44
  declare const PyPI: typeof Resources.PyPI;
43
45
  declare const RubyGems: typeof Resources.RubyGems;
44
46
  declare const Search: typeof Resources.Search;
47
+ declare const SearchAdmin: typeof Resources.SearchAdmin;
45
48
  declare const ServiceData: typeof Resources.ServiceData;
46
49
  declare const SidekiqMetrics: typeof Resources.SidekiqMetrics;
47
50
  declare const SidekiqQueues: typeof Resources.SidekiqQueues;
@@ -154,6 +157,7 @@ declare const GroupActivityAnalytics: typeof Resources.GroupActivityAnalytics;
154
157
  declare const GroupBadges: typeof Resources.GroupBadges;
155
158
  declare const GroupCustomAttributes: typeof Resources.GroupCustomAttributes;
156
159
  declare const GroupDORA4Metrics: typeof Resources.GroupDORA4Metrics;
160
+ declare const GroupEpicBoards: typeof Resources.GroupEpicBoards;
157
161
  declare const GroupHooks: typeof Resources.GroupHooks;
158
162
  declare const GroupImportExports: typeof Resources.GroupImportExports;
159
163
  declare const GroupInvitations: typeof Resources.GroupInvitations;
@@ -171,6 +175,7 @@ declare const GroupReleases: typeof Resources.GroupReleases;
171
175
  declare const GroupRepositoryStorageMoves: typeof Resources.GroupRepositoryStorageMoves;
172
176
  declare const Groups: typeof Resources.Groups;
173
177
  declare const GroupSAMLIdentities: typeof Resources.GroupSAMLIdentities;
178
+ declare const GroupSAMLLinks: typeof Resources.GroupSAMLLinks;
174
179
  declare const GroupSCIMIdentities: typeof Resources.GroupSCIMIdentities;
175
180
  declare const GroupVariables: typeof Resources.GroupVariables;
176
181
  declare const GroupWikis: typeof Resources.GroupWikis;
@@ -183,4 +188,4 @@ declare const Users: typeof Resources.Users;
183
188
  declare const UserSSHKeys: typeof Resources.UserSSHKeys;
184
189
  declare const Gitlab: typeof Resources.Gitlab;
185
190
 
186
- export { Agents, AlertManagement, ApplicationAppearance, ApplicationPlanLimits, ApplicationSettings, ApplicationStatistics, Applications, AuditEvents, Avatar, Branches, BroadcastMessages, CommitDiscussions, Commits, Composer, Conan, ContainerRegistry, DashboardAnnotations, Debian, DependencyProxy, DeployKeys, DeployTokens, Deployments, DockerfileTemplates, Environments, EpicAwardEmojis, EpicDiscussions, EpicIssues, EpicLabelEvents, EpicLinks, EpicNotes, Epics, ErrorTrackingClientKeys, ErrorTrackingSettings, Events, Experiments, ExternalStatusChecks, FeatureFlagUserLists, FeatureFlags, FreezePeriods, GeoNodes, GitLabCIYMLTemplates, GitignoreTemplates, Gitlab, GitlabPages, GoProxy, GroupAccessRequests, GroupAccessTokens, GroupActivityAnalytics, GroupBadges, GroupCustomAttributes, GroupDORA4Metrics, GroupHooks, GroupImportExports, GroupInvitations, GroupIssueBoards, GroupIterations, GroupLDAPLinks, GroupLabels, GroupMemberRoles, GroupMembers, GroupMilestones, GroupProtectedEnvironments, GroupPushRules, GroupRelationExports, GroupReleases, GroupRepositoryStorageMoves, GroupSAMLIdentities, GroupSCIMIdentities, GroupVariables, GroupWikis, Groups, Helm, Import, InstanceLevelCICDVariables, Integrations, IssueAwardEmojis, IssueDiscussions, IssueIterationEvents, IssueLabelEvents, IssueLinks, IssueMilestoneEvents, IssueNoteAwardEmojis, IssueNotes, IssueStateEvents, IssueWeightEvents, Issues, IssuesStatistics, JobArtifacts, Jobs, Keys, License, LicenseTemplates, LinkedEpics, Lint, Markdown, Maven, MergeRequestApprovals, MergeRequestAwardEmojis, MergeRequestContextCommits, MergeRequestDiscussions, MergeRequestDraftNotes, MergeRequestLabelEvents, MergeRequestMilestoneEvents, MergeRequestNoteAwardEmojis, MergeRequestNotes, MergeRequests, MergeTrains, Metadata, Migrations, NPM, Namespaces, NotificationSettings, NuGet, PackageRegistry, Packages, PagesDomains, PersonalAccessTokens, PipelineScheduleVariables, PipelineSchedules, PipelineTriggerTokens, Pipelines, ProductAnalytics, ProjectAccessRequests, ProjectAccessTokens, ProjectAliases, ProjectBadges, ProjectCustomAttributes, ProjectDORA4Metrics, ProjectHooks, ProjectImportExports, ProjectInvitations, ProjectIssueBoards, ProjectIterations, ProjectLabels, ProjectMembers, ProjectMilestones, ProjectProtectedEnvironments, ProjectPushRules, ProjectRelationsExport, ProjectReleases, ProjectRemoteMirrors, ProjectRepositoryStorageMoves, ProjectSnippetAwardEmojis, ProjectSnippetDiscussions, ProjectSnippetNotes, ProjectSnippets, ProjectStatistics, ProjectTemplates, ProjectVariables, ProjectVulnerabilities, ProjectWikis, Projects, ProtectedBranches, ProtectedTags, PyPI, ReleaseLinks, Repositories, RepositoryFiles, RepositorySubmodules, ResourceGroups, RubyGems, Runners, Search, SecureFiles, ServiceData, SidekiqMetrics, SidekiqQueues, SnippetRepositoryStorageMoves, Snippets, Suggestions, SystemHooks, Tags, TodoLists, Topics, UserCustomAttributes, UserEmails, UserGPGKeys, UserImpersonationTokens, UserSSHKeys, UserStarredMetricsDashboard, Users };
191
+ export { Agents, AlertManagement, ApplicationAppearance, ApplicationPlanLimits, ApplicationSettings, ApplicationStatistics, Applications, AuditEvents, Avatar, Branches, BroadcastMessages, CodeSuggestions, CommitDiscussions, Commits, Composer, Conan, ContainerRegistry, DashboardAnnotations, Debian, DependencyProxy, DeployKeys, DeployTokens, Deployments, DockerfileTemplates, Environments, EpicAwardEmojis, EpicDiscussions, EpicIssues, EpicLabelEvents, EpicLinks, EpicNotes, Epics, ErrorTrackingClientKeys, ErrorTrackingSettings, Events, Experiments, ExternalStatusChecks, FeatureFlagUserLists, FeatureFlags, FreezePeriods, GeoNodes, GeoSites, GitLabCIYMLTemplates, GitignoreTemplates, Gitlab, GitlabPages, GoProxy, GroupAccessRequests, GroupAccessTokens, GroupActivityAnalytics, GroupBadges, GroupCustomAttributes, GroupDORA4Metrics, GroupEpicBoards, GroupHooks, GroupImportExports, GroupInvitations, GroupIssueBoards, GroupIterations, GroupLDAPLinks, GroupLabels, GroupMemberRoles, GroupMembers, GroupMilestones, GroupProtectedEnvironments, GroupPushRules, GroupRelationExports, GroupReleases, GroupRepositoryStorageMoves, GroupSAMLIdentities, GroupSAMLLinks, GroupSCIMIdentities, GroupVariables, GroupWikis, Groups, Helm, Import, InstanceLevelCICDVariables, Integrations, IssueAwardEmojis, IssueDiscussions, IssueIterationEvents, IssueLabelEvents, IssueLinks, IssueMilestoneEvents, IssueNoteAwardEmojis, IssueNotes, IssueStateEvents, IssueWeightEvents, Issues, IssuesStatistics, JobArtifacts, Jobs, Keys, License, LicenseTemplates, LinkedEpics, Lint, Markdown, Maven, MergeRequestApprovals, MergeRequestAwardEmojis, MergeRequestContextCommits, MergeRequestDiscussions, MergeRequestDraftNotes, MergeRequestLabelEvents, MergeRequestMilestoneEvents, MergeRequestNoteAwardEmojis, MergeRequestNotes, MergeRequests, MergeTrains, Metadata, Migrations, NPM, Namespaces, NotificationSettings, NuGet, PackageRegistry, Packages, PagesDomains, PersonalAccessTokens, PipelineScheduleVariables, PipelineSchedules, PipelineTriggerTokens, Pipelines, ProductAnalytics, ProjectAccessRequests, ProjectAccessTokens, ProjectAliases, ProjectBadges, ProjectCustomAttributes, ProjectDORA4Metrics, ProjectHooks, ProjectImportExports, ProjectInvitations, ProjectIssueBoards, ProjectIterations, ProjectLabels, ProjectMembers, ProjectMilestones, ProjectProtectedEnvironments, ProjectPushRules, ProjectRelationsExport, ProjectReleases, ProjectRemoteMirrors, ProjectRepositoryStorageMoves, ProjectSnippetAwardEmojis, ProjectSnippetDiscussions, ProjectSnippetNotes, ProjectSnippets, ProjectStatistics, ProjectTemplates, ProjectVariables, ProjectVulnerabilities, ProjectWikis, Projects, ProtectedBranches, ProtectedTags, PyPI, ReleaseLinks, Repositories, RepositoryFiles, RepositorySubmodules, ResourceGroups, RubyGems, Runners, Search, SearchAdmin, SecureFiles, ServiceData, SidekiqMetrics, SidekiqQueues, SnippetRepositoryStorageMoves, Snippets, Suggestions, SystemHooks, Tags, TodoLists, Topics, UserCustomAttributes, UserEmails, UserGPGKeys, UserImpersonationTokens, UserSSHKeys, UserStarredMetricsDashboard, Users };
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ declare const ApplicationStatistics: typeof Resources.ApplicationStatistics;
11
11
  declare const AuditEvents: typeof Resources.AuditEvents;
12
12
  declare const Avatar: typeof Resources.Avatar;
13
13
  declare const BroadcastMessages: typeof Resources.BroadcastMessages;
14
+ declare const CodeSuggestions: typeof Resources.CodeSuggestions;
14
15
  declare const Composer: typeof Resources.Composer;
15
16
  declare const Conan: typeof Resources.Conan;
16
17
  declare const DashboardAnnotations: typeof Resources.DashboardAnnotations;
@@ -22,6 +23,7 @@ declare const DockerfileTemplates: typeof Resources.DockerfileTemplates;
22
23
  declare const Events: typeof Resources.Events;
23
24
  declare const Experiments: typeof Resources.Experiments;
24
25
  declare const GeoNodes: typeof Resources.GeoNodes;
26
+ declare const GeoSites: typeof Resources.GeoSites;
25
27
  declare const GitignoreTemplates: typeof Resources.GitignoreTemplates;
26
28
  declare const GitLabCIYMLTemplates: typeof Resources.GitLabCIYMLTemplates;
27
29
  declare const Import: typeof Resources.Import;
@@ -42,6 +44,7 @@ declare const PersonalAccessTokens: typeof Resources.PersonalAccessTokens;
42
44
  declare const PyPI: typeof Resources.PyPI;
43
45
  declare const RubyGems: typeof Resources.RubyGems;
44
46
  declare const Search: typeof Resources.Search;
47
+ declare const SearchAdmin: typeof Resources.SearchAdmin;
45
48
  declare const ServiceData: typeof Resources.ServiceData;
46
49
  declare const SidekiqMetrics: typeof Resources.SidekiqMetrics;
47
50
  declare const SidekiqQueues: typeof Resources.SidekiqQueues;
@@ -154,6 +157,7 @@ declare const GroupActivityAnalytics: typeof Resources.GroupActivityAnalytics;
154
157
  declare const GroupBadges: typeof Resources.GroupBadges;
155
158
  declare const GroupCustomAttributes: typeof Resources.GroupCustomAttributes;
156
159
  declare const GroupDORA4Metrics: typeof Resources.GroupDORA4Metrics;
160
+ declare const GroupEpicBoards: typeof Resources.GroupEpicBoards;
157
161
  declare const GroupHooks: typeof Resources.GroupHooks;
158
162
  declare const GroupImportExports: typeof Resources.GroupImportExports;
159
163
  declare const GroupInvitations: typeof Resources.GroupInvitations;
@@ -171,6 +175,7 @@ declare const GroupReleases: typeof Resources.GroupReleases;
171
175
  declare const GroupRepositoryStorageMoves: typeof Resources.GroupRepositoryStorageMoves;
172
176
  declare const Groups: typeof Resources.Groups;
173
177
  declare const GroupSAMLIdentities: typeof Resources.GroupSAMLIdentities;
178
+ declare const GroupSAMLLinks: typeof Resources.GroupSAMLLinks;
174
179
  declare const GroupSCIMIdentities: typeof Resources.GroupSCIMIdentities;
175
180
  declare const GroupVariables: typeof Resources.GroupVariables;
176
181
  declare const GroupWikis: typeof Resources.GroupWikis;
@@ -183,4 +188,4 @@ declare const Users: typeof Resources.Users;
183
188
  declare const UserSSHKeys: typeof Resources.UserSSHKeys;
184
189
  declare const Gitlab: typeof Resources.Gitlab;
185
190
 
186
- export { Agents, AlertManagement, ApplicationAppearance, ApplicationPlanLimits, ApplicationSettings, ApplicationStatistics, Applications, AuditEvents, Avatar, Branches, BroadcastMessages, CommitDiscussions, Commits, Composer, Conan, ContainerRegistry, DashboardAnnotations, Debian, DependencyProxy, DeployKeys, DeployTokens, Deployments, DockerfileTemplates, Environments, EpicAwardEmojis, EpicDiscussions, EpicIssues, EpicLabelEvents, EpicLinks, EpicNotes, Epics, ErrorTrackingClientKeys, ErrorTrackingSettings, Events, Experiments, ExternalStatusChecks, FeatureFlagUserLists, FeatureFlags, FreezePeriods, GeoNodes, GitLabCIYMLTemplates, GitignoreTemplates, Gitlab, GitlabPages, GoProxy, GroupAccessRequests, GroupAccessTokens, GroupActivityAnalytics, GroupBadges, GroupCustomAttributes, GroupDORA4Metrics, GroupHooks, GroupImportExports, GroupInvitations, GroupIssueBoards, GroupIterations, GroupLDAPLinks, GroupLabels, GroupMemberRoles, GroupMembers, GroupMilestones, GroupProtectedEnvironments, GroupPushRules, GroupRelationExports, GroupReleases, GroupRepositoryStorageMoves, GroupSAMLIdentities, GroupSCIMIdentities, GroupVariables, GroupWikis, Groups, Helm, Import, InstanceLevelCICDVariables, Integrations, IssueAwardEmojis, IssueDiscussions, IssueIterationEvents, IssueLabelEvents, IssueLinks, IssueMilestoneEvents, IssueNoteAwardEmojis, IssueNotes, IssueStateEvents, IssueWeightEvents, Issues, IssuesStatistics, JobArtifacts, Jobs, Keys, License, LicenseTemplates, LinkedEpics, Lint, Markdown, Maven, MergeRequestApprovals, MergeRequestAwardEmojis, MergeRequestContextCommits, MergeRequestDiscussions, MergeRequestDraftNotes, MergeRequestLabelEvents, MergeRequestMilestoneEvents, MergeRequestNoteAwardEmojis, MergeRequestNotes, MergeRequests, MergeTrains, Metadata, Migrations, NPM, Namespaces, NotificationSettings, NuGet, PackageRegistry, Packages, PagesDomains, PersonalAccessTokens, PipelineScheduleVariables, PipelineSchedules, PipelineTriggerTokens, Pipelines, ProductAnalytics, ProjectAccessRequests, ProjectAccessTokens, ProjectAliases, ProjectBadges, ProjectCustomAttributes, ProjectDORA4Metrics, ProjectHooks, ProjectImportExports, ProjectInvitations, ProjectIssueBoards, ProjectIterations, ProjectLabels, ProjectMembers, ProjectMilestones, ProjectProtectedEnvironments, ProjectPushRules, ProjectRelationsExport, ProjectReleases, ProjectRemoteMirrors, ProjectRepositoryStorageMoves, ProjectSnippetAwardEmojis, ProjectSnippetDiscussions, ProjectSnippetNotes, ProjectSnippets, ProjectStatistics, ProjectTemplates, ProjectVariables, ProjectVulnerabilities, ProjectWikis, Projects, ProtectedBranches, ProtectedTags, PyPI, ReleaseLinks, Repositories, RepositoryFiles, RepositorySubmodules, ResourceGroups, RubyGems, Runners, Search, SecureFiles, ServiceData, SidekiqMetrics, SidekiqQueues, SnippetRepositoryStorageMoves, Snippets, Suggestions, SystemHooks, Tags, TodoLists, Topics, UserCustomAttributes, UserEmails, UserGPGKeys, UserImpersonationTokens, UserSSHKeys, UserStarredMetricsDashboard, Users };
191
+ export { Agents, AlertManagement, ApplicationAppearance, ApplicationPlanLimits, ApplicationSettings, ApplicationStatistics, Applications, AuditEvents, Avatar, Branches, BroadcastMessages, CodeSuggestions, CommitDiscussions, Commits, Composer, Conan, ContainerRegistry, DashboardAnnotations, Debian, DependencyProxy, DeployKeys, DeployTokens, Deployments, DockerfileTemplates, Environments, EpicAwardEmojis, EpicDiscussions, EpicIssues, EpicLabelEvents, EpicLinks, EpicNotes, Epics, ErrorTrackingClientKeys, ErrorTrackingSettings, Events, Experiments, ExternalStatusChecks, FeatureFlagUserLists, FeatureFlags, FreezePeriods, GeoNodes, GeoSites, GitLabCIYMLTemplates, GitignoreTemplates, Gitlab, GitlabPages, GoProxy, GroupAccessRequests, GroupAccessTokens, GroupActivityAnalytics, GroupBadges, GroupCustomAttributes, GroupDORA4Metrics, GroupEpicBoards, GroupHooks, GroupImportExports, GroupInvitations, GroupIssueBoards, GroupIterations, GroupLDAPLinks, GroupLabels, GroupMemberRoles, GroupMembers, GroupMilestones, GroupProtectedEnvironments, GroupPushRules, GroupRelationExports, GroupReleases, GroupRepositoryStorageMoves, GroupSAMLIdentities, GroupSAMLLinks, GroupSCIMIdentities, GroupVariables, GroupWikis, Groups, Helm, Import, InstanceLevelCICDVariables, Integrations, IssueAwardEmojis, IssueDiscussions, IssueIterationEvents, IssueLabelEvents, IssueLinks, IssueMilestoneEvents, IssueNoteAwardEmojis, IssueNotes, IssueStateEvents, IssueWeightEvents, Issues, IssuesStatistics, JobArtifacts, Jobs, Keys, License, LicenseTemplates, LinkedEpics, Lint, Markdown, Maven, MergeRequestApprovals, MergeRequestAwardEmojis, MergeRequestContextCommits, MergeRequestDiscussions, MergeRequestDraftNotes, MergeRequestLabelEvents, MergeRequestMilestoneEvents, MergeRequestNoteAwardEmojis, MergeRequestNotes, MergeRequests, MergeTrains, Metadata, Migrations, NPM, Namespaces, NotificationSettings, NuGet, PackageRegistry, Packages, PagesDomains, PersonalAccessTokens, PipelineScheduleVariables, PipelineSchedules, PipelineTriggerTokens, Pipelines, ProductAnalytics, ProjectAccessRequests, ProjectAccessTokens, ProjectAliases, ProjectBadges, ProjectCustomAttributes, ProjectDORA4Metrics, ProjectHooks, ProjectImportExports, ProjectInvitations, ProjectIssueBoards, ProjectIterations, ProjectLabels, ProjectMembers, ProjectMilestones, ProjectProtectedEnvironments, ProjectPushRules, ProjectRelationsExport, ProjectReleases, ProjectRemoteMirrors, ProjectRepositoryStorageMoves, ProjectSnippetAwardEmojis, ProjectSnippetDiscussions, ProjectSnippetNotes, ProjectSnippets, ProjectStatistics, ProjectTemplates, ProjectVariables, ProjectVulnerabilities, ProjectWikis, Projects, ProtectedBranches, ProtectedTags, PyPI, ReleaseLinks, Repositories, RepositoryFiles, RepositorySubmodules, ResourceGroups, RubyGems, Runners, Search, SearchAdmin, SecureFiles, ServiceData, SidekiqMetrics, SidekiqQueues, SnippetRepositoryStorageMoves, Snippets, Suggestions, SystemHooks, Tags, TodoLists, Topics, UserCustomAttributes, UserEmails, UserGPGKeys, UserImpersonationTokens, UserSSHKeys, UserStarredMetricsDashboard, Users };
package/dist/index.js CHANGED
@@ -88,7 +88,8 @@ function getConditionalMode(endpoint) {
88
88
  async function defaultRequestHandler(endpoint, options) {
89
89
  const retryCodes = [429, 502];
90
90
  const maxRetries = 10;
91
- const { prefixUrl, asStream, searchParams, ...opts } = options || {};
91
+ const { prefixUrl, asStream, searchParams, rateLimiters, method, ...opts } = options || {};
92
+ const endpointRateLimit = requesterUtils.getMatchingRateLimiter(endpoint, rateLimiters, method);
92
93
  let baseUrl;
93
94
  if (prefixUrl)
94
95
  baseUrl = prefixUrl.endsWith("/") ? prefixUrl : `${prefixUrl}/`;
@@ -96,7 +97,8 @@ async function defaultRequestHandler(endpoint, options) {
96
97
  url.search = searchParams || "";
97
98
  const mode = getConditionalMode(endpoint);
98
99
  for (let i = 0; i < maxRetries; i += 1) {
99
- const request = new Request(url, { ...opts, mode });
100
+ const request = new Request(url, { ...opts, method, mode });
101
+ await endpointRateLimit();
100
102
  const response = await fetch(request).catch((e) => {
101
103
  if (e.name === "TimeoutError" || e.name === "AbortError") {
102
104
  throw new Error("Query timeout was reached");
@@ -129,6 +131,7 @@ var {
129
131
  AuditEvents,
130
132
  Avatar,
131
133
  BroadcastMessages,
134
+ CodeSuggestions,
132
135
  Composer,
133
136
  Conan,
134
137
  DashboardAnnotations,
@@ -140,6 +143,7 @@ var {
140
143
  Events,
141
144
  Experiments,
142
145
  GeoNodes,
146
+ GeoSites,
143
147
  GitignoreTemplates,
144
148
  GitLabCIYMLTemplates,
145
149
  Import,
@@ -160,6 +164,7 @@ var {
160
164
  PyPI,
161
165
  RubyGems,
162
166
  Search,
167
+ SearchAdmin,
163
168
  ServiceData,
164
169
  SidekiqMetrics,
165
170
  SidekiqQueues,
@@ -272,6 +277,7 @@ var {
272
277
  GroupBadges,
273
278
  GroupCustomAttributes,
274
279
  GroupDORA4Metrics,
280
+ GroupEpicBoards,
275
281
  GroupHooks,
276
282
  GroupImportExports,
277
283
  GroupInvitations,
@@ -289,6 +295,7 @@ var {
289
295
  GroupRepositoryStorageMoves,
290
296
  Groups,
291
297
  GroupSAMLIdentities,
298
+ GroupSAMLLinks,
292
299
  GroupSCIMIdentities,
293
300
  GroupVariables,
294
301
  GroupWikis,
@@ -313,6 +320,7 @@ exports.AuditEvents = AuditEvents;
313
320
  exports.Avatar = Avatar;
314
321
  exports.Branches = Branches;
315
322
  exports.BroadcastMessages = BroadcastMessages;
323
+ exports.CodeSuggestions = CodeSuggestions;
316
324
  exports.CommitDiscussions = CommitDiscussions;
317
325
  exports.Commits = Commits;
318
326
  exports.Composer = Composer;
@@ -342,6 +350,7 @@ exports.FeatureFlagUserLists = FeatureFlagUserLists;
342
350
  exports.FeatureFlags = FeatureFlags;
343
351
  exports.FreezePeriods = FreezePeriods;
344
352
  exports.GeoNodes = GeoNodes;
353
+ exports.GeoSites = GeoSites;
345
354
  exports.GitLabCIYMLTemplates = GitLabCIYMLTemplates;
346
355
  exports.GitignoreTemplates = GitignoreTemplates;
347
356
  exports.Gitlab = Gitlab;
@@ -353,6 +362,7 @@ exports.GroupActivityAnalytics = GroupActivityAnalytics;
353
362
  exports.GroupBadges = GroupBadges;
354
363
  exports.GroupCustomAttributes = GroupCustomAttributes;
355
364
  exports.GroupDORA4Metrics = GroupDORA4Metrics;
365
+ exports.GroupEpicBoards = GroupEpicBoards;
356
366
  exports.GroupHooks = GroupHooks;
357
367
  exports.GroupImportExports = GroupImportExports;
358
368
  exports.GroupInvitations = GroupInvitations;
@@ -369,6 +379,7 @@ exports.GroupRelationExports = GroupRelationExports;
369
379
  exports.GroupReleases = GroupReleases;
370
380
  exports.GroupRepositoryStorageMoves = GroupRepositoryStorageMoves;
371
381
  exports.GroupSAMLIdentities = GroupSAMLIdentities;
382
+ exports.GroupSAMLLinks = GroupSAMLLinks;
372
383
  exports.GroupSCIMIdentities = GroupSCIMIdentities;
373
384
  exports.GroupVariables = GroupVariables;
374
385
  exports.GroupWikis = GroupWikis;
@@ -465,6 +476,7 @@ exports.ResourceGroups = ResourceGroups;
465
476
  exports.RubyGems = RubyGems;
466
477
  exports.Runners = Runners;
467
478
  exports.Search = Search;
479
+ exports.SearchAdmin = SearchAdmin;
468
480
  exports.SecureFiles = SecureFiles;
469
481
  exports.ServiceData = ServiceData;
470
482
  exports.SidekiqMetrics = SidekiqMetrics;
package/dist/index.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as Resources from '@gitbeaker/core';
2
- import { createRequesterFn, presetResourceArguments } from '@gitbeaker/requester-utils';
2
+ import { createRequesterFn, presetResourceArguments, getMatchingRateLimiter } from '@gitbeaker/requester-utils';
3
3
 
4
4
  // src/index.ts
5
5
  async function defaultOptionsHandler(resourceOptions, requestOptions) {
@@ -66,7 +66,8 @@ function getConditionalMode(endpoint) {
66
66
  async function defaultRequestHandler(endpoint, options) {
67
67
  const retryCodes = [429, 502];
68
68
  const maxRetries = 10;
69
- const { prefixUrl, asStream, searchParams, ...opts } = options || {};
69
+ const { prefixUrl, asStream, searchParams, rateLimiters, method, ...opts } = options || {};
70
+ const endpointRateLimit = getMatchingRateLimiter(endpoint, rateLimiters, method);
70
71
  let baseUrl;
71
72
  if (prefixUrl)
72
73
  baseUrl = prefixUrl.endsWith("/") ? prefixUrl : `${prefixUrl}/`;
@@ -74,7 +75,8 @@ async function defaultRequestHandler(endpoint, options) {
74
75
  url.search = searchParams || "";
75
76
  const mode = getConditionalMode(endpoint);
76
77
  for (let i = 0; i < maxRetries; i += 1) {
77
- const request = new Request(url, { ...opts, mode });
78
+ const request = new Request(url, { ...opts, method, mode });
79
+ await endpointRateLimit();
78
80
  const response = await fetch(request).catch((e) => {
79
81
  if (e.name === "TimeoutError" || e.name === "AbortError") {
80
82
  throw new Error("Query timeout was reached");
@@ -107,6 +109,7 @@ var {
107
109
  AuditEvents,
108
110
  Avatar,
109
111
  BroadcastMessages,
112
+ CodeSuggestions,
110
113
  Composer,
111
114
  Conan,
112
115
  DashboardAnnotations,
@@ -118,6 +121,7 @@ var {
118
121
  Events,
119
122
  Experiments,
120
123
  GeoNodes,
124
+ GeoSites,
121
125
  GitignoreTemplates,
122
126
  GitLabCIYMLTemplates,
123
127
  Import,
@@ -138,6 +142,7 @@ var {
138
142
  PyPI,
139
143
  RubyGems,
140
144
  Search,
145
+ SearchAdmin,
141
146
  ServiceData,
142
147
  SidekiqMetrics,
143
148
  SidekiqQueues,
@@ -250,6 +255,7 @@ var {
250
255
  GroupBadges,
251
256
  GroupCustomAttributes,
252
257
  GroupDORA4Metrics,
258
+ GroupEpicBoards,
253
259
  GroupHooks,
254
260
  GroupImportExports,
255
261
  GroupInvitations,
@@ -267,6 +273,7 @@ var {
267
273
  GroupRepositoryStorageMoves,
268
274
  Groups,
269
275
  GroupSAMLIdentities,
276
+ GroupSAMLLinks,
270
277
  GroupSCIMIdentities,
271
278
  GroupVariables,
272
279
  GroupWikis,
@@ -280,4 +287,4 @@ var {
280
287
  Gitlab
281
288
  } = API;
282
289
 
283
- export { Agents, AlertManagement, ApplicationAppearance, ApplicationPlanLimits, ApplicationSettings, ApplicationStatistics, Applications, AuditEvents, Avatar, Branches, BroadcastMessages, CommitDiscussions, Commits, Composer, Conan, ContainerRegistry, DashboardAnnotations, Debian, DependencyProxy, DeployKeys, DeployTokens, Deployments, DockerfileTemplates, Environments, EpicAwardEmojis, EpicDiscussions, EpicIssues, EpicLabelEvents, EpicLinks, EpicNotes, Epics, ErrorTrackingClientKeys, ErrorTrackingSettings, Events, Experiments, ExternalStatusChecks, FeatureFlagUserLists, FeatureFlags, FreezePeriods, GeoNodes, GitLabCIYMLTemplates, GitignoreTemplates, Gitlab, GitlabPages, GoProxy, GroupAccessRequests, GroupAccessTokens, GroupActivityAnalytics, GroupBadges, GroupCustomAttributes, GroupDORA4Metrics, GroupHooks, GroupImportExports, GroupInvitations, GroupIssueBoards, GroupIterations, GroupLDAPLinks, GroupLabels, GroupMemberRoles, GroupMembers, GroupMilestones, GroupProtectedEnvironments, GroupPushRules, GroupRelationExports, GroupReleases, GroupRepositoryStorageMoves, GroupSAMLIdentities, GroupSCIMIdentities, GroupVariables, GroupWikis, Groups, Helm, Import, InstanceLevelCICDVariables, Integrations, IssueAwardEmojis, IssueDiscussions, IssueIterationEvents, IssueLabelEvents, IssueLinks, IssueMilestoneEvents, IssueNoteAwardEmojis, IssueNotes, IssueStateEvents, IssueWeightEvents, Issues, IssuesStatistics, JobArtifacts, Jobs, Keys, License, LicenseTemplates, LinkedEpics, Lint, Markdown, Maven, MergeRequestApprovals, MergeRequestAwardEmojis, MergeRequestContextCommits, MergeRequestDiscussions, MergeRequestDraftNotes, MergeRequestLabelEvents, MergeRequestMilestoneEvents, MergeRequestNoteAwardEmojis, MergeRequestNotes, MergeRequests, MergeTrains, Metadata, Migrations, NPM, Namespaces, NotificationSettings, NuGet, PackageRegistry, Packages, PagesDomains, PersonalAccessTokens, PipelineScheduleVariables, PipelineSchedules, PipelineTriggerTokens, Pipelines, ProductAnalytics, ProjectAccessRequests, ProjectAccessTokens, ProjectAliases, ProjectBadges, ProjectCustomAttributes, ProjectDORA4Metrics, ProjectHooks, ProjectImportExports, ProjectInvitations, ProjectIssueBoards, ProjectIterations, ProjectLabels, ProjectMembers, ProjectMilestones, ProjectProtectedEnvironments, ProjectPushRules, ProjectRelationsExport, ProjectReleases, ProjectRemoteMirrors, ProjectRepositoryStorageMoves, ProjectSnippetAwardEmojis, ProjectSnippetDiscussions, ProjectSnippetNotes, ProjectSnippets, ProjectStatistics, ProjectTemplates, ProjectVariables, ProjectVulnerabilities, ProjectWikis, Projects, ProtectedBranches, ProtectedTags, PyPI, ReleaseLinks, Repositories, RepositoryFiles, RepositorySubmodules, ResourceGroups, RubyGems, Runners, Search, SecureFiles, ServiceData, SidekiqMetrics, SidekiqQueues, SnippetRepositoryStorageMoves, Snippets, Suggestions, SystemHooks, Tags, TodoLists, Topics, UserCustomAttributes, UserEmails, UserGPGKeys, UserImpersonationTokens, UserSSHKeys, UserStarredMetricsDashboard, Users };
290
+ export { Agents, AlertManagement, ApplicationAppearance, ApplicationPlanLimits, ApplicationSettings, ApplicationStatistics, Applications, AuditEvents, Avatar, Branches, BroadcastMessages, CodeSuggestions, CommitDiscussions, Commits, Composer, Conan, ContainerRegistry, DashboardAnnotations, Debian, DependencyProxy, DeployKeys, DeployTokens, Deployments, DockerfileTemplates, Environments, EpicAwardEmojis, EpicDiscussions, EpicIssues, EpicLabelEvents, EpicLinks, EpicNotes, Epics, ErrorTrackingClientKeys, ErrorTrackingSettings, Events, Experiments, ExternalStatusChecks, FeatureFlagUserLists, FeatureFlags, FreezePeriods, GeoNodes, GeoSites, GitLabCIYMLTemplates, GitignoreTemplates, Gitlab, GitlabPages, GoProxy, GroupAccessRequests, GroupAccessTokens, GroupActivityAnalytics, GroupBadges, GroupCustomAttributes, GroupDORA4Metrics, GroupEpicBoards, GroupHooks, GroupImportExports, GroupInvitations, GroupIssueBoards, GroupIterations, GroupLDAPLinks, GroupLabels, GroupMemberRoles, GroupMembers, GroupMilestones, GroupProtectedEnvironments, GroupPushRules, GroupRelationExports, GroupReleases, GroupRepositoryStorageMoves, GroupSAMLIdentities, GroupSAMLLinks, GroupSCIMIdentities, GroupVariables, GroupWikis, Groups, Helm, Import, InstanceLevelCICDVariables, Integrations, IssueAwardEmojis, IssueDiscussions, IssueIterationEvents, IssueLabelEvents, IssueLinks, IssueMilestoneEvents, IssueNoteAwardEmojis, IssueNotes, IssueStateEvents, IssueWeightEvents, Issues, IssuesStatistics, JobArtifacts, Jobs, Keys, License, LicenseTemplates, LinkedEpics, Lint, Markdown, Maven, MergeRequestApprovals, MergeRequestAwardEmojis, MergeRequestContextCommits, MergeRequestDiscussions, MergeRequestDraftNotes, MergeRequestLabelEvents, MergeRequestMilestoneEvents, MergeRequestNoteAwardEmojis, MergeRequestNotes, MergeRequests, MergeTrains, Metadata, Migrations, NPM, Namespaces, NotificationSettings, NuGet, PackageRegistry, Packages, PagesDomains, PersonalAccessTokens, PipelineScheduleVariables, PipelineSchedules, PipelineTriggerTokens, Pipelines, ProductAnalytics, ProjectAccessRequests, ProjectAccessTokens, ProjectAliases, ProjectBadges, ProjectCustomAttributes, ProjectDORA4Metrics, ProjectHooks, ProjectImportExports, ProjectInvitations, ProjectIssueBoards, ProjectIterations, ProjectLabels, ProjectMembers, ProjectMilestones, ProjectProtectedEnvironments, ProjectPushRules, ProjectRelationsExport, ProjectReleases, ProjectRemoteMirrors, ProjectRepositoryStorageMoves, ProjectSnippetAwardEmojis, ProjectSnippetDiscussions, ProjectSnippetNotes, ProjectSnippets, ProjectStatistics, ProjectTemplates, ProjectVariables, ProjectVulnerabilities, ProjectWikis, Projects, ProtectedBranches, ProtectedTags, PyPI, ReleaseLinks, Repositories, RepositoryFiles, RepositorySubmodules, ResourceGroups, RubyGems, Runners, Search, SearchAdmin, SecureFiles, ServiceData, SidekiqMetrics, SidekiqQueues, SnippetRepositoryStorageMoves, Snippets, Suggestions, SystemHooks, Tags, TodoLists, Topics, UserCustomAttributes, UserEmails, UserGPGKeys, UserImpersonationTokens, UserSSHKeys, UserStarredMetricsDashboard, Users };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitbeaker/rest",
3
- "version": "39.17.0",
3
+ "version": "39.19.0",
4
4
  "description": "Cross Platform implementation of the GitLab API",
5
5
  "license": "MIT",
6
6
  "engines": {
@@ -40,7 +40,7 @@
40
40
  "test:types": "tsc",
41
41
  "test:e2e:browser": "playwright test",
42
42
  "test:e2e": "yarn test:e2e:browser",
43
- "test:integration:nodejs": "jest --maxWorkers=50% test/integration/nodejs",
43
+ "test:integration:nodejs": "jest --maxWorkers=50% test/integration/nodejs/resources/Issues.ts",
44
44
  "test:integration": "yarn test:integration:nodejs",
45
45
  "test:unit": "jest --maxWorkers=50% test/unit",
46
46
  "format:docs": "prettier '**/(*.json|.yml|.js|.md)' --ignore-path ../../.prettierignore",
@@ -56,8 +56,8 @@
56
56
  "release": "auto shipit"
57
57
  },
58
58
  "dependencies": {
59
- "@gitbeaker/core": "^39.17.0",
60
- "@gitbeaker/requester-utils": "^39.17.0"
59
+ "@gitbeaker/core": "^39.19.0",
60
+ "@gitbeaker/requester-utils": "^39.19.0"
61
61
  },
62
62
  "devDependencies": {
63
63
  "@playwright/test": "^1.35.1",
@@ -65,5 +65,5 @@
65
65
  "tsup": "^7.1.0",
66
66
  "typescript": "^5.1.6"
67
67
  },
68
- "gitHead": "604085015c962cdcbe542b96d717d64d2051ca3c"
68
+ "gitHead": "b6ac7ead7ee50ced0f99f66ea0c212d2afcba3c2"
69
69
  }