Skip to content

createTag

리포지토리에서 개체를 기반으로 새 태그를 생성해요.

이 메서드는 태그 개체뿐만 아니라, 해당 태그를 가리키는 레퍼런스도 함께 생성해요.
태그 이름은 유효성을 검사하며, 아래 문자는 사용할 수 없어요.

  • ~, ^, :, \, ?, [, *
  • "..", "@{" (특수한 의미를 가짐)

시그니처

ts
class Repository {
  createTag(
    name: string,
    target: GitObject,
    message: string,
    options?: CreateTagOptions,
  ): string;
}

파라미터

  • name필수 · string

    태그 이름이에요.

  • target필수 · GitObject

    이 태그가 가리킬 Git 개체예요.

  • message필수 · string

    태그 메시지예요.

  • optionsnull | CreateTagOptions

    태그 생성 옵션이에요.

    • forceboolean

      forcetrue이면, 동일한 이름의 태그가 존재하더라도 덮어써요.

    • taggerSignaturePayload

      태그 작성자의 서명이에요. 설정하지 않으면 리포지토리의 기본 서명을 사용해요. 기본 서명이 없으면 오류가 발생해요.

      • email필수 · string

        태그 작성자의 이메일 주소예요.

      • name필수 · string

        태그 작성자의 이름이에요.

      • timeOptionsSignatureTimeOptions

        시간 설정 옵션이에요.

        • offsetnumber

          시간대 오프셋(분 단위)이에요.

        • timestamp필수 · number

          Unix epoch(초 단위) 기준의 시간이에요.

반환 값

  • string

    생성된 태그의 OID(SHA-1)를 반환해요.

예제

ts
import { openRepository } from 'es-git';

const repo = await openRepository('.');
const commit = repo.getCommit('828954df9f08dc8e172447cdacf0ddea1adf9e63');

const sha = repo.createTag(
  'mytag',
  commit.asObject(),
  'this is my tag message',
  {
    tagger: {
      name: 'Seokju Na',
      email: 'seokju.me@toss.im',
    },
  },
);
const tag = repo.getTag(sha);
console.log(tag.name()); // "mytag"
console.log(tag.target().id()); // "828954df9f08dc8e172447cdacf0ddea1adf9e63"

MIT 라이선스에 따라 배포됩니다.