Commit Graph

29 Commits

Author SHA1 Message Date
04ae1c8674 feat: add whitelist char support to nonascii check (#100)
All checks were successful
submodules sync / sync (push) Successful in 4m27s
build / build (push) Successful in 6m32s
build / trigger-build-image (push) Successful in 23s
This commit brings support of whitelisted characters during repo healthcheck/non-ascii file check. Supported by an extra switch to `repo-health-checker`, `-whitelistedChars`. The argument takes a comma-separated list of non-ASCII characters and ignores them during repo healthcheck. Illegal cmdline input is logged by the logger.

Co-Authored-By: GitHub Copilot <noreply@microsoft.com>
<details>
<summary>Copilot Prompt</summary>
<br>
This is a repo for an online judge orchestrator system «JOJ3». Under `cmd/` lies a source directory for a Go command, `repo-health-checker`. You tell from its name that it checks the repo for stuff like repo size, commit message, non-ASCII character usage, etc. before sending the work to the actual judging and grading system.

Now, I want the non-ASCII character checking function of the repo health checker to be flexible - it shall accept a list of non-ASCII characters and deem them acceptable.

## Your task

- Accept this new cmdline arg. In `cmd/repo-health-checker/main.go`, accept a new command line flag `-whitelisted-chars`, which shall take exactly one string of comma-separated non-ASCII characters. This string shall be passed to the actual healthcheck package.
- Respect this list while scanning the files. In `pkg/healthcheck/nonascii.go`, function `getNonASCII()`, we utilize a bufio *Scanner* to scan through all files for non-ASCII characters. We would like the list of acceptable chars to be passed from the cmdline to here, and modify the scanner logic to actually accept the corresponding characters.
- Error handling and reporting. This command line arg, `-whitelisted-chars`, could be completely abscent; in which case, no characters shall be escaped by default. The comma-separated list passed to the command may contain ASCII characters or multiple characters that are not properly separated; in which case, ignore that element, and report the incident via the SLog logging framework used in this project.
- Test your work. Create new testcases under `examples/healthcheck/` to reflect this change. Reflect to `examples/healthcheck/asciifile/` to learn about how to configure the repo health checker. Integrate your work to the Go test framework such that it could be invoked by running `make test` at the terminal.
  - Note: Use `git init` to init your testcase directory and make a initial commit - this project, JOJ3, only runs in Git repos.

## Notes
- Directory structure. `cmd/` for invokable commands, `pkg/` for the actual logic, `internal` - something you don't need to worry about.
- JOJ3 vs. Health Check. `joj3` is a separate executable; in this session we are only working on the `repo-health-checker`.
- Extras. Make sure to read `README.md` and the directory structure before you go; also, create To-do before you execute your plan.
</details>

Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/100
Reviewed-by: 张泊明518370910136 <bomingzh@sjtu.edu.cn>
Co-authored-by: Mack Wang <mac-wang@sjtu.edu.cn>
Co-committed-by: Mack Wang <mac-wang@sjtu.edu.cn>
2026-04-26 08:23:33 +08:00
e7b0a0f1fd
feat(healthcheck): check actor csv for email
All checks were successful
submodules sync / sync (push) Successful in 41s
build / build (push) Successful in 2m36s
build / trigger-build-image (push) Successful in 11s
2025-07-01 22:13:28 -04:00
9cf640dee5
feat(healthcheck): check commit author email
Some checks failed
build / trigger-build-image (push) Blocked by required conditions
submodules sync / sync (push) Has been cancelled
build / build (push) Has been cancelled
2025-06-04 06:05:11 -04:00
4c15ac48d9 feat(healthcheck): support score
Some checks failed
build / build (push) Successful in 2m16s
build / trigger-build-image (push) Successful in 13s
submodules sync / sync (push) Has been cancelled
2025-05-29 00:06:06 -04:00
c474a5d493
docs(cmd): move README content to package comments (#85)
All checks were successful
submodules sync / sync (push) Successful in 47s
build / build (push) Successful in 1m48s
build / trigger-build-image (push) Successful in 9s
2025-02-11 11:16:38 -05:00
10ff3ebfa1
feat(cmd/joj3): remove hardcoded teapot part (#83) [force build]
All checks were successful
submodules sync / sync (push) Successful in 35s
build / build (push) Successful in 1m11s
build / trigger-build-image (push) Successful in 7s
2025-02-01 09:10:03 -05:00
1bbc589897
feat(healthcheck): remove joj3-check
All checks were successful
submodules sync / sync (push) Successful in 32s
build / build (push) Successful in 1m11s
build / trigger-build-image (push) Successful in 6s
2025-02-01 04:59:25 -05:00
e8c6e87b94
feat(cmd): load groups from env
All checks were successful
submodules sync / sync (push) Successful in 33s
build / build (push) Successful in 1m5s
build / trigger-build-image (push) Successful in 7s
2025-01-31 21:06:38 -05:00
3d828b6168
feat(healthcheck): run joj3-check-env
All checks were successful
submodules sync / sync (push) Successful in 51s
build / build (push) Successful in 1m48s
build / trigger-build-image (push) Successful in 8s
2025-01-31 19:23:05 -05:00
41734ef5d5
chore(cmd/joj3): remove redundant return value
Some checks failed
build / build (push) Failing after 0s
build / trigger-build-image (push) Has been skipped
submodules sync / sync (push) Failing after 0s
2025-01-29 08:39:30 -05:00
17f098a6dc
chore(healthcheck): remove unused cli args 2025-01-13 04:44:17 -05:00
3b24f4fd79
fix(healthcheck): typo
All checks were successful
submodules sync / sync (push) Successful in 37s
build / build (push) Successful in 1m7s
build / trigger-build-image (push) Successful in 7s
2024-12-05 19:00:30 -05:00
9246107da9
chore(healthcheck): error log teapot check env
Some checks failed
submodules sync / sync (push) Failing after 22s
build / build (push) Successful in 1m13s
build / trigger-build-image (push) Successful in 7s
2024-12-05 18:51:12 -05:00
c2bb81ee3d
chore(healthcheck): log teapot check env
All checks were successful
submodules sync / sync (push) Successful in 37s
build / build (push) Successful in 1m11s
build / trigger-build-image (push) Successful in 7s
2024-12-05 16:41:51 -05:00
0f5ccf8af2
feat(healthcheck): add teapot-checker to repo-health-checker
All checks were successful
submodules sync / sync (push) Successful in 44s
build / build (push) Successful in 1m28s
build / trigger-build-image (push) Successful in 8s
2024-12-05 12:05:22 -05:00
4bf38c21d5
refactor(cmd/repo-health-checker): parse flag in init
All checks were successful
submodules sync / sync (push) Successful in 41s
build / build (push) Successful in 1m19s
build / trigger-build-image (push) Successful in 8s
2024-12-04 06:47:05 -05:00
5d7be878e1
fix(healthcheck): typo
Some checks failed
submodules sync / sync (push) Successful in 49s
build / build (push) Failing after 1m39s
build / trigger-build-image (push) Has been skipped
2024-11-27 01:45:15 -05:00
cfc455e0fb fix(healthcheck): determine non-ascii file from git attributes (#69)
All checks were successful
build / build (push) Successful in 1m27s
build / trigger-build-image (push) Has been skipped
submodules sync / sync (push) Successful in 31s
Co-authored-by: zzjc1234 <2359047351@qq.com>
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/69
Reviewed-by: 张泊明518370910136 <bomingzh@sjtu.edu.cn>
Co-authored-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
Co-committed-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
2024-10-21 17:04:52 +08:00
621415b71f
feat(healthcheck): better cli args
All checks were successful
build / build (push) Successful in 59s
build / trigger-build-image (push) Successful in 6s
2024-10-18 20:00:41 -04:00
200e8b02ac
feat(healthcheck): more debug logs 2024-10-18 03:02:07 -04:00
f115bb49c8
chore(healthcheck): backward compatibility arg
All checks were successful
build / build (push) Successful in 1m5s
build / trigger-build-image (push) Successful in 7s
2024-10-18 02:57:35 -04:00
b75a756998 feat(healthcheck): forbidden check guided by .gitignore file (#58) (#60)
Some checks failed
build / build (push) Failing after 19s
build / trigger-build-image (push) Has been skipped
Co-authored-by: Hydraallen <wangruiallen@gmail.com>
Co-authored-by: zzjc1234 <2359047351@qq.com>
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/60
Reviewed-by: 张泊明518370910136 <bomingzh@sjtu.edu.cn>
Co-authored-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
Co-committed-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
2024-10-18 14:41:09 +08:00
1ab6fa4583 fix(healthcheck): remove unused args (#59)
All checks were successful
build / build (push) Successful in 1m14s
build / trigger-build-image (push) Successful in 9s
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/59
Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn>
Co-committed-by: Boming Zhang <bomingzh@sjtu.edu.cn>
2024-10-14 22:44:30 +08:00
10798a8c4b
refactor(healthcheck)!: unify argument cases
All checks were successful
build / build (push) Successful in 1m8s
build / trigger-build-image (push) Successful in 7s
2024-10-13 05:18:03 -04:00
bb3743d4cc
feat(healthcheck): remove redundant tag checker
All checks were successful
build / build (push) Successful in 1m3s
build / trigger-build-image (push) Successful in 7s
2024-10-13 04:37:52 -04:00
901290d263 feat: check repo size with conf (#56)
All checks were successful
build / build (push) Successful in 1m11s
build / trigger-build-image (push) Successful in 7s
Co-authored-by: zzjc1234 <2359047351@qq.com>
Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn>
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/56
Reviewed-by: 张泊明518370910136 <bomingzh@sjtu.edu.cn>
Co-authored-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
Co-committed-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
2024-10-12 18:30:54 +08:00
3f9ec1a71d feat: get release tag from msg scope (#49)
All checks were successful
build / build (push) Successful in 1m46s
build / trigger-build-image (push) Successful in 6s
Check release tag from msg scope.

Co-authored-by: zzjc1234 <2359047351@qq.com>
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/49
Reviewed-by: 张泊明518370910136 <bomingzh@sjtu.edu.cn>
Co-authored-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
Co-committed-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
2024-10-08 11:16:14 +08:00
70012012c4 fix: milestone number (#48)
All checks were successful
build / build (push) Successful in 1m39s
build / trigger-build-image (push) Successful in 5s
Co-authored-by: zzjc1234 <2359047351@qq.com>
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/48
Co-authored-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
Co-committed-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
2024-10-08 09:10:55 +08:00
c3faf8ed55 feat: run stages and teapot in joj3 (#47)
All checks were successful
build / build (push) Successful in 1m39s
build / trigger-build-image (push) Successful in 6s
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/47
Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn>
Co-committed-by: Boming Zhang <bomingzh@sjtu.edu.cn>
2024-10-07 13:27:20 +08:00