Skip to content

feat: add a GitCafe provider - #283

Open
oritwoen wants to merge 3 commits into
mainfrom
feat/gitcafe
Open

oritwoen wants to merge 3 commits into
mainfrom
feat/gitcafe

Conversation

@oritwoen

@oritwoen oritwoen commented Nov 12, 2026 •

Copy link
Copy Markdown
Collaborator

🔗 Linked issue

Resolves #100.

🧭 Context

Adds a GitCafe provider for reads and writes, webhook signature verification, and event translation.

Write capabilities remain marked as unverified: the project's write harness requires a bot and a second account. Live writes worked except requestReview, which returned 422 because the PR author cannot review their own PR.

Push and merge webhook payloads are based on the spec. The comment payload comes from a real delivery. GitCafe supplies an account ID rather than an actor, so translated events don't include one.

Out of scope (for now): hiding comments, CI run details and jobs, compare, redelivery, and secret rotation.

🧪 Testing

  • Tested reads and writes against git.cafe. Merge returned queued, and the PR was marked as merged shortly after.
  • Replayed 46 authenticated and 40 anonymous recorded steps.
  • Passed lint, 4,739 unit tests, capability checks, TypeScript, knip, build, size checks, docs build, and 29 docs tests.
  • Four code mutations produced four failing tests.

📚 Docs

Added the GitCafe provider page, icons, explorer integration, and generated tables.

Capability changes

✨ 1 now on every provider

