This repo stores the data that will populate the various people listings on cncf.io and control access to repositories in the CNCF GitHub org.
People can update their listing by submitting a PR for approval. After a PR is merged, the CNCF site will reflect the update within 10 min. The listings are:
CNCF community members can request access to any repo by submitting a PR to change the config.yaml file in this repo.
Use config.yaml here to control repo-level access to your CNCF org repository.
config.yaml documents the people, and teams of people, who are granted access to GitHub repositories in the CNCF org.
DO NOT USE settings.yml at the repo-level to control permission; if you do, Sheriff will overwite permissions described in the repo-level settings.yml with the settings described here in config.yaml.
A person's GitHub profile is used to grant access to a repository or define membership of a team.
Adding an entry to repositories allow you to describe who has access to your repoistory.
repositories:
- name: repo_name
external_collaborators:
github_profile_1: read | triage | write | maintain | admin
|
github_profile_n: read | triage | write | maintain | admin
teams:
team_name_1: read | triage | write | maintain | admin
|
team_name_n: read | triage | write | maintain | admin
# Optional repository settings
settings:
has_wiki: true|false # Default is false
visibility: public | private # Default is public
Note: the name: repo name
does not necessarily appear as the first field in a repositories entry which can be confusing.
Named teams referenced in a repository
entry are also defined in config.yaml under teams
. (much further down the file, beyond line 10,000)
teams:
- name: team_name
maintainers:
- github_profile_1
|
- github_profile_n
members:
has_wiki: true|false
displayName: Team name that can have spaces used to create a Slack Channel
slack: {true|false|Slack channel name} # Create a Slack channel for this team
secret: {true|false} # Hidden GitHub Team
cncf/sheriff periodically reads config.yaml on the main branch to apply the permissions to CNCF orgs, so once your PR is approved, the Sheriff Apply GitHub action will run to apply your changes.
cncf/sheriff is a fork of electron/sheriff. The cncf fork has code to cover CNCF-specific procedures. Thank you Electron Sheriff contributors.
The people.json file lists all people in alphabetical order by name. Add new entries in the right place in the list. Not all fields are used by each listing. This is the format:
{
"name":"Full name of person",
"bio":"Full bio of person. Use html markup when needed.",
"company":"Company and/or title",
"pronouns":"Personal pronouns",
"location":"A Google Maps readable name of city, state, country",
"linkedin":"LinkedIn url",
"twitter":"Twitter url",
"github":"GitHub url",
"bluesky":"Bluesky url",
"wechat":"Wechat url",
"website":"Personal website",
"youtube":"YouTube url",
"priority":Value to diffentiate between other entries in an ordered list; omit this entry in most cases,
"languages":[Array of languages spoken],
"projects":[Array of CNCF projects of expertise],
"category":[Array of categories the person belongs to],
"email": "person!example.com",
"slack_id": "U123ABC456",
"image":"Image filename from the /images/ directory"
}
Project names must exactly match the landscape listing. Category names must exactly match the list above.
And here is an example entry:
{
"name":"Johnny Appleseed",
"bio":"John Chapman (September 26, 1774 – March 18, 1845), better known as Johnny Appleseed, was an American pioneer nurseryman who introduced apple trees to large parts of <a href='https://en.wikipedia.org/wiki/Pennsylvania'>Pennsylvania</a>, Ohio, Indiana, Illinois and Ontario, as well as the northern counties of present-day West Virginia.",
"company":"Apples R Us",
"pronouns":"he/him",
"location":"Portland, Maine, United States",
"linkedin":"https://www.linkedin.com/in/johnny-appleseed/",
"twitter":"https://twitter.com/jappleseed",
"github":"https://github.com/jappleseed",
"bluesky":"https://bsky.app/profile/jappleseed",
"wechat":"https://web.wechat.com/jappleseed",
"website":"https://jappleseed.com",
"youtube":"https://www.youtube.com/c/jappleseed",
"priority":10,
"languages":["Spanish","English"],
"projects":["prometheus","kubernetes","envoy"],
"category":["Ambassadors"],
"email": "johnny!example.com",
"slack_id": "U123ABC456",
"image":"jappleseed.jpg"
}
Upload your headshot image to the /images/
directory with a filename made up of your name. Images should be at least 500x500px with file size less than 100kB.
Also within this repo is a YAML file used by our automation tooling to help us manage access to resources for teams. This tooling takes advantage of data in people.json such as the email
and slack_id
fields. This will allow us to add maintainers to different properties only using their GitHub handle.
To find your Slack ID for the CNCF slack, please follow this handy guide
When adding your email, please follow the same format used within devstats:
email!address.xyz