Commit graph

37 commits

Author SHA1 Message Date
bc2b1bd3c1 add API and CLI to get & set done-time of an issue 2025-07-16 21:51:27 -06:00
3b33ed41f5 Issue: add done_time field
This records the DateTime that the issue moved to the Done state (if any).
2025-07-16 21:50:44 -06:00
3df76b89df rename Issue and Comment timestamp to creation_time
This is to make room for a second timestamp that records when the issue
was marked Done.
2025-07-16 21:50:44 -06:00
5e5508a2ee Issue: make a helper function to commit an Issue
This improves code reuse and streamlines the code a bit.
2025-07-16 21:50:42 -06:00
733100fefb add the ID field back into the Issue struct 2025-07-15 10:53:52 -06:00
490f946ef6 don't open an editor is stdin or stdout is not a terminal 2025-07-13 10:38:52 -06:00
9d4409c008 ent list: add filtering based on tags 2025-07-12 14:24:40 -06:00
2f1636db55 add Issue::add_tag() and Issue::remove_tag() 2025-07-12 12:28:59 -06:00
b02807eaca Issue: add tags field 2025-07-12 12:28:53 -06:00
665f02cbe8 when changing state, include old state in git log message
Before this commit:
    change state of issue f3990ac13cd93a925f2a66e6a72eb0f2 to backlog

After this commit:
    change state of issue 406e2330695040fed5fdbcaae5d2b331, new -> inprogress
2025-07-12 10:02:51 -06:00
d642004ee0 refactor ent comment
Instead of a two-step process handled by the application
(`Issue::new_comment()` and `Comment::set_description()` or
`Comment::edit_description()`), make a simpler-to-use single-step
`Issue::add_comment()`.

Move the implementation details from Issue to Comment.

Better log message when adding a comment.
2025-07-11 13:07:47 -06:00
1c8d994fd9 better ent assign log message 2025-07-11 12:49:58 -06:00
ab86e6369c Issue::set_state(): better git commit message 2025-07-11 11:50:33 -06:00
1477322f81 Issue: refactor to simplify & make better git log messages
This starts cleaning up the Issue API.

* Start separating the public API from the internal API.

* Make `Issue::new()` and `Issue::edit_description()` better behaved,
  simpler, reduce code duplication, and also produce better git log
  messages.

* Update `ent` to call the changed `new()` function.

* Add some comments documenting the Issue API.

* `ent new` and `ent edit` now use the editor specified by the EDITOR
  environment variable, if any.  Defaults to `vi` if unspecified.
2025-07-11 11:50:26 -06:00
7b6efdf925 rename git::add_file() to just add(), it can add directories too 2025-07-11 10:17:11 -06:00
211bf92dde Issue: handle empty description from user
This fixes issue a26da230276d317e85f9fcca41c19d2e.
2025-07-09 22:33:58 -06:00
d21b811bee add ent assign ISSUE PERSON 2025-07-08 20:59:02 -06:00
645062d10c add optional 'assignee' to Issue 2025-07-08 20:59:02 -06:00
e8b37cd86a add author and timestamp to Issue 2025-07-08 20:59:02 -06:00
7acd94f7c0 add author to Comment 2025-07-08 20:59:02 -06:00
be362517fb give Comment a timestamp, display in chronological order
This commit makes a couple of changes:

- `ent show ISSUE` now displays the Issue's Comments in chronological
  order

- the Comment struct now includes a timestamp, which is the Author Time
  of the oldest commit that touches the comment's directory

- the Issue struct now stores its Comments in a sorted Vec, not in
  a HashMap

- The Comment's uuid moved into the Comment struct itself, instead of
  being the key in the Issue's HashMap of Comments
2025-07-08 18:42:14 -06:00
seb
431c67d43d Merge pull request 'ent list now accepts a filter, default "state=New,Backlog,Blocked,InProgress"' (#10) from filter-list into main
Reviewed-on: #10
2025-07-08 18:41:19 -06:00
ccabfa4ec8 remove an old debug log message from Issue::new_comment() 2025-07-08 10:50:37 -06:00
7d9284bf91 ent list now accepts a filter, default "state=New,Backlog,Blocked,InProgress" 2025-07-07 23:46:14 -06:00
50509dcf59 basic comment support in lib 2025-07-07 21:16:08 -06:00
seb
bd41704906 Merge pull request 'Add User Control Over State Transitions' (#7) from 03/state-transitions into main
Reviewed-on: #7
2025-07-07 18:13:06 -06:00
a6d2f7d1e8 issue.rs: add fmt::Display for State 2025-07-07 13:29:09 -06:00
ed1b4488b2 issue.rs: add state getter/setter 2025-07-07 13:29:01 -06:00
172055c480 always render issue UUIDs as 128 bit hex numbers 2025-07-07 12:53:05 -06:00
seb
343e43a762 Merge pull request 'Use Logging Crate To Avoid STDOUT Spam' (#5) from 03/logging into main
Reviewed-on: #5
2025-07-07 12:45:33 -06:00
1e5d328ab4 add logging crate to reduce unnecessary stdout spam 2025-07-07 12:31:09 -06:00
09373cda56 add ent new 2025-07-06 00:22:30 -06:00
5e482edb5c rename ReadIssueError to just IssueError
Error handling is pretty broken in this project :-(
2025-07-06 00:22:30 -06:00
1f4456fcaf teach Issue to know what dir it lives in
The Issue struct is a cache of files on disk.  There is never an Issue
without a directory to live in.

This commit adds a field to Issue to track what that directory is, so
that we can update those filew when we change the Issue, and commit the
changes to git.
2025-07-06 00:22:30 -06:00
559e70077e "title" is just the first line of "description" now 2025-07-05 22:40:28 -06:00
d94c991eaa add dependency tracking to issue type 2025-07-05 21:19:18 -06:00
b9979f5e9e start adding Issue struct
This abstracts a single issue.
2025-07-05 21:18:25 -06:00