@@ -28,10 +28,40 @@ const { Octokit } = require("octokit");
2828
2929// Parse command line arguments
3030const args = process . argv . slice ( 2 ) ;
31+
32+ // Check for help flag
33+ if ( args . includes ( '--help' ) || args . includes ( '-h' ) ) {
34+ console . log ( 'Copy Discussions between GitHub repositories' ) ;
35+ console . log ( '' ) ;
36+ console . log ( 'Usage:' ) ;
37+ console . log ( ' node copy-discussions.js <source_org> <source_repo> <target_org> <target_repo>' ) ;
38+ console . log ( '' ) ;
39+ console . log ( 'Arguments:' ) ;
40+ console . log ( ' source_org Source organization name' ) ;
41+ console . log ( ' source_repo Source repository name' ) ;
42+ console . log ( ' target_org Target organization name' ) ;
43+ console . log ( ' target_repo Target repository name' ) ;
44+ console . log ( '' ) ;
45+ console . log ( 'Environment Variables:' ) ;
46+ console . log ( ' SOURCE_TOKEN GitHub token with read access to source repository discussions' ) ;
47+ console . log ( ' TARGET_TOKEN GitHub token with write access to target repository discussions' ) ;
48+ console . log ( '' ) ;
49+ console . log ( 'Example:' ) ;
50+ console . log ( ' node copy-discussions.js source-org repo1 target-org repo2' ) ;
51+ console . log ( '' ) ;
52+ console . log ( 'Note:' ) ;
53+ console . log ( ' - Both tokens must have the "repo" scope' ) ;
54+ console . log ( ' - This script copies discussion content, comments, replies, polls, reactions,' ) ;
55+ console . log ( ' locked status, and pinned status' ) ;
56+ console . log ( ' - Attachments (images and files) will not copy over and require manual handling' ) ;
57+ process . exit ( 0 ) ;
58+ }
59+
3160if ( args . length !== 4 ) {
3261 console . error ( "Usage: node copy-discussions.js <source_org> <source_repo> <target_org> <target_repo>" ) ;
3362 console . error ( "\nExample:" ) ;
3463 console . error ( " node copy-discussions.js source-org repo1 target-org repo2" ) ;
64+ console . error ( "\nFor more information, use --help" ) ;
3565 process . exit ( 1 ) ;
3666}
3767
0 commit comments