A comprehensive Go client library for interacting with Gerrit Code Review's REST API.
go-gerrit is a Go client library for the Gerrit Code Review system. It provides a programmatic interface to interact with Gerrit's REST API, allowing developers to automate code review workflows, manage projects, query changes, and perform administrative tasks. The library covers all core Gerrit endpoints and supports multiple authentication methods used by different Gerrit deployments.
Go developers who need to automate interactions with Gerrit Code Review instances, build integration tools, or create custom workflows around code review and project management.
Developers choose go-gerrit because it offers comprehensive, well-structured coverage of Gerrit's REST API with a clean service-based architecture. It handles authentication complexities across different Gerrit deployments and follows established patterns from popular Go libraries like go-github.
Go client/library for Gerrit Code Review
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports every core Gerrit REST API endpoint, including accounts, changes, projects, and access controls, as explicitly listed in the README under 'Every API Endpoint like Gerrit'.
Handles HTTP Basic, Digest, and Cookie authentication methods with provided examples for different Gerrit instances like TYPO3 and Wikimedia, easing integration across deployments.
Follows a service-based organization inspired by go-github, making the code modular and extensible, as described in the 'How is the source code organized?' FAQ section.
Includes optional plugin APIs such as events-log for extended functionality, though support is limited to popular plugins as noted in the README.
Implemented based on Gerrit version 2.11.3 and may not fully support newer or older versions, requiring potential workarounds as acknowledged in the FAQ on version compatibility.
Requires running a Gerrit Docker container for testing, which is resource-intensive and adds overhead compared to simpler mocking or lightweight alternatives.
Different authentication schemes for various Gerrit instances force developers to manually handle errors and configurations, such as the 'WWW-Authenticate header type is not Digest' issue mentioned in examples.