CLI wrapper around GitLab Discussions REST API for listing, creating, and managing MR discussions
Project description
glab-discussion
CLI wrapper around GitLab Discussions REST API for listing, creating, and managing merge request discussions.
Installation
uv tool install glab-discussion
Claude Code plugin
The repo includes a Claude Code plugin with a skill that teaches AI agents how to use glab-discussion.
claude plugin marketplace add fprochazka/glab-discussion
claude plugin install glab-discussion@fprochazka-glab-discussion
To upgrade after a new release:
uv tool install --force glab-discussion
claude plugin marketplace update fprochazka-glab-discussion
claude plugin update glab-discussion@fprochazka-glab-discussion
Usage
All subcommands accept --mr-url or --hostname/--project/--mr-iid to identify the merge request.
read
Read and display MR discussions.
glab-discussion read --mr-url https://gitlab.com/group/project/-/merge_requests/123
glab-discussion read --dump # structured data output
glab-discussion read --dump --full # force full rewrite
write
Create a new discussion or reply to an existing one.
glab-discussion write --body "Comment text" --mr-url ...
glab-discussion write --body "Reply" --reply-to DISCUSSION_ID --mr-url ...
glab-discussion write --body "Diff note" --file path/to/file.py --new-line 42 --mr-url ...
echo "From stdin" | glab-discussion write --body - --mr-url ...
diff
Show MR diff information.
glab-discussion diff --mr-url ...
glab-discussion diff --file path/to/file.py --mr-url ...
glab-discussion diff --version 3 --mr-url ...
resolve
Resolve or unresolve a discussion.
glab-discussion resolve DISCUSSION_ID --mr-url ...
glab-discussion resolve DISCUSSION_ID --unresolve --mr-url ...
Requirements
glabCLI installed and authenticated- Python 3.12+
Development
git clone https://github.com/fprochazka/glab-discussion.git
cd glab-discussion
uv sync --dev
Run tests and linting:
uv run ruff format .
uv run ruff check .
uv run pytest
Releasing
Version is derived automatically from git tags via hatch-vcs — no manual version bumping needed.
Before tagging, bump the version in both plugin manifest files:
coding-agent-plugins/claude-code/.claude-plugin/plugin.json.claude-plugin/marketplace.json
Wait for CI to pass on master, then tag, push, and create a GitHub release:
# Review changes since last release
git log $(git describe --tags --abbrev=0)..HEAD --oneline
git tag v<version>
git push origin v<version>
gh release create v<version> --title "v<version>" --notes "..."
The publish.yml GitHub Action builds and publishes to PyPI automatically via trusted publishing.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glab_discussion-0.1.2.tar.gz.
File metadata
- Download URL: glab_discussion-0.1.2.tar.gz
- Upload date:
- Size: 29.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0208139fece13f294f51b42858d67ece8da4e44478158894735716fe7e0b478a
|
|
| MD5 |
3f1f993811bc382f416d529eafeaab43
|
|
| BLAKE2b-256 |
fb6fc67245327f1c2713c1c866b5fbeee352956e54cb2bf0c762733861c23c4c
|
Provenance
The following attestation bundles were made for glab_discussion-0.1.2.tar.gz:
Publisher:
publish.yml on fprochazka/glab-discussion
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glab_discussion-0.1.2.tar.gz -
Subject digest:
0208139fece13f294f51b42858d67ece8da4e44478158894735716fe7e0b478a - Sigstore transparency entry: 1199850234
- Sigstore integration time:
-
Permalink:
fprochazka/glab-discussion@635ccfff0257ba6d096b0a44d7336e9ac252e78f -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/fprochazka
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@635ccfff0257ba6d096b0a44d7336e9ac252e78f -
Trigger Event:
push
-
Statement type:
File details
Details for the file glab_discussion-0.1.2-py3-none-any.whl.
File metadata
- Download URL: glab_discussion-0.1.2-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cb81f328d7bfba861d50a344b6d414a4087b7f850f8d73538f10ddd05a1998a
|
|
| MD5 |
810ab21aa076bb7b65584b062760dbe9
|
|
| BLAKE2b-256 |
3c8f8b2b4273ffabbe5eaca771679f5ee6cee665caa6f1c77169c37acf1e3607
|
Provenance
The following attestation bundles were made for glab_discussion-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on fprochazka/glab-discussion
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
glab_discussion-0.1.2-py3-none-any.whl -
Subject digest:
0cb81f328d7bfba861d50a344b6d414a4087b7f850f8d73538f10ddd05a1998a - Sigstore transparency entry: 1199850238
- Sigstore integration time:
-
Permalink:
fprochazka/glab-discussion@635ccfff0257ba6d096b0a44d7336e9ac252e78f -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/fprochazka
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@635ccfff0257ba6d096b0a44d7336e9ac252e78f -
Trigger Event:
push
-
Statement type: