tai42-webhook-verifier-github 0.2.2__tar.gz → 0.3.0__tar.gz

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.
Files changed (18) hide show
  1. {tai42_webhook_verifier_github-0.2.2/src/tai42_webhook_verifier_github.egg-info → tai42_webhook_verifier_github-0.3.0}/PKG-INFO +2 -2
  2. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/pyproject.toml +3 -3
  3. tai42_webhook_verifier_github-0.3.0/src/tai42_webhook_verifier_github/docs/index.mdx +44 -0
  4. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/src/tai42_webhook_verifier_github/tai-plugin.yml +2 -2
  5. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0/src/tai42_webhook_verifier_github.egg-info}/PKG-INFO +2 -2
  6. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/src/tai42_webhook_verifier_github.egg-info/SOURCES.txt +2 -1
  7. tai42_webhook_verifier_github-0.3.0/src/tai42_webhook_verifier_github.egg-info/requires.txt +1 -0
  8. tai42_webhook_verifier_github-0.2.2/src/tai42_webhook_verifier_github.egg-info/requires.txt +0 -1
  9. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/LICENSE +0 -0
  10. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/MANIFEST.in +0 -0
  11. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/NOTICE +0 -0
  12. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/README.md +0 -0
  13. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/setup.cfg +0 -0
  14. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/src/tai42_webhook_verifier_github/__init__.py +0 -0
  15. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/src/tai42_webhook_verifier_github/py.typed +0 -0
  16. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/src/tai42_webhook_verifier_github/verifier.py +0 -0
  17. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/src/tai42_webhook_verifier_github.egg-info/dependency_links.txt +0 -0
  18. {tai42_webhook_verifier_github-0.2.2 → tai42_webhook_verifier_github-0.3.0}/src/tai42_webhook_verifier_github.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tai42-webhook-verifier-github
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: GitHub webhook-signature verifier plugin for the TAI ecosystem: a per-provider WebhookVerifier that checks each delivery's X-Hub-Signature-256 HMAC before the payload is dispatched.
5
5
  Author-email: tai42 <oss@tai42.ai>
6
6
  License-Expression: Apache-2.0
@@ -20,7 +20,7 @@ Requires-Python: >=3.13
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  License-File: NOTICE
23
- Requires-Dist: tai42-contract<0.5,>=0.4
23
+ Requires-Dist: tai42-contract<2,>=1.5
24
24
  Dynamic: license-file
25
25
 
26
26
  # tai42-webhook-verifier-github
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "tai42-webhook-verifier-github"
7
- version = "0.2.2"
7
+ version = "0.3.0"
8
8
  description = "GitHub webhook-signature verifier plugin for the TAI ecosystem: a per-provider WebhookVerifier that checks each delivery's X-Hub-Signature-256 HMAC before the payload is dispatched."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13"
@@ -27,7 +27,7 @@ dependencies = [
27
27
  # The pure interface contract this verifier registers through — the tai42_app
28
28
  # handle and the WebhookVerifier / WebhookVerificationError types. The HMAC
29
29
  # work is pure standard library (hmac / hashlib); no other tai-* dependency.
30
- "tai42-contract>=0.4,<0.5",
30
+ "tai42-contract>=1.5,<2",
31
31
  ]
32
32
 
33
33
  [project.urls]
@@ -55,7 +55,7 @@ where = ["src"]
55
55
  include = ["tai42_webhook_verifier_github*"]
56
56
 
57
57
  [tool.setuptools.package-data]
58
- tai42_webhook_verifier_github = ["py.typed", "tai-plugin.yml"]
58
+ tai42_webhook_verifier_github = ["py.typed", "tai-plugin.yml", "docs/*", "docs/images/*"]
59
59
 
60
60
  [tool.uv]
61
61
  cache-keys = [{ file = "pyproject.toml" }]
