Create backfill — POST /v1/provider/github/issues/backfill

Seeds the native todo with the EXISTING issues across the org's granted repos (default state=open); the webhook keeps them live thereafter.

POST /v1/provider/github/issues/backfill

Addresshttps://api.hanzo.ai/v1/provider/github/issues/backfill
MethodPOST
Operationpost_provider_github_issues_backfill
AuthAuthorization: Bearer $HANZO_API_KEY

Seeds the native todo with the EXISTING issues across the org's granted repos (default state=open); the webhook keeps them live thereafter. Org-scoped by the validated principal — a caller only ever backfills its OWN org. Synchronous + bounded (a total time budget and an issue cap) so it returns the counts directly; idempotent by ExtRef, so a re-run continues where a truncated pass left off and never duplicates.

Request

1 field, body application/json (required).

FieldInTypeRequiredDescription
statebodystring—State is the GitHub issue state to walk: "open" (the default), "closed" or "all".

Response

StatusBodyMeaning
200provider.githubBackfillResultok
defaultproblem-detailsrefused

200 body — 6 fields.

FieldInTypeAlwaysDescription
createdbodyinteger (int64)—Created is how many native issues this pass created.
failedbodyinteger (int64)—Failed is how many repos or issues errored; the pass continues past each.
issuesbodyinteger (int64)—Issues is how many upstream issues were seen.
reposbodyinteger (int64)—Repos is how many granted repos were walked (archived/disabled are skipped).
truncatedbodyboolean—Truncated is set when the time budget or the issue cap stopped the pass early.
updatedbodyinteger (int64)—Updated is how many existing native issues this pass refreshed.

Failure carries the platform error shape — see Errors.

Examples

hanzo provider github issues backfill
import { Configuration, ProviderApi } from 'hanzoai';

const api = new ProviderApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postProviderGithubIssuesBackfill({ state: "<state>" });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import ProviderApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = ProviderApi(client).post_provider_github_issues_backfill(state="<state>")
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.ProviderAPI.PostProviderGithubIssuesBackfill(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, provider_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = provider_api::post_provider_github_issues_backfill(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ProviderApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new ProviderApi(client).postProviderGithubIssuesBackfill();
curl -X POST https://api.hanzo.ai/v1/provider/github/issues/backfill \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "state": "<state>"
     }'

MCP reaches provider through the provider tool, which names its 38 operations with its own verbs — this one among them, under a name only MCP 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": "list_connections"
         }
       }
     }'

Provider API · All Hanzo APIs · Interactive reference

Was this page useful?