Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions changelog/2026-09-29-merge-queue-api-v2.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
---
title: "Merge Queue: API v2"
description: "A new REST API for Merge Queue with ID-based endpoints, scoped API keys, consistent pagination, and secretless impacted target uploads from GitHub Actions."
slug: merge-queue-api-v2
date: 2026-09-29
category: Merge Queue
type: new-feature
---

**The v2 Merge Queue API is here.**

v2 lets you manage merge queues and the pull requests in them, read the order the queue will test them in, and inspect every verification run. It's hosted at `https://api.trunk.io/v2`.

## New features

- **ID-based endpoints.** Address queues and pull requests by ID instead of repository and branch in every request body. Reads use `GET`, and changes use `POST`, `PATCH`, `PUT`, or `DELETE`.
- **Scoped API keys.** Admins create keys under **Settings → Developer → API Keys** and grant only the permissions each integration needs, such as merging, setting priority, or skipping batching. A key with no permissions can still read queues, which is all a dashboard needs. See [Authentication](/merge-queue/reference/api-v2#authentication).
- **Secretless uploads from GitHub Actions.** The `trunk-io/login` action lets a job upload impacted targets with the run's own GitHub credential, with no Trunk secret to store or rotate. It also works on pull requests from forks. See [Upload impacted targets from GitHub Actions](/merge-queue/reference/api-v2/github-actions).

## Updates

- **Consistent pagination and errors.** Every list returns the same `data`, `nextCursor`, and `hasMore` envelope. Every error uses one shape.
- **Direct to queue from the API.** You can now send a pull request to the queue before branch protection is satisfied, using a key with the **Merge PRs with direct to queue** permission.

The [v1 API](/merge-queue/reference/merge) keeps working unchanged. When you're ready to move, the [migration guide](/merge-queue/reference/api-v2/migrate-from-v1) maps every v1 endpoint to v2 and includes a prompt you can hand to a coding agent. Browse the full [v2 reference](/merge-queue/reference/api-v2) for every endpoint.
6 changes: 6 additions & 0 deletions changelog/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,12 @@ rss: true

### September 2026

<Update label="September 29, 2026" tags={["Merge Queue"]}>
**[Merge Queue: API v2](/changelog/2026-09-29-merge-queue-api-v2)**

A new REST API for Merge Queue with ID-based endpoints, scoped API keys, consistent pagination, and secretless impacted target uploads from GitHub Actions.
</Update>

<Update label="September 15, 2026" tags={["Flaky Tests"]}>
**[Flaky Tests: Test Collections](/changelog/2026-09-15-flaky-tests-test-collections)**

Expand Down
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -924,6 +924,7 @@
{
"group": "September",
"pages": [
"changelog/2026-09-29-merge-queue-api-v2",
"changelog/2026-09-15-flaky-tests-test-collections"
]
},
Expand Down
8 changes: 8 additions & 0 deletions merge-queue/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@ og:title: "Trunk Merge Queue changelog"

## 2026

### September 2026

<Update label="September 29, 2026" tags={["Merge Queue"]}>
**[Merge Queue: API v2](/changelog/2026-09-29-merge-queue-api-v2)**

A new REST API for Merge Queue with ID-based endpoints, scoped API keys, consistent pagination, and secretless impacted target uploads from GitHub Actions.
</Update>

### August 2026

<Update label="August 26, 2026" tags={["Merge Queue"]}>
Expand Down
Loading