Controlar uma gravação de agente no GitHub
Admita a gravação de um agente em um repositório pelo Intralock e publique o veredito no commit como check run ou status.
github.enforce
Admita a gravação de um agente em um repositório pelo Intralock e publique o veredito no commit como check run ou status.
github.enforcePasse ações de agentes, hashes de conteúdo, checagens de API, DNS, webhooks, chamadas de LLM e commits git pela Intramedial. Receba um recibo assinado que todos verificam – sem confiar em nós.
Um agente grava em um repositório e você quer que a gravação seja decidida, com o veredito no commit. Uma gravação que precisa de confirmação é recusada até um aprovador emitir um token.
O código lê a chave de INTRAMEDIAL_KEY. Guarde-a no seu shell ou no seu cofre de segredos, nunca em um arquivo que você faz commit. Chamadas que exigem uma pessoa logada não podem usar chave: o console as faz.
Envie o repositório, o agente, o sha do commit e o verbo. A admissão é por repositório; action assume write por padrão.
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 é falso com confirmation_required até um aprovador emitir um token. Um GitHub App o publica como o 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" }
}Na proteção de branch, exija o check intramedial/acp. Sem isso o check aparece, mas não bloqueia nenhum merge. Eventos de pull request e merge group aplicam; um push apenas registra.
Copiado de: /docs/github-enforce
O livro-razão é somente de acréscimo e selado sob raízes Merkle. A hora de uma entrada é o relógio da própria Intramedial, e um bundle assinado pode ser conferido offline com a chave publicada.
Deixe uma gravação recusada esperando na fila de aprovação até uma pessoa logada aprová-la e depois tente de novo com o token.
coordination.approvePeça ao gateway MCP o veredito do Intralock sobre a chamada de ferramenta de um agente, leia o motivo e liste os chamadores que ele já viu.
mcp.enforcePergunte ao plano se um agente pode agir em uma fonte SaaS conectada e leia o veredito antes de enviar qualquer coisa.
saas.admitUm e-mail curto quando somamos receitas. Nenhum outro e-mail, e você cancela por qualquer mensagem.
Sem conta: 35 chamadas em 7 dias nas rotas attest, com recibos marcados como teste. Cadastre-se quando quiser seguir adiante.