본문 바로가기
개발/Git, GitHub

깃허브 - RESTful API로 PR 만들고 병합하기 (Create Pull Request and Merge)

by 피로물든딸기 2023. 9. 2.
반응형

깃허브 데스크탑으로 프로젝트 관리하기 강의 오픈!! (인프런 바로가기)

 

Git / GitHub 전체 링크

 

참고

- 파일 편집 후 메일 알림이 가도록 수정하기

 

RESTful API로 PR을 만드는 예시는 아래와 같다.

  const createPullRequest = async (branchName) => {
    const octokit = new Octokit({
      auth: myKey,
    });

    const result = await octokit.pulls.create({
      owner: "bloodstrawberry",
      repo: `${repo}`,
      title: "PR Title",
      body: "PR 내용",
      head: branchName, // 현재 브랜치
      base: "main",
    });

    console.log(result);
    console.log("Pull Request Created:", result.data);
  };

 

PR을 생성하고 즉시 merge를 하고 싶다면 pulls의 merge를 이용하면 된다.

  const mergeResult = await octokit.pulls.merge({
    owner: "bloodstrawberry",
    repo: `${repo}`,
    pull_number: result.data.number, // 생성된 PR의 번호를 사용
  });

 

pull_number는 PR 요청 후 datanumber에 포함되어 있으므로 아래와 같이 함수를 만들면 편하다.

  const createPullRequest = async (branchName) => {
    const octokit = new Octokit({
      auth: myKey,
    });

    const result = await octokit.pulls.create({
      owner: "bloodstrawberry",
      repo: `${repo}`,
      title: "PR Title",
      body: "PR 내용",
      head: branchName, // 현재 브랜치
      base: "main",
    });

    console.log(result);
    console.log("Pull Request Created:", result.data);

    const mergeResult = await octokit.pulls.merge({
      owner: "bloodstrawberry",
      repo: `${repo}`,
      pull_number: result.data.number, // 생성된 PR의 번호를 사용
    });

    console.log(mergeResult);
    console.log("Pull Request Merged:", mergeResult.data);
  };

반응형

댓글