Skip to content

GitHub repository administration policies and best practices #41

@micaeljtoliveira

Description

@micaeljtoliveira

We should agree on a set of GitHub repository administration policies and best practices. There should then be properly documented and enforced.

Here is a first draft. Probably lots of things missing, but it's a way of getting the document started and the discussion going.

Repository administration recommended policies and best practices

Repository administrators

As stated in the GitHub management policy, each repository must have at least two individual administrators. These cannot be teams and there needs to be a very compelling reason for an external user to be made an administrator.

User permissions

We recommend users be given permissions on need basis. That means, for example, that write permissions to a repository should only be given if a user needs those permissions for their work. By default, all members of the ACCESS-NRI GitHub organisation have read permissions to all repositories in the organisation. Read permissions allow users to

  • clone a repository
  • create issues
  • create a pull request from a fork

Write permissions are needed if a user needs to:

  • push a branch to the repository (not through a fork)
  • use the pre-release infrastructure, as pre-release builds are not triggered for forks
  • merge a pull request

Branch protections

At a minimum, the default branch of a repository should always be protected.

Topics

All repositories should be tagged with the appropriate topics for better discoverability.

Private repositories

New repository check-list

To ensure new repositories follow our policies and best-practices, we recommend using the following check-list when creating a new repository:

  • Add at least two administrators to the repository
  • Add relevant topics
  • Give users write permissions, on need basis
  • Add branch protection rules

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions