Skip to content

Commit e4e4179

Browse files
committed
Moved from octokat to octonode.
1 parent 1eefe54 commit e4e4179

3 files changed

Lines changed: 95 additions & 66 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
"nan": "~2.0",
3636
"node-gyp": "~3.0",
3737
"node-pre-gyp": "~0.6.11",
38-
"npmlog" : "~1.2.1"
38+
"npmlog" : "~1.2.1"
3939
},
4040
"devDependencies": {
4141
"body-parser": "^1.12",
@@ -47,7 +47,7 @@
4747
"jsdoc-baseline": "hegemonic/baseline",
4848
"mocha": "^2.2",
4949
"multiparty": "^4.1",
50-
"octokat": "~0.4.12",
50+
"octonode": "~0.7.4",
5151
"progress": "~1.1.8",
5252
"should": "^7.0"
5353
},

scripts/module-packaging.js

Lines changed: 79 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
var Octokat = require( 'octokat' ),
1+
var octonode = require( 'octonode' ),
22
log = require( 'npmlog' ),
33
fs = require( 'fs' ),
44
path = require( 'path' ),
@@ -17,14 +17,12 @@ if ( args.length !== 2 ) {
1717

1818
if ( args[0] !== validArgs[0] && args[0] !== validArgs[1] ) {
1919

20-
log.error( '', 'invalid argument "%s" passed to binaries-util script.', args[0] );
20+
log.error( '', 'invalid argument "%s" passed to module-packaging script.', args[0] );
2121
process.exit( -1 );
2222
}
2323

24-
var octo = new Octokat({
25-
token: process.env['NODE_LIBCURL_GITHUB_TOKEN']
26-
}),
27-
repo = octo.repos( 'JCMais', 'node-libcurl' ),
24+
var octo = octonode.client( process.env['NODE_LIBCURL_GITHUB_TOKEN'] ),
25+
repo = octo.repo( 'JCMais/node-libcurl' ),
2826
commands = {
2927
publish : publish,
3028
unpublish: unpublish
@@ -35,65 +33,75 @@ commands[args[0].replace( '--', '' )]( args[1] );
3533

3634
function publish( pathToPackage ) {
3735

38-
getReleaseByTag( versionTag ).then(
39-
function( release ) {
36+
getReleaseByTag( versionTag, function( err, data, headers ) {
4037

41-
attachPackageToRelease( pathToPackage, release );
42-
},
43-
function ( err ) {
38+
if ( err ) {
4439

45-
// Release for given tag not found! Create one release.
46-
if ( err.status && err.status === 404 ) {
40+
if ( err.statusCode && err.statusCode === 404 ) {
4741

48-
log.info( '', 'release "%s" not found.', tag );
49-
createRelease( versionTag ).then( attachPackageToRelease.bind( null, pathToPackage ), doSomethingWithError );
42+
createRelease( versionTag, attachPackageToRelease.bind( null, pathToPackage ) );
5043

5144
} else {
5245

53-
doSomethingWithError( err );
46+
doSomethingWithError( err )
5447
}
55-
}
56-
)
5748

49+
} else {
50+
51+
attachPackageToRelease( pathToPackage, null, data, headers );
52+
}
53+
});
5854
}
5955

6056
function unpublish( pathToResource ) {
6157

62-
getReleaseByTag( versionTag ).then(
63-
removePackageFromRelease.bind( null, pathToResource ),
64-
doSomethingWithError
65-
)
58+
getReleaseByTag( versionTag, function ( err, release, headers ) {
59+
60+
if ( err ) {
61+
doSomethingWithError( err );
62+
return;
63+
}
64+
65+
removePackageFromRelease( pathToResource, release );
66+
67+
});
6668
}
6769

68-
function getReleaseByTag( tagName ) {
70+
function getReleaseByTag( tagName, cb ) {
6971

7072
log.info( '', 'searching for release "%s"', tagName );
7173

72-
var result = repo.releases.tags( tagName ).fetch().then( function( release ) {
74+
repo.release( 'tags/' + tagName ).info( function( err, data, headers ) {
7375

74-
log.info( '', 'release "%s" found: %s', release.tagName, release.url );
76+
if ( err && err.statusCode && err.statusCode === 404 ) {
7577

76-
return release;
77-
});
78+
log.info( '', 'release for tag "%s" not found.', tagName );
7879

79-
return result;
80-
}
80+
} else {
8181

82-
function createRelease( tagName ) {
82+
log.info( '', 'release for tag "%s" found: %s', tagName, data.url );
83+
}
8384

84-
log.info( '', 'creating release for "%s"', tag );
85-
return repo.releases.create({
85+
cb( err, data, headers );
86+
});
87+
}
8688

87-
tag_name : tagName,
88-
name : 'node-libcurl ' + tagName + ' TEST',
89-
draft: false
89+
function createRelease( tagName, cb ) {
9090

91-
});
91+
log.info( '', 'creating release for tag "%s"', tagName );
92+
93+
repo.release({
94+
tag_name: tagName
95+
}, cb );
9296
}
9397

94-
function attachPackageToRelease( pckg, release ) {
98+
function attachPackageToRelease( pckg, err, release, headers ) {
99+
100+
if ( err ) {
95101

96-
log.info( '', 'attaching package to release "%s"', release.tagName );
102+
doSomethingWithError( err );
103+
return;
104+
}
97105

98106
var packagePath = path.resolve( pckg ),
99107
packageFileName,
@@ -105,35 +113,44 @@ function attachPackageToRelease( pckg, release ) {
105113
process.exit( -1 );
106114
}
107115

108-
fileContent = fs.readFileSync( packagePath );
116+
log.info( '', 'attaching package "%s" to release "%s"', packagePath, release.url );
117+
109118
packageFileName = path.basename( packagePath );
110119

111120
// check if the package already exists, if so warn and bail out.
112121
for ( i = 0, len = release.assets.length; i < len; i++ ) {
113122

114123
if ( release.assets[i].name === packageFileName ) {
115124

116-
log.warn( '', 'package "%s" already attached to release "%s"', packageFileName, release.tagName );
125+
log.warn( '', 'package "%s" already attached to release "%s"', packageFileName, release.tag_name );
117126
process.exit( 0 );
118127
}
119128
}
120129

121-
release.upload( packageFileName, 'application/x-gzip', fileContent ).then(
122-
function( response ) {
130+
fileContent = fs.readFileSync( packagePath );
123131

124-
log.info( '', 'package attached with success: %s', JSON.parse( response ).browser_download_url );
125-
process.exit( 0 );
126-
},
127-
doSomethingWithError
128-
);
132+
repo.release( release.id ).uploadAssets( fileContent, {
133+
name: packageFileName,
134+
contentType: 'application/x-gzip'
135+
}, function( err, data, headers ) {
136+
137+
if ( err ) {
138+
139+
doSomethingWithError( err );
140+
return;
141+
}
142+
143+
log.info( '', 'package attached with success: %s', data.browser_download_url );
144+
process.exit( 0 );
145+
});
129146
}
130147

131148
function removePackageFromRelease( packageToDelete, release ) {
132149

133150
var packageToDeleteName = path.basename( packageToDelete ),
134151
i, len, releaseAsset, found = false;
135152

136-
log.info( '', 'removing package "%s" from release "%s"', packageToDelete, release.tagName );
153+
log.info( '', 'removing package "%s" from release "%s"', packageToDelete, release.tag_name );
137154

138155
for ( i = 0, len = release.assets.length; i < len; i++ ) {
139156

@@ -143,27 +160,32 @@ function removePackageFromRelease( packageToDelete, release ) {
143160

144161
found = true;
145162

146-
releaseAsset.remove().then(
147-
function () {
163+
//@FIXME using internals because there is no way to remove directly
164+
// uri to remove assets is: repos/:owner/:repo/releases/assets/:id
165+
repo.client.del( '/repos/' + repo.name + '/releases/assets/' + releaseAsset.id, null, function( err, data, headers ) {
166+
167+
if ( err ) {
168+
169+
doSomethingWithError( err );
170+
return;
171+
}
148172

149-
log.info( '', 'removed package "%s" from release "%s"', packageToDelete, release.tagName );
150-
process.exit( 0 );
151-
},
152-
doSomethingWithError
153-
)
173+
log.info( '', 'removed package "%s" from release "%s"', packageToDelete, release.tag_name );
174+
process.exit( 0 );
175+
});
154176
}
155177

156178
}
157179

158180
if ( !found ) {
159181

160-
log.error( '', 'package "%s" could be found in release "%s"', packageToDelete, release.tagName );
182+
log.error( '', 'package "%s" could be found in release "%s"', packageToDelete, release.tag_name );
161183
process.exit( -1 );
162184
}
163185
}
164186

165187
function doSomethingWithError( err ) {
166188

167-
log.error( err );
189+
log.error( '', err );
168190
process.exit( -1 );
169191
}

test/curl/events.js

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,10 @@ it( 'should emit "error" event when the connection fails', function( done ) {
105105
done( Error( 'end event was called, but the connection failed.' ) );
106106
});
107107

108-
curl.on( 'error', function() {
108+
curl.on( 'error', function( err, errCode ) {
109+
110+
err.should.be.instanceof( Error );
111+
errCode.should.be.of.type( 'number' ).and.equal( Curl.code.CURLE_HTTP_RETURNED_ERROR );
109112

110113
clearTimeout( timeout );
111114

@@ -119,8 +122,10 @@ it( 'should emit "error" event when the connection fails', function( done ) {
119122
it( 'should emit "error" when the connection is aborted in the progress cb', function ( done ) {
120123

121124
curl.setProgressCallback( function() {
125+
122126
return -1;
123127
});
128+
124129
curl.setOpt( 'NOPROGRESS', false );
125130

126131
curl.on( 'end', function() {
@@ -132,8 +137,8 @@ it( 'should emit "error" when the connection is aborted in the progress cb', fun
132137

133138
curl.on( 'error', function( err, errCode ) {
134139

135-
//CURLE_ABORTED_BY_CALLBACK (42)
136-
errCode.should.be.of.type( 'number' ).and.equal( 42 );
140+
err.should.be.instanceof( Error );
141+
errCode.should.be.of.type( 'number' ).and.equal( Curl.code.CURLE_ABORTED_BY_CALLBACK );
137142

138143
clearTimeout( timeout );
139144

@@ -147,6 +152,7 @@ it( 'should emit "error" when the connection is aborted in the progress cb', fun
147152
it( 'should emit "error" when the connection is aborted in the header cb', function( done ) {
148153

149154
curl.onHeader = function() {
155+
150156
return -1;
151157
};
152158

@@ -159,8 +165,8 @@ it( 'should emit "error" when the connection is aborted in the header cb', funct
159165

160166
curl.on( 'error', function( err, errCode ) {
161167

162-
//CURLE_WRITE_ERROR (23)
163-
errCode.should.be.of.type( 'number' ).and.equal( 23 );
168+
err.should.be.instanceof( Error );
169+
errCode.should.be.of.type( 'number' ).and.equal( Curl.code.CURLE_WRITE_ERROR );
164170

165171
clearTimeout( timeout );
166172

@@ -174,6 +180,7 @@ it( 'should emit "error" when the connection is aborted in the header cb', funct
174180
it( 'should emit "error" when the connection is aborted in the data cb', function( done ) {
175181

176182
curl.onData = function() {
183+
177184
return -1;
178185
};
179186

@@ -186,8 +193,8 @@ it( 'should emit "error" when the connection is aborted in the data cb', functio
186193

187194
curl.on( 'error', function( err, errCode ) {
188195

189-
//CURLE_WRITE_ERROR (23)
190-
errCode.should.be.of.type( 'number' ).and.equal( 23 );
196+
err.should.be.instanceof( Error );
197+
errCode.should.be.of.type( 'number' ).and.equal( Curl.code.CURLE_WRITE_ERROR );
191198

192199
clearTimeout( timeout );
193200

0 commit comments

Comments
 (0)