• Stars
    star
    163
  • Rank 231,141 (Top 5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Github action to download release assets from private or public repositories

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/[email protected]
  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
    
    # 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
    # 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

    # 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: ""

Outputs 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}}
  • 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/[email protected]
  with:
    latest: true
    fileName: "foo.zip"

Download asset from a specific release version.

- uses: robinraju/[email protected]
  with:
    repository: "owner/repo"
    tag: "v1.0.0"
    fileName: "foo.zip"

Download tarball and zipball

- uses: robinraju/[email protected]
  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/[email protected]
  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/[email protected]
  with:
    repository: "owner/repo"
    latest: true
    fileName: "*"

Download assets using wildcard pattern

- uses: robinraju/[email protected]
  with:
    repository: "owner/repo"
    latest: true
    fileName: "*.deb"

Download a release using its id

- uses: robinraju/[email protected]
  with:
    releaseId: "123123"
    fileName: "foo.zip"

Download and extracts archives

- uses: robinraju/[email protected]
  with:
    fileName: "foo.zip"
    latest: true
    extract: true