GitHub introduced an API to rename a branch which implements most, if not all, what this plugin used to do.
Octokit plugin to rename a branch in a github repository
Browsers |
Load <script type="module">
import { Octokit } from "https://cdn.pika.dev/@octokit/core";
import {
renameBranch,
composeRenameBranch,
} from "https://cdn.pika.dev/octokit-plugin-rename-branch";
</script> |
---|---|
Node |
Install with const { Octokit } = require("@octokit/core");
const {
renameBranch,
composeRenameBranch,
} = require("octokit-plugin-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: "main",
});
You can use composeRenameBranch
directly, too.
composeRenameBranch(octokit, {
owner: "octocat",
repo: "hello-world",
current_name: "master",
name: "main",
});
- 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
)
This library is meant to simplify the process of renaming branch names of GitHub repositories.
By default, both Git and GitHub use master
for their main branch. I think 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
or main
.