Skip to main content

ClassDock

Automation for GitHub-based courses, from a modern Python CLI

PyPI version Python Support CI License: MIT

ClassDock is a command-line tool for computer science instructors who run assignments as template repositories in a GitHub organization. Instead of manually clicking through dozens of student repositories, ClassDock automates the repetitive work — discovering repos, distributing secrets, tracking roster acceptance — so you can focus on teaching.

Perfect for: Instructors managing assignments on GitHub for classes of any size.


Installation

pip install classdock

Requirements: Python 3.10+ and Git


Quick Start

# 1. Set up your GitHub token (one-time)
classdock token

# 2. Create a new assignment
classdock setup

# 3. Discover all student repositories
classdock fetch

# 4. Add secrets to every student repo at once
classdock secrets add

# 5. Run the full workflow end-to-end
classdock run

Shortcut Commands

These shortcuts cover the most common operations without navigating command groups:

Command What it does
classdock run Run the full assignment workflow (assignments orchestrate)
classdock setup Launch the interactive assignment setup wizard
classdock fetch Discover all student repositories in the organization
classdock status Show assignment dashboard (repos, roster, token status)
classdock token Configure your GitHub Personal Access Token

Command Groups

For full control, every feature is available through organized command groups:

Group Description
classdock assignments Assignment lifecycle: setup wizard, orchestration, student helpers
classdock repos Repository discovery
classdock secrets Distribute secrets and tokens to all student repos
classdock roster Student roster management with CSV import and assignment tracking
classdock automation Cron scheduling for automated workflow steps
classdock config GitHub token configuration and validation

See the Full Command Reference for every subcommand and option.


Configuration

ClassDock reads an assignment.conf file from your assignment directory:

# Minimal configuration
GITHUB_ORGANIZATION="your-github-org"
ASSIGNMENT_NAME="homework-1"
TEMPLATE_REPO_URL="https://github.com/your-github-org/homework-1-template"

# Optional: secrets to distribute to every student repo
secrets_list="API_KEY,DATABASE_URL"

# Optional: enable roster sync during orchestration
step_sync_roster=true

Run classdock setup to generate this file interactively.


Roster Management

Track which students accepted an assignment and link their GitHub repos to your class roster:

# Initialize (one-time, stores data in ~/.config/classdock/roster.db)
classdock roster init

# Import your student list from a Google Forms CSV export
classdock roster import students.csv --org=cs101-fall2025

# After fetching repos, link them to roster entries
classdock roster sync --assignment=homework-1 --org=cs101-fall2025

# See who has and hasn't accepted
classdock roster status --org=cs101-fall2025

See Roster Sync Guide for detailed setup.


Documentation

Document Description
Full Command Reference Every command, subcommand, and option
Roster Sync Guide Roster management and orchestrator integration
Error Handling GitHub API resilience and retry patterns
Contributing Guide Development workflow and guidelines
Changelog Release history

Contributing

Contributions are welcome. Please read the Contributing Guide before opening a pull request.


License

MIT License — see LICENSE for details.


Made with care for computer science educators.

Metadata

Release files for classdock 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for classdock 0.5.1
File Size Uploaded
classdock-0.5.1.tar.gz 154.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for classdock 0.5.1
File Interpreter ABI Platform
classdock-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 347.8 kB

Release files / classdock-0.5.1.tar.gz

Download URL classdock-0.5.1.tar.gz
Size 154.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c79ff5d8dd6704370849ce749f675a68a20985a63670170fd4e22aee46118854
BLAKE2b-256 checksum
How to use checksums
2de05cef86da50e22a0f0b700bbb62be11e6b1aa5c1e52284188c8a50648aefe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release files / classdock-0.5.1-py3-none-any.whl

Download URL classdock-0.5.1-py3-none-any.whl
Size 193.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
26ffa51ba55ca163bc345be8538570780dade81b64a7e41f7571b997a2b33ee5
BLAKE2b-256 checksum
How to use checksums
f3ad8fa0808becbe3726d45d9aebc8d5da5ebed579d1f316c68ee7b5d4151547
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 5, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page