Releases: QuantEcon/workflow-backups
Releases · QuantEcon/workflow-backups
v0.3.0
Features
- Issues metadata backup: Export GitHub issues (with comments) to JSON files
- New
backup_metadata.issuesconfig option (disabled by default) - JSON schema includes issue metadata, labels, assignees, milestones, comments
- Files saved as
{repo}-issues-{date}.jsonalongside git archives
- New
- Monthly issue reporting: Backup reports grouped by month with collapsed details
- End-of-month review reminder: @mmcky mention when day >= 25
Changes
BackupManagernow accepts optionalbackup_metadataconfiguration- GitHub issue reports now use monthly issues instead of single rolling issue
Notes
- Issues backup is disabled by default due to API rate limit concerns (see #3)
- Each issue requires a separate API call for comments
- GraphQL optimization planned for future release
Testing
- 69 tests passing
- 83% code coverage
- Tested on Python 3.9, 3.10, 3.11, 3.12
See CHANGELOG.md for full details.
v0.2.0
Features
exclude_archived: Skip archived repositories during backupexclude_repositories: Exclude specific repos by exact nameexclude_patterns: Exclude repos matching regex patterns- Improved logging: Excluded repos shown in formatted multi-column list
Code Quality
- Type hints updated to Python 3.9+ style (
list,dict,set) - Ruff configuration updated to use
[tool.ruff.lint]section - All 55 tests passing on Python 3.9-3.12
- 88% code coverage
Security
All GitHub operations verified READ-ONLY:
- Only
get_organization(),get_repos(), and property access - Only
git clone --mirror(download-only, never pushes) - Source repositories are never modified
Full Changelog
https://github.com/QuantEcon/workflow-backups/blob/main/CHANGELOG.md
v0.1.0
Features
- Individual repository backup - Use
repositories:config for exact repo names - Pattern-based backup - Use
patterns:config with regex matching - Skip existing backups - Automatically skips same-day backups
- PAT authentication - Support for private repos via
REPO_BACKUP_TOKEN - S3 upload - Uploads with SHA256 checksums for integrity
- Backup reporting - Generate reports on backup status
- Issue reporting - Creates/updates GitHub issue for weekly runs
- Dry-run mode - Preview what would be backed up
- Force backup - Override skip-existing behavior
Tested & Validated
- ✅ 8 repositories backed up successfully
- ✅ Restore process verified (full git history, branches, tags)
- ✅ All 44 unit tests passing
Usage
python -m src.main --config config.yml --task backup
python -m src.main --config config.yml --task backup --dry-run
python -m src.main --config config.yml --task reportSee README.md for full documentation.