
gitlab-issue-report
Tool to report issues of a gitlab project/group with multiple output formats (plain text, table, markdown).
Install
Copy the binary to /usr/local/bin for example. (or another directory which is in your PATH).
Usage
Usage:
gitlab-issue-report [command]
Available Commands:
group Get issues from a GitLab group
project Get issues from a GitLab project
Flags:
-h, --help Help for gitlab-issue-report
Project Command Flags:
-c, --closed Only closed issues
-r, --createdAt Issues filtered with created date
-d, --d string Debug level (info,warn,debug) (default "error")
-i, --i string Interval, ex '/-1/ ::' to describe the interval of last month
-p, --id int Project ID to get issues from
-m, --markdown Output in markdown format
-o, --opened Only opened issues
-u, --updatedAt Issues filtered with updated date
Group Command Flags:
-c, --closed Only closed issues
-r, --createdAt Issues filtered with created date
-d, --d string Debug level (info,warn,debug) (default "error")
-i, --i string Interval, ex '/-1/ ::' to describe the interval of last month
-g, --id int Group ID to get issues from
-m, --markdown Output in markdown format
-o, --opened Only opened issues
-u, --updatedAt Issues filtered with updated date
Examples
# Get all issues from a project (default plain text output)
gitlab-issue-report project -p 12345
# Get closed issues from a group created in the last month
gitlab-issue-report group -g 67890 -c -r -i "/-1/ ::"
# Get issues with markdown output for easy sharing
gitlab-issue-report project -p 12345 --markdown
# Get opened issues from a group in markdown format
gitlab-issue-report group -g 67890 -o -m
# Get issues filtered by creation date in markdown format
gitlab-issue-report project -p 12345 --createdAt --markdown -i "/-1/ ::"
The tool supports three output formats:
- Plain Text (default): Simple columnar output
- Table: Formatted table with borders using tablewriter
- Markdown: Markdown table format perfect for documentation and reports
Markdown Output Example
# GitLab Issues Report
| Title | State | Created At | Updated At |
|-------|-------|------------|------------|
| Fix authentication bug | opened | 2024-01-15 | 2024-01-16 |
| Add new feature | closed | 2024-01-10 | 2024-01-14 |
| Update documentation | opened | 2024-01-12 | 2024-01-13 |
Configuration
2 environement variables can be set :
- GITLAB_TOKEN: used to access to private repositories
- GITLAB_URI: to specify another instance of Gitlab (if not set, GITLAB_URI is set to https://gitlab.com)
Infos
Development
This project is using :
There are hooks executed in the precommit stage. Once the project cloned on your disk, please install pre-commit:
brew install pre-commit
Install tools:
task install-prereq
And install the hooks:
task install-pre-commit
If you like to launch manually the pre-commmit hook:
task pre-commit
Testing
The project includes comprehensive tests for all functionality:
# Run all tests
go test ./...
# Run tests with verbose output
go test ./... -v
# Run specific package tests
go test ./internal/render -v
go test ./cmd -v
# Run linter
task linter
Tests follow black box testing principles, focusing on public interfaces and ensuring all output formats work correctly.
Project Status
🟨 Maintenance Mode: This project is used by me to get a summary of what I've done on some projects every month or every sprint. While it's a side project with low priority, it has recently been enhanced with markdown output support.
While we are committed to keeping the project's dependencies up-to-date and secure, please note the following:
- New features are unlikely to be added (though markdown output was recently added)
- Bug fixes will be addressed, but not necessarily promptly
- Security updates will be prioritized
Issues and Bug Reports
We still encourage you to use our issue tracker for:
- 🐛 Reporting critical bugs
- 🔒 Reporting security vulnerabilities
- 🔍 Asking questions about the project
Please check existing issues before creating a new one to avoid duplicates.
Contributions
🤝 Limited contributions are still welcome.
While we're not actively developing new features, we appreciate contributions that:
- Fix bugs
- Update dependencies
- Improve documentation
- Enhance performance or security
Support
As this project is in maintenance mode, support may be limited. We appreciate your understanding and patience.