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.
- zip: Students download a zipfile from race server (the default)
- page: Students get the source code from a custom page you set up elsewhere
- repo: Students get the source code from your repo
- preload: You preload the source code by forking repos into students’ accounts
- fork: Students manually fork your repo into their own account
- autofork: Server forks your repo into students' GitHub accounts
- vsremote: Server forks your repo into students' GitHub accounts and then clones via VSCode
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 Yesthere 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 chooseNo, the students can download a zip file from this server or your own site. See alsoEDITOR_DISTRIBUTION_METHODin 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_VCSisNo. See alsoEDITOR_DISTRIBUTION_METHODin 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_VCSisNo, 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_URLand 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. IfIS_USING_VCSisNo, this setting is ignored.Default value: buggy-race-editor | 
| BUGGY_EDITOR_REPO_OWNER | The BUGGY_EDITOR_REPO_URLis public and owned bybuggyrace. 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 inBUGGY_EDITOR_REPO_URL. IfIS_USING_VCSisNo, 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 Noif your students are not using a VCS (such as GitHub or GitLab). If you choose yes, remember to setVCS_NAMEto match whichever such system you are using. This setting must align with what you've chosen forEDITOR_DISTRIBUTION_METHODin 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 ifIS_USING_VCSisNo.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 toVCS_NAMEtoo. 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 setUSERS_HAVE_VCS_USERNAMEtoNo, so the server cannot construct the URL), leave it blank. It must be specified ifEDITOR_DISTRIBUTION_METHODisautofork. This setting is ignored ifIS_STUDENT_USING_REPOisNo.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_IDandGITHUB_CLIENT_SECRETfor this to work (andIS_USING_VCSandIS_STUDENT_USING_REPOmust both beYes). See alsoEDITOR_DISTRIBUTION_METHODin 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_VCSandIS_USING_GITHUB_API_TO_FORKare both set toYes.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_FORKisYes.Default value: none/empty | 
- Previous: Races config
- Next: Remote server config