fossas / fossas/fossapi

Add `list release-groups` / `get release-group` commands

Open
#25 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
0
Forks
0
Avg merge
2h 7m
Merged PRs (30d)
2

Description

## Why

When reconciling issue counts on a release group against the sum of its
member projects, the very first thing a support engineer or internal tool
needs to do is resolve a release-group title/ID to its member projects and
their pinned revisions. fossapi has no commands for this today, so every
investigation starts with raw `curl` against `/api/project_group/...`.

## Current workaround

```bash
curl -H "Authorization: Bearer $FOSSA_API_KEY" \
https://app.fossa.com/api/project_group # list
curl -H "Authorization: Bearer $FOSSA_API_KEY" \
https://app.fossa.com/api/project_group/ # detail + member projects
```

Sample response (detail, abbreviated):
```json
{
"id": 1234,
"title": "My Release Group",
"policyId": 1001,
"securityPolicyId": 1002,
"qualityPolicyId": 1003,
"releases": [{
"id": 5678,
"title": "1.0",
"unresolved_security_issue_count": 2,
"unresolved_licensing_issue_count": 4,
"unresolved_quality_issue_count": 0,
"projects": [{
"projectId": "custom+/",
"branch": "main",
"revisionId": "custom+/$"
}]
}]
}
```

## Proposed CLI surface

```
fossapi list release-groups [--title ] [--json] [--page N] [--count N]
fossapi get release-group [--json]
# Exits non-zero if the RG has no releases; otherwise prints release metadata
# and member projects with their pinned revisions.
```

## Repro that currently can't be done via fossapi

```bash
# "Show me the member projects (with pinned revisions) for RG 1234"
# Today:
curl -sH "Authorization: Bearer $FOSSA_API_KEY" \
https://app.fossa.com/api/project_group/1234 | jq '.releases[0].projects'

# Desired:
fossapi get release-group 1234 --json | jq '.releases[0].projects'
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.