forked from JOJ/Joint-Teapot
		
	feat: make joj3-env commands use options
This commit is contained in:
		
							parent
							
								
									1430b11e45
								
							
						
					
					
						commit
						5b7a102115
					
				|  | @ -225,7 +225,7 @@ def unsubscribe_from_repos(pattern: str = Argument("")) -> None: | ||||||
| def joj3_scoreboard( | def joj3_scoreboard( | ||||||
|     env_path: str = Argument("", help="path to .env file"), |     env_path: str = Argument("", help="path to .env file"), | ||||||
|     score_file_path: str = Argument( |     score_file_path: str = Argument( | ||||||
|         "", help="path to score json file generated by JOJ3" |         "grading", help="path to score json file generated by JOJ3" | ||||||
|     ), |     ), | ||||||
|     submitter: str = Argument("", help="submitter ID"), |     submitter: str = Argument("", help="submitter ID"), | ||||||
|     repo_name: str = Argument( |     repo_name: str = Argument( | ||||||
|  | @ -240,7 +240,7 @@ def joj3_scoreboard( | ||||||
|         "", |         "", | ||||||
|         help="gitea actions run number", |         help="gitea actions run number", | ||||||
|     ), |     ), | ||||||
|     scoreboard_file_name: str = Argument( |     scoreboard_filename: str = Argument( | ||||||
|         "scoreboard.csv", help="name of scoreboard file in the gitea repo" |         "scoreboard.csv", help="name of scoreboard file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     exercise_name: str = Argument( |     exercise_name: str = Argument( | ||||||
|  | @ -284,7 +284,7 @@ def joj3_scoreboard( | ||||||
|         joj3.generate_scoreboard( |         joj3.generate_scoreboard( | ||||||
|             score_file_path, |             score_file_path, | ||||||
|             submitter, |             submitter, | ||||||
|             os.path.join(repo_path, scoreboard_file_name), |             os.path.join(repo_path, scoreboard_filename), | ||||||
|             exercise_name, |             exercise_name, | ||||||
|         ) |         ) | ||||||
|         actions_link = ( |         actions_link = ( | ||||||
|  | @ -297,7 +297,7 @@ def joj3_scoreboard( | ||||||
|             + f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" |             + f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" | ||||||
|             + f"gitea actions link: {actions_link}" |             + f"gitea actions link: {actions_link}" | ||||||
|         ) |         ) | ||||||
|         tea.pot.git.add_commit(repo_name, [scoreboard_file_name], commit_message) |         tea.pot.git.add_commit(repo_name, [scoreboard_filename], commit_message) | ||||||
|         tea.pot.git.push(repo_name) |         tea.pot.git.push(repo_name) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -323,7 +323,7 @@ def joj3_failed_table( | ||||||
|         "", |         "", | ||||||
|         help="gitea actions run number", |         help="gitea actions run number", | ||||||
|     ), |     ), | ||||||
|     failed_table_file_name: str = Argument( |     failed_table_filename: str = Argument( | ||||||
|         "failed-table.md", help="name of failed table file in the gitea repo" |         "failed-table.md", help="name of failed table file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     exercise_name: str = Argument( |     exercise_name: str = Argument( | ||||||
|  | @ -377,7 +377,7 @@ def joj3_failed_table( | ||||||
|             score_file_path, |             score_file_path, | ||||||
|             submitter_repo_name, |             submitter_repo_name, | ||||||
|             submitter_repo_link, |             submitter_repo_link, | ||||||
|             os.path.join(repo_path, failed_table_file_name), |             os.path.join(repo_path, failed_table_filename), | ||||||
|             actions_link, |             actions_link, | ||||||
|         ) |         ) | ||||||
|         commit_message = ( |         commit_message = ( | ||||||
|  | @ -385,7 +385,7 @@ def joj3_failed_table( | ||||||
|             + f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" |             + f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" | ||||||
|             + f"gitea actions link: {actions_link}" |             + f"gitea actions link: {actions_link}" | ||||||
|         ) |         ) | ||||||
|         tea.pot.git.add_commit(repo_name, [failed_table_file_name], commit_message) |         tea.pot.git.add_commit(repo_name, [failed_table_filename], commit_message) | ||||||
|         tea.pot.git.push(repo_name) |         tea.pot.git.push(repo_name) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -460,10 +460,10 @@ def joj3_all( | ||||||
|         "", |         "", | ||||||
|         help="gitea actions run number", |         help="gitea actions run number", | ||||||
|     ), |     ), | ||||||
|     scoreboard_file_name: str = Argument( |     scoreboard_filename: str = Argument( | ||||||
|         "scoreboard.csv", help="name of scoreboard file in the gitea repo" |         "scoreboard.csv", help="name of scoreboard file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     failed_table_file_name: str = Argument( |     failed_table_filename: str = Argument( | ||||||
|         "failed-table.md", help="name of failed table file in the gitea repo" |         "failed-table.md", help="name of failed table file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     exercise_name: str = Argument( |     exercise_name: str = Argument( | ||||||
|  | @ -597,12 +597,12 @@ def joj3_all( | ||||||
|                 joj3.generate_scoreboard( |                 joj3.generate_scoreboard( | ||||||
|                     score_file_path, |                     score_file_path, | ||||||
|                     submitter, |                     submitter, | ||||||
|                     os.path.join(repo_path, scoreboard_file_name), |                     os.path.join(repo_path, scoreboard_filename), | ||||||
|                     exercise_name, |                     exercise_name, | ||||||
|                 ) |                 ) | ||||||
|                 tea.pot.git.add_commit( |                 tea.pot.git.add_commit( | ||||||
|                     repo_name, |                     repo_name, | ||||||
|                     [scoreboard_file_name], |                     [scoreboard_filename], | ||||||
|                     ( |                     ( | ||||||
|                         f"joj3: update scoreboard for {exercise_name} by @{submitter} in " |                         f"joj3: update scoreboard for {exercise_name} by @{submitter} in " | ||||||
|                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" |                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" | ||||||
|  | @ -616,12 +616,12 @@ def joj3_all( | ||||||
|                     score_file_path, |                     score_file_path, | ||||||
|                     submitter_repo_name, |                     submitter_repo_name, | ||||||
|                     submitter_repo_url, |                     submitter_repo_url, | ||||||
|                     os.path.join(repo_path, failed_table_file_name), |                     os.path.join(repo_path, failed_table_filename), | ||||||
|                     gitea_actions_url, |                     gitea_actions_url, | ||||||
|                 ) |                 ) | ||||||
|                 tea.pot.git.add_commit( |                 tea.pot.git.add_commit( | ||||||
|                     repo_name, |                     repo_name, | ||||||
|                     [failed_table_file_name], |                     [failed_table_filename], | ||||||
|                     ( |                     ( | ||||||
|                         f"joj3: update failed table for {exercise_name} by @{submitter} in " |                         f"joj3: update failed table for {exercise_name} by @{submitter} in " | ||||||
|                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" |                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" | ||||||
|  | @ -649,14 +649,14 @@ def joj3_all( | ||||||
| ) | ) | ||||||
| def joj3_all_env( | def joj3_all_env( | ||||||
|     env_path: str = Argument("", help="path to .env file"), |     env_path: str = Argument("", help="path to .env file"), | ||||||
|     grading_repo_name: str = Argument( |     grading_repo_name: str = Option( | ||||||
|         "", |         "", | ||||||
|         help="name of grading repo to push failed table file", |         help="name of grading repo to push failed table file", | ||||||
|     ), |     ), | ||||||
|     scoreboard_file_name: str = Argument( |     scoreboard_filename: str = Option( | ||||||
|         "scoreboard.csv", help="name of scoreboard file in the gitea repo" |         "scoreboard.csv", help="name of scoreboard file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     failed_table_file_name: str = Argument( |     failed_table_filename: str = Option( | ||||||
|         "failed-table.md", help="name of failed table file in the gitea repo" |         "failed-table.md", help="name of failed table file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     max_total_score: int = Option( |     max_total_score: int = Option( | ||||||
|  | @ -801,12 +801,12 @@ def joj3_all_env( | ||||||
|                 joj3.generate_scoreboard( |                 joj3.generate_scoreboard( | ||||||
|                     score_file_path, |                     score_file_path, | ||||||
|                     submitter, |                     submitter, | ||||||
|                     os.path.join(repo_path, scoreboard_file_name), |                     os.path.join(repo_path, scoreboard_filename), | ||||||
|                     exercise_name, |                     exercise_name, | ||||||
|                 ) |                 ) | ||||||
|                 tea.pot.git.add_commit( |                 tea.pot.git.add_commit( | ||||||
|                     grading_repo_name, |                     grading_repo_name, | ||||||
|                     [scoreboard_file_name], |                     [scoreboard_filename], | ||||||
|                     ( |                     ( | ||||||
|                         f"joj3: update scoreboard for {exercise_name} by @{submitter} in " |                         f"joj3: update scoreboard for {exercise_name} by @{submitter} in " | ||||||
|                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" |                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" | ||||||
|  | @ -820,12 +820,12 @@ def joj3_all_env( | ||||||
|                     score_file_path, |                     score_file_path, | ||||||
|                     submitter_repo_name, |                     submitter_repo_name, | ||||||
|                     submitter_repo_url, |                     submitter_repo_url, | ||||||
|                     os.path.join(repo_path, failed_table_file_name), |                     os.path.join(repo_path, failed_table_filename), | ||||||
|                     gitea_actions_url, |                     gitea_actions_url, | ||||||
|                 ) |                 ) | ||||||
|                 tea.pot.git.add_commit( |                 tea.pot.git.add_commit( | ||||||
|                     grading_repo_name, |                     grading_repo_name, | ||||||
|                     [failed_table_file_name], |                     [failed_table_filename], | ||||||
|                     ( |                     ( | ||||||
|                         f"joj3: update failed table for {exercise_name} by @{submitter} in " |                         f"joj3: update failed table for {exercise_name} by @{submitter} in " | ||||||
|                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" |                         f"{settings.gitea_org_name}/{submitter_repo_name}@{commit_hash}\n\n" | ||||||
|  | @ -862,7 +862,7 @@ def joj3_check( | ||||||
|         "", |         "", | ||||||
|         help="repository's name of the submitter", |         help="repository's name of the submitter", | ||||||
|     ), |     ), | ||||||
|     scoreboard_file_name: str = Argument( |     scoreboard_filename: str = Argument( | ||||||
|         "scoreboard.csv", help="name of scoreboard file in the gitea repo" |         "scoreboard.csv", help="name of scoreboard file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     exercise_name: str = Argument( |     exercise_name: str = Argument( | ||||||
|  | @ -895,7 +895,7 @@ def joj3_check( | ||||||
|         since = now - timedelta(hours=time_period) |         since = now - timedelta(hours=time_period) | ||||||
|         since_git_format = since.strftime("%Y-%m-%dT%H:%M:%S") |         since_git_format = since.strftime("%Y-%m-%dT%H:%M:%S") | ||||||
|         submit_count = 0 |         submit_count = 0 | ||||||
|         commits = repo.iter_commits(paths=scoreboard_file_name, since=since_git_format) |         commits = repo.iter_commits(paths=scoreboard_filename, since=since_git_format) | ||||||
|         for commit in commits: |         for commit in commits: | ||||||
|             msg = commit.message.strip() |             msg = commit.message.strip() | ||||||
|             lines = msg.splitlines() |             lines = msg.splitlines() | ||||||
|  | @ -945,15 +945,15 @@ def joj3_check( | ||||||
| ) | ) | ||||||
| def joj3_check_env( | def joj3_check_env( | ||||||
|     env_path: str = Argument("", help="path to .env file"), |     env_path: str = Argument("", help="path to .env file"), | ||||||
|     grading_repo_name: str = Argument( |     grading_repo_name: str = Option( | ||||||
|         "", |         "grading", | ||||||
|         help="name of grading repo to push scoreboard file", |         help="name of grading repo to push scoreboard file", | ||||||
|     ), |     ), | ||||||
|     scoreboard_file_name: str = Argument( |     scoreboard_filename: str = Option( | ||||||
|         "scoreboard.csv", help="name of scoreboard file in the gitea repo" |         "scoreboard.csv", help="name of scoreboard file in the gitea repo" | ||||||
|     ), |     ), | ||||||
|     group_config: str = Option( |     group_config: str = Option( | ||||||
|         ..., |         "=100:24", | ||||||
|         help=( |         help=( | ||||||
|             "Configuration for groups in the format " |             "Configuration for groups in the format " | ||||||
|             "'group_name=max_count:time_period(in hours)'. " |             "'group_name=max_count:time_period(in hours)'. " | ||||||
|  | @ -990,7 +990,7 @@ def joj3_check_env( | ||||||
|         since = now - timedelta(hours=time_period) |         since = now - timedelta(hours=time_period) | ||||||
|         since_git_format = since.strftime("%Y-%m-%dT%H:%M:%S") |         since_git_format = since.strftime("%Y-%m-%dT%H:%M:%S") | ||||||
|         submit_count = 0 |         submit_count = 0 | ||||||
|         commits = repo.iter_commits(paths=scoreboard_file_name, since=since_git_format) |         commits = repo.iter_commits(paths=scoreboard_filename, since=since_git_format) | ||||||
|         for commit in commits: |         for commit in commits: | ||||||
|             lines = commit.message.strip().splitlines() |             lines = commit.message.strip().splitlines() | ||||||
|             pattern = ( |             pattern = ( | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user