UNPKG

@candriajs/git-neko-kit

Version:

Github, Gitee, GitCode API封装库

1 lines 1.07 kB
const e=require(`./root-s6IKP4Xz.cjs`),t=require(`./client-Bmkb1ges.cjs`),n=e.__toESM(require(`node:crypto`));var r=class extends t.GitHubClient{async check_webhook_signature(e){if(!this.WebHook_Secret)throw Error(t.MissingWebHookSecretMsg);if(!e.payload)throw Error(t.MissingWebHookPayloadMsg);if(!e.signature)throw Error(t.MissingWebHookSignatureMsg);if(!e.signature.startsWith(`sha256=`))throw Error(t.InvalidWebHookSignatureFormatMsg);let r=!1,i=`error`,a=400,o,s,c=n.default.createHmac(`sha256`,this.WebHook_Secret),l=typeof e.payload==`string`?e.payload:JSON.stringify(e.payload);c.update(l,`utf8`);let u=c.digest(`hex`),d=e.signature.replace(`sha256=`,``),f=n.default.timingSafeEqual(Buffer.from(u),Buffer.from(d));return f?(r=!0,i=`ok`,a=200,o=`请求成功`,s={success:r,message:t.WebHookSignatureSuccessMsg}):(r=!1,i=`error`,a=403,o=`请求失败`,s={success:r,message:t.WebHookSignatureVerificationFailedMsg}),Promise.resolve({success:r,status:i,statusCode:a,msg:o,data:s})}};Object.defineProperty(exports,`WebHook`,{enumerable:!0,get:function(){return r}});