Commit 2f444f22 authored by Pierre Smeyers's avatar Pierre Smeyers
Browse files

Merge branch 'patch-1' into 'main'

Add a new parameter to the gitlab-cp command, which allows skipping releases...

See merge request to-be-continuous/tools/gitlab-cp!75
parents 15d2a30a 6af7b067
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ options:
  --max-visibility {public,internal,private}
                        maximum visibility of groups and projects in destination group
  --skip-visibility     skip updating the destination group or project visibility (when it exists already)
  --skip-releases       skip synchronizing project releases
  --exclude EXCLUDE     project/group path to exclude from processing (relative to --src-sync-path)
  --exclude-from EXCLUDE_FROM
                        a file which lists paths to exclude (one per line); incompatible with --exclude
+18 −1
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ class Synchronizer:
        work_dir: Path,
        max_visibility=GlVisibility.public,
        skip_visibility=False,
        skip_releases=False,
        exclude: Optional[list[str]] = None,
        include: Optional[list[str]] = None,
        include_branches: Optional[list[str]] = None,
@@ -89,6 +90,7 @@ class Synchronizer:
        self.work_dir = work_dir
        self.max_visibility = max_visibility
        self.skip_visibility = skip_visibility
        self.skip_releases = skip_releases
        self.exclude = exclude or []
        self.include = include or []
        self.include_branches = include_branches or []
@@ -183,6 +185,11 @@ class Synchronizer:
        src_project: Project,
        dest_project: Project,
    ) -> None:
        if self.skip_releases:  # If the flag is enabled, do not synchronize releases
            print(
                f"    - releases: {AnsiColors.HGRAY}skipped{AnsiColors.RESET}"
            )
            return
        src_releases = src_project.releases.list(all=True)
        print(f"    - sync {len(src_releases)} releases...")
        dest_releases = dest_project.releases.list(all=True)
@@ -944,6 +951,12 @@ def run() -> None:
        default=trueish_env_var("SKIP_VISIBILITY"),
        help="skip updating the destination group or project visibility (when it exists already)",
    )
    parser.add_argument(
        "--skip-releases",
        action="store_true",
        default=trueish_env_var("SKIP_RELEASES"),
        help="Skip synchronizing project releases",
    )
    parser.add_argument(
        "--exclude",
        action="append",
@@ -1158,6 +1171,9 @@ def run() -> None:
    print(
        f"- skip visi  (--skip-visibility) : {AnsiColors.CYAN}{args.skip_visibility}{AnsiColors.RESET}"
    )
    print(
        f"- skip releases (--skip-releases): {AnsiColors.CYAN}{args.skip_releases}{AnsiColors.RESET}"
    )
    print(
        f"- exclude     (--exclude(-from)) : {AnsiColors.CYAN}{', '.join(exclude_list)}{AnsiColors.RESET}"
    )
@@ -1231,6 +1247,7 @@ def run() -> None:
        work_dir,
        max_visibility=args.max_visibility,
        skip_visibility=args.skip_visibility,
        skip_releases=args.skip_releases,
        exclude=exclude_list,
        include=include_list,
        include_branches=args.include_branch,