diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a8356ff..daeda2c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ published version with a date and open a fresh empty `[Unreleased]` above it. ### Added +- `@relayfile/adapter-github` and the core GitHub mapping now declare `check_run` and `issue_comment` webhook keys, so consumers that read the mapping's `webhooks:` block can subscribe to CI check completions and issue/PR conversation comments. - `@relayfile/adapter-github` now exports a cursor-resumable pull-index convergence primitive that backfills `headRef` with one GitHub list request per invocation and no per-record metadata, file, or diff fetches. - `@relayfile/adapter-linear` now materializes `/linear/issues/by-project//.json` aliases so project-scoped consumers can avoid mounting the full issue tree. The path mapper and generated `LAYOUT.md` contract expose the new lookup; existing mounts must resync to materialize and discover it. - `@relayfile/adapter-ramp` now provides read-only Ramp finance materialization with canonical bill, purchase-order, item-receipt, vendor-agreement, transaction, reimbursement, receipt, vendor, transfer, repayment, dimension, and accounting paths; stable indexes and aliases; a generated `LAYOUT.md` contract; Hookdeck-aware inbound declarations; webhook normalization and signature verification; and digest-visible lifecycle classification. Existing consumers must resync to materialize and discover the new canonical paths and layout contract. diff --git a/packages/core/mappings/github.mapping.yaml b/packages/core/mappings/github.mapping.yaml index 763c6bb6..a636161c 100644 --- a/packages/core/mappings/github.mapping.yaml +++ b/packages/core/mappings/github.mapping.yaml @@ -18,6 +18,21 @@ webhooks: path: /github/repos/{{repository.owner.login}}/{{repository.name}}/commits/{{head_commit.id}}/metadata.json issues: path: /github/repos/{{repository.owner.login}}/{{repository.name}}/issues/{{issue.number}}/metadata.json + issue_comment: + path: /github/repos/{{repository.owner.login}}/{{repository.name}}/issues/{{issue.number}}/comments/{{comment.id}}/meta.json + extract: + - action + - issue.number + - comment.id + check_run: + path: /github/repos/{{repository.owner.login}}/{{repository.name}}/checks/{{check_run.id}}.json + extract: + - action + - check_run.id + - check_run.name + - check_run.status + - check_run.conclusion + - check_run.head_sha resources: pull_request: endpoint: GET /repos/{owner}/{repo}/pulls/{pull_number} diff --git a/packages/github/github.mapping.yaml b/packages/github/github.mapping.yaml index 169f2423..f2b51aed 100644 --- a/packages/github/github.mapping.yaml +++ b/packages/github/github.mapping.yaml @@ -24,6 +24,13 @@ webhooks: path: /github/repos/{{repository.owner.login}}/{{repository.name}}/pulls/{{pull_request.number}}/comments/{{comment.id}}.json pull_request_review_thread.resolved: path: /github/repos/{{repository.owner.login}}/{{repository.name}}/pulls/{{pull_request.number}}/review-threads/{{thread.id}}.json + issue_comment: + path: /github/repos/{{repository.owner.login}}/{{repository.name}}/issues/{{issue.number}}/comments/{{comment.id}}/meta.json + extract: + - action + - issue.number + - issue.title + - comment.id issue_comment.created: path: /github/repos/{{repository.owner.login}}/{{repository.name}}/issues/{{issue.number}}/comments/{{comment.id}}/meta.json extract: @@ -31,6 +38,24 @@ webhooks: - issue.number - issue.title - comment.id + check_run: + path: /github/repos/{{repository.owner.login}}/{{repository.name}}/checks/{{check_run.id}}.json + extract: + - action + - check_run.id + - check_run.name + - check_run.status + - check_run.conclusion + - check_run.head_sha + check_run.completed: + path: /github/repos/{{repository.owner.login}}/{{repository.name}}/checks/{{check_run.id}}.json + extract: + - action + - check_run.id + - check_run.name + - check_run.status + - check_run.conclusion + - check_run.head_sha deployment_status.created: path: /github/repos/{{repository.owner.login}}/{{repository.name}}/deployments/{{deployment.id}}/statuses/{{deployment_status.id}}.json extract: