SourceAnt

System- und repositoryübergreifende Reviews

Prüfen Sie eine Änderung gegen jedes Repository, das sie erreicht.

Ein Pull Request bindet ein Repository. Ihre Änderung endet nicht dort. SourceAnt zeichnet die Dienste, Komponenten, Queues und Datenspeicher auf, die zusammenarbeiten, und verwendet dann diese Karte, um eine Änderung gegen alles zu überprüfen, was sie erreicht, und benennt die Repositories, die es nicht lesen konnte, anstatt sie zu überspringen.

Jeder Entwickler und jeder Agent inklusive, nie pro Seat · Ihre eigenen Modellschlüssel

Systemarchitektur
SourceAnt-System-Canvas mit Diensten, Datenspeichern und vorgeschlagenen Beziehungen

Die Überprüfung

Ein Pull Request ist an ein Repository gebunden. Ihre Änderung endet dort nicht.

Jedes Review-Tool liest den Diff, der vor ihm liegt. Wenn der Vertrag, den Sie gerade geändert haben, von einem Service in einem anderen Repository konsumiert wird, ist der Diff die Hälfte der Geschichte, die Ihnen das nicht sagen kann. SourceAnt beginnt bei den geänderten Dateien, folgt dem Graphen zu allem, was sie erreichen, und liest auch dort.

Wohin die Änderung reicht

Ausgehend von den geänderten Dateien folgt das Review dem Graphen zu den Services, Queues und Datastores am anderen Ende. Bestätigte Verknüpfungen werden als solche ausgewiesen. Ausstehende werden als Frage aufgeworfen, niemals als Tatsache.

Der Code, den es dort gelesen hat

In jedem Repository, das es erreicht, sucht es nach dem Code, der das berührt, was Sie geändert haben, und zitiert ihn mit dem Repository und der Revision, aus der er stammt. Sie können die genannte Datei öffnen.

Was es nicht lesen konnte

Ein Repository, das nicht erreicht wurde, wird im Review mit dem Grund genannt. Ein Reviewer, der stillschweigend die Hälfte Ihres Systems überspringt, ist schlechter als einer, der die Lücke eingesteht.

Woher die Verknüpfungen stammen

Gelesen aus den Manifesten, die Ihre Repositories bereits veröffentlichen, über die API. Nichts wird geklont, nichts wird ausgeführt, und kein Modell rät. Jede Kante nennt die Datei, aus der sie stammt, und nichts wird ohne eine Person bestätigt.

Ein Schwester-Repository wird in der Revision gelesen, in der es zuletzt indexiert wurde, weil ein Pull Request nur seine eigene fixiert. Wo diese Revision alt ist, sagt das Review es, statt sie als aktuell darzustellen.

Woher es das weiß

Die Karte, die das Review durchläuft, und wie sie ehrlich bleibt

Ein Review kann nur so weit reichen wie der Graph hinter ihm. Jede andere Architekturkarte ist eine Momentaufnahme, die jemand einmal erstellt hat. Diese hier ist ein Kreislauf: die Quelle der Wahrheit lesen, die Differenz vorschlagen, auf Sie warten und eingestehen, wenn sie veraltet ist.

  1. 01

    Es liest, was Ihre Repositories bereits veröffentlichen

    package.json, composer.json, go.mod, requirements.txt und pyproject.toml, abgerufen über die GitHub API. Ein Manifest, das sich nicht parsen lässt, schlägt nichts vor, statt das gesamte System scheitern zu lassen.

  2. 02

    Es schlägt vor, und nur dort, wo es auf eine Datei zeigen kann

    Eine Abhängigkeit wird vorgeschlagen, wenn ein Repository einen Namen deklariert, unter dem sich ein anderes selbst veröffentlicht. Jeder Vorschlag nennt das Manifest, aus dem er stammt, sodass Sie ihn durch Öffnen einer Datei prüfen können.

  3. 03

    Sie bestätigen ihn

    Vorschläge kommen als ausstehend an und bleiben ausstehend. Nichts hier bestätigt sich selbst. Senden Sie zuerst persist: false, wenn Sie den Vorschlag sehen möchten, ohne den Graphen überhaupt zu berühren.

  4. 04

    Es sagt Ihnen, wenn es nicht mehr zutrifft

    Ein Teil, der als veraltet gilt, wird eher als veraltet markiert denn gelöscht. Der Eintrag sagt, dass er unsicher ist, statt stillschweigend falsch zu werden – das ist das Versagen, das jede Architekturzeichnung hat.

