diff --git a/packages/net-tool/src/gitlabServer/hook.ts b/packages/net-tool/src/gitlabServer/hook.ts new file mode 100644 index 0000000..5f71424 --- /dev/null +++ b/packages/net-tool/src/gitlabServer/hook.ts @@ -0,0 +1,29 @@ +import { ProjectHookSchema } from "@gitbeaker/rest" + +import GitlabBaseService from "./base" + +class Hook extends GitlabBaseService { + /** + * 为特定项目检索 GitLab Web 钩子。 + * @returns {Promise} + */ + async getList() { + const URL = `/projects/${this.project_id}/hooks` + return this.errorWarp(() => this.get(URL), []) + } + + /** + * 添加 GitLab Web 钩子。 + * @param {Partial} hook 钩子配置 + * @returns {Promise} + */ + async add(hook: Partial) { + const URL = `/projects/${this.project_id}/hooks` + return this.errorWarp( + () => this.post(URL, hook), + null + ) + } +} + +export default Hook diff --git a/packages/net-tool/src/gitlabServer/index.ts b/packages/net-tool/src/gitlabServer/index.ts index c9ed218..73d1fbc 100644 --- a/packages/net-tool/src/gitlabServer/index.ts +++ b/packages/net-tool/src/gitlabServer/index.ts @@ -1,6 +1,7 @@ import Badge from "./badge" import Commit from "./commit" import Discussions from "./discussions" +import Hook from "./hook" import MergeRequests from "./mergeRequests" import Notes from "./notes" import Pipelines from "./pipelines" @@ -16,6 +17,7 @@ class GitlabService { pipelines: Pipelines project: Project repository: Repository + hook: Hook /** * 创建一个 GitLab 服务对象。 @@ -40,6 +42,7 @@ class GitlabService { this.pipelines = new Pipelines(baseUrl, authKey, requestId) this.project = new Project(baseUrl, authKey, requestId) this.repository = new Repository(baseUrl, authKey, requestId) + this.hook = new Hook(baseUrl, authKey, requestId) } /** @@ -55,6 +58,7 @@ class GitlabService { this.pipelines.project_id = project_id this.project.project_id = project_id this.repository.project_id = project_id + this.hook.project_id = project_id } /** @@ -70,6 +74,7 @@ class GitlabService { this.pipelines.merge_request_iid = merge_request_iid this.project.merge_request_iid = merge_request_iid this.repository.merge_request_iid = merge_request_iid + this.hook.merge_request_iid = merge_request_iid } }