Providers

  • GitHub .

  • https://bitbucket.org/.

    • Seems like an alternative to GitHub, allowing private accounts with multiple people.

GitHub

Storage
Account types
  • GitHub Free account:

    • Public:

      • (unsure).

      • Can do Automatic Merges of Pull Requests.

    • Private:

      • Doesn't have collaborator access restriction options; it's full-access (read-write) or nothing.

      • No Branch Protection options.

      • Can't do Automatic Merge of Pull Requests, but can be unlocked if you have paid accounts like 'GitHub Pro', 'GitHub Team' or 'GitHub Enterprise (Cloud or Server)'.

    • Owner and Collaborator access permissions: documentation .

  • Organization Free account:

    • Private:

      • Has limited collaborator access restrictions; read-only, write, admin, etc.

      • No Branch Protection options, but can be unlocked with paid plans like 'GitHub Pro', 'GitHub Team' or 'GitHub Enterprise'.

    • Public:

      • Has limited collaborator access restrictions; read-only, write, admin, etc.

      • Has all Branch Protection options.

    • Base permissions for Collaborators, Members, etc: documentation .

      • Read:

        • Cannot create new files on the remote.

        • Cannot edit any files or settings.

        • Can Pull (remote -> local) but cannot Push (local -> remote).

        • Can create Pull Requests, but cannot approve them because Write permission is required.

        • Cannot close or reopen others' Pull Requests.

      • Triage:

        • Main difference vs Read :

          • Still very limited, no Write permission, but can manage Issues and Pull Requests from others.

        • Cannot create new files on the remote.

        • Cannot edit files or settings.

        • Can Pull but cannot Push.

        • Can create Pull Requests but cannot approve them.

        • Can close and reopen other people's Pull Requests.

Solution for 'group privacy' with GitHub Free (Organization + Fork)
  • I moved the repository into an Organization I created.

  • Changed the Organization's default access restrictions to Read-Only.

  • Changed individual collaborator access for the repository to Read-Only.

  • Collaborator (Paola) forks the repository and edits that fork.

  • Results and implications:

    • High access restrictions for the collaborator on the original repository, since access is Read-only.

    • Changes can be made in the fork without security concerns; a Pull Request from the Fork to the Original is required to change the original.

    • Strangely, the owner of the Original repo can fully access and control the Fork, even without being a collaborator on that Fork.

See which private repositories I contribute to
  • GitExplorer .

    {
      viewer {
        repositories(first: 100, affiliations: [COLLABORATOR], privacy: PRIVATE) {
          nodes {
            name
            url
            owner {
              login
            }
          }
        }
      }
    }