1
+ var util = require ( "util" ) ;
1
2
var NodeGit = require ( "../" ) ;
2
3
var LookupWrapper = NodeGit . Utils . lookupWrapper ;
3
4
var Tag = NodeGit . Tag ;
@@ -49,6 +50,10 @@ Tag.createBuffer = function(repo, tagName, target, tagger, message) {
49
50
} ) ;
50
51
} ;
51
52
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
+
52
57
/**
53
58
* @async
54
59
* @param {Repository } repo
@@ -70,37 +75,68 @@ Tag.createWithSignature = function(
70
75
force ,
71
76
signingCallback
72
77
) {
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
+ }
101
116
}
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 ) ;
103
129
} ) ;
130
+ } else {
131
+ return createTag ( repo ,
132
+ tagName ,
133
+ target ,
134
+ tagger ,
135
+ message ,
136
+ force ,
137
+ signingCallback ) ;
138
+ }
139
+
104
140
} ;
105
141
106
142
/**
0 commit comments