Repository navigation
v0.2.0 is the next major release.
Capability changes
🟩 136 gained · 🟨 268 changed · 🟥 27 removed or downgraded · ✨ 1 now on every provider · 🔑 160 changed for some kinds of credential
Verified capabilities with credentials: native, experimental or emulated. Each square stands for up to 4.
Without credentials, where that differs
With some kinds of credential, where that differs
GitHub
classic(Classic token): ✅ → ❌installations⚠️ fine-grained(Fine-grained token): ✅ → ❌sources.poll,notificationslist, markRead, markDone, unsubscribe, markAllRead,installations⚠️ installation(App installation): ✅ → ❌sources.poll,notificationslist, markRead, markDone, unsubscribe, markAllRead⚠️ app(App): ✅ → ❌ 125 capabilities⚠️ app(App): 🧩 → ❌repos.reviewerCandidates⚠️
Cursor Origin
app(App): 🧪 → ❌repos.get,threadsget (PR), list (PR), getMany, events (PR),comments.list(PR),writescomment (PR), close (PR), reopen (PR), merge,checks.thread(PR),reviews.list⚠️ app(App): ❔ → ❌ 21 capabilities⚠️
In detail
-
Cloudflare Artifacts: New provider, with 8 verified capabilities
-
Sourcehut: New provider, with 40 verified capabilities
-
writes.upsertComment(issue): 🧩 → ❌ GitHub, GitLab, Forgejo, Gitea, Azure DevOps, Tangled⚠️ ; ❔ → ❌ Gitee⚠️ -
writes.upsertComment(PR): 🧩 → ❌ GitHub, GitLab, Bitbucket, Forgejo, Gitea, Azure DevOps, Tangled⚠️ ; ❔ → ❌ Gitee, Cursor Origin⚠️ -
writes.upsertComment(discussion): 🧩 → ❌ GitHub⚠️ -
writes.upsertComment(commit): 🧩 → ❌ GitHub, Bitbucket⚠️ -
writes.approveAndMerge: ✅ → ❌ GitHub, GitLab, Bitbucket, Forgejo, Gitea, Azure DevOps⚠️ ; ❔ → ❌ Gitee, Cursor Origin⚠️ -
sources.webhook: ❌ → ∅ Pushin.eu -
contents.file: ❌ → ✅ Tangled -
contents.tree: ❌ → ✅ Tangled -
contents.resolveRef: ❌ → ✅ Tangled -
contents.commits: ❌ → ✅ Tangled -
contents.commit: ❌ → ✅ Tangled -
users.me: ❌ → ✅ GitHub -
writes.merge: ❌ → ∅ Pushin.eu; ❌ → ✅ Tangled -
contents.branches: ❌ → ✅ Tangled -
contents.tags: ❌ → ✅ Tangled -
repos.labels: ❌ → ∅ Bitbucket; ❌ → ✅ Tangled -
writes.update(PR): ❔ → ✅ Gitee; ❌ → ∅ Pushin.eu -
repos.collaborators: ❌ → ✅ Tangled -
contents.compare: ❌ → ✅ Tangled -
contents.threadCommits: ❌ → ✅ Tangled -
writes.create(PR): ❌ → ∅ Pushin.eu; ❌ → ✅ Tangled -
users.get: ❌ → ✅ Tangled -
contents.threadFiles: ❌ → ✅ Tangled -
writes.setLabels(issue, PR): ❌ → ∅ Bitbucket, Pushin.eu; ❌ → ✅ Tangled -
releases.list: ❌ → ∅ Bitbucket, Cursor Origin, Tangled -
releases.get: ❌ → ∅ Bitbucket, Cursor Origin, Tangled -
releases.latest: ❌ → ∅ Bitbucket, Cursor Origin, Tangled -
releases.getByTag: ❌ → ∅ Bitbucket, Cursor Origin, Tangled -
writes.setAssignees(issue, PR): ❌ → ∅ Pushin.eu; ❌ → ✅ Tangled -
repos.permissionFor: ❌ → ✅ Tangled -
repos.createLabel: ❌ → ∅ Bitbucket; ❌ → ✅ Tangled -
reactions.list(issue, PR): ❌ → ∅ Bitbucket; ❌ → ✅ Tangled -
writes.addLabels(issue, PR): ❌ → ∅ Bitbucket, Pushin.eu; ❌ → ✅ Tangled -
writes.removeLabels(issue, PR): ❌ → ∅ Bitbucket, Pushin.eu; ❌ → ✅ Tangled -
writes.react(issue, PR): ❌ → ∅ Bitbucket, Pushin.eu; ❌ → ✅ Tangled -
repos.addCollaborator: ❌ → ✅ Tangled -
releases.downloadAsset: ❌ → ∅ Bitbucket, Cursor Origin, Tangled -
repos.byOwner: ❌ → ✅ GitHub, GitLab, Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Tangled -
comments.get(PR): ❌ → ✅ GitHub, GitLab, Forgejo, Gitea, Azure DevOps; ❌ → 🧩 Bitbucket, Gitee, Pushin.eu, Tangled; ❌ → ❔ Cursor Origin -
comments.get(issue): ❌ → ✅ GitHub, GitLab, Forgejo, Gitea; ❌ → 🧩 Gitee, Pushin.eu, Tangled; ❌ → 🧪 Azure DevOps -
contents.commitFiles: ❌ → ✅ GitHub, GitLab, Bitbucket, Forgejo, Gitea, Azure DevOps -
reviews.get: ❌ → ✅ GitHub, Forgejo, Gitea; ❌ → 🧩 GitLab, Bitbucket, Azure DevOps; ❌ → ∅ Gitee, Tangled; ❌ → ❔ Cursor Origin -
repos.events: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea, Gitee -
users.events: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea, Tangled; ❌ → ❔ Gitee -
orgs.teams: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea, Azure DevOps -
orgs.teamMembers: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea, Azure DevOps -
ci.job: ❌ → ✅ GitHub, GitLab, Gitea; ❌ → 🧩 Forgejo -
repos.templates: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea; ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
writes.updateBranch: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea; ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
repos.contributors: ❌ → ✅ GitHub, GitLab, Gitee -
users.block: ❌ → ✅ GitHub, Forgejo, Gitea; ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
orgs.block: ❌ → ✅ GitHub, Forgejo, Gitea; ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
comments.get(commit): ❌ → ✅ GitHub; ❌ → 🧩 GitLab, Bitbucket -
writes.lock(issue, PR): ❌ → ✅ GitHub, GitLab, Gitea; ❌ → ∅ Bitbucket, Forgejo, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
reviews.reply: ❌ → ✅ GitHub, GitLab, Gitea; ❌ → ∅ Forgejo, Tangled -
threads.closingIssues: ❌ → ✅ GitHub, GitLab -
threads.closingPullRequests: ❌ → ✅ GitHub, GitLab -
repos.contributorStats: ❌ → ✅ GitHub -
users.sponsorable: ❌ → ✅ GitHub -
comments.get(discussion): ❌ → ✅ GitHub -
comments.hide(issue, PR, discussion, commit): ❌ → ✅ GitHub; ❌ → ∅ GitLab, Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
writes.lock(discussion): ❌ → ✅ GitHub; ❌ → ∅ Bitbucket, Forgejo, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
checks.get: ❌ → ✅ GitHub; ❌ → ∅ Tangled -
securityAlerts(advisory): ❌ → ✅ GitHub; ❌ → ∅ Tangled -
writes.comment(PR, issue, commit, discussion): ❌ → ∅ Pushin.eu -
writes.close(PR, issue, discussion, commit): ❌ → ∅ Pushin.eu -
writes.reopen(PR, issue, discussion, commit): ❌ → ∅ Pushin.eu -
checks.thread(PR, issue, discussion, commit): ❌ → ∅ Tangled -
sources.poll: ❌ → ∅ Bitbucket, Cursor Origin -
notifications.list: ❌ → ∅ Bitbucket, Cursor Origin -
reviews.list: ❌ → ∅ Gitee, Tangled -
comments.edit(PR, issue, commit, discussion): ❌ → ∅ Pushin.eu -
comments.delete(PR, issue, commit, discussion): ❌ → ∅ Pushin.eu -
checks.list: ❌ → ∅ Tangled -
writes.create(issue, discussion, commit): ❌ → ∅ Pushin.eu -
writes.update(issue, discussion, commit): ❌ → ∅ Pushin.eu -
writes.requestReview(PR, issue, discussion, commit): ❌ → ∅ Pushin.eu, Tangled -
checks.report: ❌ → ∅ Tangled -
reviews.create: ❌ → ∅ Tangled -
reviews.approve: ❌ → ∅ Tangled -
notifications.markRead: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eu -
webhooks.rotateSecret: ❌ → ∅ Azure DevOps, Pushin.eu, Tangled -
webhooks.list: ❌ → ∅ Pushin.eu, Tangled -
webhooks.create: ❌ → ∅ Pushin.eu, Tangled -
webhooks.update: ❌ → ∅ Pushin.eu, Tangled -
webhooks.delete: ❌ → ∅ Pushin.eu, Tangled -
repos.milestones: ❌ → ∅ Bitbucket -
notifications.markDone: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eu -
notifications.unsubscribe: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eu -
notifications.unreadCount: ❌ → ∅ Bitbucket, Cursor Origin -
writes.setMilestone(issue, PR, discussion, commit): ❌ → ∅ Bitbucket, Pushin.eu -
releases.create: ❌ → ∅ Bitbucket, Cursor Origin, Tangled -
releases.update: ❌ → ∅ Bitbucket, Cursor Origin, Tangled -
notifications.markAllRead: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eu -
reviews.resolveThread: ❌ → ∅ Forgejo, Gitea, Tangled -
reviews.submit: ❌ → ∅ Tangled -
checks.rerun: ❌ → ∅ Forgejo, Gitea, Tangled -
writes.transfer: ❌ → ∅ Pushin.eu -
writes.markDuplicate: ❌ → ∅ Pushin.eu -
securityAlerts(dependency, code scanning, secret): ❌ → ∅ Tangled -
reactions.list(discussion, commit): ❌ → ∅ Bitbucket -
notifications.markAllDone: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eu -
writes.react(discussion, commit): ❌ → ∅ Bitbucket, Pushin.eu -
webhooks.deliveries: ❌ → ∅ Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Pushin.eu, Tangled -
webhooks.redeliver: ❌ → ∅ Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Pushin.eu, Tangled -
installations: ❌ → ❔ Cursor Origin -
writes.lock(commit): ❌ → ∅ Bitbucket, Forgejo, Azure DevOps, Cursor Origin, Pushin.eu, Tangled -
writes.setLabels(discussion, commit): ❌ → ∅ Bitbucket, Pushin.eu -
writes.addLabels(discussion, commit): ❌ → ∅ Bitbucket, Pushin.eu -
writes.removeLabels(discussion, commit): ❌ → ∅ Bitbucket, Pushin.eu -
writes.setAssignees(discussion, commit): ❌ → ∅ Pushin.eu
Without credentials:
contents.file: ❌ → ✅ Tangledcontents.tree: ❌ → ✅ Tangledcontents.branches: ❌ → ✅ Tangledcontents.tags: ❌ → ✅ Tangledcontents.resolveRef: ❌ → ✅ Tangledcontents.commits: ❌ → ✅ Tangledcontents.commit: ❌ → ✅ Tangledcontents.compare: ❌ → ✅ Tangledcontents.threadCommits: ❌ → ✅ Tangledcontents.threadFiles: ❌ → ✅ Tangledrepos.labels: ❌ → ∅ Bitbucket; ❌ → ✅ Tangledusers.get: ❌ → ✅ Tangledreactions.list(issue, PR): ❌ → ∅ Bitbucket; ❌ → ✅ Tangledrepos.collaborators: ❌ → ✅ Tangledrepos.byOwner: ❌ → ✅ GitHub, GitLab, Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Tangledcomments.get(PR): ❌ → ✅ GitHub, Forgejo, Gitea, Azure DevOps; ❌ → ❔ Bitbucket; ❌ → 🧩 Gitee, Pushin.eu, Tangledrepos.events: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea, Giteeusers.events: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea, Tangledcomments.get(issue): ❌ → ❔ GitHub, Azure DevOps; ❌ → ✅ Forgejo, Gitea; ❌ → 🧩 Gitee, Pushin.eu, Tangledrepos.templates: ❌ → ✅ GitHub, GitLab, Forgejo, Gitea; ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangledreviews.get: ❌ → ❔ GitHub, Azure DevOps; ❌ → 🧩 GitLab, Bitbucket; ❌ → ✅ Forgejo, Gitea; ❌ → ∅ Gitee, Tangledrepos.contributors: ❌ → ✅ GitHub, GitLab, Giteeci.job: ❌ → ✅ GitHub; ❌ → 🧩 GitLab, Forgejo; ❌ → ❔ Gitearepos.contributorStats: ❌ → ✅ GitHubchecks.get: ❌ → ✅ GitHub; ❌ → ∅ Tangledorgs.teams: ❌ → ✅ GitLabthreads.closingIssues: ❌ → ✅ GitLabthreads.closingPullRequests: ❌ → ✅ GitLabrepos.permissionFor: ❌ → ✅ Tangledsources.webhook: ❌ → ∅ Pushin.eureviews.list: ❌ → ∅ Gitee, Tangledchecks.thread(PR, issue, discussion, commit): ❌ → ∅ Tangledchecks.list: ❌ → ∅ Tangledreleases.list: ❌ → ∅ Bitbucket, Cursor Origin, Tangledreleases.get: ❌ → ∅ Bitbucket, Cursor Origin, Tangledreleases.latest: ❌ → ∅ Bitbucket, Cursor Origin, Tangledreleases.getByTag: ❌ → ∅ Bitbucket, Cursor Origin, Tangledrepos.milestones: ❌ → ∅ Bitbucketreleases.downloadAsset: ❌ → ∅ Bitbucket, Cursor Origin, Tangledcomments.get(commit): ❌ → ❔ GitHub, GitLab, Bitbucketcomments.hide(issue, PR, discussion, commit): ❌ → ∅ GitLab, Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Cursor Origin, Pushin.eu, Tangledsources.poll: ❌ → ∅ Bitbucket, Cursor Originrepos.createLabel: ❌ → ∅ Bitbucketusers.block: ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangledorgs.block: ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangledreactions.list(discussion, commit): ❌ → ∅ Bitbucketnotifications.list: ❌ → ∅ Bitbucket, Cursor Originnotifications.markRead: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eunotifications.markDone: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eunotifications.unsubscribe: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eunotifications.markAllRead: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eunotifications.markAllDone: ❌ → ∅ Bitbucket, Cursor Origin, Pushin.eunotifications.unreadCount: ❌ → ∅ Bitbucket, Cursor Originwrites.lock(issue, PR, discussion, commit): ❌ → ∅ Bitbucket, Forgejo, Azure DevOps, Cursor Origin, Pushin.eu, Tangledwrites.setLabels(issue, PR, discussion, commit): ❌ → ∅ Bitbucket, Pushin.euwrites.addLabels(issue, PR, discussion, commit): ❌ → ∅ Bitbucket, Pushin.euwrites.removeLabels(issue, PR, discussion, commit): ❌ → ∅ Bitbucket, Pushin.euwrites.setMilestone(issue, PR, discussion, commit): ❌ → ∅ Bitbucket, Pushin.euwrites.react(issue, PR, discussion, commit): ❌ → ∅ Bitbucket, Pushin.euwrites.updateBranch: ❌ → ∅ Bitbucket, Azure DevOps, Cursor Origin, Pushin.eu, Tangledreleases.create: ❌ → ∅ Bitbucket, Cursor Origin, Tangledreleases.update: ❌ → ∅ Bitbucket, Cursor Origin, Tangledwebhooks.deliveries: ❌ → ∅ Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Pushin.eu, Tangledwebhooks.redeliver: ❌ → ∅ Bitbucket, Forgejo, Gitea, Gitee, Azure DevOps, Pushin.eu, Tangledchecks.rerun: ❌ → ∅ Forgejo, Gitea, Tangledreviews.reply: ❌ → ∅ Forgejo, Tangledreviews.resolveThread: ❌ → ∅ Forgejo, Gitea, Tangledwebhooks.rotateSecret: ❌ → ∅ Azure DevOps, Pushin.eu, Tangledcomments.edit(issue, PR, discussion, commit): ❌ → ∅ Pushin.eucomments.delete(issue, PR, discussion, commit): ❌ → ∅ Pushin.euwrites.comment(issue, PR, discussion, commit): ❌ → ∅ Pushin.euwrites.close(issue, PR, discussion, commit): ❌ → ∅ Pushin.euwrites.reopen(issue, PR, discussion, commit): ❌ → ∅ Pushin.euwrites.create(issue, PR, discussion, commit): ❌ → ∅ Pushin.euwrites.update(issue, PR, discussion, commit): ❌ → ∅ Pushin.euwrites.setAssignees(issue, PR, discussion, commit): ❌ → ∅ Pushin.euwrites.requestReview(issue, PR, discussion, commit): ❌ → ∅ Pushin.eu, Tangledwrites.merge: ❌ → ∅ Pushin.euwrites.transfer: ❌ → ∅ Pushin.euwrites.markDuplicate: ❌ → ∅ Pushin.euwebhooks.list: ❌ → ∅ Pushin.eu, Tangledwebhooks.create: ❌ → ∅ Pushin.eu, Tangledwebhooks.update: ❌ → ∅ Pushin.eu, Tangledwebhooks.delete: ❌ → ∅ Pushin.eu, Tangledchecks.report: ❌ → ∅ Tangledreviews.create: ❌ → ∅ Tangledreviews.submit: ❌ → ∅ Tangledreviews.approve: ❌ → ∅ TangledsecurityAlerts(dependency, code scanning, secret, advisory): ❌ → ∅ Tangled
🟦 verified · 🟩 newly verified · 🟨 changed · 🟥 no longer verified · ⬜ not verified · 🔓 same without credentials
✅ native · 🧪 experimental · 🧩 emulated · ❔ unverified · ∅ not applicable · ❌ not available
👉 Changelog
🚀 Enhancements
- pushin: add more pushin capabilities (#222)
⚠️ addnamespaceRef()and identify namespace refs bykindalone (f516c7ab)- pushin: add support for releases (#198)
- add
ci.rerunFailed()andCheck.run+ fix check permissions (#214) - add client-free
forges/webentry (#213) - add
parseReferences()to read references in text (#211) - support issue types (#207)
⚠️ settle verb names + give commits their own namespace (#203)- sourcehut: add
rawweb url (#206) ⚠️ simplify the public API (#202)- add
not_applicableto disambiguate "not supported" vs. "doesn't actually exist" (#168) - add a Sourcehut provider (#167)
- add conversation locking, comment hiding and account blocking (
85cff3fe) - github: list repository security advisories as
advisoryalerts (11e3f121) - add
threads.closingIssues()andthreads.closingPullRequests()(95a4d41c) - add
threads.updateBranch()(a31421d0) - add
ownerfilter tosearch.threads()(#200) ⚠️ add thread snapshots, more event kinds + fill dropped event detail (#189)- add scope hints,
latestCommentandauthorAssociation(#188) ⚠️ removeThread.readState(#187)- fake: apply list filters, seed security alerts and add
as(login)(#186) - github: honour list filters and poll intervals + report review request times (#183)
- add
repos.templates(#180) ⚠️ resolve writes with what they changed + type returned refs as resolved (#179)⚠️ read rate limit budgets without a request + make first pages conditional (#178)⚠️ addaffectedKeys(), payload-dated events + review identity (#176)- make writes safe to retry + let
forges/fakefail for queue tests (#175) - read the IETF
ratelimitfield (60e85e7b) - report rate limits with
onRateLimit(c5fde2e5) - limit the commits and files of
contents.compare()(#171) - add
mergedAtandmergedByto threads (#170) - add stargazers, watchers, forks section URLs to
urlFor()(#166) - commit file changes to a branch (#159)
- add repository and account activity feeds (#153)
- declare + document capabilities per kind of credential (#123)
- add Cloudflare Artifacts provider (#147)
- github: add
graphql()for queries and mutations (#122) - github: add repo contributor stats over time (#146)
- add
orgs.teams,orgs.teamMembers(#145) - parse file web URLs into a path and revision (#144)
- github: add
users.sponsorable(#140) - tangled: add
starsandforks(#143) - gitee,github,gitlab: add
repos.contributors(#141) - add
totalcount to page results (#142) - add state, labels, assignees to
update()(#136) - add
threads.replyToReviewComment()(#126) - expose
webOriginon providers (#129) - add repository section targets to
urlFor()(#120) - add raw file and commit targets to
urlFor()(#119) - tangled: read contents, collaborators, write labels, reactions + open/merge PRS (#114)
- add
astoreleases.downloadAsset()to read bytes or text (221adf98) - add
repoRef()to build a repo ref fromowner/name(7a165b86) - report whether
repos.addCollaborator()added or invited the account (c2f2593b) - add
repos.byOwner()to list repos of a user, org or group (#103) - pushin: add missing
watchers_count(#115) - add merge defaults to
Repo(#99) - add single-item getters for comments, reviews, checks and ci jobs (#98)
- github,gitlab,gitea,forgejo,cursor-origin: add PR diff stats to
Thread(#97)
🔥 Performance
- github: share installation token exchange between concurrent requests (#195)
- gitlab: read the latest release with
per_page=1(#92)
🩹 Fixes
- tangled: declare anonymous pull
threads.getCommentas unverified (32a25595) - gitee: declare
users.eventsas verified (52427c4d) - github: re-run the job of an Actions check run that an app cannot re-request (
c268fe26) - parse tag, compare + PR commit URLs (#210)
- sourcehut: misc. minor follow-ups (#208)
- fake: don't reuse thread numbers, comment ids or webhook ids (#197)
- testing: match nested GraphQL
variables+ let overrides win infixtureFetch(#196) - github: read a commit made with an empty author email (#194)
⚠️ forgejo: emulatemarkDoneasmarkRead(#184)- do not leak secret length in
timingSafeEqual(1dbcfa79) - gitee: leave
aheadByunset for a truncated comparison (#174) - github: report retries and rate limits of the installation token exchange (
43c044d4) - bitbucket: read the rate limit list and relative reset (
1e5234a7) - pushin: date merged pull requests as closed (#173)
- github: report moved branches with a 409 (#169)
- name the cause of a failed connection (
099700c9) - tangled: digest the feed page into its etag (#161)
- tangled: date undated feed records with now (#158)
- forgejo: tell feed tags by the activity type (#157)
- github: warn on throttled feed reads (#155)
- narrow factory
forge/experimentalandforges.get()(#135) - type
urlFor()repo links asstringfor forges with a website (#134) - type
webOriginasstringfor forges with a website (#132) - github: send
pullandpushwhen adding a read or write collaborator (1d90d38f) - anchor link header regex to avoid polynomial backtracking (
28f200c4)
💅 Refactors
⚠️ renamesources.subscribe()tosources.stream()(26b56c94)⚠️ rename thread input and search query types (9f84633e)⚠️ stop exporting provider internals from subpaths (58f0dd53)⚠️ kit: renameWebLinks.origintobaseUrl(#160)
📖 Documentation
- keep header links clear of the logo on narrow screens (
948a4ab8) - add Discord link (#221)
- mark gitee
users.eventsas conditional (d4afd56a) - add support for auth and writes to API explorer (#199)
- mention Sourcehut in a few more places (#205)
- inline display font faces, drop dup preload + defer search (
f2f03bd8) - count push commits with
commitCount(#162) - explain what server builds that trace dependencies include (
76ea33d1) - describe which id
Actor.idholds on each forge (500021d0)
🏡 Chore
- log more info on record-fixtures failures (#165)
- small fixes to testing harness (#163)
- add partial write support for recordings (#154)
- add Cloudflare Artifacts provider icon (
d83a70c8) - remove
installed-checkdev dependency (0cb7fea9) - add security policy (#87)
✅ Tests
- tangled: re-record reads (
1d83716f) - pushin: re-record reads (
b5cf66a1) - gitlab: re-record reads (
0e1d5d5c) - github: re-record reads (
09d6ffbf) - gitee: re-record reads (
2d8db536) - gitea: re-record reads (
deb83b10) - forgejo: re-record reads (
7c9ee1f2) - bitbucket: re-record reads (
7265808f) - azure-devops: re-record reads (
67a99133) - github: read expected values from the recorded fixtures (
a5fe9d80) - record live fixtures (
16816ed6) - stabilise write recordings for azure devops, gitea and gitlab (
663001e8) - record webhooks only from the scratch repository (
058c72a9) - keep write recordings stable across runs (#138)
- record fixtures per step (#125)
- re-record github writes (
28b2d9f3) - redact gitlab tokens from recorded fixtures (
466e4139)
🤖 CI
- record fixtures for a branch, and write steps with
only(#156) - show capability changes per kind of credential (
6c00ff88) - report bundle size changes on pull requests (
4590210d) - log the ids renamed in write recordings (
2ddc5a7b) - apply a single forge's recording (
49316310) - write fixture pull request bodies more plainly (
5a8b6b0d) - re-record fixtures on a schedule (#127)
- describe capability changes in release PRs (
f7b36e3e) - describe capability changes in PR descriptions (#124)
- pin
pnpm/setupversion comment (920ca247)
🎉 New Contributors
❤️ Contributors
- Daniel Roe (@danielroe)
- Wilco (@WilcoSp)
- Felix Schneider (@trueberryless)
- github-actions[bot] (@github-actions[bot])
- Philippe Serhal (@serhalp)
- Ori (@oritwoen)
- Max (@onmax)