@@ -0,0 +1,44 @@
1
+ ---
2
+ title: "GitHub webhook verifier"
3
+ description: "Bind the github webhook verifier to a hook topic and name the environment variable that holds the signing secret."
4
+ ---
5
+
6
+ Registers the `github` webhook verifier. It authenticates an inbound delivery's
7
+ `X-Hub-Signature-256` HMAC-SHA256, computed over the exact raw request body and keyed
8
+ by the webhook's shared secret. Bind it to a hook topic to close that topic's door
9
+ against unsigned deliveries.
10
+
11
+ ## Bind it to a topic
12
+
13
+ A verifier is bound per hook topic. The binding names the environment variable that
14
+ holds the signing secret through `config.secret_env` — the verifier looks that
15
+ variable up at verify time, so the secret itself never lives in the manifest:
16
+
17
+ ```bash
18
+ curl -X PUT .../api/hooks/topics/{topic}/verifier \
19
+ -d '{"verifier": "github", "config": {"secret_env": "GITHUB_WEBHOOK_SECRET"}}'
20
+ ```
21
+
22
+ Set the same secret you configured on the GitHub webhook in that variable on every
23
+ process that receives deliveries:
24
+
25
+ ```bash
26
+ GITHUB_WEBHOOK_SECRET=...
27
+ ```
28
+
29
+ The variable name is yours to choose — pick a distinct name per topic when one
30
+ deployment verifies several GitHub webhooks with different secrets.
31
+
32
+ ## Behaviour
33
+
34
+ - **Fails closed.** A missing `secret_env` key, a missing environment variable, or an
35
+ empty secret raises loudly rather than degrading to an unauthenticated door. A
36
+ malformed or mismatched signature is an ordinary verification failure.
37
+ - **POST only.** The signature covers the raw body, so a door binding this verifier
38
+ rejects GET.
39
+ - The comparison is constant-time, and the `sha256=` digest must be exactly 64 hex
40
+ characters.
41
+
42
+ ## See also
43
+
44
+ - [Triggers and webhooks](/concepts/triggers-and-webhooks) — the verifier model and the built-in `shared_secret` verifier.
@@ -2,7 +2,7 @@ spec_version: 1
2
2
  namespace: tai42
3
3
  name: webhook-verifier-github
4
4
  package: tai42-webhook-verifier-github
5
- version: 0.2.2
5
+ version: 0.3.0
6
6
  description: >-
7
7
  GitHub webhook-signature verifier plugin for the TAI ecosystem: a per-provider
8
8
  WebhookVerifier that checks each delivery's X-Hub-Signature-256 HMAC before
@@ -10,7 +10,7 @@ description: >-
10
10
  license: Apache-2.0
11
11
  homepage: https://tai42.ai
12
12
  repository: https://github.com/tai42ai/tai42/tree/main/plugins/webhook-verifier-github
13
- contract: '>=0.4,<0.5'
13
+ contract: '>=1.5,<2'
14
14
  categories:
15
15
  - webhooks
16
16
  - security
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tai42-webhook-verifier-github
3
- Version: 0.2.2
3
+ Version: 0.3.0
4
4
  Summary: GitHub webhook-signature verifier plugin for the TAI ecosystem: a per-provider WebhookVerifier that checks each delivery's X-Hub-Signature-256 HMAC before the payload is dispatched.
5
5
  Author-email: tai42 <oss@tai42.ai>
6
6
  License-Expression: Apache-2.0
@@ -20,7 +20,7 @@ Requires-Python: >=3.13
20
20
  Description-Content-Type: text/markdown
21
21
  License-File: LICENSE
22
22
  License-File: NOTICE
23
- Requires-Dist: tai42-contract<0.5,>=0.4
23
+ Requires-Dist: tai42-contract<2,>=1.5
24
24
  Dynamic: license-file
25
25
 
26
26
  # tai42-webhook-verifier-github
@@ -11,4 +11,5 @@ src/tai42_webhook_verifier_github.egg-info/PKG-INFO
11
11
  src/tai42_webhook_verifier_github.egg-info/SOURCES.txt
12
12
  src/tai42_webhook_verifier_github.egg-info/dependency_links.txt
13
13
  src/tai42_webhook_verifier_github.egg-info/requires.txt
14
- src/tai42_webhook_verifier_github.egg-info/top_level.txt
14
+ src/tai42_webhook_verifier_github.egg-info/top_level.txt
15
+ src/tai42_webhook_verifier_github/docs/index.mdx