Controla una escritura de un agente en GitHub
Admite la escritura de un agente en un repositorio mediante Intralock y publica el veredicto en el commit como ejecución de verificación o estado.
github.enforce
Admite la escritura de un agente en un repositorio mediante Intralock y publica el veredicto en el commit como ejecución de verificación o estado.
github.enforcePasa por Intramedial acciones de agentes, hashes de contenido, pruebas de API, DNS, webhooks, llamadas LLM y commits. Obtén un recibo firmado que cualquiera verifica, sin fiarse de nadie.
Un agente escribe en un repositorio y tú quieres que la escritura se decida, con el veredicto en el commit. Una escritura que requiere confirmación se rechaza hasta que un aprobador emite un token.
El código lee la clave de INTRAMEDIAL_KEY. Guárdala en tu shell o en tu almacén de secretos, nunca en un archivo que suba al repositorio. Las llamadas que requieren una persona con sesión iniciada no pueden usar una clave: las hace la consola.
Envía el repositorio, el agente, el sha del commit y el verbo. La admisión es por repositorio; action es write de forma predeterminada.
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 es false con confirmation_required hasta que un aprobador emite un token. Una GitHub App lo publica como la verificación 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" }
}En la protección de ramas, exige la verificación intramedial/acp. Sin ello, la verificación se muestra pero no bloquea ninguna fusión. Los eventos de pull request y merge group aplican; un push solo registra.
Copiado de: /docs/github-enforce
El libro mayor es de solo anexado y está sellado bajo raíces de Merkle. La hora de una entrada es el reloj propio de Intramedial, y un paquete firmado puede verificarse sin conexión con la clave publicada.
Deja que una escritura rechazada espera en la cola de aprobación hasta que una persona con sesión iniciada la apruebe y luego reintenta con el token.
coordination.approvePide al gateway MCP el veredicto de Intralock sobre la llamada de herramienta de un agente, lee el motivo y enumera los llamadores que ha visto.
mcp.enforcePregunta al plano si un agente puede actuar sobre una fuente de SaaS conectada y lee el veredicto antes de enviar nada.
saas.admitUn email breve cuando añadimos recetas. Ningún otro correo, y puedes darte de baja desde cualquier mensaje.
Sin cuenta: 35 llamadas en 7 días en las rutas attest, con recibos marcados como de prueba. Regístrate cuando quieras seguir.