refactor and use --mirror for clone/push
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
bitbucket_projects() {
|
||||
url="$1"
|
||||
username="$2"
|
||||
token="$3"
|
||||
# get all projects
|
||||
curl --silent \
|
||||
-u ${username}:${token} \
|
||||
"${url}/rest/api/1.0/projects/" |
|
||||
jq -r '.values[] | .key' |
|
||||
tr '[:upper:]' '[:lower:]'
|
||||
}
|
||||
bitbucket_repos() {
|
||||
url="$1"
|
||||
username="$2"
|
||||
token="$3"
|
||||
curl --silent \
|
||||
-u ${username}:${token} \
|
||||
"${url}/rest/api/1.0/projects/$1/repos/" |
|
||||
jq -r '.values[].name' |
|
||||
tr '[:upper:]' '[:lower:]'
|
||||
}
|
||||
@@ -0,0 +1,85 @@
|
||||
gitea_endpoint() {
|
||||
UTYPE="$1"
|
||||
if [ "${UTYPE}" == "org" ]; then
|
||||
API_ENDPOINT="orgs"
|
||||
elif [ "${UTYPE}" == "user" ]; then
|
||||
API_ENDPOINT="admin/users"
|
||||
else
|
||||
echo "unknown type '${UTYPE}'" 1>&2
|
||||
exit 1
|
||||
fi
|
||||
echo -n "${API_ENDPOINT}"
|
||||
}
|
||||
|
||||
gitea_users() {
|
||||
GITEA_SERVER_API_URL="${GITEA_SERVER_URL}/api/v1"
|
||||
curl --silent \
|
||||
-H "Authorization: token ${GITEA_ADMIN_TOKEN}" \
|
||||
-H "accept: application/json" \
|
||||
-H "Content-Type: application/json" \
|
||||
"${GITEA_SERVER_API_URL}/$(gitea_endpoint "${UTYPE:-user}")" \
|
||||
"$@"
|
||||
}
|
||||
|
||||
gitea_repos() {
|
||||
GITEA_SERVER_API_URL="${GITEA_SERVER_URL}/api/v1"
|
||||
owner="$1"
|
||||
curl --silent \
|
||||
-H "Authorization: token ${GITEA_ADMIN_TOKEN}" \
|
||||
-H "accept: application/json" \
|
||||
-H "Content-Type: application/json" \
|
||||
"${GITEA_SERVER_API_URL}/$(gitea_endpoint "${UTYPE:-user}")/${owner}/repos" \
|
||||
"${@:2}"
|
||||
}
|
||||
|
||||
gitea_create_org() {
|
||||
name="$1"
|
||||
id=$(UTYPE=org gitea_users -X POST -d "{ \"username\": \"$name\", \"visibility\": \"limited\"}" | jq -r '.id')
|
||||
[[ "$id" != "null" ]] && sleep 1 || true
|
||||
}
|
||||
gitea_create_user() {
|
||||
name="$1"
|
||||
id=$(gitea_users -X POST -d "{ \"username\": \"$name\", \"visibility\": \"limited\"}" | jq -r '.id')
|
||||
[[ "$id" != "null" ]] && sleep 1 || true
|
||||
}
|
||||
|
||||
gitea_create_repo() {
|
||||
owner="$1"
|
||||
repo="$2"
|
||||
repoid=$(
|
||||
UTYPE=$3 gitea_repos \
|
||||
"$owner" \
|
||||
-X POST \
|
||||
-d "{\"auto_init\": false, \"private\": true, \"name\": \"$repo\"}" |
|
||||
jq -r '.id'
|
||||
)
|
||||
[[ "$repoid" != "null" ]] && sleep 5 || true
|
||||
}
|
||||
|
||||
gitea_create_repo_user() {
|
||||
gitea_create_repo "$1" "$2" "user"
|
||||
}
|
||||
|
||||
gitea_create_repo_org() {
|
||||
gitea_create_repo "$1" "$2" "opg"
|
||||
}
|
||||
|
||||
gitea_add_key_ssh() {
|
||||
GITEA_SERVER_API_URL="${GITEA_SERVER_URL}/api/v1"
|
||||
owner="$1"
|
||||
pubkey_val="$(cat "${2}" | cut -d ' ' -f1,2 | python -c 'import json,sys; print(json.dumps(sys.stdin.read()))')"
|
||||
pubkey_name="$(cat "${2}" | cut -d ' ' -f3)"
|
||||
curl --silent -X POST "${GITEA_SERVER_API_URL}/admin/users/${owner}/keys" \
|
||||
-H "Authorization: token ${GITEA_ADMIN_TOKEN}" \
|
||||
-H "accept: application/json" -H "Content-Type: application/json" \
|
||||
-d "{ \"key\": ${pubkey_val}, \"read_only\": false ,\"title\":\"${pubkey_name}\"}"
|
||||
|
||||
}
|
||||
gitea_add_key_gpg() {
|
||||
GITEA_SERVER_API_URL="${GITEA_SERVER_URL}/api/v1"
|
||||
gpg_key="$(gpg --export --armor "$1" | python -c 'import json,sys; print(json.dumps(sys.stdin.read()))')"
|
||||
curl --silent -X POST "${GITEA_SERVER_API_URL}/user/gpg_keys" \
|
||||
-H "Authorization: token ${GITEA_ADMIN_TOKEN}" \
|
||||
-H "accept: application/json" -H "Content-Type: application/json" \
|
||||
-d "{ \"armored_public_key\": ${gpg_key}"
|
||||
}
|
||||
Reference in New Issue
Block a user