Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
5fb4670
[lint] implement FromStr trait
timonburkard Jan 21, 2026
441d597
[lib] refactoring `new`: separated logic from cli
timonburkard Jan 21, 2026
1e74ecc
[lib] refactoring: git_commit should not contain print
timonburkard Jan 21, 2026
27052d1
[lib] refactoring `set`: separated logic from cli
timonburkard Jan 21, 2026
c8699dd
[lib] refactoring: `set` should not contain print
timonburkard Jan 21, 2026
76f24f5
[lib] refactoring `link`: separated logic from cli
timonburkard Jan 21, 2026
7a5b118
[lib] refactoring `list`: separated logic from cli
timonburkard Jan 21, 2026
a41148e
[lib] updated
timonburkard Jan 21, 2026
53dd7e0
[lib] refactoring `init`: separated logic from cli
timonburkard Jan 21, 2026
c1c3fe5
[lib] refactoring `show`: separated logic from cli
timonburkard Jan 21, 2026
213629d
[lib] refactoring `edit`: separated logic from cli
timonburkard Jan 21, 2026
6577d2b
[lib] refactoring: load_settings() should not contain print
timonburkard Jan 21, 2026
a02773f
[structure] created hierarchic structure under `src/`
timonburkard Jan 21, 2026
0ea2403
[doc] updated README
timonburkard Jan 21, 2026
0c3542a
[doc] updated CHANGELOG
timonburkard Jan 21, 2026
c2f441f
[lib] reexport pub API for easier/direct usage of the cmd functions
timonburkard Jan 24, 2026
8b3d131
[lib] use result structs
timonburkard Jan 24, 2026
8f6adc2
[issue] set state,assignee #58 -- [config] `export_csv_separator` sho…
timonburkard Jan 27, 2026
dd2d53d
[config] moved `export_csv_separator` to settings
timonburkard Jan 24, 2026
b23143f
[issue] set state #58 -- [config] `export_csv_separator` should be mo…
timonburkard Jan 27, 2026
b70699f
[issue] updated config acc. to YAML schema v2
timonburkard Jan 27, 2026
0082cf0
[model] move cli-specific helpers to `cli/util.rs`
timonburkard Jan 24, 2026
b7cb6ec
[model] move cmd-specific helpers to `cmd/util.rs`
timonburkard Jan 24, 2026
e078fe1
[model] move one directory up
timonburkard Jan 24, 2026
dae4311
[cmd] move types into crate
timonburkard Jan 24, 2026
e257fe0
[doc] updated README
timonburkard Jan 24, 2026
d19e2db
[minor] comments
timonburkard Jan 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions .gitissues/config.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# YAML schema version: Don't change manually!
_version: 1
_version: 2

# Automatically create a git commit after mutating commands
commit_auto: true
Expand Down Expand Up @@ -45,9 +45,6 @@ relationships:
child:
link: parent

# Separator used when exporting to CSV
export_csv_separator: ','

# ID generation strategy (always u32)
# Options:
# - sequential: Sequential numbers (1, 2, 3, ...)
Expand Down
6 changes: 3 additions & 3 deletions .gitissues/issues/0000000058/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
_version: 1
id: 58
title: '[config] `export_csv_separator` should be moved to local user settings'
state: new
state: resolved
type: ''
labels: []
reporter: t.burkard
assignee: ''
assignee: t.burkard
priority: ''
due_date: ''
relationships: {}
created: 2026-01-27T20:34:16Z
updated: 2026-01-27T20:34:16Z
updated: 2026-01-27T20:41:31Z
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [unreleased]

### Changed

