Conversation
- Add github_milestone_creator.py script to create/update milestones across repos - Support reference milestones for syncing across repositories - Support automatic milestone matching by name when using referenceMilestoneUrl - Add JSON schema validation with comment support (// and /* */) - Add dry-run mode for safe testing - Support milestone renaming via existingNameToRename - Handle description and due date with null/empty string clearing - Add milestones-schema.json for validation - Add example configuration files - Update requirements.txt to include jsonschema dependency
- Check for milestone with existingNameToRename name before creating - Check for milestone with reference milestone name before creating - Only create new milestone if neither exists - Ensures we don't create duplicate milestones
- Display name, description, and due date changes in CLI output - Show previous → new values for updates - Show (not set) → new values for creates - Indicate (unchanged) when values remain the same - Format dates as YYYY-MM-DD for readability - Works in both dry-run and execution modes
- Add comprehensive README in github-milestone-creator/ directory - Document usage with uv run - Include configuration examples and troubleshooting - Update main README to reference milestone creator tool
- Add PEP 723 inline script metadata for uv run support - Update milestone configuration files
|
I was able to use this to create/update all the milestones. Below is the summary: |
- Rename github_milestone_creator.py to github_milestone_manager.py - Rename GitHubMilestoneCreator class to GitHubMilestoneManager - Update all documentation and references - Update README files to reflect manager naming - Update usage examples to use new filename
There was a problem hiding this comment.
Pull request overview
This PR introduces a new GitHub Milestone Creator tool that enables bulk creation and synchronization of milestones across multiple GitHub repositories. The tool supports syncing from reference repositories, automatic milestone matching, renaming capabilities, JSON schema validation with comment support, and dry-run mode for safe testing.
Changes:
- Added a comprehensive Python script for managing GitHub milestones across multiple repositories with support for reference milestones, renaming, and field clearing
- Included JSON schema validation with support for JSON comments (// and /* */ styles)
- Provided example configuration files demonstrating both standalone and reference-based milestone management
- Added complete documentation with usage examples, configuration format details, and troubleshooting guidance
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| requirements.txt | Added jsonschema>=4.0.0 dependency for JSON schema validation |
| github-milestone-creator/github_milestone_creator.py | Main script implementing milestone creation/update logic with rate limiting, comment stripping, and dry-run support |
| github-milestone-creator/milestones-schema.json | JSON schema defining configuration file structure with validation rules for repos and milestones |
| github-milestone-creator/milestones-filecoin-services-as-source-of-truth-2026-01-23.json | Example configuration for managing milestones in the source-of-truth repository |
| github-milestone-creator/milestones-FOCRepos-2026-01-23.json | Example configuration syncing milestones from reference repository to multiple FOC repos |
| github-milestone-creator/README.md | Comprehensive documentation covering installation, usage, configuration format, and examples |
| README.md | Updated main README with new tool description and feature overview |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "FilOzone/filecoin-pay-explorer", | ||
| // "FilOzone/filecoin-services" // Intentionally not including because it serves as the source of truth for the FOC GA milestones in GitHub. | ||
| "FilOzone/foc-devnet", |
There was a problem hiding this comment.
This line will create invalid JSON after comment stripping. After the comment is removed, there will be a trailing comma after "FilOzone/filecoin-pay-explorer" on line 8, followed by another comma on line 10 (or the closing bracket), which violates JSON syntax. This line should either be moved to the end of the array or the entire line should be commented out including the comma, or the previous line's comma should be removed.
| "FilOzone/filecoin-pay-explorer", | |
| // "FilOzone/filecoin-services" // Intentionally not including because it serves as the source of truth for the FOC GA milestones in GitHub. | |
| "FilOzone/foc-devnet", | |
| "FilOzone/filecoin-pay-explorer" | |
| // "FilOzone/filecoin-services" // Intentionally not including because it serves as the source of truth for the FOC GA milestones in GitHub. | |
| , "FilOzone/foc-devnet", |
This PR adds a new script for managing GitHub milestones across multiple repositories.
Features
Files Added
github-milestone-creator/github_milestone_creator.py- Main scriptgithub-milestone-creator/milestones-schema.json- JSON schema for validationDependencies
jsonschema>=4.0.0to requirements.txt