Home
Softono

Release Downloader

Open source MIT TypeScript
232
Stars
63
Forks
21
Issues
1
Watchers
3 months
Last Commit

 About Release Downloader

Github action to download release assets from private or public repositories

Platforms

Web Self-hosted

Languages

TypeScript

Links

Need Help Installing Release Downloader?

We provide expert installation service for this software. Our team will install, configure, and secure Release Downloader on your server. plans start at just $30.

Release Downloader

View on GitHub

Github Release Downloader

Build and Test

A Github Action to download assets from Github release. It can download specified files from both private and public repositories.

Usage

- uses: robinraju/release-downloader@v1
  with:
    # The source repository path.
    # Expected format {owner}/{repo}
    # Default: ${{ github.repository }}
    repository: ''

    # A flag to set the download target as latest release
    # The default value is 'false'
    latest: true

    # A flag to download from prerelease. It should be combined with latest flag.
    # The default value is 'false'
    preRelease: true

    # The github tag. e.g: v1.0.1
    # Download assets from a specific tag/version
    tag: ''

    # The release id to download files from
    releaseId: ''

    # The name of the file to download.
    # Use this field only to specify filenames other than tarball or zipball, if any.
    # Supports wildcard pattern (eg: '*', '*.deb', '*.zip' etc..)
    fileName: ''

    # Download the attached tarball (*.tar.gz)
    tarBall: true

    # Download the attached zipball (*.zip)
    zipBall: true

    # Relative path under $GITHUB_WORKSPACE to place the downloaded file(s)
    # It will create the target directory automatically if not present, defaults to root directory
    # eg: out-file-path: "my-downloads" => It will create directory $GITHUB_WORKSPACE/my-downloads
    out-file-path: ''

    # A flag to set if the downloaded assets are archives and should be extracted
    # Checks all downloaded files if they end with zip, tar or tar.gz and extracts them, if true.
    # Prints a warning if enabled but file is not an archive - but does not fail.
    extract: false

    # Relative path under $GITHUB_WORKSPACE to extract the downloaded file(s) if extract flag is set
    # Checks all downloaded files if they end with zip, tar or tar.gz and extracts them to this path if specified.
    # If not set it points to "out-file-path" directory.
    # eg: extract-path: "my-downloads" => It will create directory $GITHUB_WORKSPACE/my-downloads
    extract-path: ''

    # Github access token to download files from private repositories
    # https://docs.github.com/en/actions/configuring-and-managing-workflows/creating-and-storing-encrypted-secrets
    # eg: token: ${{ secrets.MY_TOKEN }}
    token: ''

    # The URL of the Github API, only use this input if you are using Github Enterprise
    # Default: "https://api.github.com"
    # Use http(s)://[hostname]/api/v3 to access the API for GitHub Enterprise Server
    github-api-url: ''

Output variables

  • tag_name it outputs the tag used to download a release.

This variable can be used by other actions as an input as follows

${{steps.<step-id>.outputs.tag_name}}
  • release_name it outputs the name/title of the release

    It can be used as follows

  ${{steps.<step-id>.outputs.release_name}}
  • downloaded_files it outputs an array of downloaded files

    It can be used as follows

 ${{ fromJson(steps.<step-id>.outputs.downloaded_files)[0] }}

Scenarios

Download asset from the latest release in the current repository

- uses: robinraju/release-downloader@v1
  with:
    latest: true
    fileName: 'foo.zip'

Download asset from a specific release version

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    tag: 'v1.0.0'
    fileName: 'foo.zip'

Download tarball and zipball

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    tarBall: true
    zipBall: true

Remove the latest flag and specify tag if you want to download from a different release.

Download multiple assets

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    fileName: 'foo.zip'
    tarBall: true
    zipBall: true

Download all assets if more than one files are available

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    fileName: '*'

Download assets using wildcard pattern

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    latest: true
    fileName: '*.deb'

Download a release using its id

- uses: robinraju/release-downloader@v1
  with:
    releaseId: '123123'
    fileName: 'foo.zip'

Download and extracts archives

- uses: robinraju/release-downloader@v1
  with:
    fileName: 'foo.zip'
    latest: true
    extract: true

Download latest prerelease

- uses: robinraju/release-downloader@v1
  with:
    repository: 'owner/repo'
    fileName: 'foo.zip'
    latest: true
    preRelease: true

Development notes

dist/ is CI-managed for this repository. Pull requests should include source, tests, and workflow changes only; after a merge to main, GitHub Actions rebuilds dist/ and commits the generated bundle back to the branch.