forked from helidon-io/helidon
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgithub-release.sh
More file actions
executable file
·108 lines (89 loc) · 2.46 KB
/
Copy pathgithub-release.sh
File metadata and controls
executable file
·108 lines (89 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/bin/bash
#
# Copyright (c) 2020, 2021 Oracle and/or its affiliates.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Path to this script
[ -h "${0}" ] && readonly SCRIPT_PATH="$(readlink "${0}")" || readonly SCRIPT_PATH="${0}"
# Load error handling functions and define error handling
. $(dirname -- "${SCRIPT_PATH}")/includes/error_handlers.sh
# Setup error handling using default settings (defined in includes/error_handlers.sh)
error_trap_setup
usage(){
cat <<EOF
DESCRIPTION: Create a Github Release
USAGE:
$(basename ${0}) --changelog=PATH --version=x.y.z
--changelog=PATH
Path to the changelog file.
--version=x.y.z
The version to create the Github release for.
--help
Prints the usage and exits.
ENVIRONMENT:
GITHUB_API_KEY:
Github API key used to authenticate
EOF
}
# parse command line args
ARGS=( "${@}" )
for ((i=0;i<${#ARGS[@]};i++))
{
ARG=${ARGS[${i}]}
case ${ARG} in
"--changelog="*)
readonly CHANGELOG=${ARG#*=}
;;
"--version="*)
readonly VERSION=${ARG#*=}
;;
"--help")
usage
exit 0
;;
*)
if [ -z "${CHANGELOG}" ] || [ ! -f "${CHANGELOG}" ]; then
echo "ERROR: invalid changelog: ${CHANGELOG}."
exit 1
elif [ -z "${version}" ]; then
echo "ERROR: no version provided"
exit 1
fi
;;
esac
}
if [ -z "${GITHUB_API_KEY}" ] ; then
echo "ERROR: GITHUB_API_KEY is not set"
exit 1
fi
readonly GITHUB_API_URL="https://api.github.com"
readonly MEDIA_TYPE="application/vnd.github.v3+json"
readonly GITHUB_OWNER="oracle"
readonly REPO="helidon"
BODY=$(cat ${CHANGELOG} | awk '{printf "%s\\n", $0;}' | sed -e 's/"/\\"/g')
PAYLOAD="{
\"tag_name\": \"${VERSION}\",
\"name\": \"${VERSION}\",
\"body\": \"${BODY}\",
\"draft\": false,
\"prerelease\": false
}"
curl \
-vvv \
-w "%{http_code}" \
-u "${GITHUB_OWNER}:${GITHUB_API_KEY}" \
-H "Accept: ${MEDIA_TYPE}" \
-X POST \
-d "${PAYLOAD}" \
${GITHUB_API_URL}/repos/${GITHUB_OWNER}/${REPO}/releases