Commit Graph

28 Commits

Author SHA1 Message Date
ba8b769a5b chore: update submodule references [skip ci] 2026-04-26 00:27:13 +00:00
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
13408fdd73 chore: update submodule references [skip-ci]
All checks were successful
submodules sync / sync (push) Successful in 1m2s
build / build (push) Successful in 2m24s
build / trigger-build-image (push) Successful in 8s
2025-09-27 08:27:37 +00:00
8a893b14f4 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 1m10s
build / build (push) Successful in 2m45s
build / trigger-build-image (push) Successful in 12s
2025-06-28 12:46:59 +00:00
0ea7672640 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 1m18s
build / build (push) Successful in 8m55s
build / trigger-build-image (push) Successful in 11s
2025-06-05 10:30:32 +00:00
9e8bbc5cc1 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 47s
build / build (push) Successful in 2m24s
build / trigger-build-image (push) Successful in 9s
2025-06-04 10:06:15 +00:00
e1f7e9b22d chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 58s
build / build (push) Successful in 2m32s
build / trigger-build-image (push) Successful in 11s
2025-05-30 22:21:15 +00:00
79182161f4 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 1m12s
build / build (push) Successful in 2m40s
build / trigger-build-image (push) Successful in 13s
2025-05-29 06:06:08 +00:00
b80431c624 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 59s
build / build (push) Successful in 2m20s
build / trigger-build-image (push) Successful in 9s
2025-03-02 04:00:19 +00:00
5228a97cc1
chore(stage): rename score map var
Some checks failed
build / trigger-build-image (push) Blocked by required conditions
build / build (push) Has been cancelled
submodules sync / sync (push) Has been cancelled
2025-03-01 22:59:17 -05:00
65b53b3424 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 53s
build / build (push) Successful in 2m12s
build / trigger-build-image (push) Successful in 17s
2025-03-02 01:50:05 +00:00
29f715fe82 chore: update submodule references
Some checks failed
submodules sync / sync (push) Successful in 55s
build / build (push) Failing after 1m47s
build / trigger-build-image (push) Has been skipped
2025-01-29 20:53:31 +00:00
31c310960f chore: update submodule references
Some checks failed
submodules sync / sync (push) Successful in 39s
build / build (push) Failing after 43s
build / trigger-build-image (push) Has been skipped
2024-11-28 15:06:36 +00:00
3b89d70343 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 37s
build / build (push) Successful in 1m19s
build / trigger-build-image (push) Successful in 7s
2024-11-01 11:44:41 +00:00
23c9f3d453 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 36s
build / build (push) Successful in 1m18s
build / trigger-build-image (push) Successful in 7s
2024-10-30 23:01:00 +00:00
c512900c55
feat(cmd/joj3): show run ID in issue body
Some checks failed
build / trigger-build-image (push) Blocked by required conditions
build / build (push) Has been cancelled
submodules sync / sync (push) Has been cancelled
2024-10-30 19:00:14 -04:00
df9dd48651 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 39s
build / build (push) Successful in 1m22s
build / trigger-build-image (push) Successful in 7s
2024-10-30 22:48:54 +00:00
gitea-actions[bot]
8b282e5b5c chore: update submodule references
Some checks failed
submodules sync / sync (push) Successful in 40s
build / build (push) Failing after 1m21s
build / trigger-build-image (push) Has been skipped
2024-10-23 08:10:13 +00:00
gitea-actions[bot]
7608bd8456 chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 40s
build / build (push) Successful in 1m15s
build / trigger-build-image (push) Successful in 8s
2024-10-21 09:52:30 +00:00
gitea-actions[bot]
94cb68b40a chore: update submodule references
All checks were successful
submodules sync / sync (push) Successful in 30s
build / build (push) Successful in 1m0s
build / trigger-build-image (push) Successful in 6s
2024-10-19 02:07:37 +00:00
b799c15248 ci(submodule): sync submodule (#50)
All checks were successful
submodules sync / sync (push) Successful in 49s
build / build (push) Successful in 2m15s
build / trigger-build-image (push) Successful in 14s
Co-authored-by: gitea-actions[bot] <gitea-actions[bot]@users.noreply.gitea.com>
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/JOJ/JOJ3/pulls/50
Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn>
Co-committed-by: Boming Zhang <bomingzh@sjtu.edu.cn>
2024-10-09 05:33:07 +08:00
cab7861494
chore: update submodules 2024-10-06 07:39:35 -04:00
15a6800685
fix: typo in cppcheck parser
All checks were successful
build / build (push) Successful in 1m20s
build / trigger-build-image (push) Successful in 5s
2024-10-04 06:52:06 -04:00
a66dbc29e4
feat: use CopyInDir instead of CopyInCwd 2024-09-22 01:36:07 -04:00
9e5c933fbd
fix: check only latest commit for non-ascii chars (#38)
according to [this](https://focs.ji.sjtu.edu.cn/mm/focs-team/pl/nsfhoutszfds5c9wpfrmfxb51c) discussion in *joj-dev*

Reviewed-on: https://focs.ji.sjtu.edu.cn/git/FOCS-dev/JOJ3/pulls/38
Co-authored-by: Mack Wang <mac-wang@outlook.com>
Co-committed-by: Mack Wang <mac-wang@outlook.com>
2024-09-21 21:09:56 -04:00
1253404c49
feat: use conf.toml -> conf.json 2024-09-21 21:09:39 -04:00
d03927457a
feat: score & comment conf in result-status and dummy parser 2024-09-21 21:09:39 -04:00
5a860f1203 feat: repo health check (#16) (#17)
- repo size
- forbidden files
- meta files
- ascii character in files
- integrity check
- ascii character in the commit message
- release tag check

Co-authored-by: Boming Zhang <bomingzh@sjtu.edu.cn>
Co-authored-by: zzjc1234 <2359047351@qq.com>
Co-authored-by: Hydraallen <wangruiallen@gmail.com>
Reviewed-on: https://focs.ji.sjtu.edu.cn/git/FOCS-dev/JOJ3/pulls/17
Co-authored-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
Co-committed-by: 周赵嘉程521432910016 <zzjc123@sjtu.edu.cn>
2024-09-11 20:09:27 +08:00