File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11vendor
22credentials.json
33.DS_Store
4+ milestone_move_progress.json
Original file line number Diff line number Diff line change 1+ # GitHub Milestone Issue Mover
2+
3+ Bulk move GitHub issues/PRs between milestones across multiple repositories.
4+
5+ ## Features
6+
7+ - 🔄 Bulk migration across multiple repos
8+ - 🛡️ Automatic rate limit handling
9+ - 📋 Resume interrupted runs
10+ - 🧪 Dry run mode
11+ - 💾 Progress tracking
12+
13+ ## Usage
14+
15+ ``` bash
16+ # Basic usage
17+ php run.php " Source Milestone" " Destination Milestone"
18+
19+ # Options
20+ --dry-run Preview changes without applying
21+ --resume Continue from previous interrupted run
22+ --help Show usage info
23+ ```
24+
25+ ## Examples
26+
27+ ``` bash
28+ # Move issues
29+ php run.php " Nextcloud 25" " Nextcloud 26"
30+
31+ # Preview first
32+ php run.php " Nextcloud 25.0.4" " Nextcloud 25.0.5" --dry-run
33+
34+ # Resume interrupted run
35+ php run.php " Nextcloud 25.0.4" " Nextcloud 25.0.5" --resume
36+ ```
37+
38+ ## Requirements
39+
40+ - GitHub token with ` repo ` and ` issues ` permissions (set in ` credentials.json ` )
41+ - Both milestones must already exist in target repositories
42+
43+ ## How it Works
44+
45+ 1 . Finds source/destination milestones in each repo
46+ 2 . Gets all issues assigned to source milestone
47+ 3 . Updates each issue to destination milestone
48+ 4 . Saves progress every 5 issues for resumption
49+ 5 . Handles rate limits automatically (5000 requests/hour)
Original file line number Diff line number Diff line change 1+ {
2+ "require" : {
3+ "knplabs/github-api" : " ^3.9.0" ,
4+ "guzzlehttp/guzzle" : " ^7.5.0" ,
5+ "http-interop/http-factory-guzzle" : " ^1.2.0" ,
6+ "tedivm/stash" : " ^0.16.0"
7+ },
8+ "config" : {
9+ "allow-plugins" : {
10+ "php-http/discovery" : true
11+ }
12+ }
13+ }
You can’t perform that action at this time.
0 commit comments