Skip to content

Commit 5901640

Browse files
Add deprecation warning
1 parent be64459 commit 5901640

File tree

1 file changed

+65
-29
lines changed

1 file changed

+65
-29
lines changed

lib/tag.js

Lines changed: 65 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
var util = require("util");
12
var NodeGit = require("../");
23
var LookupWrapper = NodeGit.Utils.lookupWrapper;
34
var 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

Comments
 (0)