Skip to main content

Maintainer Pulse

Maintainer Pulse turns GitHub issue and pull request data into a short, actionable maintenance report. It is built for open-source maintainers who need to answer:

  • What should I review before the next release?
  • Which pull requests are stuck?
  • Which issues have not received a maintainer response?
  • What can a new contributor safely pick up?

The tool is offline-first. You can run it against exported GitHub JSON without a token, or fetch live issue and pull request data from the GitHub API.

CI Package Maintainer Pulse PyPI

Maintainer Pulse terminal preview

Features

  • Release blocker, stuck pull request, stale item, first-response, and quick-win queues.
  • Milestone-aware release blocker grouping for release planning.
  • Markdown, HTML, JSON, and CSV output.
  • Reusable GitHub Action for scheduled reports.
  • No runtime dependencies.
  • Deterministic scoring that can be reviewed and changed by maintainers.
  • GitHub Actions CI and fixture-based tests.

Install

From PyPI:

python -m pip install oss-maintainer-pulse

From GitHub:

python -m pip install git+https://github.com/alibert99/oss-maintainer-pulse.git

From a local checkout:

python -m pip install .

For local development:

python -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
pytest

Usage

Analyze an exported GitHub issues payload:

maintainer-pulse example/project \
  --input examples/github_items.json \
  --output maintainer-pulse-report.md

Fetch live data from GitHub:

export GITHUB_TOKEN=github_pat_your_token_here
maintainer-pulse octo-org/octo-repo --format html --output report.html

Generate machine-readable output:

maintainer-pulse octo-org/octo-repo --format json

Generate spreadsheet-friendly output:

maintainer-pulse octo-org/octo-repo --format csv --output maintainer-pulse-report.csv

See examples/sample-report.md for a generated report. See examples/sample-report.csv for spreadsheet-friendly output.

GitHub Action

Run Maintainer Pulse weekly and upload a report artifact:

name: Maintainer Pulse

on:
  workflow_dispatch:
  schedule:
    - cron: "17 9 * * 1"

permissions:
  contents: read
  issues: read
  pull-requests: read

jobs:
  report:
    runs-on: ubuntu-latest
    steps:
      - uses: alibert99/oss-maintainer-pulse@v0.1.5
        id: pulse
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          output: maintainer-pulse-report.md
      - uses: actions/upload-artifact@v7
        with:
          name: maintainer-pulse-report
          path: ${{ steps.pulse.outputs.report-path }}

See docs/github-action.md for all inputs.

Distribution

Output Queues

Maintainer Pulse groups work into five queues:

  • release_blockers: open issues and pull requests with labels such as security, regression, critical, release, p0, or p1. Markdown reports group release blockers by GitHub milestone when milestone data is present.
  • stuck_pull_requests: pull requests idle for at least seven days or labeled for review.
  • response_debt: open items with zero comments and at least three idle days.
  • stale_items: open items idle beyond the configured stale threshold.
  • quick_wins: small contributor-friendly issues labeled good first issue, help wanted, documentation, or starter.

CSV output includes one row per queued item with the queue name, item number, type, state, labels, author, comment count, idle days, age days, timestamps, and URL.

Project Status

This project is alpha. The CLI and report fields may change as maintainers test it against real repositories.

Metadata

Release files for oss-maintainer-pulse 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oss-maintainer-pulse 0.1.5
File Size Uploaded
oss_maintainer_pulse-0.1.5.tar.gz 14.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for oss-maintainer-pulse 0.1.5
File Interpreter ABI Platform
oss_maintainer_pulse-0.1.5-py3-none-any.whl Python 3 none any Details

Total release size: 28.6 kB

Release files / oss_maintainer_pulse-0.1.5.tar.gz

Download URL oss_maintainer_pulse-0.1.5.tar.gz
Size 14.8 kB
Tags Source
SHA-256 checksum
How to use checksums
a5b5bdf7e4af7f63ce61b14f0d3472efda50f773c664f1d34bf8d04f8843981a
BLAKE2b-256 checksum
How to use checksums
bec515d190c2cb3b6ec9cc1c21759fbf7fc344e7247e74094828cd58eca2c5dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 30, 2026.

Transparency log

Release files / oss_maintainer_pulse-0.1.5-py3-none-any.whl

Download URL oss_maintainer_pulse-0.1.5-py3-none-any.whl
Size 13.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
305ebbbf25a189085d68405dc18b1cbd6e69f2d015276d0bf346defec9ab100c
BLAKE2b-256 checksum
How to use checksums
3453f3b57acdb64f268da41c206c2d6e12f2561517c7a7585be4396e38eef845
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 release files

0.1.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page