komaeda / team

Rust teams structure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Rust teams structure

This repository contains the structure of the Rust teams.

If you need to add or remove a person from a team send a PR to this repository, and after it's merged their account will be added/removed from all the supported services.

Using the CLI tool

It's possible to interact with this repository through its CLI tool.

Verifying the integrity of the repository

This repository contains some sanity checks to avoid having stale or broken data. You can run the checks locally with the check command:

$ cargo run check

Querying information out of the repository

There are a few CLI commands that allow you to get some information generated from the data in the repository.

You can get a list of all the people in a team:

$ cargo run dump-team all

You can get a list of all the email addresses subscribed to a list:

$ cargo run dump-list all@rust-lang.org

Schema

People

Every member of a Rust team is represented by a file in the people directory. The file structure is this:

name = "John Doe"  # Real name of the person (required)
github = "johndoe"  # GitHub username of the person (required)
# You can also set `email = false` to explicitly disable the email for the user.
# This will, for example, avoid adding the person to the mailing lists.
email = "john@doe.com"  # Email address used for mailing lists (optional)
irc-nickname = "jdoe"  # Nickname of the person on IRC, if different than the GitHub one (optional)

The file must be named the same as the GitHub username.

Teams

Each Rust team or working group is represented by a file in the teams directory. The structure of the file is this:

name = "overlords"  # Name of the team, used for GitHub (required)
subteam-of = "gods"  # Name of the parent team of this team (optional)
# Include all the members of the listed teams as members of this team (optional)
inherit = [
    "kings",
]

[people]
# Leads of the team, can be more than one and must be members of the team.
# Required, but it can be empty
leads = ["bors"]
# Members of the team, can be empty
members = [
    "bors",
    "rust-highfive",
    "rfcbot",
    "craterbot",
    "rust-timer",
]

# Define the mailing lists used by the team
# It's optional, and there can be more than one
[[lists]]
# The email address of the list (required)
address = "overlords@rust-lang.org"
# Access level of the list (required)
# - readonly: only users authenticated with Mailgun can send mails
# - members: only members of the list can send mails
# - everyone: everyone can send mails
access-level = "everyone"
# This can be set to false to avoid including all the team members in the list
# It's useful if you want to create the list with a different set of members
# It's optional, and the default is `true`.
include-team-members = true
# Include the following extra people in the mailing list. Their email address
# will be fetched from theirs TOML in people/ (optional).
extra-people = [
    "alexcrichton",
]
# Include the following email addresses in the mailing list (optional).
extra-emails = [
    "noreply@rust-lang.org",
]
# Include all the memebrs of the following teams in the mailing list
# (optional).
extra-teams = [
    "bots-nursery",
]

About

Rust teams structure

License:Apache License 2.0


Languages

Language:Rust 100.0%