Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Configuring VCS (Version Control System)

The VCS settings you need will depend on how you have decided to distribute the editor source code to students: see more about how students get the code.

The default settings do not use Git or GitHub at all — the students download a zip file directly from the race server. But the settings that control this behaviour are nonetheless in this VCS group, because all the alternatives do use version control.

To see which settings are required for each distribution method, see the individual descriptions (the settings are listed in the “Set up” section). The Config settings interface will warn you if any of your current settings do not match suggested values for your chosen method.

Config settings (“VCS”)

Setting Description
IS_USING_VCS Are you using a Version Control System (VCS) like GitHub or GitLab to distribute the source code for the buggy editor to students? If you choose Yes there is still quite a lot of flexibility as to how it’s implemented (from simply downloading from GitHub, to manually preloading students’ GitLab repos, to automatically forking via an OAuth client into GitHub accounts). If you choose No, the students can download a zip file from this server or your own site. See also EDITOR_DISTRIBUTION_METHOD in the Project group of config settings.

Default value: No
VCS_NAME If you are distributing the editor code to your students through a version control system (VCS), what is it called? GitHub is common, but you might be using a different one (for example, if you’re running your own installation of GitLab). This setting is used anywhere the VCS gets mentioned in texts such as in the tasks or tech notes (which you might also edit or write yourself). This setting can be ignored if IS_USING_VCS is No. See also EDITOR_DISTRIBUTION_METHOD in the Project group of config settings.

Default value: GitHub
BUGGY_EDITOR_REPO_URL URL to the ‘buggy editor’ code the students need to start the project. This will usually be the URL to your customised, forked repo. If IS_USING_VCS is No, this setting is ignored.

Default value: https://github.com/buggyrace/buggy-race-editor
BUGGY_EDITOR_REPO_NAME This should match the name in the BUGGY_EDITOR_REPO_URL and is used in some of the GitHub API calls: if you’ve forked the repo and not changed its name, you won’t need to change this. If IS_USING_VCS is No, this setting is ignored.

Default value: buggy-race-editor
BUGGY_EDITOR_REPO_OWNER The BUGGY_EDITOR_REPO_URL is public and owned by buggyrace. If you’ve forked the repo (and customised it), change this to your username on the version control platform you’re using (e.g., GitHub or GitLab). It should match the username that appears in BUGGY_EDITOR_REPO_URL. If IS_USING_VCS is No, this setting is ignored.

Default value: buggyrace
IS_STUDENT_USING_REPO Should students fork the buggy editor repo into their own (version controlled) repo? Choose No if your students are not using a VCS (such as GitHub or GitLab). If you choose yes, remember to set VCS_NAME to match whichever such system you are using. This setting must align with what you’ve chosen for EDITOR_DISTRIBUTION_METHOD in the Project group of config settings. This setting is used to ensure that the instructions students see on the race server match how you’re running the project, and is ignored if IS_USING_VCS is No.

Default value: No
STUDENT_EDITOR_REPO_URL The URL for the students’ own buggy editor repos (for example, where they have been forked to). This may well be the same base domain that’s in BUGGY_EDITOR_REPO_URL (which is the URL of the repo they were forked from). It should probably relate to VCS_NAME too. This is used to construct links from the race server to each student’s repo: if one of the following placeholder strings (%USERNAME%, %VCS_USERNAME%, %EXT_USERNAME%, or %EXT_ID%) occurs in the URL string you provide, it will be replaced by the value for the current user. Do not use this setting as a text substitution in tasks or tech notes, because the current-user replacement is not applied on static content. If you don’t want to link to individual students’ repos (maybe you’ve set USERS_HAVE_VCS_USERNAME to No, so the server cannot construct the URL), leave it blank. It must be specified if EDITOR_DISTRIBUTION_METHOD is autofork. This setting is ignored if IS_STUDENT_USING_REPO is No.

Default value: https://github.com/
IS_USING_GITHUB_API_TO_FORK If students must work with the buggy editor in their own GitHub repo, the race server can help by automatically forking it for them, using the GitHub API. You must configure the GITHUB_CLIENT_ID and GITHUB_CLIENT_SECRET for this to work (and IS_USING_VCS and IS_STUDENT_USING_REPO must both be Yes). See also EDITOR_DISTRIBUTION_METHOD in the Project group of config settings.

Default value: No
IS_USING_GITHUB_API_TO_INJECT_ISSUES If you have set the race server to use GitHub’s API to fork the buggy editor repo into each student’s account, it will also also inject the tasks as GitHub issues into their repo unless you prevent it here. This setting is ignored unless both IS_USING_VCS and IS_USING_GITHUB_API_TO_FORK are both set to Yes.

Default value: Yes
GITHUB_CLIENT_ID The GitHub client ID for the GitHub app that the server uses to fork the buggy editor repo into a student’s own GitHub account.

Default value: none/empty
GITHUB_CLIENT_SECRET A string that exactly matches the client secret stored on the GitHub app that the server uses to fork the buggy editor repo into a student’s own GitHub account. You only need this if IS_USING_GITHUB_API_TO_FORK is Yes.

Default value: none/empty