@aaronshaf/ger
Version:
Gerrit CLI and SDK - A modern CLI tool and TypeScript SDK for Gerrit Code Review, built with Effect-TS
96 lines (68 loc) • 2.25 kB
Markdown
Accepted
Gerrit uses groups for access control and reviewer assignment. Large teams need to manage groups and add them as reviewers efficiently.
Implement full group management commands: `groups`, `groups-show`, `groups-members`.
- **Team workflows**: Add entire teams as reviewers at once
- **Discovery**: Find groups by name, owner, project
- **Visibility**: See group membership without Gerrit UI
- **Automation**: Script group-based reviewer assignment
| Command | Purpose |
|---------|---------|
| `groups` | List groups with filtering |
| `groups-show <id>` | Detailed group information |
| `groups-members <id>` | List group members |
| `add-reviewer --group` | Add group as reviewer |
- Efficient team reviewer management
- Discoverable group information
- Scriptable group operations
- Consistent with other ger commands
- Additional API endpoints to maintain
- Group permissions can be complex
- LDAP groups may have sync delays
```typescript
// List groups with filters
export const listGroups = (options: GroupListOptions) =>
Effect.gen(function* () {
const api = yield* GerritApiService
const params = new URLSearchParams()
if (options.pattern) params.set('m', options.pattern)
if (options.owned) params.set('owned', '')
if (options.project) params.set('p', options.project)
if (options.user) params.set('user', options.user)
return yield* api.listGroups(params)
})
```
```bash
ger groups --pattern "team-*"
ger groups --owned
ger groups --project canvas-lms
ger groups --user john.doe
```
```bash
ger add-reviewer 12345 --group frontend-team
ger add-reviewer 12345 --group frontend-team --cc
```
```
GET /a/groups/
GET /a/groups/{id}
GET /a/groups/{id}/detail
GET /a/groups/{id}/members
```