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