|
|
@ -161,7 +161,20 @@ _initAuth() { |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
# Github appears to use an outbound proxy for requests which means subsequent requests may not have the same |
|
|
|
# source IP. The standard Mythic Beasts OAuth2 tokens are tied to an IP, meaning github test requests fail |
|
|
|
# authentication. This works arounds this by using an undocumented MB API to obtain a token not tied to an |
|
|
|
# IP just for the github tests. |
|
|
|
_oauth2() { |
|
|
|
printenv |
|
|
|
if [ -z "$TEST_DNS_SLEEP" ]; then |
|
|
|
return _oauth2_std |
|
|
|
else |
|
|
|
return _oauth2_github |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
_oauth2_std() { |
|
|
|
# HTTP Basic Authentication |
|
|
|
_H1="Authorization: Basic $(echo "$MB_AK:$MB_AS" | _base64)" |
|
|
|
_H2="Accepts: application/json" |
|
|
@ -187,6 +200,24 @@ _oauth2() { |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
_oauth2_github() { |
|
|
|
_H1="Accepts: application/json" |
|
|
|
export _H1 |
|
|
|
body="{\"login\":{\"handle\":$MB_AK,\"pass\":$MB_AS,\"floating\":1}}" |
|
|
|
|
|
|
|
_info "Getting Floating token..." |
|
|
|
# body url [needbase64] [POST|PUT|DELETE] [ContentType] |
|
|
|
response="$(_post "$body" "$MB_AUTH" "" "POST" "application/json")" |
|
|
|
MB_TK="$(echo "$response" | _egrep_o "\"token\":\"[^\"]*\"" | cut -d : -f 2 | tr -d '"')" |
|
|
|
if [ -z "$MB_TK" ]; then |
|
|
|
_err "Unable to get access_token" |
|
|
|
_err "\n$response" |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
_debug2 response "$response" |
|
|
|
return 0 |
|
|
|
} |
|
|
|
|
|
|
|
# method path body_data |
|
|
|
_mb_rest() { |
|
|
|
# URL encoded body for single API operations |
|
|
|