mirror of
https://codeberg.org/cunicu/cunicu.git
synced 2025-10-04 08:26:48 +08:00
78 lines
1.8 KiB
Bash
78 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
function request() {
|
|
RESOURCE=$1
|
|
shift
|
|
|
|
curl --silent \
|
|
--location \
|
|
--header "Accept: application/vnd.github+json" \
|
|
--header "Authorization: Bearer ${GITHUB_TOKEN}" \
|
|
"$@" https://api.github.com/repos/stv0g/cunicu/${RESOURCE}
|
|
}
|
|
|
|
function undraft_release() {
|
|
request releases/$1 -X PATCH -d '{ "draft": false }'
|
|
}
|
|
|
|
function get_draft_release() {
|
|
request releases //| jq '. | map(select(.draft == false)) | first'
|
|
}
|
|
|
|
function download_asset() {
|
|
ASSET_NAME=$1
|
|
|
|
ASSET_URL=$(jq -r ".assets | map(select(.name == \"${ASSET_NAME}\")) | first | .browser_download_url")
|
|
|
|
curl --silent \
|
|
--location \
|
|
--output ${ASSET_NAME} \
|
|
--header "Authorization: Bearer ${GITHUB_TOKEN}" \
|
|
${ASSET_URL}
|
|
}
|
|
|
|
function upload_asset() {
|
|
RELEASE_ID=$1
|
|
FILENAME=$2
|
|
MIME_TYPE=$(file -b --mime-type ${FILENAME})
|
|
|
|
curl --silent \
|
|
--location \
|
|
--request POST \
|
|
--header "Content-Type: ${MIME_TYPE}" \
|
|
--header "Accept: application/vnd.github+json" \
|
|
--header "Authorization: Bearer ${GITHUB_TOKEN}" \
|
|
--data-binary @${FILENAME} \
|
|
"https://uploads.github.com/repos/stv0g/cunicu/releases/${RELEASE_ID}/assets?name=${FILENAME}" | \
|
|
jq .
|
|
}
|
|
|
|
RELEASE=$(get_draft_release)
|
|
if [[ -z "${RELEASE}" ]]; then
|
|
echo -e "No drafted releases available"
|
|
exit -1
|
|
fi
|
|
|
|
RELEASE_ID=$(jq .id <<< "${RELEASE}")
|
|
echo "Release ID: ${RELEASE_ID}"
|
|
|
|
download_asset checksums.txt <<< "${RELEASE}"
|
|
echo "Checksums:"
|
|
cat checksums.txt
|
|
|
|
gpg --batch \
|
|
--yes \
|
|
--detach-sign \
|
|
--armor checksums.txt
|
|
|
|
echo "Checksum signature:"
|
|
cat checksums.txt.asc
|
|
|
|
upload_asset "${RELEASE_ID}" "checksums.txt.asc"
|
|
echo "Signature added to release."
|
|
|
|
undraft_release "${RELEASE_ID}"
|
|
echo "Release published."
|