Files
Charon/.github/PULL_REQUEST_TEMPLATE/history-rewrite.md
GitHub Actions 9adf2735dd feat(history-rewrite): Enhance history rewrite process with detailed backup and validation steps
- Added a comprehensive plan for history rewrites in `docs/plans/history_rewrite.md`, including backup requirements and a checklist for destructive operations.
- Created a QA report for history-rewrite scripts in `docs/reports/qa_report.md`, summarizing tests, findings, and recommendations.
- Introduced `check_refs.sh` script to list branches and tags, saving a tarball of tag references.
- Updated `clean_history.sh` to include non-interactive mode and improved error handling for backup branch pushes.
- Enhanced `preview_removals.sh` to support JSON output format and added shallow clone detection.
- Added Bats tests for `clean_history.sh` and `validate_after_rewrite.sh` to ensure functionality and error handling.
- Implemented pre-commit hook to block commits to `data/backups/` directory.
- Improved validation script to check for backup branch existence and run pre-commit checks.
- Created temporary test scripts for validating `clean_history.sh` and `validate_after_rewrite.sh` functionality.
2025-12-09 14:07:17 +00:00

2.0 KiB

Summary

  • Provide a short summary of why the history rewrite is needed.

Checklist - required for history rewrite PRs

  • I have created a local backup branch: backup/history-YYYYMMDD-HHMMSS and verified it contains all refs.
  • I have pushed the backup branch to the remote origin and it is visible to reviewers.
  • I have run a dry-run locally: scripts/history-rewrite/preview_removals.sh --paths 'backend/codeql-db,codeql-db,codeql-db-js,codeql-db-go' --strip-size 50 and attached the output or paste it below.
  • I have verified the data/backups tarball is present and tests showing rewrite will not remove unrelated artifacts.
  • I have created a tag backup (see data/backups/) and verified tags are pushed to the remote or included in the tarball.
  • I have coordinated with repo maintainers for a rewrite window and notified other active forks/tokens that may be affected.
  • I have run the CI dry-run job and ensured it completes without blocked findings.
  • This PR only contains the history-rewrite helpers; no destructive rewrite is included in this PR.
  • I will not run the destructive --force step without explicit approval from maintainers and a scheduled maintenance window.

Note for maintainers: validate_after_rewrite.sh will check that the backups and backup_branch are present and will fail if they are not. Provide --backup-branch "backup/history-YYYYMMDD-HHMMSS" when running the scripts or set the BACKUP_BRANCH environment variable so automated validation can find the backup branch.

Attachments

Attach the preview_removals output and data/backups/history_cleanup-*.log content and any data/backups tarball created for this PR.

Approach

Describe the paths to be removed, strip size, and whether additional blob stripping is required.

Notes for maintainers

  • The workflow .github/workflows/dry-run-history-rewrite.yml will run automatically on PR updates.
  • Please follow the checklist and only approve after offline confirmation.