Skip to content
7lemon edited this page May 23, 2012 · 3 revisions

Assignment Type Github

该插件将Git项目托管站点(例如Github,Google Code等)提供的源代码版本控制功能集成到Moodle中,使教师可以方便地直接通过Moodle检查和管理学生提交到代码仓库中的源代码。打造项目管理、跟踪和评分的一揽子解决方案。

下载和安装

你需要先安装 GitMoodle 并正确配置使其能够正常工作。

下载方法1(推荐)

先进入到**<moodleroot>/mod/assignment/type** 目录中,直接使用Git克隆源代码。这样,当此项目更新时,你可以直接使用git pull命令获得更新。

git clone git://github.com/hit-moodle/moodle-assignment-type_github.git github

下载方法2

通过 moodle-assignment-type_github 项目页面上的下载链接下载ZIP包。ZIP包解压后将源代码文件夹重命名为 github 并复制到 <moodleroot>/mod/assignment/type 目录中。

安装

上述步骤完成后,使用站点管理员身份登录Moodle,将会提示找到新插件,点击安装即可。

设置

容器同步脚本

本插件使用一个CLI脚本 cli/sync_repos.php 获取学生的项目容器。在github目录下直接执行同步过程(假设Web Server的用户是 _www),同步所有github类型作业的容器:

sudo -u _www php cli/sync_repos.php

该脚本接收一个可选参数cm,代表Moodle的Course Module。可以根据一个github类型作业的cmid,只同步这个作业中的容器。

# 同步course module id为1024的作业
sudo -u _www php cli/sync_repos.php --cm=1024

# 可以使用多个cm参数,例如同步course module id为256和1024的两个作业
sudo -u _www php cli/sync_repos.php --cm=256 --cm=1024

创建同步任务

因为不可能每次都由系统管理员手工执行同步,所以需要设置一个定时任务每隔一段时间执行一次同步脚本。同步脚本会将学生的项目容器临时存储在 <moodledata>/github 目录下,在Linux/Unix下由于访问权限的问题,设置cron任务时,应当将其设置为Web服务器的任务。例如Apache的User是 _www,编辑crontab时应使用如下命令:

sudo crontab -u _www -e

若服务器时间每天5点执行同步,同步命令可设置为:

# MOODLEROOT 表示Moodle的绝对路径
* 5 * * * php MOODLEROOT/mod/assignment/type/github/cli/sync_repos.php