Skip to main content

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

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

  • glab CLI 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

glab_discussion-0.1.0.tar.gz (28.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

glab_discussion-0.1.0-py3-none-any.whl (14.1 kB view details)

Uploaded Python 3

File details

Details for the file glab_discussion-0.1.0.tar.gz.

File metadata

  • Download URL: glab_discussion-0.1.0.tar.gz
  • Upload date:
  • Size: 28.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for glab_discussion-0.1.0.tar.gz
Algorithm Hash digest
SHA256 736c1ed00815db9fcebb50a44469c3280b642e4b75d47034893127246ba0f8ff
MD5 340d1721b3609fd44cba62fd25c3093b
BLAKE2b-256 c07c85eb820e37b985430130041824851ffd4c4cdcec589eba9373e53d154f9b

See more details on using hashes here.

Provenance

The following attestation bundles were made for glab_discussion-0.1.0.tar.gz:

Publisher: publish.yml on fprochazka/glab-discussion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file glab_discussion-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for glab_discussion-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 71b328eb956a2feec8a4901bf3d24841bb8319300a95164064d705e1803aa326
MD5 fa87bf3313946f3962e3bfe49c4a23d6
BLAKE2b-256 c4733bb30824d570a2629376a2a757e61ddd99aa54c123625aca3fb71ded065c

See more details on using hashes here.

Provenance

The following attestation bundles were made for glab_discussion-0.1.0-py3-none-any.whl:

Publisher: publish.yml on fprochazka/glab-discussion

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page