move-mrs-script: add url option
authorStéphane Cerveau <scerveau@collabora.com>
Wed, 29 Sep 2021 12:41:31 +0000 (14:41 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Sun, 10 Oct 2021 19:50:10 +0000 (19:50 +0000)
You can give as option:

--url
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/960>

scripts/move_mrs_to_monorepo.py
subprojects/gst-docs/markdown/frequently-asked-questions/mono-repository.md

index 19d5934..32b1a69 100755 (executable)
@@ -80,12 +80,12 @@ PARSER.add_argument(
     required=False,
 )
 PARSER.add_argument(
-    "--mr",
+    "-mr",
+    "--mr-url",
     default=None,
-    type=int,
+    type=str,
     help=(
-        "Id of the MR to work on."
-        " One (and only one) module must be specified with `--module`."
+        "URL of the MR to work on."
     ),
     required=False,
 )
@@ -182,6 +182,7 @@ class GstMRMover:
         self.config_files = []
         self.gl = None
         self.mr = None
+        self.mr_url = None
         self.all_projects = []
         self.skipped_branches = []
         self.git_rename_limit = None
@@ -312,7 +313,12 @@ class GstMRMover:
                 raise e
 
     def cleanup_args(self):
-        if not self.modules:
+        if self.mr_url:
+            self.modules.append(GST_PROJECTS[0])
+            (namespace, module, _, _, mr) = os.path.normpath(urlparse(self.mr_url).path).split('/')[1:]
+            self.modules.append(module)
+            self.mr = int(mr)
+        elif not self.modules:
             if self.mr:
                 sys.exit(f"{red(f'Merge request #{self.mr} specified without module')}\n\n"
                          f"{bold(' -> Use `--module` to specify which module the MR is from.')}")
@@ -527,6 +533,9 @@ class GstMRMover:
                 bold(f"{red('SKIPPED')} (couldn't checkout)\n"), nested=False)
             return False
 
+        # unset upstream to avoid to push to main (ie push.default = tracking)
+        self.git("branch", branch, "--unset-upstream")
+
         for commit in reversed([c for c in mr.commits()]):
             if self.git("cherry-pick", commit.id,
                         interaction_message=f"cherry-picking {commit.id} onto {branch} with:\n  "
index dc2667e..f8745ed 100644 (file)
@@ -54,7 +54,8 @@ https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1277
 you can run:
 
 ```
-GITLAB_API_TOKEN=zytXYboB5yi3uggRpBM6 ./scripts/move_mrs_to_monorepo.py -m gst-plugins-base --mr 1277
+GITLAB_API_TOKEN=zytXYboB5yi3uggRpBM6 ./scripts/move_mrs_to_monorepo.py -mr https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1277
+
 ```
 
 When you are ready, you can also run the same script without any parameters to browse and move all your Merge Requests: