Effectiveness of Tool: github-default-branch - Samvera Branch Renaming Working Group

Samvera Community Wiki


Effectiveness of Tool: github-default-branch - Samvera Branch Renaming Working Group

Setup

  • Create a test repo with a master branch, issues, PRs - See samvera-labs/branch-renaming-wg for a script to do this.

  • Within the test repo, create a wiki page that references a branch in master.

  • Within the test repo, add branch settings under Settings → Branches

  • Create a Fork of the test repo.

  • Clone the test repo to your local machine.

  • Clone the Fork to your local machine.

  • Create a second repo with a pin in the Gemfile to a master sha in the repo having the branch renamed

Tool: gitHub-default-branch

Reference: 

Usage:

  • install with 

    npm install -g github-default-branch
  • run with

    github-default-branch --pat <github_access_token> --repo <github_username>/branch-renaming-test
  • Once complete, all local clones will need to run the following to update their master branch to be connected to origin/main

    From the directory for the local clone…

    git checkout master git pull git branch -m main

    NOTE: git fetch is not sufficient.  You need to use git pull for this to work.

Checklist:

renames master to main
branch dropdown defaults to main
master is not in the branch dropdown
Settings → Branches
main is the default branch
branch rules were copied over to main
master branch is not in the branch dropdown under Default branch
master branch is not listed in the Branch protection rules area
updates issues
changes reference to a sha in master to the same sha in main
changes links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.)
updates PRs
updates 'commit into' branch to main for all PRs (NOTE:
updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.)
wiki updated
updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.)
local git repo
updates to local master tracking origin/master to local main tracking origin/main
updates branches based on origin/master to origin/main
updates branches based on local master to local main
in second repo, updates pin to master sha in the repo having the branch renamed
working with Forks
TBD

Additional areas not tested

  • automated builds and deployments that reference master branch

    • building images that aren't from tags but from branches

    • Jenkins

    • Ansible

  • other tooling that references master branch

    • git aliases

    • local shell scripts

    • maintenance scripts for github API

    • git reflow or other 3rd party tools

  • Integrations

    • Github hooks, coveralls, code climate, hound, circleci

    • mirroring with other sources (e.g. gitlab mirroring github)

    • notifications to tools (e.g. slack integration)

  • documentation (eg. raw.github.com URLs)

    • wikis

    • READMEs

    • samvera.github.io

    • samvera.org

    • github pages for the project

    • Contributing

  • references to master in code

    • Gemfile pins

    • To possible JSON documents in Github repos

  • forks

    • Within "usual" contributors

    • Other "users"

      • In particular, Browse Everything has utility outside of Samvera's adopters

Case Study: samvera-circleci-orb:

https://github.com/samvera-labs/samvera-circleci-orb/issues/45

Ran:

github-default-branch --repo samvera-labs/samvera-circleci-orb --pat <token> --verbose --dry-run github-default-branch --repo samvera-labs/samvera-circleci-orb --pat <token> --verbose

Checklist:

renames master to main
branch dropdown defaults to main
master is not in the branch dropdown
Settings → Branches
main is the default branch
branch rules were copied over to main
master branch is not in the branch dropdown under Default branch
master branch is not listed in the Branch protection rules area
updates issues
changes reference to a sha in master to the same sha in main (N/A)

changes links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.) (See https://github.com/samvera-labs/samvera-circleci-orb/issues/29)

updates PRs
updates 'commit into' branch to main for all PRs (NOTE:
updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.) (N/A)
wiki updated
updates links to code in master branch to the same code in main (NOTE: Even though the link text and URL were not changed, GitHub forwards all 404 to the default branch which is main.) (N/A)

local git repo (None as expected)

updates to local master tracking origin/master to local main tracking origin/main
updates branches based on origin/master to origin/main
updates branches based on local master to local main
in second repo, updates pin to master sha in the repo having the branch renamed
working with Forks

TBD (One exists but no noticeable changes as expected)

Integrations:
CircleCI (Ran fine after rebasing a PR)

Locations text "master" still exists (mostly found via github search):

  • Comments on PRs about repointing to main from tool running

  • Links to code outside this repository

  • Issues and PRs related to the renaming

  • Closed PRs (not in github search)