1
0
Fork 0

upload: Add superproject identifier as push option

When uploading, add the root superproject repo as a push option in the
format `-o custom-keyed-value=rootRepo:$HOST/$PROJECT`.

Bug: b/401147338
Change-Id: I00230256eb7ae307b03840bb4090c28dc8a0505e
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/472601
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Tested-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
This commit is contained in:
Gavin Mak 2025-05-05 14:13:48 -07:00 committed by LUCI
parent 1acbc14c34
commit 8d37f61471
2 changed files with 26 additions and 1 deletions

View file

@ -28,6 +28,7 @@ import os
import sys
import time
from typing import NamedTuple
import urllib.parse
from git_command import git_require
from git_command import GitCommand
@ -140,6 +141,23 @@ class Superproject:
self._manifest_path if os.path.exists(self._manifest_path) else None
)
@property
def repo_id(self):
"""Returns the repo ID for the superproject.
For example, if the superproject points to:
https://android-review.googlesource.com/platform/superproject/
Then the repo_id would be:
android/platform/superproject
"""
if review_url := self.remote.review:
parsed_url = urllib.parse.urlparse(review_url)
if netloc := parsed_url.netloc:
parts = netloc.split("-review", 1)
host = parts[0]
return f"{host}/{self.name}"
return None
def _LogMessage(self, fmt, *inputs):
"""Logs message to stderr and _git_event_log."""
message = f"{self._LogMessagePrefix()} {fmt.format(*inputs)}"