gh-release-assets
Upload assets to a GitHub release. Based on the awesome work of @remixz as part of publish-release.!npmnpm-imagenpm-url !buildbuild-imagebuild-url !downloadsdownloads-imagenpm-url
Install
npm install gh-release-assets
Usage
Pass in the upload url and an array of local files you'd like to upload. If you want to specify a new name for the file once it is uploaded, use an object with aname
and path
keys.var ghReleaseAssets = require('gh-release-assets')
ghReleaseAssets({
url: 'https://uploads.github.com/repos/octocat/Hello-World/releases/1197692/assets{?name}',
token: [MY_GITHUB_TOKEN],
assets: [
'/path/to/foo.txt',
'/path/to/bar.zip',
{
name: 'baz.txt',
path: '/path/to/baz.txt'
}
]
}, function (err, assets) {
console.log(assets)
})
GitHub returns the upload url in the correct format after you create a release as
upload_url
. You can also get the upload url from the releases
endpoint like:curl -i https://api.github.com/repos/:owner/:repo/releases
You can also use a username/password instead of a token by passing an
auth
object:var ghReleaseAssets = require('gh-release-assets')
ghReleaseAssets({
url: 'https://uploads.github.com/repos/octocat/Hello-World/releases/1197692/assets{?name}',
auth: {
username: 'CoolGuy'
password: 'KeepItSecret'
},
assets: [
'/path/to/foo.txt',
'/path/to/bar.zip',
{
name: 'baz.txt',
path: '/path/to/baz.txt'
}
]
}, function (err, assets) {
console.log(assets)
})
Either a
token
or auth
is required.gh-release-assets
also emits the following events:upload-asset
-{name}
- Emits before an asset file starts uploading. Emits thename
of the file.upload-progress
-{name, progress}
- Emits while a file is uploading. Emits thename
of the file, and aprogress
object fromprogress-stream
.uploaded-asset
-{name}
- Emits after an asset file is successfully uploaded. Emits thename
of the file.