A Rust based Ollama wrapper for generating git related shit
Go to file
2025-01-12 13:12:38 -05:00
src "feat(pr_handler): Add PR title and description generation \n\nPR Description:\nAdded PR title and description generation to the PrHandler struct. The new method now returns an optional tuple containing the PR title and description. The PR title is generated based on the change type and scope, while the description is generated in markdown format to describe the changes made in this diff." 2025-01-12 13:12:38 -05:00
.gitignore init commit with logic 2024-12-10 08:20:22 -05:00
Cargo.lock Task(main): Remove unused dependencies. 2024-12-10 12:06:43 -05:00
Cargo.toml Task(main): Remove unused dependencies. 2024-12-10 12:06:43 -05:00
README.md update readme 2025-01-11 08:20:47 -05:00

Ferro

A rust base llm wrapper for generating git commits and descriptions

How to read

This readme can be read As-Is but youll be missing some nice visuals. If you want to see those, you need two tools:

  1. graph-easy
  2. slides

figure out how to get those installed on your OS and then come back, otherwise, continue on...

Fun Facts

Scientific Roots

  1. Ferrum: Latin for iron, reflecting Rust's iron/oxidation themes.
  2. Ferro-: Greek prefix meaning iron or iron-containing.

Relevant Connections

  1. Ferrocene: An iron-containing compound.
  2. Ferroelectric: Materials exhibiting iron-like electrical properties.

Simple, Modern Sound

"Ferro" is concise, memorable and has a technical feel, fitting for a Rust CLI tool.

continue to architecture on next page


Architecture

I just wanted to split things up in a cohesive way. Where one node is resposible for its own thing and returns whatever data, it creates, to its caller

this is a graph demonstrating the mvp architecture 

~~~graph-easy --as=boxart
graph { flow: east; }
[main]->{start:front; end:back}[arg parser]
[arg parser] -> {start:front,0; end:back;} [pr handler]
[arg parser] -> {start:front,0; end:back;} [commit handler]
[pr handler], [commit handler] -> {start:front; end:back,0;} [ml interface]
[ml interface] -> [out]

[commit handler] <=> [banana]
[pr handler] <=> [apple]
~~~

continue to next slide to see mvp v2 architecture


this is a graph demonstrating the mvp (v2) architecture 

~~~graph-easy --as=boxart
graph { flow: east; }
[main]->{start:front; end:back}[arg parser]
[arg parser] -> {start:front,0; end:back;} [pr handler]
[arg parser] -> {start:front,0; end:back;} [commit handler]
[pr handler], [commit handler] -> {start:front; end:back,0;} [ml interface]
[ml interface] -> [out]

[commit handler] <=> [banana]
[pr handler] <=> [apple]
[config loader]{ origin: main; offset: 0,-2; } -> {start:right; end:left} [main] 
[interactive] { origin: arg parser; offset: 0,-2; } <== no args ==> {start:right; end:left}[arg parser]
~~~