Filtra una scrittura GitHub di un agente
Ammetti tramite Intralock la scrittura di un agente su un repository e pubblica il verdetto sul commit come check run o status.
github.enforce
Ammetti tramite Intralock la scrittura di un agente su un repository e pubblica il verdetto sul commit come check run o status.
github.enforceFai passare da Intramedial azioni di agenti, hash di contenuti, controlli API, lookup DNS, webhook, chiamate LLM e commit git. Ricevi una ricevuta firmata che chiunque verifica, senza fidarsi di noi.
Un agente scrive su un repository e vuoi che la scrittura sia decisa, con il verdetto sul commit. Una scrittura che richiede conferma viene rifiutata finché un approvatore non emette un token.
Il codice legge la chiave da INTRAMEDIAL_KEY. Tienila nella shell o nel tuo secret store, mai in un file di cui fai commit. Le chiamate che richiedono una persona autenticata non possono usare una chiave: le effettua la console.
Invia il repository, l'agente, lo sha del commit e il verbo. L'ammissione è per repository; action ha come default write.
github.enforcegithub-enforce
curl -sS -X POST https://api.intramedial.com/api/v1/acp/github/enforce \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"repo": "acme/payments",
"actorDid": "did:web:acme.example:agent:billing",
"sha": "9fceb02d0ae598e95dc970b74767f19372d61af8",
"action": "write"
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/github/enforce", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
repo: "acme/payments",
actorDid: "did:web:acme.example:agent:billing",
sha: "9fceb02d0ae598e95dc970b74767f19372d61af8",
action: "write",
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/github/enforce",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"repo": "acme/payments",
"actorDid": "did:web:acme.example:agent:billing",
"sha": "9fceb02d0ae598e95dc970b74767f19372d61af8",
"action": "write",
},
timeout=30,
)
print(res.status_code, res.json())allow è false con confirmation_required finché un approvatore non emette un token. Una GitHub App lo pubblica come check intramedial/acp.
{
"allow": false,
"llm": false,
"reason": "confirmation_required",
"sha": "9fceb02d0ae598e95dc970b74767f19372d61af8",
"repo": "acme/payments",
"commitStatus": null,
"checkRun": { "id": "4417203551", "url": "https://github.com/acme/payments/runs/4417203551" }
}Nella branch protection, richiedi il check intramedial/acp. Senza, il check compare ma non blocca alcun merge. Gli eventi di pull request e merge group applicano; un push registra soltanto.
Copiato da: /docs/github-enforce
Il registro è append-only e sigillato sotto radici Merkle. L'ora di una voce è l'orologio di Intramedial e un bundle firmato puoi verificarlo offline con la chiave pubblicata.
Lascia una scrittura rifiutata in coda di approvazione finché una persona autenticata la approva, poi riprova con il token.
coordination.approveChiedi al gateway MCP il verdetto di Intralock sulla chiamata a tool di un agente, leggi la motivazione ed elenca i chiamanti visti.
mcp.enforceChiedi al piano se un agente può agire su una fonte SaaS collegata e leggi il verdetto prima che venga inviato qualcosa.
saas.admitUna breve email quando aggiungiamo ricette. Nessun’altra posta, e ti disiscrivi da ogni messaggio.
Senza account: 35 chiamate in 7 giorni sulle route attest, con ricevute marcate come test. Iscriviti quando vuoi andare avanti.