Belege, keine Behauptungen

Jede Kante zeigt ihre Arbeit

Eine Beziehung, die Sie nicht prüfen können, ist ein Gerücht. Jede trägt mit sich, woher sie stammt, wie sicher sie ist und ob jemand sie abgesegnet hat.

billing-api depends_on shared-auth ausstehend
Status
proposed, approved oder retired. Wo der Teil steht, gewählt von Ihrem Team und nicht vom Parser.
Confidence
0 bis 1. Ein Teil, den jemand deklariert hat, ist 1. Ein abgeleiteter ist niedriger, und der Grund wird festgehalten.
Stale
Als veraltet geltend. Behalten und markiert statt gelöscht, damit Sie sehen können, was gealtert ist, und entscheiden können.
Evidence
Die Datei, das Manifest, die Revision. Plus der exakte Name, der deklariert wurde, und welches Ökosystem ihn ausgegeben hat.
confidence 0.6

Ein bloßer Name ist kein Beweis dafür, dass die Abhängigkeit zu Ihnen aufgelöst wird. Eine öffentliche Registry kann denselben Namen tragen, und so funktioniert Dependency Confusion, weshalb ein nicht beanspruchter Name mit geringerer Confidence vorgeschlagen statt behauptet wird.

Bewusst begrenzt

Eine Antwort, klein genug, um darauf zu handeln

Eine Traversierung gibt einen Teilgraphen zurück, den Sie untersuchen oder einem Modell geben können. Sie sagt Ihnen, wann sie stoppen musste, statt stillschweigend einen halben Graphen zurückzugeben.

Feld Standard Range
depth 2 1 bis 3
direction both outbound, inbound, both
minimum_confidence 0.0 0 bis 1
include_stale false on oder off
entity_limit 50 bis zu 50
relationship_limit 100 bis zu 100

Lesen Sie den Graphen direkt mit /api/topology/search und /api/topology/traverse, oder lassen Sie einen Agenten denselben Teilgraphen über ein Context Pack via MCP abrufen.

Warum kein Katalog

Ein Katalog ist eine Kopie, die jemand eingetippt hat. Dies hier wird aus dem Code gelesen.

Entwicklerportale verlangen von einer Person, jeden Dienst zu registrieren, und vertrauen dem Eintrag dann für immer. Der Eintrag verfällt nicht laut. Er passt einfach nicht mehr zum Code, und niemand erfährt davon bis zu einem Vorfall.

Ein registrierter Katalog
  • Jemand tippt den Dienst einmal ein
  • Genauigkeit hängt davon ab, wer sich erinnerte
  • Drift ist still
  • Kein Nachweis, warum ein Eintrag als glaubwürdig gilt
SourceAnt Systems
  • Bei jedem Durchlauf aus den Manifesten lesen
  • Genauigkeit trägt eine Zahl, nach der Sie filtern können
  • Drift wird als veraltet markiert
  • Jede Kante nennt die dahinterliegende Datei

Fragen

Repository-übergreifende Prüfung, beantwortet

Was es liest, wie weit es geht und was es tut, wenn es nicht weiterkommt.

Was ist eine repository-übergreifende Überprüfung?

Was Systems möglich macht. Es ist eine Überprüfung, die nicht an dem Repository haltmacht, in dem der Pull Request geöffnet wurde. Sie beginnt bei den geänderten Dateien, folgt den Verbindungen in Ihrem System zu den Diensten, Queues und Datenspeichern am anderen Ende und liest den Code dort. Eine normale Überprüfung sieht einen Diff. Diese sieht, was der Diff erreicht.

Ist das dasselbe wie Multi-Repo-Code-Überprüfung?

Ja. Multi-Repo-Code-Überprüfung, repository-übergreifende Überprüfung und Polyrepo-Überprüfung bezeichnen alle dasselbe Problem: Die Änderung ist in einem Repository und die Konsequenz in einem anderen. Wir sagen repository-übergreifende Überprüfung, weil die Reichweite der Punkt ist, nicht wie viele Repositories Sie zufällig haben.