GitHub GitLab Bitbucket Forgejo Gitea Gitee Azure DevOps Cursor Origin Pushin.eu Tangled Cloudflare Artifacts Sourcehut Entire GitBucket GitCafe
repos.get 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟩
repos.list 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟩
threads get (PR), list (PR), getMany, comments (PR) 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 🟦 🟩
contents getFile, resolveRef 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 🟦 🟦 🟦 🟩
commits list, get 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 🟦 🟦 🟦 🟩
repos.byOwner 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 🟦 🟦 🟦 🟩
threads.events (PR) 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟩
threads.getComment (PR) 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 🟦 🟦 🟩
contents.tree 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 🟦 🟦 ⬜ 🟩
contents branches, tags 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ 🟦 🟦 🟦 🟩
users.me 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ 🟦 🟦 🟦 🟩
threads get (issue), list (issue), comments (issue), getComment (issue) 🟦 🟦 ⬜ 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 🟦 🟦 🟩
threads.commits 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 🟦 🟩
webhooks.ingest 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ 🟦 ⬜ 🟦 🟩
threads.events (issue) 🟦 🟦 ⬜ 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟩
repos.labels 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ 🟦 ⬜ 🟦 🟩
repos.collaborators 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟩
threads.checks (PR) 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟩
threads.files 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ 🟩
threads reviews, getReview 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ 🟩
checks.list 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟩
users.get 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ 🟦 ⬜ 🟦 🟩
webhooks.list 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟩
repos.milestones 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟩
threads.reactions (issue, PR) 🔓 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ 🟩
threads.reviewThreads 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 ⬜ 🟩
ci.runs 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ 🟩
repos.assignableUsers 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟩
webhooks.deliveries 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟩
threads.createComment (PR) 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 🟨
threads.create (PR) 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 🟨
threads update (PR), close (PR), merge 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 🟦 🟨
threads.updateComment (PR) 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 🟦 🟨
threads.reopen (PR) 🟦 🟦 ⬜ 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 🟦 🟨
threads createComment (issue), create (issue) 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 ⬜ 🟦 🟦 ⬜ ⬜ 🟦 🟦 🟨
threads.deleteComment (PR) 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ 🟨
repos.createLabel 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ 🟦 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟨
threads.updateComment (issue) 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ 🟦 🟦 🟨
threads.setLabels (PR) 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟨
threads createReview, approve 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟦 ⬜ 🟨
releases list, get, latest, getByTag 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ 🟦 🟨
threads deleteComment (issue), update (issue), close (issue), reopen (issue), setAssignees (issue) 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ 🟨
threads.setLabels (issue) 🟦 🟦 ⬜ 🟦 🟦 ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟨
threads.requestReview (PR) 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
notifications.list 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟨
checks.report 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟨
threads.setAssignees (PR) 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ 🟨
webhooks create, delete 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟨
threads.react (issue, PR) 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ 🟨
threads.replyToReviewComment 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ 🟨
threads.resolveReviewThread 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟦 ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ 🟨
notifications.markRead 🟦 ⬜ ⬜ 🟦 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ 🟨
releases.downloadAsset 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ 🟨
releases create, update 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
webhooks.update 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
threads.setMilestone (issue, PR) 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
notifications markDone, unsubscribe 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
threads.lock (issue, PR) 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
notifications.markAllRead 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
threads transfer, markDuplicate 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
repos.issueTypes 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
users sponsorable, sponsorableMany 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
threads.setIssueType (issue) 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
notifications.markAllDone ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
threads.setIssueType (PR, discussion) 🔓 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
Without credentials, where that differs
GitHub GitLab Bitbucket Forgejo Gitea Gitee Azure DevOps Cursor Origin Pushin.eu Tangled Cloudflare Artifacts Sourcehut Entire GitBucket GitCafe
repos.get 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads get (PR), list (PR), getMany 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟩
webhooks.ingest 🟦 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟩
repos.byOwner 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads.comments (PR) 🟦 ⬜ 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads.commits 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟩
contents getFile, branches, tags, resolveRef 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟩
commits list, get 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads get (issue), list (issue) 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads.events (PR) 🟦 ⬜ 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟩
contents.tree 🟦 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ 🟩
repos.labels 🟦 ⬜ ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟩
users.get 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads.comments (issue) 🟦 ⬜ ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads.getComment (PR) 🟦 ⬜ ⬜ 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ 🟦 🟩
threads.checks (PR) 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟩
threads.files 🟦 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ 🟩
threads.reviews 🟦 🟦 🟦 🟦 🟦 ⬜ 🟦 ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ 🟩
checks.list 🟦 ⬜ 🟦 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟩
threads.events (issue) 🟦 ⬜ ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ 🟩
threads.getComment (issue) ⬜ ⬜ ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 🟩
threads.getReview ⬜ 🟦 🟦 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ 🟩
repos.milestones 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟦 🟩
ci.runs 🟦 🟦 ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟩
threads.reviewThreads ⬜ ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟩
releases list, get, latest, getByTag 🟦 🟦 ⬜ 🟦 🟦 🟦 ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ 🟦 🟨
releases.downloadAsset 🟦 ⬜ ⬜ 🟦 🟦 ⬜ ⬜ ⬜ 🟦 ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
repos.issueTypes ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
users sponsorable, sponsorableMany ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
threads setIssueType (issue), transfer, markDuplicate ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
notifications list, markRead, markDone, unsubscribe, markAllRead, markAllDone ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
releases create, update ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ ⬜ 🟨
In detail

GitCafe

  • New provider, with 40 verified capabilities

🟦 verified · 🟩 newly verified · 🟨 changed · ⬜ not verified · 🔓 same without credentials


Read this PR faster    Follow each request

@vercel

vercel Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
forges.link Ready Ready Preview Nov 12, 2026 1:24pm UTC

Request Review

@coldtea-pr-lens

coldtea-pr-lens Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
  • Redraw · drawn at edf8bea, the branch has moved on

Architecture

Walkthrough of Add GitCafe provider, in six steps

Read this PR faster

Inside the changed components — 1 view

Component view — GitCafe Provider Internals

Modules implementing GitCafe REST operations, webhook processing, and data normalization.

Architecture view of Component view — GitCafe Provider Internals in danielroe/forges

Data flow

Data flow diagram for danielroe/forges at edf8bea

Follow each request


Review

2 findings on the diff · 1 addressed · reviewed edf8bea

Tip

The diagrams are links. Click one to open it on the canvas, then press W or click play to walk through the change

