11import argparse
22
3- from .release import upload_to_github_release_page
3+ from gardenlinux .logger import LoggerSetup
4+
5+ from .release import create_github_release , upload_to_github_release_page , write_to_release_id_file
6+ from .release_notes import create_github_release_notes
7+
8+ LOGGER = LoggerSetup .get_logger ("gardenlinux.github" , "INFO" )
49
510
611def main ():
712 parser = argparse .ArgumentParser (description = "GitHub Release Script" )
813 subparsers = parser .add_subparsers (dest = "command" )
914
15+ create_parser = subparsers .add_parser ("create" )
16+ create_parser .add_argument ("--owner" , default = "gardenlinux" )
17+ create_parser .add_argument ("--repo" , default = "gardenlinux" )
18+ create_parser .add_argument ("--tag" , required = True )
19+ create_parser .add_argument ("--commit" , required = True )
20+ create_parser .add_argument ('--latest' , action = 'store_true' , default = False )
21+ create_parser .add_argument ("--dry-run" , action = "store_true" , default = False )
22+
1023 upload_parser = subparsers .add_parser ("upload" )
1124 upload_parser .add_argument ("--owner" , default = "gardenlinux" )
1225 upload_parser .add_argument ("--repo" , default = "gardenlinux" )
@@ -16,7 +29,19 @@ def main():
1629
1730 args = parser .parse_args ()
1831
19- if args .command == "upload" :
32+ if args .command == "create" :
33+ body = create_github_release_notes (args .tag , args .commit )
34+ if args .dry_run :
35+ print ("Dry Run ..." )
36+ print ("This release would be created:" )
37+ print (body )
38+ else :
39+ release_id = create_github_release (
40+ args .owner , args .repo , args .tag , args .commit , args .latest , body
41+ )
42+ write_to_release_id_file (f"{ release_id } " )
43+ LOGGER .info (f"Release created with ID: { release_id } " )
44+ elif args .command == "upload" :
2045 upload_to_github_release_page (
2146 args .owner , args .repo , args .release_id , args .file_path , args .dry_run
2247 )
0 commit comments