Upload assets to a GitHub release
npm install gh-release-assetsUpload assets to a GitHub release. Based on the awesome work of @remixz as part of publish-release.
[![npm][npm-image]][npm-url]
[![build][build-image]][build-url]
[![downloads][downloads-image]][npm-url]
[npm-image]: https://img.shields.io/npm/v/gh-release-assets.svg
[npm-url]: https://www.npmjs.com/package/gh-release-assets
[build-image]: https://github.com/ungoldman/gh-release-assets/actions/workflows/tests.yml/badge.svg
[build-url]: https://github.com/ungoldman/gh-release-assets/actions/workflows/tests.yml
[downloads-image]: https://img.shields.io/npm/dm/gh-release-assets.svg
```
npm install gh-release-assets
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.
`js
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:
`js
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 the name of the file.upload-progress
* - {name, progress} - Emits while a file is uploading. Emits the name of the file, and a progress object from progress-stream.uploaded-asset
* - {name} - Emits after an asset file is successfully uploaded. Emits the name` of the file.
Contributions welcome! Please read the contributing guidelines before opening an issue or making a pull request.