Skip to main content

Generate GitLab project issues and milestones statistics automatically

Project description

gitlab-projects-issues

Build Bugs Code Smells Coverage Lines of Code Quality Gate Status pre-commit Commitizen friendly pre-commit-crocodile

Generate GitLab project issues and milestones statistics automatically


Purpose

This tool can automatically generate issues and milestones statistics,
by analyzing project's issues, detecting milestones and assignees.

If issues without time estimations are found, ~? will be shown before time outputs.

Milestone statistics will automatically be injected in the milestone description,
with a markdown table of assignees, timings, progress and issues total.

The following step is required before using the tool:

  • The GitLab user tokens must be created with an api scope (a short expiration date is recommended)

Outputs

Milestones statistics will automatically be added to each milestone's description.

The following example shows how milestones statistics may look on a project:

Milestone statistics - MILESTONE NAME

Assignees Issues Estimated Spent Remaining Progress
Without assignee 10 18d 18d / ██████████ 100.00%
USER ONE 22 42d 5d 37d █▂▁▁▁▁▁▁▁▁ 11.90%
USER TWO 29 50d 2h 20d 6h 29d 4h ████▂▁▁▁▁▁ 41.29%
USER THREE 7 9d 2h 3d 4h 5d 6h ███▅▁▁▁▁▁▁ 37.84%
USER FOUR 6 21d / 21d ▁▁▁▁▁▁▁▁▁▁ 0.00%
Total 74 135d 4h 47d 2h 93d 2h ███▄▁▁▁▁▁▁ 34.87%

Last update using gitlab-projects-issues : 2024-06-01 19:38:48 UTC


Examples

# Show the helper menu
gitlab-projects-issues

# Inject milestones statistics into milestones' description
gitlab-projects-issues --milestones-statistics 'https://gitlab.com/group/project'

# Inject milestones statistics into milestones' description (with default 20h time per unestimated issues)
gitlab-projects-issues --milestones-statistics --default-estimate '20' 'https://gitlab.com/group/project'

Usage

usage: gitlab-projects-issues [-h] [--version] [--no-color] [--update-check] [--settings] [--set GROUP KEY VAL]
                              [-c FILES] [--dump] [--default-estimate ESTIMATE] [--exclude-closed-issues]
                              [--milestone MILESTONE] [--milestones-statistics] [--exclude-closed-milestones] [--]
                              [url_path]

gitlab-projects-issues: Generate GitLab project issues and milestones statistics automatically

internal arguments:
  -h, --help                   # Show this help message
  --version                    # Show the current version
  --no-color                   # Disable colors outputs with 'NO_COLOR=1'
                               # (or default settings: [themes] > no_color)
  --update-check               # Check for newer package updates
  --settings                   # Show the current settings path and contents
  --set GROUP KEY VAL          # Set settings specific 'VAL' value to [GROUP] > KEY
                               # or unset by using 'UNSET' as 'VAL'

credentials arguments:
  -c FILES, --config FILES     # Python GitLab configuration files (default: PYTHON_GITLAB_CFG environment)

common arguments:
  --dump                       # Dump Python objects of projects

issues arguments:
  --default-estimate ESTIMATE  # Default issue time estimate if none providedin hours (default: 8)
  --exclude-closed-issues      # Exclude issues in closed state

milestones arguments:
  --milestone MILESTONE        # Use a specific milestone by name, by ID, or "None"
  --milestones-statistics      # Inject milestones statistics into milestones' description
  --exclude-closed-milestones  # Exclude milestones in closed state

positional arguments:
  --                           # Positional arguments separator (recommended)
  url_path                     # GitLab project path URL

environment variables:
  GITLAB_TOKEN                 # GitLab API token environment variable
  CI_JOB_TOKEN                 # GitLab CI job token environment variable (CI only)

Python GitLab configuration file

gitlab-projects-issues uses the same configuration files as the python-gitlab API,
holding domains, URL and private tokens credentials for the GitLab instances.

The default user configuration file can be created at ~/.python-gitlab.cfg.

The -c or --config parameters can provide specific configuration files,
otherwise the PYTHON_GITLAB_CFG environment variable can be used.

Example ~/.python-gitlab.cfg configuration file:

[global]
default = gitlab.com
ssl_verify = true
timeout = 5

[gitlab.com]
url = https://gitlab.com
private_token = glpat-...

[gitlab.local.dev]
url = https://gitlab.local.dev
private_token = glpat-...

[gitlab.private.dev:4243]
url = https://gitlab.private.dev:4243
private_token = glpat-...
ssl_verify = /usr/local/share/ca-certificates/gitlab.private.dev.crt

python-gitlab configuration files documentation: Getting started with the CLI / Configuration files


Userspace available settings

gitlab-projects-issues creates a settings.ini configuration file in a userspace folder.

For example, it allows to disable the automated updates daily check ([updates] > enabled)

The settings.ini file location and contents can be shown with the following command:

gitlab-projects-issues --settings

Environment available configurations

gitlab-projects-issues uses colored for colors outputs.

If colors of both outputs types do not match the terminal's theme,
an environment variable NO_COLOR=1 can be defined to disable colors.


Dependencies


References

  • commitizen: Simple commit conventions for internet citizens
  • git-cliff: CHANGELOG generator
  • gitlab-release: Utility for publishing on GitLab
  • gcil: Launch .gitlab-ci.yml jobs locally
  • mypy: Optional static typing for Python
  • pre-commit: A framework for managing and maintaining pre-commit hooks
  • pre-commit-crocodile: Git hooks intended for developers using pre-commit
  • PyPI: The Python Package Index
  • twine: Utility for publishing on PyPI

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

gitlab_projects_issues-3.0.1.tar.gz (44.8 kB view details)

Uploaded Source

Built Distribution

gitlab_projects_issues-3.0.1-py3-none-any.whl (27.9 kB view details)

Uploaded Python 3

File details

Details for the file gitlab_projects_issues-3.0.1.tar.gz.

File metadata

File hashes

Hashes for gitlab_projects_issues-3.0.1.tar.gz
Algorithm Hash digest
SHA256 13f7f5aa2cc1fa1c5cb86a2e340f75af33ff3b25e24d3fa9f6acea5ca34666d7
MD5 02e64c5e2aebc008b790d73243ddd074
BLAKE2b-256 76209951e6e38c01cc145d6d8c2fc2c884c474a34a47ade6fb0a796952e29267

See more details on using hashes here.

File details

Details for the file gitlab_projects_issues-3.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for gitlab_projects_issues-3.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7c7816924a5219707d319ce042029282fe674900697ec81b6dddb3be5dc2b279
MD5 29edddaef24a4f5130c75ee3c8ae9c47
BLAKE2b-256 ec9bbfe13ac67c54e52e116e9ef017f5a297056569e826c2c2840cae0b79448c

See more details on using hashes here.

Supported by

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