Wie unterscheidet es sich davon, jedes Repository separat zu überprüfen?

Jedes separat zu überprüfen gibt Ihnen ein Urteil pro Repository und niemanden, der sich ansieht, was zwischen ihnen läuft. Dort sind die Brüche: Eine Seite hat einen Vertrag geändert, den die andere Seite noch erwartet. Eine repository-übergreifende Überprüfung liest beide Seiten in einem Durchgang und zitiert den Code, den sie auf der anderen Seite gelesen hat, mit dem Repository und der Revision, aus der er stammt.

Woher weiß es, welche Repositories zusammenhängen?

Es liest Ihren Code und findet heraus, was zusammengehört. Manche Verbindungen sind offensichtlich, wie wenn ein Repository von einem anderen abhängt. Andere ergeben sich nur aus dem Code. Sie können weitere benutzerdefinierte Verbindungen hinzufügen, und SourceAnt zeigt Ihnen Vorschläge, nachdem es Ihr System betrachtet hat.

Funktioniert es mit einem Monorepo?

Ja. Ein Monorepo zählt als ein Repository, sodass eine Änderung darin bereits gegen den Rest davon überprüft wird. Systems ist in einem Multi-Repo- oder Polyrepo-Setup wichtiger, wo die andere Seite einer Änderung in einem anderen Repository liegt. Sie helfen auch einem Monorepo, das mit etwas außerhalb seines eigenen Baums kommuniziert, wie einem Dienst, einer Queue oder einem Datenspeicher. Sie können diese als Teile hinzufügen, obwohl sie keinen Code zum Lesen haben.

Muss eine Verknüpfung genehmigt werden, bevor eine Überprüfung sie überquert?

Nein. Die Überprüfung überquert sie, ob die Verknüpfung genehmigt ist oder nicht. Die Genehmigung ändert, wie darüber gesprochen werden darf. Eine genehmigte Verknüpfung wird als Tatsache dargestellt, mit der Stelle, an der die Änderung die andere Seite brechen könnte. Eine ausstehende wird als Frage aufgeworfen und enthält keinen Vorschlag.

Was passiert mit einem Repository, das es nicht lesen kann?

Es wird in der Überprüfung genannt, mit dem Grund. Es wird niemals stillschweigend übersprungen. Eine Überprüfung, die die Hälfte Ihres Systems stillschweigend überspringt, sieht genauso aus wie eine, die alles gelesen und nichts gefunden hat. Die üblichen Ursachen: Das Repository wurde nie gelesen, es ist verbunden, aber nicht im selben System, oder die App ist nicht darauf installiert.

Wie aktuell ist der Code, den es im anderen Repository liest?

Ein Schwester-Repository wird in der Revision gelesen, in der es zuletzt indexiert wurde, weil ein Pull Request nur seine eigene fixiert. Wo diese Revision alt ist, sagt das Review es, statt sie als aktuell darzustellen.

Die Einrichtung wird Schritt für Schritt behandelt in dem Leitfaden zur repository-übergreifenden Prüfung.

Ihre Sache

Graph-Snapshots sind portabel, gestreamt und werden beim Eingang validiert, und ein unterbrochener Schreibvorgang wird wiederhergestellt statt halb angewendet zu bleiben.

Abgegrenzt, und immer nur der eigene Bereich

Über MCP ist der Bereich der authentifizierte Prinzipal. Über HTTP ist es ein Workspace-Anspruch auf dem Token, und ein Token ohne einen solchen wird abgelehnt.

Ihr Vokabular, nicht unseres

Ein Teil ist, was Ihre Architektur einen Teil nennt: ein Dienst, eine Queue, ein Datastore, ein Job. SourceAnt zwingt Ihnen keine Art Liste auf.

Verbinden Sie zwei Repositories und lesen Sie eine Prüfung

Richten Sie es auf Repositories, die Sie bereits haben, genehmigen Sie den ersten Vorschlag, öffnen Sie dann eine Änderung an einem von ihnen und sehen Sie, was die Prüfung am anderen erreicht.