- [config] moved `export_csv_separator` from config to settings --> YAML schema v2 (#58)
- [structure] added lib, implemented separation between cmd and cli

## [v0.7.2] - 2026-01-20

### Added
Expand Down
8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ keywords = ["git", "issue", "tracker", "cli", "rust"]
categories = ["development-tools"]
exclude = [".gitissues/"]

[lib]
name = "git_issue"
path = "src/lib.rs"

[[bin]]
name = "git-issue"
path = "src/cli/main.rs"

[dependencies]
chrono = "0.4.42"
clap = { version = "4.5.53", features = ["derive"] }
Expand Down
41 changes: 24 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ This file holds the project configuration. It should be version-controlled.

```yaml
# YAML schema version: Don't change manually!
_version: 1
_version: 2

# Automatically create a git commit after mutating commands
commit_auto: true
Expand Down Expand Up @@ -240,9 +240,6 @@ relationships:
child:
link: parent

# Separator used when exporting to CSV
export_csv_separator: ','

# ID generation strategy (always u32)
# Options:
# - sequential: Sequential numbers (1, 2, 3, ...)
Expand All @@ -266,7 +263,6 @@ priority_default: ''
- `states` (list of strings): Available issue states. The default for new issues is the first element.
- `types` (list of strings): Available issue types. The default for new issues is empty.
- `relationships` (object): Available relationships between issues
- `export_csv_separator` (char): Separator for CSV file exports
- `id_generation` (string): ID generation strategy. Supports options:
- `sequential`: Sequential numbers (1, 2, 3, ...)
- `timestamp`: Timestamps in seconds since 2025-01-01 (in teams this reduces the chance of merge conflicts)
Expand Down Expand Up @@ -297,7 +293,7 @@ It is automatically created when `git issue init` is executed or when it is miss

```yaml
# YAML schema version: Don't change manually!
_version: 1
_version: 2

# Editor to edit/show issue descriptions
# git = use the git-configured editor
Expand All @@ -308,6 +304,9 @@ editor: git
# Must be in users.yaml:users:id or ''
user: alice

# Separator used when exporting to CSV
export_csv_separator: ','

# Formatting options for list command
# User may change colors
# User may add/remove keys under state, priority and type
Expand Down Expand Up @@ -337,6 +336,7 @@ list_formatting:

- `editor` (string): External text editor (set `git` to use configured git core.editor)
- `user` (string): User name, used per default as reporter for new issues (can be '')
- `export_csv_separator` (char): Separator for CSV file exports
- `list_formatting` (object):
- `header_separator` (bool): Whether or not to print a dashed line as header row separator
- `colors` (object): available colors: `bold`, `[bright_]white`, `[bright_]black`, `[bright_]red`, `[bright_]green`, `[bright_]yellow`, `[bright_]blue`, `[bright_]magenta`, `[bright_]cyan`
Expand Down Expand Up @@ -436,22 +436,29 @@ cargo test

### 5.2) Architecture

- `config/`
- `config/` -- Configuration files
- `config-default.yaml` -- Default configuration, copy-pasted at `git issue init` to `.gitissues/`
- `description-default.md` -- Default description template, copy-pasted at `git issue init` to `.gitissues/`
- `users-default.yaml` -- Default users, copy-pasted at `git issue init` to `.gitissues/`
- `settings-default.yaml` -- Default local user settings, copy-pasted at `git issue init` to `.gitissues/`
- `src/`
- `main.rs` -- CLI parsing with clap
- `src/` -- Source files
- `lib.rs` -- Public library
- `model.rs` -- Shared data types, functions and utilities
- `edit.rs` -- Edit issue description (markdown) with external text editor
- `init.rs` -- Initialize `.gitissues/` directory and copy default config
- `link.rs` -- Change relationships between issues
- `list.rs` -- List all issues
- `new.rs` -- Create new issues
- `set.rs` -- Change issue meta fields
- `show.rs` -- Show all issue information (markdown) with external text editor
- `tests/` -- Automated tests
- `cmd/` -- Core of the application: Commands (CRUD)
- `edit.rs` -- Edit issue description (markdown) with external text editor
- `init.rs` -- Initialize `.gitissues/` directory and copy default config
- `link.rs` -- Change relationships between issues
- `list.rs` -- List all issues
- `new.rs` -- Create new issues
- `set.rs` -- Change issue meta fields
- `show.rs` -- Show all issue information (markdown) with external text editor
- `util.rs` -- Utility functions for CMD
- `cli/` -- Binary: CLI -- Command Line Interface
- `main.rs` -- Main entry for CLI: parsing with clap
- `cli.rs` -- Functionality for CLI
- `util.rs` -- Utility functions for CLI
- `web/` -- Binary: WEB -- Local web server (🚧)
- `tests/` -- Automated tests

### 5.3) Dependencies

Expand Down
5 changes: 1 addition & 4 deletions config/config-default.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# YAML schema version: Don't change manually!
_version: 1
_version: 2

# Automatically create a git commit after mutating commands
commit_auto: true
Expand Down Expand Up @@ -44,9 +44,6 @@ relationships:
child:
link: parent

# Separator used when exporting to CSV
export_csv_separator: ','

# ID generation strategy (always u32)
# Options:
# - sequential: Sequential numbers (1, 2, 3, ...)
Expand Down
5 changes: 4 additions & 1 deletion config/settings-default.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# YAML schema version: Don't change manually!
_version: 1
_version: 2

# Editor to edit/show issue descriptions
# git = use the git-configured editor
Expand All @@ -10,6 +10,9 @@ editor: git
# Must be in users.yaml:users:id or ''
user: ''

# Separator used when exporting to CSV
export_csv_separator: ','

# Formatting options for list command
# User may change colors
# User may add/remove keys under state, priority and type
Expand Down
Loading