release-scope collects what sits between production and the default branch across GitLab services: tags, MRs,
Jira keys, failed jobs.
For every service it reads the latest successful production deployment, walks the default branch down to that commit, and writes one JSON report: a row per merge request or direct commit, newest first, with the tags that point into it, the environments running it, the Jira keys its MR mentions, and the failed jobs of its main-branch and tag pipelines.
Quickstart
export RELEASE_SCOPE_GITLAB__ENDPOINT=https://gitlab.example.com
export RELEASE_SCOPE_GITLAB__TOKEN=glpat-... # read_api scope
export RELEASE_SCOPE_ENVIRONMENTS='["prod", "preview"]'
export RELEASE_SCOPE_PRODUCTION_ENVIRONMENT=prod
uvx release-scope collect --group team/backend --output report.json --cache cache.json
--group and --project are repeatable and can be mixed. The command exits 1 when any service failed to
collect; the report is still written and names the error on that service.
Configuration
Every setting is an environment variable; nothing about a GitLab or Jira instance is built in.
| Variable | Default | Meaning |
|---|---|---|
RELEASE_SCOPE_GITLAB__ENDPOINT |
https://gitlab.com |
GitLab base URL |
RELEASE_SCOPE_GITLAB__TOKEN or GITLAB_TOKEN |
required | Token with read_api |
RELEASE_SCOPE_ENVIRONMENTS |
["production"] |
Environments shown per service, as a JSON list |
RELEASE_SCOPE_PRODUCTION_ENVIRONMENT |
production |
Environment whose deployed commit starts the range |
RELEASE_SCOPE_JIRA_ENDPOINT |
unset | When set, Jira keys link to <endpoint>/browse/<KEY> |
RELEASE_SCOPE_JIRA_PROJECT_KEYS |
[] |
Keep only keys of these Jira projects; empty keeps all |
RELEASE_SCOPE_MAX_COMMITS |
1000 |
Stop walking a service's range after this many commits |
RELEASE_SCOPE_REQUEST_TIMEOUT |
10 |
Per-request timeout in seconds |
Report
The report is versioned by schema_version; the models live in
release_scope/_report.py.
One row, trimmed:
{
"kind": "merge_request",
"tags": [{"name": "1.2.0", "url": "...", "pipeline": {"id": 201, "status": "success", "failed_jobs": []}}],
"merge_requests": [{"iid": 12, "title": "SHOP-12 new endpoint", "url": "..."}],
"commits": [{"sha": "c3...", "title": "Merge branch 'feature/SHOP-12'"}],
"jira_keys": [{"key": "SHOP-12", "url": "https://jira.example.com/browse/SHOP-12"}],
"environments": ["preview"],
"main_pipeline": {"id": 103, "status": "failed", "failed_jobs": [{"kind": "job", "name": "lint", "allow_failure": false}]}
}
Cache
--cache names a JSON file that is read if present and rewritten atomically after the run. It holds only facts
that do not change once settled: which merge requests a commit belongs to, and the failed jobs of a finished
pipeline keyed by its updated_at, so a retried job invalidates the entry. Entries the run did not use are
dropped. A missing, corrupt, or older-schema cache is ignored with a warning; the cache only saves requests and
never changes the report.
Release files for release-scope 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| release_scope-0.1.0.tar.gz | 12.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| release_scope-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.0 kB
Release files / release_scope-0.1.0.tar.gz
| Download URL | release_scope-0.1.0.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de2a578aa861ab01fcbafd14490604550826f60aa73be7bbae6efb5a3fbef590
|
|
BLAKE2b-256 checksum How to use checksums |
0c7677d096becc69c65c91cf35fa59abffce5c60df3abaf36f82d301469f6451
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / release_scope-0.1.0-py3-none-any.whl
| Download URL | release_scope-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d0bddc108c6480733c0fcce6b57f51d40174245c2da2c78210fe929d1eeafe2
|
|
BLAKE2b-256 checksum How to use checksums |
10847eedd4c6c0d1287fbf16cdaa571b020848cfbde96958426c36217a5dbbd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|