From ba347b2975f9b5883ec4f63571a3111c95e4fdf9 Mon Sep 17 00:00:00 2001 From: Hubspot Adapter Bot Date: Thu, 17 Sep 2026 14:53:14 -0700 Subject: [PATCH 1/2] feat(github): check_run and issue_comment webhook events in the mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The adapter already ingests `check_run.completed` and `issue_comment.created` (DEFAULT_SUPPORTED_EVENTS, canonical `checks/.json` and `issues//comments//meta.json` paths) and the trigger catalog lists them, but neither reached consumers that read the mapping's `webhooks:` block: the core fallback mapping shipped in `@relayfile/adapter-core` — the one the flows trigger generator consumes — declared only `pull_request`, `pull_request_review`, `push` and `issues`, and the adapter-local mapping had `issue_comment.created` but no `check_run` at all. Both mappings now declare `check_run` (with `check_run.completed` in the adapter-local file) and `issue_comment` as bare keys with `extract: [action, …]`, matching how `pull_request` is declared, so generated trigger surfaces get `check_run(action?)` / `issue_comment(action?)` methods. Paths follow `path-mapper.ts` (`checks/{{check_run.id}}.json`, `comments/{{comment.id}}/meta.json`). Catalog generators produce no diff: the trigger catalog was already correct. Co-Authored-By: Claude Opus 5 (1M context) --- CHANGELOG.md | 1 + packages/core/mappings/github.mapping.yaml | 15 +++++++++++++ packages/github/github.mapping.yaml | 25 ++++++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a8356ff..74d690a8 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` mapping now declares `check_run` / `check_run.completed` and `issue_comment` webhook keys (alongside the existing `issue_comment.created`), and the core fallback `github.mapping.yaml` gains both, so `webhooks:`-driven consumers such as the flows trigger generator can offer `github.check_run(action)` and `github.issue_comment(action)`; the trigger catalog already listed both events. - `@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: From 2ca22de9e49d6770cb61b3900a6c29575fefa29b Mon Sep 17 00:00:00 2001 From: Hubspot Adapter Bot Date: Thu, 17 Sep 2026 15:11:58 -0700 Subject: [PATCH 2/2] docs(changelog): shorten the GitHub webhook-keys entry --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 74d690a8..daeda2c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ published version with a date and open a fresh empty `[Unreleased]` above it. ### Added -- `@relayfile/adapter-github` mapping now declares `check_run` / `check_run.completed` and `issue_comment` webhook keys (alongside the existing `issue_comment.created`), and the core fallback `github.mapping.yaml` gains both, so `webhooks:`-driven consumers such as the flows trigger generator can offer `github.check_run(action)` and `github.issue_comment(action)`; the trigger catalog already listed both events. +- `@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.