Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kevinrohn/github-full-release-data
Github action to fetch all data from a release.
https://github.com/kevinrohn/github-full-release-data
actions github-actions
Last synced: about 1 month ago
JSON representation
Github action to fetch all data from a release.
- Host: GitHub
- URL: https://github.com/kevinrohn/github-full-release-data
- Owner: KevinRohn
- License: mit
- Created: 2021-12-17T08:36:01.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-03-06T09:41:58.000Z (over 1 year ago)
- Last Synced: 2024-09-17T08:11:07.619Z (about 2 months ago)
- Topics: actions, github-actions
- Homepage:
- Size: 36.1 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# :package: Github Action `full release data`
> A Github action to retrieve all release data from github releases.
## :question: Why another github-action to retrieve release data?
During the development of build jobs, I had to use different Github actions to download release asset files, read the last tag name or retrieve the release notes.
The goal is to provide a simplified, well-documented Github action that provides all the information of a github release in just a single github action.## About
Use latest release tag, body content or, download release assets of a github release. The data can be retrieved from `public` and `private` repositories.
## Usage
>:white_flag: See the [inputs](#inputs) section for detailed descriptions.
```yml
- name: Get Release data of private repository
id: release_data
uses: KevinRohn/github-full-release-data@v2
with:
repository: "organisation-or-username/repository" # (Optional) Repository name to fetch release data.
token: ${{ secrets.GITHUB_TOKEN }} # (Optional) `token` of the private repository from which the release information should be retrieved.
version: latest # (Optional) The version from which the release information is to be retrieved.
body-markdown-file-path: output/release-body-content.md # (Optional) Specify an output path where the body output should be saved.
asset-file: '*.dat,picture.jpg' # (Optional) Name of the asset files to download.
asset-output: 'download-output/' # (Optional) The output path in which the downloaded asset files should be placed.
```## Usage Examples
>:triangular_flag_on_post: See the [`example-github-full-release-data` repository](https://github.com/KevinRohn/example-github-full-release-data) for more examples.
### Get the latest `tag_name` and use it in further steps
```yml
# Fetch release data of the current repository from where the workflow is used.
- name: Get Release data
id: release_data
uses: KevinRohn/github-full-release-data@v2- name: Show tag name with echo
run: echo ${{ steps.release_data.outputs.tag_name }}
```### Get `body` content from github release of a private repository and use it in further steps
```yml
- name: Get Release data of private repository
id: release_data
uses: KevinRohn/github-full-release-data@v2
with:
repository: "organisation-or-username/repository"
token: ${{ secrets.GITHUB_TOKEN }}
version: latest
- name: Write release `body` content line by line to file
run: |
{
echo '${{ fromJSON(steps.release_data.outputs.body) }}'
} >> test-file.txt- name: Show release `body` content
run: |
echo '${{ fromJSON(steps.release_data.outputs.body) }}'
```### Download release `asset-file` from github release
```yml
- name: Download release asset file
id: release_data
uses: KevinRohn/github-full-release-data@v2
with:
asset-file: '*.dat'
asset-output: './'- name: Show file output
run: |
ls -lah
```## Inputs
The action supports the following inputs:- `repository`
Repository name to fetch release data.
>If no repository is passed as an input. The repository from the build workflow is used.
It's possible to fetch release data from any given repository. Just use `/` as an input parameter.
It's also possible to fetch release data from private repositories. In this case, just pass the `token` input parameter.
**Required:**
*false*- `token`
`token` of the private repository from which the release information should be retrieved.>Pass the input parameter `token` to fetch release information from private repositories.
e.g.: `secrets.GITHUB_TOKEN`
**Required:**
*false*- `version`
The version from which the release information is to be retrieved.
>If the input value is not set, the default value `latest` is used.
It's possible to fetch release data from a given tag. To fetch a specific tag just use ``.
**Required:**
*false*- `body-markdown-file-path`
Specify an output path where the body output should be saved.
>If the path is valid and the file is accessible then, the body output content will be saved into the file.
Save the file in the current working directory: `./release-content.md`.
**Required:**
*false*- `asset-file`
Name of the asset files to download.
>To download release asset files, just use the input parameter `asset-file`.
To download multiple release asset files use `,` comma as a separator.
Example:
Download all .PNG and .JPEG files: `*.PNG,*.JPEG`
Download release asset with a static name: `myfile-to-download.extension`
**Required:**
*false*- `asset-output`
The output path in which the downloaded asset files should be placed.>The input value is required if the input value `asset-file` was specified.
**Required:**
*false*## Outputs
| Output | Description |
| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `url` | Release URL to use in API calls |
| `html_url` | Release URL |
| `assets_url` | Asset URL to use in API calls |
| `upload_url` | Upload URL for release assets |
| `tarball_url` | Url to tarball content |
| `zipball_url` | Url to zipball content |
| `discussion_url` | Discussion URL - can be `null` if discussion is deactivated |
| `id` | Release id |
| `node_id` | Release node id |
| `tag_name` | Release tag name |
| `target_commitish` | Target from which the release is created |
| `body` | The `body` output from release. It's a multiline output, which is packed in a JSON object.
The output can be used with the `fromJSON` function `(steps..outputs.body)`. |
| `draft` | Shows if the release is a draft release or not (true/false) |
| `prerelease` | Shows if the release is a pre-release (true/false) |
| `created_at` | Shows the release creation date |
| `published_at` | Shows the published date of the release |
| `assets_array_json` | The `assets_array_json` output from release. It's a multiline output, which is packed in a JSON object.
The output can be used with the `fromJSON` function `(steps..outputs.assets_array_json)`. |
| `author_json` | The `author_json` output from release. It's a multiline output, which is packed in a JSON object.
The output can be used with the `fromJSON` function `(steps..outputs.assets_array_json)`. |## Support
### Supported runners for Version [v2](https://github.com/KevinRohn/github-full-release-data/releases/tag/v2)
| OS | supported? |
| - | - |
| `Linux OS runner` | :white_check_mark: |
| `macOS runner` | :white_check_mark: |
| `windows OS runner` | :x: |