개발/Git, GitHub
깃허브 - RESTful API로 브랜치 만들고 삭제하기 (Create and Delete Branch)
피로물든딸기
2023. 9. 2. 14:45
반응형
깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기)
참고
GitHub RESTful API로 브랜치를 만드는 방법은 createRef를 이용한다.
const makeBranch = async (branchName) => {
const octokit = new Octokit({
auth: myKey,
});
const currentSHA = await getSHAforMain(octokit);
const result = await octokit.git.createRef({
owner: "bloodstrawberry",
repo: `${repo}`,
ref: `refs/heads/${branchName}`, // 새로운 브랜치 이름
sha: currentSHA, // 기반 커밋의 SHA
});
return result;
};
이때 기반이 되는 브랜치의 SHA가 필요하다. 여기에서는 메인을 기준으로 만든다.
const getSHAforMain = async (octokit) => {
const response = await octokit.git.getRef({
owner: "bloodstrawberry",
repo: `${repo}`,
ref: "heads/main", // main 브랜치의 이름
});
return response.data.object.sha;
};
브랜치를 삭제하는 방법은 deleteRef로 가능하다.
브랜치를 만들고 PR을 merge 후 불필요한 브랜치를 삭제할 때 사용할 수 있다.
const deleteBranch = async (branchName) => {
const octokit = new Octokit({
auth: myKey,
});
const result = await octokit.git.deleteRef({
owner: "bloodstrawberry",
repo: `${repo}`,
ref: `heads/${branchName}`, // 새로운 브랜치 이름
});
console.log("delete!!", result);
};
하지만 PR을 병합한 후, 자동으로 브랜치를 삭제하도록 설정하면 deleteBranch를 사용할 필요가 없다.
리포지토리에서 Settings를 선택한 후, 아래로 내려가보자.
Automatically delete head branches를 체크하면, 브랜치에서 PR이 merge된 후, 자동으로 삭제된다.
반응형