1+ var util = require ( "util" ) ;
12var NodeGit = require ( "../" ) ;
23var LookupWrapper = NodeGit . Utils . lookupWrapper ;
34var Tag = NodeGit . Tag ;
@@ -49,6 +50,10 @@ Tag.createBuffer = function(repo, tagName, target, tagger, message) {
4950 } ) ;
5051} ;
5152
53+ const deprecatedCreateWithSignatureHelper = util . deprecate ( function ( repo , oidTarget ) {
54+ return repo . getCommit ( oidTarget ) ;
55+ } , "Tag.createWithSignature target should be a Git Object, not Oid" ) ;
56+
5257/**
5358 * @async
5459 * @param {Repository } repo
@@ -70,37 +75,68 @@ Tag.createWithSignature = function(
7075 force ,
7176 signingCallback
7277) {
73- let tagBuffer ;
74- return Tag . createBuffer ( repo , tagName , target . id ( ) , tagger , message )
75- . then ( ( tagBufferResult ) => {
76- tagBuffer = tagBufferResult ;
77- return signingCallback ( tagBuffer ) ;
78- } )
79- . then ( ( { code, signedData } ) => {
80- switch ( code ) {
81- case NodeGit . Error . CODE . OK : {
82- const normalizedEnding = signedData . endsWith ( "\n" ) ? "" : "\n" ;
83- const signedTagString = tagBuffer + signedData + normalizedEnding ;
84- return Tag . createFromBuffer ( repo , signedTagString , force ) ;
85- }
86- case NodeGit . Error . CODE . PASSTHROUGH :
87- return Tag . create (
88- repo ,
89- tagName ,
90- target ,
91- tagger ,
92- message ,
93- force
94- ) ;
95- default : {
96- const error = new Error (
97- `Tag.createWithSignature threw with error code ${ code } `
98- ) ;
99- error . errno = code ;
100- throw error ;
78+
79+ const createTag = function ( repo ,
80+ tagName ,
81+ target ,
82+ tagger ,
83+ message ,
84+ force ,
85+ signingCallback ) {
86+ let tagBuffer ;
87+
88+ return Tag . createBuffer ( repo , tagName , target . id ( ) , tagger , message )
89+ . then ( ( tagBufferResult ) => {
90+ tagBuffer = tagBufferResult ;
91+ return signingCallback ( tagBuffer ) ;
92+ } )
93+ . then ( ( { code, signedData } ) => {
94+ switch ( code ) {
95+ case NodeGit . Error . CODE . OK : {
96+ const normalizedEnding = signedData . endsWith ( "\n" ) ? "" : "\n" ;
97+ const signedTagString = tagBuffer + signedData + normalizedEnding ;
98+ return Tag . createFromBuffer ( repo , signedTagString , force ) ;
99+ }
100+ case NodeGit . Error . CODE . PASSTHROUGH :
101+ return Tag . create (
102+ repo ,
103+ tagName ,
104+ target ,
105+ tagger ,
106+ message ,
107+ force
108+ ) ;
109+ default : {
110+ const error = new Error (
111+ `Tag.createWithSignature threw with error code ${ code } `
112+ ) ;
113+ error . errno = code ;
114+ throw error ;
115+ }
101116 }
102- }
117+ } ) ;
118+ } ;
119+
120+ if ( ! target . id ) {
121+ deprecatedCreateWithSignatureHelper ( repo , target ) . then ( ( targetOid ) => {
122+ return createTag ( repo ,
123+ tagName ,
124+ targetOid ,
125+ tagger ,
126+ message ,
127+ force ,
128+ signingCallback ) ;
103129 } ) ;
130+ } else {
131+ return createTag ( repo ,
132+ tagName ,
133+ target ,
134+ tagger ,
135+ message ,
136+ force ,
137+ signingCallback ) ;
138+ }
139+
104140} ;
105141
106142/**
0 commit comments