-
Notifications
You must be signed in to change notification settings - Fork 701
Expand file tree
/
Copy pathremote.js
More file actions
127 lines (108 loc) · 3.09 KB
/
Copy pathremote.js
File metadata and controls
127 lines (108 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
var NodeGit = require("../");
var normalizeOptions = NodeGit.Utils.normalizeOptions;
var lookupWrapper = NodeGit.Utils.lookupWrapper;
var shallowClone = require("./utils/shallow_clone");
var Remote = NodeGit.Remote;
var connect = Remote.prototype.connect;
var download = Remote.prototype.download;
var fetch = Remote.prototype.fetch;
var push = Remote.prototype.push;
/**
* Retrieves the remote by name
* @async
* @param {Repository} repo The repo that the remote lives in
* @param {String|Remote} name The remote to lookup
* @param {Function} callback
* @return {Remote}
*/
Remote.lookup = lookupWrapper(Remote);
/**
* Connects to a remote
*
* @async
* @param {Enums.DIRECTION} direction The direction for the connection
* @param {RemoteCallbacks} callbacks The callback functions for the connection
* @param {Function} callback
* @return {Number} error code
*/
Remote.prototype.connect = function(direction, callbacks) {
callbacks = normalizeOptions(callbacks, NodeGit.RemoteCallbacks);
return connect.call(this, direction, callbacks);
};
/**
* Connects to a remote
*
* @async
* @param {Array} refSpecs The ref specs that should be pushed
* @param {FetchOptions} opts The fetch options for download, contains callbacks
* @param {Function} callback
* @return {Number} error code
*/
Remote.prototype.download = function(refspecs, opts) {
var callbacks;
if (opts) {
opts = shallowClone(opts);
callbacks = opts.callbacks;
delete opts.callbacks;
} else {
opts = {};
}
opts = normalizeOptions(opts, NodeGit.FetchOptions);
if (callbacks) {
opts.callbacks =
normalizeOptions(callbacks, NodeGit.RemoteCallbacks);
}
return download.call(this, refspecs, opts);
};
/**
* Connects to a remote
*
* @async
* @param {Array} refSpecs The ref specs that should be pushed
* @param {FetchOptions} opts The fetch options for download, contains callbacks
* @param {String} message The message to use for the update reflog messages
* @param {Function} callback
* @return {Number} error code
*/
Remote.prototype.fetch = function(refspecs, opts, reflog_message) {
var callbacks;
if (opts) {
opts = shallowClone(opts);
callbacks = opts.callbacks;
delete opts.callbacks;
} else {
opts = {};
}
opts = normalizeOptions(opts, NodeGit.FetchOptions);
if (callbacks) {
opts.callbacks =
normalizeOptions(callbacks, NodeGit.RemoteCallbacks);
}
return fetch.call(this, refspecs, opts, reflog_message);
};
/**
* Pushes to a remote
*
* @async
* @param {Array} refSpecs The ref specs that should be pushed
* @param {PushOptions} options Options for the checkout
* @param {Function} callback
* @return {Number} error code
*/
Remote.prototype.push = function(refSpecs, opts) {
var callbacks;
if (opts) {
opts = shallowClone(opts);
callbacks = opts.callbacks;
delete opts.callbacks;
} else {
opts = {};
}
opts = normalizeOptions(opts, NodeGit.PushOptions);
if (callbacks) {
opts.callbacks =
normalizeOptions(callbacks, NodeGit.RemoteCallbacks);
}
return push.call(this, refSpecs, opts);
};
module.exports = Remote;