mirror of
https://github.com/orhun/git-cliff-action.git
synced 2026-03-22 07:25:43 +08:00
feat(action): allow configuring the github token and set it when it exists (#34)
* fix: set Bearer token in curl request when GITHUB_TOKEN is set Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr> * fix: use a dedicated input variable to pass github token Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr> * fix: use github_token inputs Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr> * Update README.md * Update README.md --------- Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr> Co-authored-by: Orhun Parmaksız <orhunparmaksiz@gmail.com>
This commit is contained in:
@@ -9,6 +9,7 @@ This action generates a changelog based on your Git history using [git-cliff](ht
|
||||
- `version`: `git-cliff` version to use. (e.g. `"latest"`, `"v2.5.0"`)
|
||||
- `config`: Path of the configuration file. (Default: `"cliff.toml"`)
|
||||
- `args`: [Arguments](https://github.com/orhun/git-cliff#usage) to pass to git-cliff. (Default: `"-v"`)
|
||||
- `github_token`: The GitHub API token used to get `git-cliff` release information via the GitHub API to avoid rate limits. (Default: `${{ github.token }}`)
|
||||
|
||||
### Output variables
|
||||
|
||||
@@ -32,6 +33,13 @@ This action generates a changelog based on your Git history using [git-cliff](ht
|
||||
>
|
||||
> Otherwise, you might end up getting empty changelogs or `git ref` errors depending on arguments passed to `git-cliff`.
|
||||
|
||||
### Running the action outside of GitHub
|
||||
|
||||
If you run the action in Gitea or GitHub Enterprise, the `github_token` input is invalid. You have two options:
|
||||
|
||||
- Pass an empty value (`github_token: ""`) (limit of 60 requests per hour per IP address).
|
||||
- Create a GitHub token and pass it through GitHub secrets to avoid rate limiting.
|
||||
|
||||
### Examples
|
||||
|
||||
#### Simple
|
||||
|
||||
@@ -13,6 +13,10 @@ inputs:
|
||||
description: "git-cliff arguments"
|
||||
required: false
|
||||
default: "-v"
|
||||
github_token:
|
||||
description: "GitHub API token"
|
||||
required: false
|
||||
default: "${{ github.token }}"
|
||||
outputs:
|
||||
changelog:
|
||||
description: "output file"
|
||||
@@ -33,7 +37,7 @@ runs:
|
||||
RUNNER_OS: ${{ runner.os }}
|
||||
RUNNER_ARCH: ${{ runner.arch }}
|
||||
VERSION: ${{ inputs.version }}
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
GITHUB_API_TOKEN: ${{ inputs.github_token }}
|
||||
|
||||
- name: Run git-cliff
|
||||
id: run-git-cliff
|
||||
|
||||
11
install.sh
11
install.sh
@@ -19,14 +19,21 @@ if [[ "${VERSION}" != 'latest' ]]; then
|
||||
RELEASE_URL="https://api.github.com/repos/orhun/git-cliff/releases/tags/${VERSION}"
|
||||
fi
|
||||
|
||||
# Caching is disabled in order not to receive stale responses from Varnish cache fronting GitHub API.
|
||||
if [[ -z "${GITHUB_API_TOKEN}" ]]; then
|
||||
RELEASE_INFO="$(curl --silent --show-error --fail \
|
||||
--header 'Cache-Control: no-cache, must-revalidate' \
|
||||
"${RELEASE_URL}")"
|
||||
else
|
||||
# Although releases endpoint is available without authentication, the current github.token is still passed
|
||||
# in order to increase the limit of 60 requests per hour per IP address to a higher value that's also counted
|
||||
# per GitHub account.
|
||||
# Caching is disabled in order not to receive stale responses from Varnish cache fronting GitHub API.
|
||||
RELEASE_INFO="$(curl --silent --show-error --fail \
|
||||
--header "authorization: Bearer ${GITHUB_TOKEN}" \
|
||||
--header "authorization: Bearer ${GITHUB_API_TOKEN}" \
|
||||
--header 'Cache-Control: no-cache, must-revalidate' \
|
||||
"${RELEASE_URL}")"
|
||||
fi
|
||||
|
||||
TAG_NAME="$(echo "${RELEASE_INFO}" | jq --raw-output ".tag_name")"
|
||||
TARGET="git-cliff-${TAG_NAME:1}-${ARCH}-${OS}.tar.gz"
|
||||
LOCATION="$(echo "${RELEASE_INFO}" \
|
||||
|
||||
Reference in New Issue
Block a user