fj/CHANGELOG.md
sid 95da06c003 feat: v0.3.0c — add labels, milestones, wiki, issue dependencies
New commands:
- fgj label list/create/edit/delete
- fgj milestone list/view/create/edit/delete
- fgj wiki list/view/create/edit/delete

Enhanced:
- fgj issue edit --add-dependency/--remove-dependency
2026-03-21 21:50:24 -06:00

8.3 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.3.0c - 2026-03-21

Added

Label Management

  • fgj label list - List repository labels
  • fgj label create - Create a label with color and description
  • fgj label edit - Edit label name, color, or description
  • fgj label delete - Delete a label

Milestone Management

  • fgj milestone list - List milestones with state filtering
  • fgj milestone view - View milestone details
  • fgj milestone create - Create a milestone with description and due date
  • fgj milestone edit - Edit milestone title, description, due date, or state
  • fgj milestone delete - Delete a milestone

Wiki Management

  • fgj wiki list - List wiki pages
  • fgj wiki view - View wiki page content
  • fgj wiki create - Create a wiki page from flag or file
  • fgj wiki edit - Edit a wiki page
  • fgj wiki delete - Delete a wiki page

Issue Dependencies

  • fgj issue edit --add-dependency <number> - Add issue dependency
  • fgj issue edit --remove-dependency <number> - Remove issue dependency

0.3.0b - 2026-03-21

Added

Repository Management

  • fgj repo edit - Edit repository settings (visibility, description, homepage, default branch)

Fixed

  • fgj repo create --public flag was defined but never read; now properly wired up

0.3.0a - 2026-03-21

Added

Raw API Access

  • fgj api <endpoint> - Make authenticated REST API requests to any Forgejo/Gitea endpoint
    • HTTP method selection (--method/-X), auto-switches to POST when fields are provided
    • JSON field assembly (--field/-f) with type inference (bool, int, float, null, string)
    • Raw string fields (--raw-field/-F)
    • Request body from file or stdin (--input)
    • Custom headers (--header/-H)
    • Path interpolation ({owner}, {repo}) from git context
    • Response header display (--include/-i)

Pull Request Management

  • fgj pr diff <number> - View the diff for a pull request
    • Colorized output (--color auto/always/never)
    • Changed file names only (--name-only)
    • Diffstat summary (--stat)
  • fgj pr comment <number> - Add a comment to a pull request
    • Body from flag (--body/-b) or file (--body-file, - for stdin)
    • JSON output (--json)
  • fgj pr review <number> - Submit a review on a pull request
    • Approve (--approve/-a), request changes (--request-changes/-r), or comment (--comment/-c)
    • Body from flag or file
    • JSON output (--json)

Agentic / Machine-Readable Output

  • --json-errors global flag for structured JSON error output on stderr
    • Error codes: auth_required, not_found, api_error, invalid_input, git_detection_failed, network_error
    • HTTP status code and detail included when available
    • Automatic mapping of API errors (401/403 → auth_required, 404 → not_found)

0.3.0 - 2026-03-13

Added

Forgejo Actions

  • fgj actions run watch <run-id> - Poll a run until completion
  • fgj actions run rerun <run-id> - Trigger a rerun of a workflow run
  • fgj actions run cancel <run-id> - Cancel an in-progress workflow run
  • fgj actions workflow enable <workflow> - Enable a workflow
  • fgj actions workflow disable <workflow> - Disable a workflow

Repository Management

  • fgj repo create <name> - Create a new repository with full option set: --private/--public, --description, --add-readme, --gitignore, --license, --homepage, --clone, --team

Issue Management

  • fgj issue create -l <label> - Assign labels when creating an issue
  • fgj issue edit --add-label / --remove-label - Add or remove labels on existing issues
  • fgj issue close -c <comment> - Close an issue with an optional comment

Workflow Management

  • fgj actions workflow list/view/run - List, view, and trigger workflows

Auth Helpers

  • fgj auth token - Print the stored token for the current host
  • fgj auth logout - Remove authentication for a host

Shell Completions and Man Pages

  • fgj completion [bash|zsh|fish|powershell] - Generate shell completion scripts
  • fgj manpages --dir <path> - Generate man pages for all commands

JSON Output

  • --json flag for all list and view commands: PRs, issues, releases, workflow runs, workflows

Fixed

  • Respect $XDG_CONFIG_HOME for config file location (was always using ~/.config)

0.2.0 - 2026-01-09

Added

Release Management

  • fgj release list - List releases for a repository
  • fgj release view - View details of a specific release (supports "latest" keyword)
  • fgj release create - Create new releases with optional asset uploads
  • fgj release upload - Upload assets to existing releases with optional clobber support
  • fgj release delete - Delete releases (preserves Git tags)

Issue Management

  • fgj issue edit - Edit existing issues with support for updating title, body, and labels

Pull Request Management

  • fgj pr create --assignee - Assign users when creating pull requests

Repository Detection

  • Automatic hostname detection from git remote URLs
  • Improved multi-instance support with auto-detection from git context

Improved

  • Enhanced documentation with AUR and Homebrew installation instructions
  • Added functional tests for release management and issue editing
  • Added Makefile install target for easier local installation
  • Added .editorconfig for consistent code formatting

Development

  • CI: Added nightly builds for continuous testing
  • Expanded functional test coverage for new features

0.1.0 - 2025-12-16

Added

Core Features

  • Initial release of fgj - Forgejo CLI tool
  • Multi-instance support for any Forgejo/Gitea instance
  • Automatic repository detection from git context (optional -R flag)
  • Secure authentication with personal access tokens
  • Configuration management via ~/.config/fgj/config.yaml

Pull Request Management

  • fgj pr list - List pull requests with filtering by state
  • fgj pr view - View detailed pull request information
  • fgj pr create - Create new pull requests
  • fgj pr merge - Merge pull requests with configurable merge methods

Issue Management

  • fgj issue list - List issues with state filtering
  • fgj issue view - View detailed issue information
  • fgj issue create - Create new issues
  • fgj issue comment - Add comments to issues
  • fgj issue close - Close issues

Repository Operations

  • fgj repo view - View repository details
  • fgj repo list - List user repositories
  • fgj repo clone - Clone repositories with protocol selection (HTTPS/SSH)
  • fgj repo fork - Fork repositories

Forgejo Actions Support

  • fgj actions run list - List workflow runs with status and metadata
  • fgj actions run view - View detailed run information, jobs, and logs
    • Support for --verbose, --log, --log-failed, and --job flags
  • fgj actions secret list - List repository secrets
  • fgj actions secret create - Create repository secrets
  • fgj actions secret delete - Delete repository secrets
  • fgj actions variable list - List repository variables
  • fgj actions variable get - Get variable values
  • fgj actions variable create - Create repository variables
  • fgj actions variable update - Update repository variables
  • fgj actions variable delete - Delete repository variables

Authentication

  • fgj auth login - Interactive authentication with Forgejo instances
  • fgj auth status - Check authentication status
  • Environment variable support (FGJ_HOST, FGJ_TOKEN)

Development

  • Comprehensive unit test suite
  • Functional end-to-end tests
  • CI/CD pipeline with automated testing
  • Code quality checks and linting

Technical Details

  • Built with Go 1.23+
  • Uses Gitea SDK for API interactions
  • Cobra framework for CLI structure
  • Viper for configuration management