File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change 28
28
import sys
29
29
import time
30
30
from typing import NamedTuple
31
+ import urllib .parse
31
32
32
33
from git_command import git_require
33
34
from git_command import GitCommand
@@ -140,6 +141,23 @@ def manifest_path(self):
140
141
self ._manifest_path if os .path .exists (self ._manifest_path ) else None
141
142
)
142
143
144
+ @property
145
+ def repo_id (self ):
146
+ """Returns the repo ID for the superproject.
147
+
148
+ For example, if the superproject points to:
149
+ https://android-review.googlesource.com/platform/superproject/
150
+ Then the repo_id would be:
151
+ android/platform/superproject
152
+ """
153
+ if review_url := self .remote .review :
154
+ parsed_url = urllib .parse .urlparse (review_url )
155
+ if netloc := parsed_url .netloc :
156
+ parts = netloc .split ("-review" , 1 )
157
+ host = parts [0 ]
158
+ return f"{ host } /{ self .name } "
159
+ return None
160
+
143
161
def _LogMessage (self , fmt , * inputs ):
144
162
"""Logs message to stderr and _git_event_log."""
145
163
message = f"{ self ._LogMessagePrefix ()} { fmt .format (* inputs )} "
Original file line number Diff line number Diff line change @@ -628,6 +628,13 @@ def _ExpandCommaList(value):
628
628
branch .uploaded = False
629
629
return
630
630
631
+ # If using superproject, add the root repo as a push option.
632
+ manifest = branch .project .manifest
633
+ push_options = list (opt .push_options )
634
+ sp = manifest .superproject
635
+ if sp and sp .repo_id and manifest .manifestProject .use_superproject :
636
+ push_options .append (f"custom-keyed-value=rootRepo:{ sp .repo_id } " )
637
+
631
638
branch .UploadForReview (
632
639
people ,
633
640
dryrun = opt .dryrun ,
@@ -640,7 +647,7 @@ def _ExpandCommaList(value):
640
647
ready = opt .ready ,
641
648
dest_branch = destination ,
642
649
validate_certs = opt .validate_certs ,
643
- push_options = opt . push_options ,
650
+ push_options = push_options ,
644
651
patchset_description = opt .patchset_description ,
645
652
)
646
653
You can’t perform that action at this time.
0 commit comments