Merges an open pull request by FAST-FORWARDING base to head, and answers the…
Merges an open pull request by FAST-FORWARDING base to head, and answers the proposal in its merged state with the revision base now points at.
POST /v1/git/repos/{name}/pulls/{number}/merge
| Address | https://api.hanzo.ai/v1/git/repos/{name}/pulls/{number}/merge |
| Method | POST |
| Operation | post_git_repos_by_name_pulls_by_number_merge |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Merges an open pull request by FAST-FORWARDING base to head, and answers the proposal in its merged state with the revision base now points at.
It merges only when base is already an ancestor of head — the case where head contains every commit base has, so moving the branch loses nothing and invents nothing. When base has moved on independently, this REFUSES with 409 and says so: a real three-way merge is not implemented here, and reporting one would claim a result these bytes do not produce. Rebase head onto base and merge again.
The move is judged by the same ref policy a git push of it would face, and
fires the same build and notify reactions, so merging is not a way around
either. Merging an already-merged proposal is a 409.
Request
2 fields.
| Field | In | Type | Required | Description |
|---|---|---|---|---|
name | path | string | yes | Name is the repo, from the :name path segment. |
number | path | integer | yes | Number is the proposal's per-repo number, from the :number path segment. |
Response
| Status | Body | Meaning |
|---|---|---|
200 | pullView | ok |
200 body — 11 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
author | body | string | — | Author is the user who opened it; empty for a caller with no user. |
base | body | string | — | Base is the branch the work is proposed into. |
body | body | string | — | Body is the longer description; empty when none was given. |
createdAt | body | string | — | CreatedAt is RFC 3339 UTC. |
head | body | string | — | Head is the branch holding the work. |
mergedRev | body | string | — | MergedRev is what base points at now that the merge landed. |
number | body | integer | — | Number is the proposal's per-repo handle, dense from 1. |
repo | body | string | — | Repo is the repository the proposal belongs to. |
state | body | string | — | State is "open" or "merged". |
title | body | string | — | Title is the one-line summary. |
updatedAt | body | string | — | UpdatedAt is RFC 3339 UTC. |
Failure carries the platform error shape — see Errors.
Examples
hanzo git repos pulls merge <name> 1import { Configuration, GitApi } from 'hanzoai';
const api = new GitApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postGitReposByNamePullsByNumberMerge({ name: 'name', number: 'number' });from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import GitApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = GitApi(client).post_git_repos_by_name_pulls_by_number_merge(name='name', number='number')cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.GitAPI.PostGitReposByNamePullsByNumberMerge(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, git_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = git_api::post_git_repos_by_name_pulls_by_number_merge(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.GitApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new GitApi(client).postGitReposByNamePullsByNumberMerge();curl -X POST https://api.hanzo.ai/v1/git/repos/<name>/pulls/1/merge \
-H "Authorization: Bearer $HANZO_API_KEY"The door reaches git through the git tool, which names its 56 operations with its own verbs — this one among them, under a name only the door declares. describe explains any of them:
curl -X POST https://api.hanzo.ai/v1/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "describe",
"arguments": {
"op": "get_git"
}
}
}'How is this guide?