Source challenge status from GitLab instead of Nextcloud

Read the README.md of every repo in the GitLab challenges group via the
REST API and rework the HedgeDoc note for project tracking: challenges
ready for infra testing first, then status by category and a
category x difficulty grid. Free-text status/difficulty/category values
are normalised; untouched templates and repos scheduled for deletion
are left out of the counts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-20 16:12:35 +02:00
co-authored by Claude Opus 5.5
parent 7c546ab673
commit e8a04fe415
6 changed files with 423 additions and 291 deletions
+8 -7
View File
@@ -1,10 +1,11 @@
# cp to ctf_status.env and chmod 600
NC_URL=https://cloud.h4tum.de
NC_USER=your-nextcloud-login
# Settings -> Security -> "Create new app password" (NOT your real password)
NC_PASS=xxxxx-xxxxx-xxxxx-xxxxx-xxxxx
# path of the folder holding the per-author folders, relative to your Nextcloud root
NC_ROOT=CTF/challenges
# cp to ctf_status.env and chmod 600 (a plain .env next to the script works too)
# --- GitLab: the group holding one repo per challenge -----------------------
GITLAB_GROUP_URL=https://gitlab.lrz.de/h4tum-ctf/h4tum-ctf-2026/challenges
# fine-grained personal access token, scoped to that group, with
# Project: Read (list the repos)
# Repository: Read (download each README.md)
GITLAB_TOKEN=glpat-xxxxxxxxxxxxxxxxxxxx
# --- HedgeDoc: the existing note that gets overwritten every run ------------
# full URL of the note (its permission must be "freely" so an anonymous