diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e6edd83 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,68 @@ +# Changelog + +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.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [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 + +[0.1.0]: https://codeberg.org/romaintb/fgj/releases/tag/v0.1.0 diff --git a/README.md b/README.md index b0166db..2d71dc8 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ - Pull request management (create, list, view, merge) - Issue tracking (create, list, view, comment, close) - Repository operations (view, list, clone, fork) +- Forgejo Actions (workflow runs, secrets, variables) - Automatic repository detection from git context - Secure authentication with personal access tokens - AI coding agent friendly @@ -144,6 +145,49 @@ fgj repo clone owner/repo -p ssh fgj repo fork owner/repo ``` +### Forgejo Actions + +```bash +# List workflow runs +fgj actions run list + +# View a specific run +fgj actions run view 123 + +# View run with job details +fgj actions run view 123 --verbose + +# View run logs +fgj actions run view 123 --log + +# View specific job logs +fgj actions run view 123 --job 456 --log + +# List secrets +fgj actions secret list + +# Create a secret +fgj actions secret create MY_SECRET + +# Delete a secret +fgj actions secret delete MY_SECRET + +# List variables +fgj actions variable list + +# Get a variable +fgj actions variable get MY_VAR + +# Create a variable +fgj actions variable create MY_VAR "value" + +# Update a variable +fgj actions variable update MY_VAR "new value" + +# Delete a variable +fgj actions variable delete MY_VAR +``` + ## Configuration Configuration is stored in `~/.config/fgj/config.yaml`: