updata
其是根据 Github Classroom 里同学们的提交记录,结合 github pages 来生成一个排行网站,可以查看当前每一个作业的完成情况,搜索到自己和其他学生的排名,方便大家更快的了解到课堂的整体进度,提高同学们的参与度,督促自己的成长和进步。
注意在 fork 时,需要将下面的 Owner 设置为 classroom 所在的组织下。
由于 action 在部署执行过程中会获取作业的最新数据,而更新的方式需要调用 Github API 和 classroom 的相关接口,因此需要配置以下两个变量获取访问接口的权限。
a. 首先获取组织中任意 Owner 成员的 Personal access tokens (详细参考)
b. 回到项目 setting 中, 把上一步获取的 Personal access tokens 配置给 action 的环境变量 AUTH_TOKEN
该变量的值是取登录到 classroom.github.com 网站中的 cookie._github_classroom_session 字段
因为项目的 action 中有一个执行定时任务的 workflow, 需要手动开启。 该任务每小时会刷新一次排行榜数据。
为什么需要手动打开 workflow
项目的 setting 中进行 pages 设置
将 fork 的项目 clone 到本地,修改 classroom.config.json
{ "org": "组织-必填", "classrooms": [ { "name": "教室名称-必填", "assignments": [ "作业一", "作业二" ], "studentBlacklist": ["黑名单"] } ], "website": { "title": "LOGO标题" } }
类似于babel的插件化配置, 项目也支持对教室的 assignment 进行参数化配置。
比如目前项目支持按分支维度进行更细分地排行。
{ "assignments": ["learning-rust", { "branches": ["lab0", "lab1"] }] }
修改完配置后 push 到 main 分支,会自动触发执行 action,等待几分钟后,便可以访问自己的排行榜页面了。
同时该项目设置了定时更新数据任务,每小时会执行一次,执行结束后,自动刷新页面内容.
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802032778号
介绍
该项目可用于快速部署一个 classroom 排行榜网站
其是根据 Github Classroom 里同学们的提交记录,结合 github pages 来生成一个排行网站,可以查看当前每一个作业的完成情况,搜索到自己和其他学生的排名,方便大家更快的了解到课堂的整体进度,提高同学们的参与度,督促自己的成长和进步。
如何快速部署
1. Fork 项目
注意在 fork 时,需要将下面的 Owner 设置为 classroom 所在的组织下。
2. 添加环境变量
由于 action 在部署执行过程中会获取作业的最新数据,而更新的方式需要调用 Github API 和 classroom 的相关接口,因此需要配置以下两个变量获取访问接口的权限。
2.1 设置 AUTH_TOKEN
a. 首先获取组织中任意 Owner 成员的 Personal access tokens (详细参考)
b. 回到项目 setting 中, 把上一步获取的 Personal access tokens 配置给 action 的环境变量 AUTH_TOKEN
2.2 设置 SESSION_TOKEN
该变量的值是取登录到 classroom.github.com 网站中的 cookie._github_classroom_session 字段
3 打开 workflow 开关
因为项目的 action 中有一个执行定时任务的 workflow, 需要手动开启。 该任务每小时会刷新一次排行榜数据。
为什么需要手动打开 workflow
4. 配置 gh-pages
项目的 setting 中进行 pages 设置
5. 修改配置
将 fork 的项目 clone 到本地,修改 classroom.config.json
配置字段说明
classroom 字段类型
assignment 字段类型
assignment 配置参数类型
类似于babel的插件化配置, 项目也支持对教室的 assignment 进行参数化配置。
比如目前项目支持按分支维度进行更细分地排行。
website 字段类型
完整的 classroom 名称
部署
修改完配置后 push 到 main 分支,会自动触发执行 action,等待几分钟后,便可以访问自己的排行榜页面了。
同时该项目设置了定时更新数据任务,每小时会执行一次,执行结束后,自动刷新页面内容.