README
octokit-rename-branch
Octokit plugin to rename a branch in a github repository
Usage
Install with npm install @octokit/core octokit-rename-branch
const { Octokit } = require("@octokit/core");
const renameBranch = require("octokit-rename-branch");
const MyOctokit = Octokit.plugin(renameBranch);
const octokit = new MyOctokit({
// create token at https://github.com/settings/tokens/new
auth: "my-token-123"
});
octokit.renameBranch({
owner: "octocat",
repo: "hello-world",
current_name: "master",
name: "latest"
});
How it works
- Creates a new reference using the
sha
of the last commit ofcurrent_branch
(POST /repos/:owner/:repo/git/refs
) - Updates the default branch of the repository (
PATCH /repos/:owner/:repo
) - Updates branch protection to the new branch name if applicable (GraphQL mutation
updateBranchProtectionRule
) - Look for open pull requests and update the base branch if it’s
current_branch
(PATCH /repos/:owner/:repo/pulls/:pull_number
) - Delete
current_branch
(DELETE /repos/:owner/:repo/git/refs/:ref
)
Motivation
I think master
is a horrific term. git
& GitHub should follow the lead of
tech communities such as Django,
Drupal and
CouchDB and replace
master
with non-offensive term, such as latest
. This library is meant to
simplify the process of renaming branch names of GitHub repositories.