AK-21/Graphite-Industrial-Intelligence
0
1const get = require('simple-get')2const util = require('./util')3const proxy = require('./proxy')4 5function findAssetId (opts, cb) {6 const downloadUrl = util.getDownloadUrl(opts)7 const apiUrl = util.getApiUrl(opts)8 const log = opts.log || util.noopLogger9 10 log.http('request', 'GET ' + apiUrl)11 const reqOpts = proxy({12 url: apiUrl,13 json: true,14 headers: {15 'User-Agent': 'simple-get',16 Authorization: 'token ' + opts.token17 }18 }, opts)19 20 const req = get.concat(reqOpts, function (err, res, data) {21 if (err) return cb(err)22 log.http(res.statusCode, apiUrl)23 if (res.statusCode !== 200) return cb(err)24 25 // Find asset id in release26 for (const release of data) {27 if (release.tag_name === opts['tag-prefix'] + opts.pkg.version) {28 for (const asset of release.assets) {29 if (asset.browser_download_url === downloadUrl) {30 return cb(null, asset.id)31 }32 }33 }34 }35 36 cb(new Error('Could not find GitHub release for version'))37 })38 39 req.setTimeout(30 * 1000, function () {40 req.abort()41 })42}43 44module.exports = findAssetId45 