Crate git_adr

Crate git_adr 

Source
Expand description

git-adr: Architecture Decision Records management using git notes

This crate provides a library and CLI tool for managing Architecture Decision Records (ADRs) stored in git notes. ADRs are stored in refs/notes/adr and can be synchronized across remotes like regular git content.

§Features

  • Store ADRs in git notes (non-intrusive, no file clutter)
  • Multiple ADR formats (MADR, Nygard, Y-Statement, Alexandrian, etc.)
  • Full-text search and indexing
  • Binary artifact attachments
  • Sync with remotes
  • Optional AI integration for drafting and suggestions
  • Optional wiki sync (GitHub, GitLab)
  • Export to multiple formats (Markdown, JSON, HTML, DOCX)

§Example

use git_adr::core::{Git, NotesManager, ConfigManager};

// Initialize git executor
let git = Git::new();

// Load configuration
let config = ConfigManager::new(git.clone()).load()?;

// Create notes manager
let notes = NotesManager::new(git, config);

// List all ADRs
let adrs = notes.list()?;
for adr in adrs {
    println!("{}: {}", adr.id, adr.title());
}

Modules§

ai
AI-powered features for git-adr.
cli
CLI command definitions and handlers.
core
Core functionality for git-adr.
export
Export functionality for git-adr.
wiki
Wiki synchronization for git-adr.

Enums§

Error
Errors that can occur in git-adr operations.

Type Aliases§

Result
Result type alias for git-adr operations.