🪧 More tips
  • Run npx skills add coldteadotai/pr-lens, then tell your coding agent: "Diagram the change you just made with PR Lens and attach it to the pull request."
  • Run npx @coldtea/pr-lens-cli analyze --base origin/main on a branch, then npx @coldtea/pr-lens-cli render .pr-lens/graph.json. Same lenses, your own model key, before the pull request exists
  • Click the link under each diagram to open it on a canvas you can zoom, pan and step through
  • Open a diagram on the canvas, then press W or click play to walk through the change one step at a time
  • The CLI's render reads .github/pr-lens.yml and applies your renames, exclusions and lane pins at draw time
  • Set github.comment.collapsed: true in .github/pr-lens.yml to fold the comment behind one View architecture… row. Drawing still runs as before
  • Set github.draw: on-demand in .github/pr-lens.yml and PR Lens stops drawing pull requests on its own. Comment @pr-lens draw on a pull request when you want that one drawn
  • Add .github/workflows/pr-lens.yml with coldteadotai/pr-lens/packages/action@v0 and your model provider's key as its api-key to run PR Lens from your own CI. Any /chat/completions endpoint works
  • After a push, tick Redraw to draw the latest commit
  • Switch GitHub to dark mode and the diagrams follow. The moving dots are this pull request's data in motion
  • Set github.description: false in .github/pr-lens.yml to stop PR Lens adding buttons to your PR descriptions

Thanks for using PR Lens! It's free for OSS. If it helped, a star helps other teams find it.  Star PR Lens on GitHub

@coderabbitai

coderabbitai Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 337 files, which is 237 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: a631a4e4-11a7-49c0-8cf4-4ea2c8a2a054
Commits

Reviewing files that changed from the base of the PR and between c2fca04 and 62cd263.

Files ignored due to path filters: 2

  • assets/providers/gitcafe.svg is excluded by !**/*.svg
  • package.json is excluded by !package.json, !**/package.json
Files selected for processing: 337

  • README.md
  • docs/content/1.getting-started/1.introduction.md
  • docs/content/2.guides/3.environment.md
  • docs/content/4.providers/gitcafe.md
  • docs/content/4.providers/index.md
  • docs/content/5.reference/11.capability-matrix.md
  • docs/content/5.reference/12.events.md
  • docs/content/5.reference/13.environment-variables.md
  • docs/content/7.contributing/4.record-fixtures.md
  • docs/shared/explorer.ts
  • scripts/api-docs/config.ts
  • scripts/capabilities.ts
  • scripts/credential-steps.ts
  • scripts/events.ts
  • scripts/exercised.ts
  • scripts/fixtures-environments.ts
  • scripts/record-fixtures.ts
  • scripts/record-forge.ts
  • scripts/recorded-coverage.ts
  • src/env.ts
  • src/gitcafe/events.ts
  • src/gitcafe/index.ts
  • src/gitcafe/normalise.ts
  • src/gitcafe/types.ts
  • src/gitcafe/web.ts
  • src/gitcafe/webhook-events.ts
  • src/gitcafe/webhooks.ts
  • src/index.ts
  • src/model.ts
  • src/schema/schemas.json
  • src/web/index.ts
  • test/fixtures/gitcafe/README.md
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/manifest.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/branches/01-get-forges-fixtures-refs.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/branches/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/branches/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/checks/01-get-SHA-checks.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/checks/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/checks/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/ci-runs-by-branch-and-state/01-get-actions-runs.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/ci-runs-by-branch-and-state/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/ci-runs-by-branch-and-state/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/ci-runs/01-get-actions-runs.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/ci-runs/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/ci-runs/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/commit/01-get-forges-fixtures-commit.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/commit/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/commit/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/commits/01-get-forges-fixtures-commits.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/commits/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/commits/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-comments/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-comments/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-comments/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-events/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-events/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-events/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-getcomment/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-getcomment/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-getcomment/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-getmany/01-get-issues-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-getmany/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-getmany/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-list/01-get-forges-fixtures-issues.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-list/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-list/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-reactions/01-get-issues-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-reactions/02-get-N-reactions.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-reactions/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue-reactions/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue/01-get-issues-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/issue/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/labels/01-get-forges-fixtures-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/labels/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/labels/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/merged-pull/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/merged-pull/02-get-N-assignees.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/merged-pull/03-get-N-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/merged-pull/04-get-N-reviewers.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/merged-pull/05-get-forges-fixtures-pulls.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/merged-pull/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/merged-pull/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/milestones/01-get-forges-fixtures-milestones.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/milestones/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/milestones/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/owner-repos/01-get-explore-repos.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/owner-repos/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/owner-repos/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-checks/01-get-SHA-checks.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-checks/02-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-checks/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-checks/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-comments/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-comments/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-comments/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-commits/01-get-N-commits.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-commits/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-commits/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-events/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-events/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-events/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-files/01-get-N-changes.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-files/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-files/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getcomment/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getcomment/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getcomment/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getmany/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getmany/02-get-N-assignees.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getmany/03-get-N-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getmany/04-get-N-milestone.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getmany/05-get-N-reviewers.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getmany/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getmany/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getreview/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getreview/02-get-reviews-review_01m77w278kfdptn65sc0rgw1n7.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getreview/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-getreview/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-list/01-get-forges-fixtures-pulls.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-list/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-list/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reactions/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reactions/02-get-N-reactions.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reactions/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reactions/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-review-threads/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-review-threads/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-review-threads/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reviews/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reviews/02-get-N-reviews.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reviews/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull-reviews/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull/02-get-N-assignees.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull/03-get-N-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull/04-get-N-milestone.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull/05-get-N-reviewers.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/pull/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/readme-without-metadata/01-get-forges-fixtures-raw.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/readme-without-metadata/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/readme-without-metadata/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/readme/01-get-forges-fixtures-blob.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/readme/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/readme/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/repo-licence/01-get-oritwoen-forges-fixtures.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/repo-licence/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/repo-licence/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/repo/01-get-oritwoen-forges-fixtures.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/repo/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/repo/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/resolve-default-branch/01-get-forges-fixtures-commit.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/resolve-default-branch/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/resolve-default-branch/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tags/01-get-forges-fixtures-refs.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tags/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tags/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tree-file/01-get-forges-fixtures-blob.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tree-file/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tree-file/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tree/01-get-forges-fixtures-tree.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tree/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/tree/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/user-repos/01-get-explore-repos.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/user-repos/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/user-repos/step.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/user/01-get-users-oritwoen.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/user/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe-anonymous/steps/user/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/manifest.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/assignable-users/01-get-issues-assignee-candidates.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/assignable-users/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/assignable-users/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/branches/01-get-forges-fixtures-refs.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/branches/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/branches/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/checks/01-get-SHA-checks.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/checks/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/checks/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/ci-runs-by-branch-and-state/01-get-actions-runs.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/ci-runs-by-branch-and-state/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/ci-runs-by-branch-and-state/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/ci-runs/01-get-actions-runs.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/ci-runs/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/ci-runs/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/collaborators/01-get-forges-fixtures-collaborators.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/collaborators/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/collaborators/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/commit/01-get-forges-fixtures-commit.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/commit/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/commit/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/commits/01-get-forges-fixtures-commits.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/commits/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/commits/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-comments/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-comments/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-comments/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-events/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-events/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-events/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-getcomment/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-getcomment/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-getcomment/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-getmany/01-get-issues-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-getmany/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-getmany/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-list/01-get-forges-fixtures-issues.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-list/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-list/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-reactions/01-get-issues-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-reactions/02-get-N-reactions.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-reactions/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue-reactions/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue/01-get-issues-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/issue/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/labels/01-get-forges-fixtures-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/labels/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/labels/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/me/01-get-user-profile.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/me/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/me/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/merged-pull/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/merged-pull/02-get-N-assignees.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/merged-pull/03-get-N-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/merged-pull/04-get-N-reviewers.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/merged-pull/05-get-forges-fixtures-pulls.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/merged-pull/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/merged-pull/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/milestones/01-get-forges-fixtures-milestones.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/milestones/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/milestones/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/own-repos/01-get-api-repos.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/own-repos/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/own-repos/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/owner-repos/01-get-explore-repos.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/owner-repos/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/owner-repos/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-checks/01-get-SHA-checks.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-checks/02-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-checks/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-checks/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-comments/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-comments/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-comments/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-commits/01-get-N-commits.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-commits/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-commits/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-events/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-events/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-events/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-files/01-get-N-changes.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-files/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-files/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getcomment/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getcomment/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getcomment/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getmany/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getmany/02-get-N-assignees.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getmany/03-get-N-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getmany/04-get-N-milestone.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getmany/05-get-N-reviewers.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getmany/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getmany/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getreview/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getreview/02-get-reviews-review_01m77w278kfdptn65sc0rgw1n7.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getreview/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-getreview/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-list/01-get-forges-fixtures-pulls.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-list/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-list/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reactions/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reactions/02-get-N-reactions.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reactions/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reactions/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-review-threads/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-review-threads/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-review-threads/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reviews/01-get-N-comments.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reviews/02-get-N-reviews.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reviews/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull-reviews/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull/01-get-pulls-N.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull/02-get-N-assignees.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull/03-get-N-labels.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull/04-get-N-milestone.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull/05-get-N-reviewers.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/pull/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/readme-without-metadata/01-get-forges-fixtures-raw.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/readme-without-metadata/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/readme-without-metadata/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/readme/01-get-forges-fixtures-blob.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/readme/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/readme/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/repo-licence/01-get-oritwoen-forges-fixtures.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/repo-licence/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/repo-licence/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/repo/01-get-oritwoen-forges-fixtures.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/repo/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/repo/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/resolve-default-branch/01-get-forges-fixtures-commit.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/resolve-default-branch/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/resolve-default-branch/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tags/01-get-forges-fixtures-refs.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tags/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tags/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tree-file/01-get-forges-fixtures-blob.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tree-file/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tree-file/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tree/01-get-forges-fixtures-tree.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tree/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/tree/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/user-repos/01-get-explore-repos.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/user-repos/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/user-repos/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/user/01-get-users-oritwoen.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/user/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/user/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/webhook-deliveries/01-get-whep_01m77vej8geh6by4jes96592rb-deliveries.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/webhook-deliveries/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/webhook-deliveries/step.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/webhooks/01-get-forges-fixtures-webhooks.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/webhooks/golden.json
  • test/fixtures/gitcafe/recorded/git.cafe/steps/webhooks/step.json
  • test/fixtures/gitcafe/webhooks/git-push.json
  • test/fixtures/gitcafe/webhooks/issue-comment-created.json
  • test/fixtures/gitcafe/webhooks/pull-merged.json
  • test/recorded.test.ts
  • test/recording/redact.ts
  • test/recording/replay.ts
  • test/unit/auth.test.ts
  • test/unit/capability-table.test.ts
  • test/unit/gitcafe.test.ts
  • test/unit/web-entry.test.ts
  • tsdown.config.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@pkg-pr-new

pkg-pr-new Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/danielroe/forges@283

commit: 62cd263

@github-actions

github-actions Bot commented Nov 12, 2026 •

Copy link
Copy Markdown
Contributor

Bundle size

Browser entry bundles compared with the PR base. All sizes are in bytes. Lazy totals the minified chunks besides the entry, which load on demand or never.

Bundle Minified Gzip Lazy
forges 4,065 1,793 49,329
forges/github 141,683 42,817 30,365
forges/gitlab 101,070 31,372 10,037
forges/tangled 96,109 31,371 11,787
forges/gitea 97,978 30,210 8,414
forges/bitbucket 76,377 24,371 3,936
forges/web 8,447 3,615 0

Size changes are informational. pnpm test:size checks entry chunks for webhook translation, and the provider-free bundle against its budget.

Measured for 62cd26378eb181ac54f1f92300d4fe6fce73a735.

Comment thread src/gitcafe/index.ts Resolved
Comment thread src/gitcafe/index.ts Resolved
Comment thread src/gitcafe/index.ts Resolved

This branch was successfully deployed

1 active deployment
Preview — 62cd2637 Deployed Nov 12, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

git.cafe provider

1 participant