How to organize a group’s work
GitHub organizations
Should I start a repository under my account or open a new organization?
Single-person projects often start under own account.
It is no problem to move a project from own namespace to an organization later.
When starting a larger project with several people, possibly several affiliations, an organization may be a better start.
If this is a GitHub pages project, then it will matter for the URL:
myuser.github.io/myproject/
vs.ourorg.github.io/ourproject/
.
Should I add everybody as collaborator?
If you are a handful of project collaborators it probably makes sense to add everybody as collaborators.
But one does not have to be a collaborator to contribute (anybody can send contributions to public projects).
External contributors don’t have to be added.
Organizational permissions
Organizations have owners and members.
Owners can add additional members and delete repositories.
Members can also be organized into teams.
We recommend to write-protect the default branch and protect it against force-pushes and accidental deletions.
GitHub or GitLab?
GitHub: probably better integrations (with services like Zenodo), probably more visibility (more users).
GitLab: more features, you can also self-host, more advanced continuous integration.
Your own university’s GitLab: most control, local support, but limited visibility and you might lose access when you move on.
Nordic GitLab: easier collaboration across organizations and national borders, visibility within Nordics.
Direct commits or pull requests?
For single-person projects: direct pushes.
If you have somebody who can help you with code review: use pull requests.
For projects with 2 or more persons: agree on applying all changes via pull requests and create a new branch for every change.
Small vs. large changes
Small changes or agreed upon improvements can be worked on directly.
For larger changes first open an issue and describe your idea and collect feedback.
Alternative: if you already have a larger change half-finished but you are unsure whether you are on the right track, open a draft pull request. These are meant to share unfinished drafts and collect suggestions.