Help us shape the future of Go! Take the 2026 Go Developer Survey

gitmark

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2026 License: EUPL-1.2 Imports: 14 Imported by: 0

Documentation

Overview

Package gitmark marque les commits qui contiennent du code écrit par l'agent : des trailers git (AI-Assisted-By, AI-Session) sont ajoutés au message par un hook commit-msg qui ne bloque jamais le commit.

Index

Constants

View Source
const HookScript = `` /* 180-byte string literal not displayed */

HookScript est le hook commit-msg installé par InstallHook. Il s'exécute après l'éditeur : un message laissé vide reste vide (Mark n'y touche pas) et le commit est abandonné. Sans tenon ou en cas d'erreur, il sort avec 0 sans toucher au message.

View Source
const Timeout = 5 * time.Second

Timeout borne une exécution complète de Mark.

Variables

View Source
var ErrHookExists = errors.New("a commit-msg hook already exists")

ErrHookExists signale un hook commit-msg différent déjà installé.

Functions

func InstallHook

func InstallHook(repoRoot string, force bool) (string, error)

InstallHook installe HookScript (mode 0755) comme hook commit-msg dans le dossier de hooks effectif du dépôt contenant repoRoot (core.hooksPath respecté) et renvoie son chemin. Un hook identique est laissé tel quel ; un hook différent donne ErrHookExists, sauf avec force : il est alors renommé en commit-msg.bak (un .bak précédent est écrasé). Un ancien hook prepare-commit-msg de tenon (identique à legacyHookScript) est supprimé.

func Mark

func Mark(msgFile, dir, sessionsDir string) error

Mark ajoute au fichier msgFile les trailers des fichiers indexés du dépôt contenant dir écrits par l'agent (sessions de sessionsDir). Sans correspondance, ou si le message est vide (seulement des commentaires, des lignes vides et des trailers : le commit doit rester abandonné), le message n'est pas modifié. L'exécution est bornée par Timeout.

func MarkContext

func MarkContext(ctx context.Context, msgFile, dir, sessionsDir string) error

MarkContext est Mark borné par ctx : une fois ctx expiré, il rend la main sans attendre une lecture de session bloquée, et le message n'est plus modifié.

func Trailers

func Trailers(staged []string, repoRoot string, writes []Write) []string

Trailers renvoie les trailers des fichiers indexés staged (chemins relatifs à repoRoot) écrits par l'agent : une ligne AI-Assisted-By par triplet (modèle, fournisseur, pays) distinct, puis une ligne AI-Session par session distincte, chaque groupe trié. Aucune correspondance : nil.

Types

type Write

type Write struct {
	Path, HashAfter, SessionID, Model, Provider, Country string
	TS                                                   time.Time
}

Write est un fichier écrit avec succès par l'agent (write_file ou edit_file) au cours d'une session.

func AgentWrites

func AgentWrites(sessionsDir, projectRoot string) ([]Write, error)

AgentWrites renvoie les écritures réussies (ToolResult write_file ou edit_file, sans erreur, avec un chemin) de toutes les sessions du projet projectRoot : sessions ouvertes à sa racine ou dans un de ses sous-dossiers. Les sessions illisibles et les entrées qui ne sont pas des fichiers réguliers (FIFO, lien, dossier…) sont ignorées ; un dossier absent donne une liste vide.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL