createTag
리포지토리에서 개체를 기반으로 새 태그를 생성해요.
이 메서드는 태그 개체뿐만 아니라, 해당 태그를 가리키는 레퍼런스도 함께 생성해요.
태그 이름은 유효성을 검사하며, 아래 문자는 사용할 수 없어요.
~
,^
,:
,\
,?
,[
,*
".."
,"@{"
(특수한 의미를 가짐)
시그니처
ts
class Repository {
createTag(
name: string,
target: GitObject,
message: string,
options?: CreateTagOptions,
): string;
}
파라미터
- name필수 · string
태그 이름이에요.
- target필수 · GitObject
이 태그가 가리킬 Git 개체예요.
- message필수 · string
태그 메시지예요.
- optionsnull | CreateTagOptions
태그 생성 옵션이에요.
- forceboolean
force
가true
이면, 동일한 이름의 태그가 존재하더라도 덮어써요. - taggerSignaturePayload
태그 작성자의 서명이에요. 설정하지 않으면 리포지토리의 기본 서명을 사용해요. 기본 서명이 없으면 오류가 발생해요.
- email필수 · string
태그 작성자의 이메일 주소예요.
- name필수 · string
태그 작성자의 이름이에요.
- timeOptionsSignatureTimeOptions
시간 설정 옵션이에요.
- offsetnumber
시간대 오프셋(분 단위)이에요.
- timestamp필수 · number
Unix epoch(초 단위) 기준의 시간이에요.
- offsetnumber
- email필수 · string
- forceboolean
반환 값
- 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"