Intramedial befindet sich in der eingeschränkten Beta. Bei der Registrierung oder Anmeldung müssen Sie das erhaltene Beta-Tester-Passwort angeben oder unter preview@intramedial.com eines anfordern. Vielen Dank.
Wird geladen…
github.enforceModul 29
Plane-Modul
GitHub write gate
Lassen Sie den Check eines Commits rot werden, außer der Agent dahinter hält den Grant und, bei einem Schreibvorgang, ein Mensch hat bestätigt.
github.enforce lässt eine Repository-Aktion über Intralock zu und meldet das Urteil als Check Run oder Commit-Status an GitHub zurück. Es lässt repo:<repo> zu, setzt die Aktion standardmäßig auf write und pinnt einen erlaubten Commit an den Agenten, sodass spätere Webhook-Ereignisse für diesen sha derselben Entscheidung folgen.
Intralock · Leases · Parley · Fleet Map
A Trustvice Product
Agenten handeln, wenn die Ebene Ja sagt – und das Protokoll sagt, warum.
Leiten Sie Agent-Aktionen, Inhalts-Hashes, API-Checks, DNS-Abfragen, Webhooks, LLM-Aufrufe und Git-Commits über Intramedial – für einen signierten Beleg, den jeder prüft, ohne uns zu vertrauen.
StatusGitHub-Signale brauchen eine App oder ein Token
Ohne GITHUB_PAT oder eine gebundene GitHub App wird das Urteil weiterhin geliefert und im Ledger erfasst, aber commitStatus und checkRun sind null, sodass am Commit nichts erscheint. Binden Sie eines und bestätigen Sie es dann mit github/app.
Protokoll
Das Protokoll
Was erfasst wird
repo
Das Repository, etwa acme/payments. Die zugelassene Ressource ist repo: gefolgt von diesem Wert.
actorDid
Der Agent, dessen Schreibvorgang dies ist. Ein Webhook-Akteur ist das GitHub-Login, das ihn sendete.
read, write oder delete. Alles andere oder nichts wird als write zugelassen.
sha
Der Commit, über den berichtet wird. Optional; ohne Angabe wird der zuletzt eingelesene Head verwendet.
confirmationToken
Ein Token, das geprägt wurde, als ein Freigeber diesen Schreibvorgang bestätigte.
allow
In der Antwort: ob Intralock die Aktion zuließ.
reason
In der Antwort: warum, etwa confirmation_required oder no_grant.
commitStatus
In der Antwort: der an GitHub gepostete Commit-Status, oder null.
checkRun
In der Antwort: der an GitHub gepostete Check Run, oder null.
Mechanismus
Schritt für Schritt
So funktioniert es
Den Commit senden
enforce nimmt repo, actorDid, sha und eine action von read, write oder delete. Ohne sha nutzt es den letzten Head, den das Gateway für dieses Repo einlas.
Intralock entscheidet
Das Gateway lässt repo:<repo> für diesen Akteur und diese Aktion zu. Ein Schreibvorgang ohne Bestätigung kommt als confirmation_required zurück.
GitHub wird informiert
Das Urteil wird als Check Run intramedial/acp gepostet, wenn eine App gebunden ist, sonst als Commit-Status. Allow ist success; eine Ablehnung ist failure.
Ein Mensch bestätigt
Ein signiertes Review oder ein Kommentar /acp allow prägt ein Token für den gepinnten Akteur und setzt erneut durch. /acp deny entfernt den Pin, falls dieser Akteur ihn hält.
Ausprobieren
Live-Demo
Direkt auf dieser Seite ausführen
GET/api/v1/acp/github/status
// Kein Body: Das ist ein GET. Klicken Sie auf Ausführen.
Läuft in einem gemeinsamen Demo-Workspace mit einem Demo-Schlüssel: Jeder kann sehen, was darin liegt, senden Sie also nichts Privates. Doku zu github.enforce
Antworten
Klicken Sie auf Ausführen, um die Anfrage links an den gemeinsamen Demo-Workspace zu senden.
Läuft in einem gemeinsamen Demo-Workspace mit einem Demo-Schlüssel: Jeder kann sehen, was darin liegt, senden Sie also nichts Privates.
Code
Live-Beispiel
Eine echte Anfrage
Eine Anfrage in der Form, die die API akzeptiert, und eine Beispielantwort in der Form, die das Modul liefert.
Verlangen Sie den Check intramedial/acp auf dem Branch. Ein ausstehender oder fehlgeschlagener Check hält den Commit des Agenten vom Mergen ab, bis jemand bestätigt.
Aus dem Pull Request bestätigen
Ein Reviewer kommentiert /acp allow. Der signierte Webhook prägt das Token, lässt erneut zu und setzt den Status desselben Commits auf success.
Eine Freigabe zurücknehmen
revoke entfernt den Pin, den ein Agent für einen sha hält, und postet einen Fehlschlag, sodass ein bereits freigegebener Commit wieder abgelehnt werden kann.
Agenten von geteilten Branches fernhalten
namespace schreibt den Branch eines Agenten unter agent/<slug>/ um und lehnt geschützte Namen wie main, release* und hotfix/* ab.
Wann etwas anderes passt
Aufrufe an einen MCP-Server zulassen. Nutzen Sie mcp.enforce; dieses Modul arbeitet auf Repositories und Commits.
Die menschliche Entscheidung einholen. Die Freigabe selbst gehört zu coordination.approve; dieses Modul postet das Ergebnis.
Einen einzelnen Branch oder Ref nach Namen absichern. Die Zulassung hier gilt je Repository; nur namespace kennt geschützte Branch-Namen.
Nachweis
Garantien
Was es leistet und was nicht
Ein Modul ist eine starke Aussage über etwas Enges. Verlassen Sie sich genau darauf.
Es leistet
Das Urteil ist das von Intralock, mit llm: false; derselbe Akteur, dasselbe Repo und dieselbe Aktion ergeben dieselbe Antwort wie bei coordination.admit.
Jedes enforce hängt ein Ereignis github.enforce mit Repo, sha, Ergebnis und Grund ans Ledger an.
Eine Ablehnung für einen Akteur entfernt nie einen sha-Pin eines anderen Akteurs, sodass ein Fremder eine Freigabe nicht aufheben kann.
Ein Schreibvorgang, der Bestätigung braucht, bleibt ausstehend, wenn er von einem Webhook kommt; nur ein ausdrückliches enforce postet den Fehlschlag.
Es leistet nicht
Dass ein Merge blockiert ist. Der Check blockiert nur, wenn der Branch-Schutz intramedial/acp verlangt; das Gateway kann das nicht für Sie setzen.
Dass der Code im Commit sicher ist. Die Entscheidung betrifft, wer schreiben darf, nicht was geschrieben wurde.
Dass ein Urteil eine Freigabe widerruft. revoke ist ein ausdrücklicher Aufruf, der durch eine Freigabe abgesichert ist; kein Urteil löst ihn aus.
Dass ein Push abgesichert ist. Der Push-Ingest erfasst nur; die Ereignisse für Pull Request, Check, Workflow und Merge Queue sind die, die durchsetzen.
Details
Bauhinweise
Bevor Sie bauen
Was gepostet wird
Mit gebundener GitHub App ist das Urteil ein Check Run namens intramedial/acp, mit dem Commit-Status als Rückfall. Ein GITHUB_PAT postet nur den Commit-Status.
Der sha-Pin
Ein erlaubter Schreibvorgang erfasst den Akteur zu Repo, Aktion und sha. Ein späteres Ereignis für diesen sha kann dann ein Token für denselben Akteur prägen, ohne zweiten Menschen.
Webhook-Ereignisse
Ereignisse zu Pull Request, Check Suite, Check Run, Workflow Run und Merge Group lassen den Head als write zu und posten einen ausstehenden Status, bis ein Token eintrifft.
Berechtigungen
revoke braucht policies.approve und eine Dual-Control- oder adjudizierte warrant. enforce, ingest und status nehmen keine eigene Rolle.
Limits und Bemessung
Check Run und Status werden nur gepostet, wenn ein PAT- oder App-Credential gebunden ist; sonst sind beide Felder null.
status liefert die letzten 50 eingelesenen Einträge, gefiltert nach repo oder sha, falls angegeben.
revoke ohne warrant liefert 403, da freigabegesicherte Routen standardmäßig geschlossen sind.
namespace nimmt actorDid und branch; ohne Akteur liefert es 400.
Zugriff
API & MCP
REST und MCP
Authentifizieren Sie sich mit einem Workspace-API-Schlüssel als Bearer-Token. Die Basis-URL ist https://api.intramedial.com.
REST-Endpunkte
POST/api/v1/acp/github/enforceEine Repository-Aktion zulassen und das Urteil an GitHub posten.
POST/api/v1/acp/github/ingestEinen GitHub-Webhook erfassen und die Ereignisse durchsetzen, die es verlangen.
GET/api/v1/acp/github/statusJüngste Audit-Einträge, den letzten Head und den Pin-Halter lesen.
POST/api/v1/acp/github/revokeDen vom Akteur gehaltenen sha-Pin entfernen und einen Fehlschlag posten.
MCP-Aktionen
MCPcoordination.github.enforceEine Repository-Aktion von einem Agenten aus zulassen.
MCPcoordination.github.ingestEinen Webhook-Body von einem Agenten aus erfassen.
MCPcoordination.github.statusJüngste GitHub-Audit-Einträge von einem Agenten aus lesen.