Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

gh-release-assets

ungoldman28.6kISC2.0.1

Upload assets to a GitHub release

gh-release, github, release, upload

readme

gh-release-assets

Upload assets to a GitHub release. Based on the awesome work of @remixz as part of publish-release.

npm build downloads

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 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/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 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.

Contributing

Contributions welcome! Please read the contributing guidelines before opening an issue or making a pull request.

License

ISC

changelog

gh-release-assets change log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

2.0.1

Fixes

Misc

2.0.0

  • Replace depreciated request with simple-get.
  • BREAKING CHANGE: Update all deps which raises the minimum node version to 12.

1.1.2

  • update request dependency

1.1.1

  • src: lint, fix tests, add no assets error message
  • pkg, readme: update repo URL
  • ci: bump node, update env vars
  • pkg: add release script

1.1.0

  • Add ability to authorize with username/password

1.0.0

  • Uploads array of assets to a release
  • Allows for renaming assets while uploading
  • Emits start, progress, and finish events for all files
  • Error handling for missing files