Skip to content

ScottyLabs/governance

Repository files navigation

ScottyLabs Governance

This repository defines the organizational structure, team membership, and project ownership for ScottyLabs' Tech Committee. It serves as the source of truth for our GitHub organization's governance model.

In this document, 'ScottyLabs' will refer to the GitHub organization at https://github.com/ScottyLabs, and not the club itself.

Repository Structure

.
├── contributors   # Individual contributor definitions
├── docs           # Specific instructions for all three file types
├── meta
│   ├── infra      # Terraform code for applying changes
│   ├── schemas    # JSON schemas for validation
│   ├── validators # Rust-based validation tools
│   └── visualizer # Force graph for visualizing relationships
├── repos          # Team definitions with members and repos
└── teams          # Repository definitions with metadata
  • Contributors - Individuals who participate in ScottyLabs projects
  • Teams - Groups of contributors working on specific projects
  • Repositories - Code repositories owned by teams

Depending on what you are trying to register, follow the respective guide under docs/.

Validation

We enforce Conventional Commits. In addition, the extensions listed in .vscode/extensions.json are essential in making sure you abide by style guidelines and other rules.

This repository also includes several other checks to ensure integrity:

  • File names must match the content (the name field for repos and teams, the github-username field for contributors)
  • Cross-references must be valid (team members must exist as contributors, team repos must exist as repos)
  • GitHub users must exist
  • Slack member IDs and channel IDs must be valid

Validation runs automatically through GitHub Actions on PRs and pushes to main. However, you can also test validators locally:

  1. Make sure you are in the root of the repository.

  2. Install Rust with rustup, if you do not already have it installed:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  1. Install cargo-binstall (enables use of cargo binstall):
cargo install cargo-binstall
  1. Install Taplo:
cargo binstall taplo-cli
  1. Check TOML files for proper formatting and/or against the schemas:
taplo fmt --check # for formatting
taplo check # against the schemas
  1. Run the other checks specified above:
cargo run --bin governance

License

This project is licensed under Apache-2.0, and is heavily inspired by Concourse's governance.

About

Documentation and automation for the ScottyLabs GitHub organization's governance model

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8