@shivaedev/github 0.0.0 → 0.5.1
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/LICENSE +21 -0
- package/README.md +238 -1
- package/dist/GitHub.d.ts +93 -0
- package/dist/GitHub.d.ts.map +1 -0
- package/dist/GitHub.js +53 -0
- package/dist/GitHub.js.map +1 -0
- package/dist/GitHubConfig.d.ts +6 -0
- package/dist/GitHubConfig.d.ts.map +1 -0
- package/dist/GitHubConfig.js +5 -0
- package/dist/GitHubConfig.js.map +1 -0
- package/dist/GitHubToken.d.ts +9 -0
- package/dist/GitHubToken.d.ts.map +1 -0
- package/dist/GitHubToken.js +8 -0
- package/dist/GitHubToken.js.map +1 -0
- package/dist/TokenRefresh.d.ts +5 -0
- package/dist/TokenRefresh.d.ts.map +1 -0
- package/dist/TokenRefresh.js +5 -0
- package/dist/TokenRefresh.js.map +1 -0
- package/dist/appJwt.d.ts +8 -0
- package/dist/appJwt.d.ts.map +1 -0
- package/dist/appJwt.js +16 -0
- package/dist/appJwt.js.map +1 -0
- package/dist/artifacts.d.ts +16 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/artifacts.js +31 -0
- package/dist/artifacts.js.map +1 -0
- package/dist/authenticatedRequest.d.ts +8 -0
- package/dist/authenticatedRequest.d.ts.map +1 -0
- package/dist/authenticatedRequest.js +42 -0
- package/dist/authenticatedRequest.js.map +1 -0
- package/dist/cache.d.ts +12 -0
- package/dist/cache.d.ts.map +1 -0
- package/dist/cache.js +17 -0
- package/dist/cache.js.map +1 -0
- package/dist/checkRuns.d.ts +104 -0
- package/dist/checkRuns.d.ts.map +1 -0
- package/dist/checkRuns.js +42 -0
- package/dist/checkRuns.js.map +1 -0
- package/dist/errors.d.ts +44 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +35 -0
- package/dist/errors.js.map +1 -0
- package/dist/githubApp.d.ts +24 -0
- package/dist/githubApp.d.ts.map +1 -0
- package/dist/githubApp.js +55 -0
- package/dist/githubApp.js.map +1 -0
- package/dist/json.d.ts +7 -0
- package/dist/json.d.ts.map +1 -0
- package/dist/json.js +14 -0
- package/dist/json.js.map +1 -0
- package/dist/markdown.d.ts +4 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +24 -0
- package/dist/markdown.js.map +1 -0
- package/dist/markdownRows.d.ts +6 -0
- package/dist/markdownRows.d.ts.map +1 -0
- package/dist/markdownRows.js +26 -0
- package/dist/markdownRows.js.map +1 -0
- package/dist/rateLimits.d.ts +20 -0
- package/dist/rateLimits.d.ts.map +1 -0
- package/dist/rateLimits.js +43 -0
- package/dist/rateLimits.js.map +1 -0
- package/dist/representations.d.ts +18 -0
- package/dist/representations.d.ts.map +1 -0
- package/dist/representations.js +28 -0
- package/dist/representations.js.map +1 -0
- package/dist/requests.d.ts +10 -0
- package/dist/requests.d.ts.map +1 -0
- package/dist/requests.js +34 -0
- package/dist/requests.js.map +1 -0
- package/dist/status.d.ts +7 -0
- package/dist/status.d.ts.map +1 -0
- package/dist/status.js +57 -0
- package/dist/status.js.map +1 -0
- package/dist/stickyComments.d.ts +46 -0
- package/dist/stickyComments.d.ts.map +1 -0
- package/dist/stickyComments.js +37 -0
- package/dist/stickyComments.js.map +1 -0
- package/dist/verifyWebhook.d.ts +4 -0
- package/dist/verifyWebhook.d.ts.map +1 -0
- package/dist/verifyWebhook.js +14 -0
- package/dist/verifyWebhook.js.map +1 -0
- package/package.json +71 -4
- package/src/GitHub.ts +68 -0
- package/src/GitHubConfig.ts +5 -0
- package/src/GitHubToken.ts +16 -0
- package/src/TokenRefresh.ts +7 -0
- package/src/appJwt.ts +21 -0
- package/src/artifacts.ts +57 -0
- package/src/authenticatedRequest.ts +55 -0
- package/src/cache.ts +25 -0
- package/src/checkRuns.ts +48 -0
- package/src/errors.ts +34 -0
- package/src/githubApp.ts +87 -0
- package/src/json.ts +16 -0
- package/src/markdown.ts +25 -0
- package/src/markdownRows.ts +30 -0
- package/src/rateLimits.ts +56 -0
- package/src/representations.ts +57 -0
- package/src/requests.ts +44 -0
- package/src/status.ts +64 -0
- package/src/stickyComments.ts +49 -0
- package/src/verifyWebhook.ts +19 -0
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { createHmac, timingSafeEqual } from "node:crypto";
|
|
2
|
+
import { Effect, Redacted, Schema } from "effect";
|
|
3
|
+
import { GitHubWebhookSignatureError } from "./errors.ts";
|
|
4
|
+
|
|
5
|
+
export const verifyWebhook = Effect.fnUntraced(function* <TSchema extends Schema.Constraint>(
|
|
6
|
+
body: Uint8Array,
|
|
7
|
+
signature: string | undefined,
|
|
8
|
+
secret: Redacted.Redacted<string>,
|
|
9
|
+
schema: TSchema,
|
|
10
|
+
) {
|
|
11
|
+
if (signature === undefined || !/^sha256=[0-9a-f]{64}$/u.test(signature)) {
|
|
12
|
+
return yield* new GitHubWebhookSignatureError();
|
|
13
|
+
}
|
|
14
|
+
const expected = createHmac("sha256", Redacted.value(secret)).update(body).digest();
|
|
15
|
+
if (!timingSafeEqual(expected, Buffer.from(signature.slice(7), "hex"))) {
|
|
16
|
+
return yield* new GitHubWebhookSignatureError();
|
|
17
|
+
}
|
|
18
|
+
return yield* Schema.decodeUnknownEffect(Schema.fromJsonString(schema))(new TextDecoder().decode(body));
|
|
19
|
+
});
|