Creating GH Repositories - epi-workbench/EWBTemplates GitHub Wiki
This pages walks Epi-Workbench (EWB) course authors through preparing and uploading a completed course to a private GitHub repository under the EWB organization. It ensures consistency across all course repos and automates versioning, changelogs, and metadata updates.
Page Contents
🔴 Update the TOC and run quality checks. https://github.com/epi-workbench/EWBTemplates/wiki/Wiki-Maintenance#top
Prepare Your Course Directory
Before pushing to GitHub, make sure your local course folder conforms to the structure described in Creating New Courses.
Create or Update Required Files
README
If you haven't already done so, update the README file. Often, we wait until after the course was created to update the Course Overview section.
Each course repository includes a Course Overview block in the README. This content is copied directly into the learner-facing Course Overview page on EWB, so clarity and consistency are essential. Below is guidance for completing each section.
[!TIP] 2025-12-02: There is a ChatGPT prompt template to help with completing the course overview section of the README.
Overview (≤100 characters)
Write a single, compact sentence that captures what the course is about at a glance. Think of this as the course’s tagline—short, clear, and focused.
Introduction
Provide a brief, engaging description of what learners can expect. Explain the purpose of the course, the types of skills it focuses on, and how it fits into the broader EWB curriculum. Aim for 2–4 short paragraphs that set expectations without overwhelming learners.
What You’ll Learn
List the key skills, concepts, or capabilities learners will gain. Use short, action-oriented bullet points (e.g., “Create and manipulate basic R objects,” “Write and run R code”). Keep the list tight and focused on outcomes.
Prerequisites
List any courses, skills, or knowledge learners should have before starting this course. Only include what is truly necessary. If there are no prerequisites, simply write “None.”
Resources
Include links or references to optional supplemental materials—readings, textbooks, documentation, or tools that enhance learning. These resources support learning but are not required to complete the course.
CHANGELOG
The CHANGELOG.md file serves as a clear, organized record of all meaningful updates made to a course, including new features, revisions, and fixes. It helps authors and EWB staff track how the course has evolved over time and ensures that each version is documented consistently and transparently.
Before pushing your course to a private GitHub repository, create a new version entry at the top of CHANGELOG.md. Assign an initial version number (e.g., v0.1.0) and the date, then list the key elements included in the draft—such as completed lessons, labs, the culminating experience, and the README. Use the Added, Changed, and Fixed subsections as appropriate. Once this entry is complete, the draft is ready to be tagged and pushed to GitHub.
-
Follow the Keep a Changelog format, listing newest releases first:
-
[Unreleased]section at the top -
Version headings like
## v0.1.0 — YYYY-MM-DD -
Sections for Added, Changed, Fixed
Initialize Git and Commit Locally
If you haven't already done so, initialize git and commit locally.
In your local course directory:
git init
git add .
git commit -m "Initial commit: draft version"
If your course is already under version control, just commit the latest updates instead.
Set Up GitHub Workflows
These files are included in the Course Template folder on Google Drive.
Make sure these workflows live under .github/workflows/:
| Workflow | Purpose |
|---|---|
update-readme-date.yml |
Auto-updates the “Date last modified” field in README |
sync-readme-version.yml |
Syncs README version with release tags |
validate-version.yml |
Checks README version matches latest entry in CHANGELOG |
[!NOTE]
The workflows will run automatically when you push or tag new versions.
Create a Private GitHub Repository
-
Log in to the Epi-Workbench GitHub organization.
-
Click New repository → name it
Course-[Course-Name]. -
Set visibility to Private.
-
Don’t initialize with a README (you already have one).
-
Copy the remote URL.
Add the Remote and Push
From your terminal:
git remote add origin [email protected]:epi-workbench/Course-[Course-Name].git
git branch -M main
git push -u origin main
Tag a Draft Release
Create a version tag and push it:
git tag v0.1.0
git push origin v0.1.0
Then, on GitHub:
-
Go to Releases → Draft a new release.
-
Use the same tag (
v0.1.0). -
Copy the relevant section from
CHANGELOG.mdinto the release description.
🔴 Do we always want it to be a draft?
- Mark it as a draft release.
Confirm Automation
🔴 I'm not sure what all of these things mean.
After your push:
-
The README’s “Date last modified” should update.
-
The README’s
Version: should match your release tag. -
The validation workflow should confirm everything is consistent.
You can verify all runs under Actions → Workflows in the repo.
Next Steps
🔴 Maybe some day. Should we even write this now?
Once the course draft is ready for review:
-
Share the private repo link with EWB staff.
-
They’ll review content structure, consistency, and metadata before integration into the EWB platform.
Quick Reference
| File | Purpose |
|---|---|
README.md |
Course metadata and overview |
CHANGELOG.md |
Version history |
.github/workflows/ |
Automation scripts |
| Lesson folders | Core course content |
Lab / Culminating Experience folders |
Applied learning components |