2.0.1 • Published 4 years ago
gh-release-assets v2.0.1
gh-release-assets
Upload assets to a GitHub release. Based on the awesome work of @remixz as part of publish-release.
Install
npm install gh-release-assetsUsage
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 a name 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/releasesYou 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 thenameof the file.upload-progress-{name, progress}- Emits while a file is uploading. Emits thenameof the file, and aprogressobject fromprogress-stream.uploaded-asset-{name}- Emits after an asset file is successfully uploaded. Emits thenameof the file.
Contributing
Contributions welcome! Please read the contributing guidelines before opening an issue or making a pull request.