diff --git a/src/index.ts b/src/index.ts index 63068653..42aad922 100644 --- a/src/index.ts +++ b/src/index.ts @@ -74,6 +74,7 @@ export const ProjectsBundle = bundler({ ProtectedBranches: APIServices.ProtectedBranches, ProtectedTags: APIServices.ProtectedTags, ProjectVariables: APIServices.ProjectVariables, + ReleaseLinks: APIServices.ReleaseLinks, Repositories: APIServices.Repositories, RepositoryFiles: APIServices.RepositoryFiles, Runners: APIServices.Runners, diff --git a/src/services/ReleaseLinks.ts b/src/services/ReleaseLinks.ts new file mode 100644 index 00000000..f62393e4 --- /dev/null +++ b/src/services/ReleaseLinks.ts @@ -0,0 +1,44 @@ +import { BaseService, RequestHelper } from '../infrastructure'; + +class ReleaseLinks extends BaseService { + all(projectId: ProjectId, tagName: string, options?: PaginatedRequestOptions) { + const [pId, tId] = [projectId, tagName].map(encodeURIComponent); + + return RequestHelper.get(this, `projects/${pId}/releases/${tId}/assets/links`, options); + } + + create(projectId: ProjectId, tagName: string, name: string, url: string, options?: Sudo) { + const [pId, tId] = [projectId, tagName].map(encodeURIComponent); + + return RequestHelper.post(this, `projects/${pId}/releases/${tId}/assets/links`, { + name, + url, + ...options, + }); + } + + edit( + projectId: ProjectId, + tagName: string, + linkId: number, + options: Sudo & ({ name: string } | { url: string }), + ) { + const [pId, tId, lId] = [projectId, tagName, linkId].map(encodeURIComponent); + + return RequestHelper.put(this, `projects/${pId}/releases/${tId}/assets/links/${lId}`, options); + } + + remove(projectId: ProjectId, tagName: string, linkId: number, options?: Sudo) { + const [pId, tId, lId] = [projectId, tagName, linkId].map(encodeURIComponent); + + return RequestHelper.del(this, `projects/${pId}/releases/${tId}/assets/links/${lId}`, options); + } + + show(projectId: ProjectId, tagName: string, linkId: number, options?: Sudo) { + const [pId, tId, lId] = [projectId, tagName, linkId].map(encodeURIComponent); + + return RequestHelper.get(this, `projects/${pId}/releases/${tId}/assets/links/${lId}`, options); + } +} + +export default ReleaseLinks; diff --git a/src/services/index.ts b/src/services/index.ts index a747a58d..9f2a0a41 100644 --- a/src/services/index.ts +++ b/src/services/index.ts @@ -57,6 +57,7 @@ export { default as ProjectSnippetAwardEmojis } from './ProjectSnippetAwardEmoji export { default as ProtectedBranches } from './ProtectedBranches'; export { default as ProtectedTags } from './ProtectedTags'; export { default as ProjectVariables } from './ProjectVariables'; +export { default as ReleaseLinks } from './ReleaseLinks'; export { default as Repositories } from './Repositories'; export { default as RepositoryFiles } from './RepositoryFiles'; export { default as Runners } from './Runners';