We are updating our knowledge base!
Please visit our new site at https://wiki.greensoftware.foundation/ for the latest information.
GitHub Repositories & Permissions
What is GitHub?
GitHub is where we manage almost every aspect of the Foundation.
It’s where people collaborate on documents and code.
It’s where people have discussions about our projects and green software.
It’s where we project manage all our work through GitHub Issues and GitHub Projects.
What is a Repository?
Every working group and project in the Foundation has a dedicated GitHub repository. Each repository in GitHub is like a project, and has its own set of issues, folders for relevant documentation, and ability to track the development of an issue.
Example of a project repository: Software Carbon Intensity Specification
Example of an issue related to the SCI project: Comparable SCI Benchmark Proposal #359
Example of list of issues related to a project: SCI Issues
Discussions are now public and hosted in the top-level repo on https://github.com/orgs/Green-Software-Foundation/discussions.
Naming convention
All repositories in GitHub should be small case, with hyphens - and not underscores _.
Prefer shorted more memorable names to longer names.
Permissions in GitHub
To perform any actions on GitHub, such as creating a pull request, assigning people to issues or adding/removing labels in a repository a person must have sufficient access to the relevant account or resource.
We use teams to assign permisisons, for example these are the teams and permissions for the SCI project above:
gsf-pms (admin)
gsf-staff (write)
<working group>-chairs (maintainer)
<project>-leads (maintainer)
<project>-contributors (triage)
Appointment | Access | Permissions | Comments |
---|---|---|---|
WG Chairs & Project Leads | Maintainer |
| WG Chair -Permissions granted only to their WG areas Project lead - Permissions granted only to their project repo |
GSF Staff | Write |
| Permissions granted only to their WG area |
GSF PMs | Admin |
| Admin access to all GSF repos
|
Contributors | Triage |
| On request |
Full breakdown of permissions on GitHub
Permissions for each role | Read
| Triage | Write | Maintain | Admin |
---|---|---|---|---|---|
Manage individual, team, and outside collaborator access to the repository |
|
|
|
| ✔️ |
Pull from the person or team's assigned repositories | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Fork the person or team's assigned repositories | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Edit and delete their own comments | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Open issues | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Close issues they opened themselves | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Reopen issues they closed themselves | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Have an issue assigned to them | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Send pull requests from forks of the team's assigned repositories | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
Approve or request changes to a pull request with required reviews |
|
| ✔️ | ✔️ | ✔️ |
Apply suggested changes to pull requests |
|
| ✔️ | ✔️ | ✔️ |
View published releases | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
Edit wikis in public repositories | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
Apply/dismiss labels |
| ✔️ | ✔️ | ✔️ | ✔️ |
Create, edit, delete labels |
|
| ✔️ | ✔️ | ✔️ |
Close, reopen, and assign all issues and pull requests |
| ✔️ | ✔️ | ✔️ | ✔️ |
|
| ✔️ | ✔️ | ✔️ | |
| ✔️ | ✔️ | ✔️ | ✔️ | |
Request pull request reviews |
| ✔️ | ✔️ | ✔️ | ✔️ |
Merge a pull request |
|
| ✔️ | ✔️ | ✔️ |
Edit and delete anyone's comments on commits, pull requests, and issues |
|
| ✔️ | ✔️ | ✔️ |
|
| ✔️ | ✔️ | ✔️ | |
|
| ✔️ | ✔️ | ✔️ | |
|
| ✔️ | ✔️ | ✔️ | |
|
| ✔️ | ✔️ | ✔️ | |
Create status checks |
|
| ✔️ | ✔️ | ✔️ |
Create and edit releases |
|
| ✔️ | ✔️ | ✔️ |
View draft releases |
|
| ✔️ | ✔️ | ✔️ |
Edit a repository's description |
|
|
| ✔️ | ✔️ |
✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
|
| ✔️ | ✔️ | ✔️ | |
|
|
|
| ✔️ | |
Manage topics |
|
|
| ✔️ | ✔️ |
Enable project boards |
|
|
| ✔️ | ✔️ |
Configure pull request merges |
|
|
| ✔️ | ✔️ |
Configure a publishing source for GitHub Pages |
|
|
| ✔️ | ✔️ |
|
|
|
| ✔️ | |
|
|
| ✔️ | ✔️ | |
Merge pull requests on protected branches |
|
|
|
| ✔️ |
Create tags that match a tag protection rule |
|
|
| ✔️ | ✔️ |
Delete tags that match a tag protection rule |
|
|
|
| ✔️ |
|
|
| ✔️ | ✔️ | |
Delete an issue |
|
|
|
| ✔️ |
|
|
|
| ✔️ | |
Add a repository to a team |
|
|
|
| ✔️ |
|
|
|
| ✔️ | |
|
|
|
| ✔️ | |
Make a repository a template |
|
|
|
| ✔️ |
Change a repository's settings |
|
|
|
| ✔️ |
Manage team and collaborator access to the repository |
|
|
|
| ✔️ |
Edit the repository's default branch |
|
|
|
| ✔️ |
Rename the repository's default branch |
|
|
|
| ✔️ |
|
|
|
| ✔️ | |
|
|
|
| ✔️ | |
|
|
|
| ✔️ | |
|
|
|
| ✔️ | |
Enable GitHub Discussions in a repository |
|
|
| ✔️ | ✔️ |
Create and edit categories for GitHub Discussions |
|
|
| ✔️ | ✔️ |
|
| ✔️ | ✔️ | ✔️ | |
Transfer a discussion to a new repository |
|
| ✔️ | ✔️ | ✔️ |
| ✔️ | ✔️ | ✔️ | ✔️ | |
| ✔️ | ✔️ | ✔️ | ✔️ | |
✔️ | ✔️ | ✔️ | ✔️ | ✔️ | |
| ✔️ |
| ✔️ | ✔️ |