Summary
Introduce support for configuration files in llm-commit to allow users to define default settings such as commit message schemes and default hints.
Expected Benefits :
- simplifies usage by minimizing repeated command-line options.
- Enables project-specific or user-specific defaults
Problem
Currently, all configuration options for llm-commit (e.g., message schemes, hints) must be specified via command-line arguments. This requires users to repeatedly provide the same options, which can be tedious and error-prone, especially in larger projects or across multiple repositories.
Proposed solution
Implement a configuration file system with support for:
- System-global config:
/etc/llm-commit/config.yml
- User-global config:
$HOME/.config/llm-commit/config.yml
- Per-project config: Located in the repository’s top-level directory (same directory as
.git)
- Explicit config file: Allow users to specify an alternate config file via
-c FILE or --config FILE
Configuration options supported:
- Default message format (e.g.,
default, semantic, conventional, etc.)
- Default hint text for context
Priority rule:
- Command-line arguments always override values from configuration files.
- Priority order:
Command-line > Per-project config > User-global config > System-global config
Example usage:
# config.yml example
format: semantic
hint: "General code cleanup and refactoring."
llm commit --config ./custom-config.yml
Possible considerations
- Error handling for invalid/missing configuration files.
- Backward compatibility (to ensure existing workflows remain unaffected).
Summary
Introduce support for configuration files in
llm-committo allow users to define default settings such as commit message schemes and default hints.Expected Benefits :
Problem
Currently, all configuration options for
llm-commit(e.g., message schemes, hints) must be specified via command-line arguments. This requires users to repeatedly provide the same options, which can be tedious and error-prone, especially in larger projects or across multiple repositories.Proposed solution
Implement a configuration file system with support for:
/etc/llm-commit/config.yml$HOME/.config/llm-commit/config.yml.git)-c FILEor--config FILEConfiguration options supported:
default,semantic,conventional, etc.)Priority rule:
Command-line > Per-project config > User-global config > System-global configExample usage:
Possible considerations