Skip to content

v1.0.0

Latest

Choose a tag to compare

@7PH 7PH released this 11 Mar 00:37
· 1 commit to master since this release

🔥 Release preview

Runs are now idempotent: the same source commits always produce the same monorepo hashes, so pushing twice is a no-op. No more forced pushes on every run.

# First run - pushes new commits
uv run python git-contribution-mapper.py
bash scripts/monorepo-push.sh

# Second run - nothing to push
uv run python git-contribution-mapper.py
bash scripts/monorepo-push.sh
# → Everything up-to-date

🚀 Features

  • Add --dry-run / -n flag to preview what would run without making changes
  • Add --force-push flag for when upstream history has changed
  • Support any Git host, not just GitLab (#8)
  • Configure the main branch per-repository via MAIN_BRANCH env var (#2)

🐞 Bug fixes

  • Fix idempotent runs: set committer date = author date so cherry-picks are deterministic (Fixes #3)
  • Fix linear history: use cherry-pick instead of merge to avoid merge commits in the monorepo (Fixes #7)
  • Fix commit deduplication: include commit hash in blob content so identical-content commits are preserved (Fixes #4)

💻 Code quality

  • Replace os.system() shell call with shutil.copy() to prevent command injection (#10)