blob: f7679e610d8050a02c3f0fea407cea8752ce49f4 [file] [log] [blame]
garciadeblas8d8cd992024-05-21 16:04:14 +02001#!/bin/bash
2#######################################################################################
3# Copyright ETSI Contributors and Others.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
14# implied.
15# See the License for the specific language governing permissions and
16# limitations under the License.
17#######################################################################################
18
19set -e
20
21HERE=$(dirname "$(readlink --canonicalize "$BASH_SOURCE")")
22. "$HERE/../library/functions.sh"
23. "$HERE/../library/trap.sh"
24
25SERVER_URL=$1
26USERNAME=$2
27PASSWORD=$3
28TOKEN_NAME=$4
29
30# Unfortunately this inconsistently spits out logs stdout, making it challenging to parse
31# "$HERE/gitea" admin user generate-access-token --username "$USERNAME" --raw | tail -1 > "$HERE/tokens/$USERNAME"
32
33# See: https://docs.gitea.io/en-us/api-usage/#generating-and-listing-api-tokens
34
35# Delete old "${TOKEN_NAME}" token (if existed)
36kubectl exec statefulset/gitea --container=gitea --namespace=gitea --quiet -- \
37curl --silent --fail \
38 "${SERVER_URL}/api/v1/users/$USERNAME/tokens/${TOKEN_NAME}" \
39 --user "$USERNAME:$PASSWORD" \
40 --request DELETE \
41 --header 'Accept: application/json' || true > /dev/null
42
43# Create new "${TOKEN_NAME}" token
44# (this is our only chance to retrieve the sha1)
45kubectl exec statefulset/gitea --container=gitea --namespace=gitea --quiet -- \
46curl --silent --fail \
47 "${SERVER_URL}/api/v1/users/$USERNAME/tokens" \
48 --user "$USERNAME:$PASSWORD" \
49 --request POST \
50 --header 'Accept: application/json' \
51 --header 'Content-Type: application/json' \
52 --data "{\"name\": \"${TOKEN_NAME}\"}" | jq --raw-output .sha1