Github Source Code Management Repository

Title

Github Code Repository

Use

Stores source code for the project gives access to contributors and team members, allows updates to the master release branch. Runs test and continuous integration tools for deployments.

Owner

https://voluntarily.atlassian.net/wiki/spaces/VP/pages/110559254

Location

https://github.com/voluntarily

 

Cost

Free (Open Source Organisation Account)

Billing

none but billing emails will be sent to andrew@voluntarily.nz

Voluntarily has a Github Organization account

Organizations are shared accounts where groups of people can collaborate across many projects at once. Owners and administrators can manage member access to the organization's data and projects with sophisticated security and administrative features.

As Voluntarily is Open Source this account is free.

This status is identified using a verified domain - https://github.com/organizations/voluntarily/settings/domains against both the Voluntari.ly and Voluntarily.nz domains.

Access Control

See https://github.com/organizations/voluntarily/settings/member_privileges for current status

Summary:

Everyone has read access to the repository.

Admins can create & delete repositories, give other members access for commits.

Branch and Commit to branch restricted to members of the developer team

Merge and commit to master restricted to admins.

Membership Process

To gain write access to the repository you must:

  • Have an established GitHub personal account

  • Complete ticket https://voluntarily.atlassian.net/browse/VP-82

  • Part of completing VP-82 includes consenting to the MPL-2.0 license and Code of conduct.

  • Contact an admin (Andrew, Walt or Ete) via Gitter, slack, email or in-person to request access.

  • Admin will add you to the organisation members and join you to the developer's team

  • 2FA is recommended but not required for simple membership access

Admin Process

To be given admin rights you must:

  • Be a technical employee of Voluntarily

  • or be a trusted and experienced, long term contributor we have met in person.

  • Admins are required to have 2FA enabled on their GitHub accounts.

To allocate a new admin the ‘Software Development Manager’ will find the membership record in GitHub and update the permissions.

Revoking Permissions

Access will be revoked for a person:

  • No longer meeting the above requirements.

  • Not contributing a change to the platform for more than 12 months.

  • Any action causing malicious harm to the project/code base.

  • Any action breaking the code of conduct towards others.

  • Any illegal activity

 

Asset Backup and disaster recovery

As this uses Git - The code base is inherently duplicated on all devices where a checkout has taken place.

The Software Engineering Manager will maintain an offsite backup that is updated after each Pull request to Master. (Andrew keeps a clone of the repo in a separate Bitbucket repo)

In the event of GitHub becoming unavailable. we will initially switch to the Bitbucket repository, If this is also unavailable we will initialise a new hosted repository from the backup.

Build Pipeline

The build pipeline is now using Github actions. It runs based on a configuration yaml in the main repo. It is free to use.