Skip to main content

Sync GitHub Project issue status transitions to start/end date fields

Project description

psync

Tiny CLI tool that syncs GitHub Project Start Date and End Date fields based on issue/PR activity.

What it does

  1. Reads timeline events from a GitHub issue or pull request
  2. Determines when work started and ended
  3. Updates the linked GitHub Project's date fields

Start date defaults to the issue/PR creation date (configurable via --start-from). End date is inferred from status transitions (issues) or merge/close time (PRs).

Install

# From source
uv pip install .

# Or install as a global CLI tool
uv tool install .

Usage

# Sync dates for an issue
psync https://github.com/org/repo/issues/42

# Sync dates for a pull request
psync https://github.com/org/repo/pull/7

# Preview without updating (dry run)
psync https://github.com/org/repo/issues/42 --dry-run

# Use "in progress" status change as start date instead of creation date
psync https://github.com/org/repo/issues/42 --start-from in-progress

Authentication

psync needs a GitHub token with read:project and project scopes.

It resolves the token in this order:

  1. GITHUB_TOKEN or GH_TOKEN environment variable
  2. gh auth token (GitHub CLI)

To add the required scopes to your existing gh token:

gh auth refresh -s read:project,project

Development

# Install dependencies
uv sync

# Run tests
uv run pytest

# Lint and format
uv run ruff check src/ tests/
uv run ruff format src/ tests/

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

psync_git-0.1.0.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

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

psync_git-0.1.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for psync_git-0.1.0.tar.gz
Algorithm Hash digest
SHA256 031da657d3262a45050806b3d6b35a91b3ed25d322434f812f72dc74441a902b
MD5 8db8b8887c17593ef05fc7ab59776d2e
BLAKE2b-256 076451dbec5a245c7d2b0944b66ec80cd89d0e0c2ca0fe5008eee6a80a4b1861

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on 0xbigshaq/psync

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

File details

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

File metadata

  • Download URL: psync_git-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for psync_git-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bfd252043cc077d84fe565d689de4b2cd3bc19666ad9d94097704e6a1ade4b2f
MD5 fb0b98cc8690726cc082b6eeba3bf65c
BLAKE2b-256 9f0db8c922cfa8dea08c5775774206134f01c754eadea5c92c6c924cc5b30b0e

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on 0xbigshaq/psync

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