mirror of
git://f0xx.org/android_cast
synced 2026-07-29 04:38:53 +03:00
wireguard -> third-party
This commit is contained in:
@@ -47,36 +47,44 @@ gitea_resolve_push_token() {
|
||||
printf '%s' "$GITEA_ADMIN_TOKEN"
|
||||
return 0
|
||||
fi
|
||||
_admin="$(gitea_pick_owner_username)"
|
||||
[ -n "$_admin" ] || return 1
|
||||
_token=""
|
||||
_token="$(gitea_cli "admin" "user" "generate-access-token" \
|
||||
"--username" "$GITEA_OWNER" \
|
||||
"--username" "$_admin" \
|
||||
"--token-name" "mirror-$$" \
|
||||
"--scopes" "all" \
|
||||
"--raw" 2>/dev/null)" && [ -n "$_token" ] && printf '%s' "$_token" && return 0
|
||||
_admin="$(gitea_pick_owner_username)"
|
||||
if [ -n "$_admin" ] && [ "$_admin" != "$GITEA_OWNER" ]; then
|
||||
_token="$(gitea_cli "admin" "user" "generate-access-token" \
|
||||
"--username" "$_admin" \
|
||||
"--token-name" "mirror-$$" \
|
||||
"--scopes" "all" \
|
||||
"--raw" 2>/dev/null)" && [ -n "$_token" ] && printf '%s' "$_token" && return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
gitea_owner_uid_for() {
|
||||
gitea_entity_uid_for "$1"
|
||||
}
|
||||
|
||||
# UID for migrate/API owner — user or organization (not the same as /users/{org}).
|
||||
gitea_entity_uid_for() {
|
||||
_owner="$1"
|
||||
command -v curl >/dev/null 2>&1 || return 1
|
||||
_token="${GITEA_ADMIN_TOKEN:-}"
|
||||
[ -n "$_token" ] || _token="$(gitea_resolve_push_token)" || return 1
|
||||
_api="$(gitea_api_base)"
|
||||
_uid="$(curl -sS "$_api/users/$_owner" \
|
||||
-H "Authorization: token $_token" \
|
||||
| awk -F'"' '/"id"/ { print $4; exit }')"
|
||||
_json=""
|
||||
if curl -sS -o /dev/null -w '%{http_code}' "$_api/orgs/$_owner" \
|
||||
-H "Authorization: token $_token" | grep -q '^200'; then
|
||||
_json="$(curl -sS "$_api/orgs/$_owner" -H "Authorization: token $_token")"
|
||||
else
|
||||
_json="$(curl -sS "$_api/users/$_owner" -H "Authorization: token $_token")"
|
||||
fi
|
||||
_uid="$(printf '%s' "$_json" | awk -F'"' '/"id":/ { print $4; exit }')"
|
||||
[ -n "$_uid" ] || return 1
|
||||
printf '%s' "$_uid"
|
||||
}
|
||||
|
||||
gitea_owner_is_org() {
|
||||
gitea_org_exists "$1" 2>/dev/null
|
||||
}
|
||||
|
||||
gitea_create_repo_cli() {
|
||||
_owner="$1"
|
||||
_repo="$2"
|
||||
@@ -104,7 +112,7 @@ gitea_migrate_mirror_api() {
|
||||
command -v curl >/dev/null 2>&1 || return 1
|
||||
_token="${GITEA_ADMIN_TOKEN:-}"
|
||||
[ -n "$_token" ] || _token="$(gitea_resolve_push_token)" || return 1
|
||||
_uid="$(gitea_owner_uid_for "$_owner")" || return 1
|
||||
_uid="$(gitea_entity_uid_for "$_owner")" || return 1
|
||||
|
||||
_api="$(gitea_api_base)"
|
||||
_payload=$(cat <<EOF
|
||||
@@ -204,7 +212,17 @@ gitea_list_repos_api() {
|
||||
fi
|
||||
curl -sS "$_list_url" \
|
||||
-H "Authorization: token $_token" \
|
||||
| awk -F'"' '/"name":/ { print $4 }'
|
||||
| awk -F'"' '
|
||||
/"name":/ && !/"owner":/ && !/"full_name":/ {
|
||||
for (i = 1; i <= NF; i++) {
|
||||
if ($i == "\"name\":" && $(i+1) ~ /^"/) {
|
||||
gsub(/^"/, "", $(i+1)); gsub(/",?$/, "", $(i+1))
|
||||
if ($(i+1) != "" && $(i+1) != "null") print $(i+1)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
'
|
||||
}
|
||||
|
||||
gitea_repo_get_api() {
|
||||
@@ -309,6 +327,13 @@ gitea_mirror_pull_repo() {
|
||||
printf '[gitea-mirror] migrate rejected for %s/%s but repo missing — trying git push\n' \
|
||||
"$_owner" "$_repo" >&2
|
||||
fi
|
||||
if gitea_owner_is_org "$_owner"; then
|
||||
printf '[gitea-mirror] API migrate failed for org %s/%s — git push fallback disabled (orgs cannot push-to-create)\n' \
|
||||
"$_owner" "$_repo" >&2
|
||||
printf '[gitea-mirror] Set GITEA_ADMIN_TOKEN or run as root; check [migrations] in app.ini\n' >&2
|
||||
[ -n "$_local_work" ] && gitea_rm_path "$_local_work"
|
||||
return 1
|
||||
fi
|
||||
mkdir -p "$_work_dir"
|
||||
gitea_mirror_push_git "$_owner" "$_repo" "$_clone_url" "$_work_dir" || _rc=1
|
||||
gitea_rm_path "$_work_dir/${_repo}.mirror.git"
|
||||
|
||||
@@ -111,7 +111,7 @@ mirror_submodules_if_missing() {
|
||||
fi
|
||||
|
||||
_need=0
|
||||
for _sub in libvpx opus speex; do
|
||||
for _sub in libvpx opus speex wireguard-android; do
|
||||
gitea_repo_exists_api "$GITEA_ORG" "$_sub" && continue
|
||||
_need=1
|
||||
break
|
||||
|
||||
@@ -170,10 +170,9 @@ gitea_submodule_collect_entries() {
|
||||
gitea_submodule_discover_from_gitmodules "$_repo_dir/.gitmodules" "$_repo_dir" "$_ref" >> "$_work" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Use defaults only when .gitmodules produced nothing (never merge extras on top).
|
||||
if [ ! -s "$_work" ] && [ -n "$_defaults" ] && [ -r "$_defaults" ]; then
|
||||
gitea_submodule_load_defaults "$_defaults" "$_repo_dir" "$_ref" >> "$_work" 2>/dev/null || true
|
||||
elif [ -n "$_defaults" ] && [ -r "$_defaults" ]; then
|
||||
gitea_submodule_load_defaults "$_defaults" "$_repo_dir" "$_ref" >> "$_work" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
awk -F'|' '!seen[$1]++' "$_work"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Format: repo_name|upstream_clone_url|submodule_path[|branch]
|
||||
# Lines starting with # are ignored. Add local git:// entries at the bottom.
|
||||
|
||||
# Fallback only when .gitmodules is missing on BE. Canonical list: .gitmodules in repo.
|
||||
libvpx|https://chromium.googlesource.com/webm/libvpx|third-party/libvpx|main
|
||||
opus|https://github.com/xiph/opus|third-party/opus
|
||||
speex|https://github.com/xiph/speex/|third-party/speex
|
||||
|
||||
Reference in New Issue
Block a user