fj/cmd
sid d15deaf064 feat: times, branch protection, release assets, milestone issues, notification states
Five parallel tea-parity additions (~1100 LOC):

- fgj time {list,add,delete,reset} (aliases: times, t)
  Tracked time entries. 'list' with no arg uses ListMyTrackedTimes
  across all your repos; with an issue number uses ListIssueTrackedTimes.
  'add' accepts Go duration strings (30m, 1h30m). 'delete' removes a
  single entry by id; 'reset' clears all times on an issue. Confirmation
  on delete/reset unless --yes or no TTY.

- fgj branch {protect,unprotect}
  Branch protection rules. 'protect' idempotently creates-or-edits via
  Get/Create/EditBranchProtection with --require-approvals,
  --require-signed-commits, --dismiss-stale-approvals,
  --block-on-rejected-reviews, --block-on-outdated-branch,
  --push-whitelist, --merge-whitelist, --require-status-checks.
  Empty whitelist flags leave existing rule fields untouched.
  'unprotect' deletes; 404 is a friendly no-op.

- fgj release asset {list,create,delete} (alias: assets)
  Granular attachment management. Resolves the release by tag or
  "latest" using the existing helpers in cmd/release.go. 'create'
  validates all paths up front then uploads each. 'delete' accepts
  numeric ids OR filenames (cross-references the attachment list).
  Per-asset confirmation unless --yes.

- fgj milestone issues {add,remove} (alias: i)
  Associate/disassociate issues with a milestone. Milestone accepted
  as title or numeric id (reuses resolveMilestone from milestone.go).
  'remove' passes EditIssueOption{Milestone: &zero} — the Gitea/Forgejo
  convention for clearing the association. Continues on per-issue
  failure and exits 1 if any failed.

- fgj notification {unread,pin,unpin}
  Complement the existing list/read. Factory pattern over
  ReadNotification(id, NotifyStatus) with three distinct constants.

All five files are self-contained: each has its own init() attaching
to the existing parent cobra.Command (branchCmd, milestoneCmd,
notificationCmd, releaseCmd) without modifying any other file. Built
by parallel sub-agents; all compile, vet, and test clean.
2026-04-19 22:24:53 -06:00
..
actions.go feat: pr approve/reject, repo migrate/template, secret stdin fix, docs 2026-04-19 22:14:43 -06:00
actions_test.go feat: implement workflow list/view/run 2026-01-16 10:52:15 +01:00
admin.go feat: add webhook, repo delete/search, admin, pr clean/resolve/review-comments 2026-04-19 22:01:29 -06:00
aliases.go feat: v0.3.0d — add PR checks, iostreams, aliases, and broad enhancements 2026-03-23 12:42:24 -06:00
api.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
auth.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
branch.go feat: add branch, notification, org, open, whoami commands 2026-04-19 21:27:55 -06:00
branch_protect.go feat: times, branch protection, release assets, milestone issues, notification states 2026-04-19 22:24:53 -06:00
completion.go feat: add completion and manpage commands 2026-01-18 13:11:40 +01:00
errors.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
ios_init.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
issue.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
json.go feat: v0.3.0d — add PR checks, iostreams, aliases, and broad enhancements 2026-03-23 12:42:24 -06:00
label.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
manpages.go feat: add completion and manpage commands 2026-01-18 13:11:40 +01:00
milestone.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
milestone_issues.go feat: times, branch protection, release assets, milestone issues, notification states 2026-04-19 22:24:53 -06:00
notification.go feat: add branch, notification, org, open, whoami commands 2026-04-19 21:27:55 -06:00
notification_states.go feat: times, branch protection, release assets, milestone issues, notification states 2026-04-19 22:24:53 -06:00
open.go feat: add branch, notification, org, open, whoami commands 2026-04-19 21:27:55 -06:00
org.go feat: add branch, notification, org, open, whoami commands 2026-04-19 21:27:55 -06:00
pr.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
pr_approve_reject.go feat: pr approve/reject, repo migrate/template, secret stdin fix, docs 2026-04-19 22:14:43 -06:00
pr_checks.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
pr_clean.go feat: add webhook, repo delete/search, admin, pr clean/resolve/review-comments 2026-04-19 22:01:29 -06:00
pr_diff.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
pr_review.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
pr_review_comments.go feat: add webhook, repo delete/search, admin, pr clean/resolve/review-comments 2026-04-19 22:01:29 -06:00
release.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
release_assets.go feat: times, branch protection, release assets, milestone issues, notification states 2026-04-19 22:24:53 -06:00
repo.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00
repo_create_test.go feat: implement repo create command 2026-03-13 17:44:44 +01:00
repo_delete.go feat: add webhook, repo delete/search, admin, pr clean/resolve/review-comments 2026-04-19 22:01:29 -06:00
repo_migrate.go feat: pr approve/reject, repo migrate/template, secret stdin fix, docs 2026-04-19 22:14:43 -06:00
repo_search.go feat: add webhook, repo delete/search, admin, pr clean/resolve/review-comments 2026-04-19 22:01:29 -06:00
repo_template.go feat: pr approve/reject, repo migrate/template, secret stdin fix, docs 2026-04-19 22:14:43 -06:00
root.go feat(release): v0.4.0 foundations — ldflags version + goreleaser + CI Go 1.24 2026-04-19 21:04:57 -06:00
secret_input.go feat: pr approve/reject, repo migrate/template, secret stdin fix, docs 2026-04-19 22:14:43 -06:00
times.go feat: times, branch protection, release assets, milestone issues, notification states 2026-04-19 22:24:53 -06:00
webhook.go feat: add webhook, repo delete/search, admin, pr clean/resolve/review-comments 2026-04-19 22:01:29 -06:00
whoami.go feat: add branch, notification, org, open, whoami commands 2026-04-19 21:27:55 -06:00
wiki.go chore: migrate module path to public org 2026-04-11 10:34:34 -06:00