Thank you for your interest in contributing to cfl!
-
Clone the repository:
git clone https://github.com/open-cli-collective/confluence-cli.git cd confluence-cli -
Install dependencies:
make deps
-
Build and run:
make build ./bin/cfl --version
# Run all tests
make test
# Run tests with coverage
make test-cover
# Run short tests only
make test-short- Run
gofmtandgoimportsbefore committing - Run the linter:
make lint - Follow Go conventions and idioms
We use Conventional Commits:
feat: add new feature
fix: fix a bug
docs: update documentation
test: add tests
refactor: refactor code
ci: update CI configuration
chore: maintenance tasks
Examples:
feat: add page edit command
fix: handle empty API response in space list
docs: update installation instructions
- Fork the repository
- Create a feature branch:
git checkout -b feat/my-feature - Make your changes
- Run tests:
make test - Run linter:
make lint - Commit with a conventional commit message
- Push and create a pull request
confluence-cli/
├── cmd/cfl/ # Entry point
├── api/ # Confluence API client
│ ├── client.go # HTTP client
│ ├── pages.go # Page operations
│ ├── spaces.go # Space operations
│ └── attachments.go # Attachment operations
├── internal/
│ ├── cmd/ # Command implementations
│ │ ├── init/ # cfl init
│ │ ├── page/ # page commands
│ │ ├── space/ # space commands
│ │ └── root/ # root command
│ ├── config/ # Configuration management
│ └── view/ # Output formatting
├── pkg/
│ └── md/ # Markdown conversion (future)
└── .github/ # GitHub workflows and templates
Open an issue or start a discussion on GitHub.