O Intramedial está em beta restrito. Ao se cadastrar ou entrar, você precisa informar a senha de beta tester que recebeu ou solicitar uma em preview@intramedial.com. Obrigado.
Carregando…
github.enforceMódulo 29
Módulo da plataforma
GitHub write gate
Faça o check de um commit ficar vermelho a menos que o agente por trás dele tenha a concessão e, para uma escrita, um humano tenha confirmado.
github.enforce admite uma ação de repositório pelo Intralock e informa o veredito ao GitHub como check run ou status de commit. Admite repo:<repo>, usa write como ação padrão e fixa um commit permitido ao agente, para que eventos de webhook posteriores daquele sha sigam a mesma decisão.
Intralock · Leases · Parley · Fleet Map
Um produto da Trustvice
Os agentes agem quando o plano diz sim, e o registo diz porquê.
Passe 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.
StatusOs sinais do GitHub precisam de um App ou token
Sem GITHUB_PAT ou um GitHub App vinculado, o veredito ainda é devolvido e registrado no ledger, mas commitStatus e checkRun são null, então nada aparece no commit. Vincule um e confirme com github/app.
Registro
O registro
O que é registrado
repo
O repositório, como acme/payments. O recurso admitido é repo: seguido deste valor.
actorDid
O agente de quem é esta escrita. O ator de um webhook é o login do GitHub que o enviou.
action
read, ou . Qualquer outra coisa, ou nada, é admitida como .
O commit sobre o qual informar. Opcional; o último head ingerido é usado quando omitido.
confirmationToken
Um token emitido quando um aprovador confirmou esta escrita.
allow
Na resposta: se o Intralock admitiu a ação.
reason
Na resposta: por quê, como confirmation_required ou no_grant.
commitStatus
Na resposta: o status de commit publicado no GitHub, ou null.
checkRun
Na resposta: o check run publicado no GitHub, ou null.
Mecanismo
Passo a passo
Como funciona
Envie o commit
enforce recebe repo, actorDid, sha e uma action de read, write ou delete. Sem sha usa o último head que o gateway ingeriu para aquele repo.
O Intralock decide
O gateway admite repo:<repo> para aquele ator e ação. Uma escrita sem confirmação volta como confirmation_required.
O GitHub é avisado
O veredito é publicado como o check run intramedial/acp quando há um App vinculado, ou como status de commit. Permitir é success; recusa é failure.
Um humano confirma
Uma revisão ou comentário assinado com /acp allow emite um token para o ator fixado e aplica de novo. /acp deny solta o pin se aquele ator o detém.
Experimente
Demo ao vivo
Execute a partir desta página
GET/api/v1/acp/github/status
// Sem corpo: isto é um GET. Clique em Executar.
Executa em um workspace de demonstração compartilhado com uma chave de demonstração: qualquer pessoa pode ver o que ele contém, então não envie nada privado. Docs de github.enforce
Respostas
Clique em Executar para enviar a requisição à esquerda ao workspace de demonstração compartilhado.
Executa em um workspace de demonstração compartilhado com uma chave de demonstração: qualquer pessoa pode ver o que ele contém, então não envie nada privado.
Código
Exemplo ao vivo
Uma requisição real
Uma requisição no formato que a API aceita e um exemplo de resposta no formato que o módulo devolve.
Exija o check intramedial/acp na branch. Um check pendente ou com falha impede o merge do commit do agente até alguém confirmar.
Confirmar pelo pull request
Um revisor comenta /acp allow. O webhook assinado emite o token, admite de novo e muda o status do mesmo commit para sucesso.
Retirar a aprovação
revoke solta o pin que um agente detém para um sha e publica uma falha, para que um commit já aprovado possa ser recusado de novo.
Manter agentes fora de branches compartilhadas
namespace reescreve a branch de um agente sob agent/<slug>/ e recusa nomes protegidos como main, release* e hotfix/*.
Quando usar outra coisa
Admitir chamadas a um servidor MCP. Use mcp.enforce; este módulo trabalha com repositórios e commits.
Coletar a decisão humana. A aprovação em si pertence a coordination.approve; este módulo publica o resultado.
Controlar uma única branch ou ref pelo nome. A admissão aqui é por repositório; só namespace conhece nomes de branches protegidas.
Evidência
Garantias
O que faz e o que não faz
Um módulo é uma afirmação forte sobre algo estreito. Confie nele exatamente pelo que ele é.
Faz
O veredito é do Intralock, com llm: false; o mesmo ator, repo e ação dão a mesma resposta que coordination.admit.
Todo enforce acrescenta ao ledger um evento github.enforce com o repo, o sha, o resultado e o motivo.
Uma recusa para um ator nunca solta um pin de sha detido por outro ator, então um estranho não pode cancelar uma aprovação.
Uma escrita que precisa de confirmação fica pendente quando chega de um webhook; só um enforce explícito publica a falha.
Não faz
Que um merge esteja bloqueado. O check só bloqueia se a proteção de branch exigir intramedial/acp; o gateway não pode definir isso por você.
Que o código do commit seja seguro. A decisão é sobre quem pode escrever, não sobre o que foi escrito.
Que uma decisão revogue uma aprovação. revoke é uma chamada explícita controlada por um mandado; nenhuma decisão a dispara.
Que um push seja controlado. A ingestão de push só registra; os eventos de pull request, check, workflow e merge queue são os que aplicam.
Detalhes
Notas de construção
Antes de construir
O que é publicado
Com um GitHub App vinculado, o veredito é um check run chamado intramedial/acp, com status de commit como alternativa. Um GITHUB_PAT publica só status de commit.
O pin de sha
Uma escrita permitida registra o ator contra repo, ação e sha. Um evento posterior para aquele sha pode então emitir um token para o mesmo ator sem um segundo humano.
Eventos de webhook
Eventos de pull request, check suite, check run, workflow run e merge group admitem o head como write e publicam um status pendente até chegar um token.
Permissões
revoke exige policies.approve e um warrant de controle duplo ou arbitrado. enforce, ingest e status não têm papel próprio.
Limites e medição
O check run e o status só são publicados quando uma credencial PAT ou App está vinculada; caso contrário os dois campos são null.
status devolve os últimos 50 itens ingeridos, filtrados por repo ou sha quando informados.
revoke sem warrant devolve 403, pois rotas controladas por mandado ficam fechadas por padrão.
namespace recebe actorDid e branch; sem um ator devolve 400.
Acesso
API e MCP
REST e MCP
Autentique-se com uma chave de API do workspace como token Bearer. A URL base é https://api.intramedial.com.
Endpoints REST
POST/api/v1/acp/github/enforceAdmita uma ação de repositório e publique o veredito no GitHub.
POST/api/v1/acp/github/ingestRegistre um webhook do GitHub e aplique os eventos que o exigem.
GET/api/v1/acp/github/statusLeia itens recentes de auditoria, o último head e o detentor do pin.
POST/api/v1/acp/github/revokeSolte o pin de sha detido pelo ator e publique uma falha.
Ações MCP
MCPcoordination.github.enforceAdmita uma ação de repositório a partir de um agente.
MCPcoordination.github.ingestRegistre o corpo de um webhook a partir de um agente.
MCPcoordination.github.statusLeia itens recentes de auditoria do GitHub a partir de um agente.