[Git][debian-gis-team/scripts][master] Set default branch.

Bas Couwenberg (@sebastic) gitlab at salsa.debian.org
Sun Sep 28 19:32:45 BST 2025



Bas Couwenberg pushed to branch master at Debian GIS Project / scripts


Commits:
660f8e60 by Bas Couwenberg at 2025-09-28T20:32:37+02:00
Set default branch.

- - - - -


2 changed files:

- salsa-configure-repositories.pl
- salsa-create-repository.pl


Changes:

=====================================
salsa-configure-repositories.pl
=====================================
@@ -37,6 +37,7 @@ my %cfg = (
             namespace        => '2052',
             user             => '',
             group            => 'debian-gis-team',
+            default_branch   => 'master',
             ci_cfg_path      => 'debian/.gitlab-ci.yml',
             email_recipients => 'pkg-grass-devel at lists.alioth.debian.org',
             irc_recipients   => '#debian-gis',
@@ -55,6 +56,7 @@ my $result = GetOptions(
                          'U|user=s'             => \$cfg{user},
                          'G|group=s'            => \$cfg{group},
                          't|token=s'            => \$cfg{token},
+                         'B|default-branch=s'   => \$cfg{default_branch},
                          'c|ci-cfg-path=s'      => \$cfg{ci_cfg_path},
                          'e|email-recipients=s' => \$cfg{email_recipients},
                          'i|irc-recipients=s'   => \$cfg{irc_recipients},
@@ -96,6 +98,7 @@ if(!$result || $cfg{help}) {
 	print "-U, --user <NAME>               Salsa user path  ($cfg{user})\n";
 	print "-G, --group <NAME>              Salsa group path ($cfg{group})\n";
 	print "\n";
+	print "-B, --default-branch <NAME>     Default branch   ($cfg{default_branch})\n";
 	print "-c, --ci-cfg-path <PATH>        CI Config Path   ($cfg{ci_cfg_path})\n";
 	print "-e, --email-recipients <EMAIL>  Email recipients ($cfg{email_recipients})\n";
 	print "-i, --irc-recipients <CHANNEL>  IRC recipients   ($cfg{irc_recipients})\n";
@@ -191,6 +194,11 @@ foreach my $project (@{$team_projects}) {
 		exit 1;
 	}
 
+	# Set default branch
+	if(!set_default_branch($project)) {
+		exit 1;
+	}
+
 	# Set CI config path
 	if(!set_ci_config_path($project)) {
 		exit 1;
@@ -535,6 +543,52 @@ sub disable_printing_merge_request_link {
 	}
 }
 
+sub set_default_branch {
+	my ($project) = @_;
+
+	if(!$project->{default_branch} || $project->{default_branch} ne $cfg{default_branch}) {
+		print "Current default branch: ". $project->{default_branch} ."\n" if($cfg{verbose} && $project->{default_branch});
+
+		print "Setting default branch '$cfg{default_branch}' for: ". $project->{name} ." (". $project->{id} .")\n" if($cfg{verbose});
+
+		my $url = $cfg{url}.'/projects/'.uri_escape($project->{id});
+
+		my %param = (
+		              id             => $project->{id},
+			      name           => $project->{name},
+			      default_branch => $cfg{default_branch},
+		            );
+
+		print "param:\n".Dumper(\%param) if($cfg{debug});
+
+		my $req = HTTP::Request::Common::PUT($url, [ %param ]);
+		   $req->header('PRIVATE-TOKEN' => $cfg{token});
+
+		my $res = $ua->request($req);
+		if($res->is_success) {
+			my $content = $res->content;
+
+			print "Content:\n".Dumper($content) if($cfg{debug});
+
+			print "Set default branch for project: ". $project->{name} ." (". $project->{id} .")\n" if($cfg{verbose});
+
+			return 1;
+		}
+		else {
+			print "Error: Request failed! ($url)\n";
+			print "HTTP Status: ".$res->code." ".$res->message."\n";
+			print $res->content if($res->content);
+
+			return;
+		}
+	}
+	else {
+		print "Current default branch is already '$cfg{default_branch}'.\n" if($cfg{verbose});
+
+		return 2;
+	}
+}
+
 sub set_ci_config_path {
 	my ($project) = @_;
 


=====================================
salsa-create-repository.pl
=====================================
@@ -37,6 +37,7 @@ my %cfg = (
             namespace          => '2052',
             user               => '',
             group              => 'debian-gis-team',
+            default_branch     => 'master',
             ci_cfg_path        => 'debian/.gitlab-ci.yml',
             email_recipients   => 'pkg-grass-devel at lists.alioth.debian.org',
             irc_recipients     => '#debian-gis',
@@ -61,6 +62,7 @@ my $result = GetOptions(
                          'U|user=s'             => \$cfg{user},
                          'G|group=s'            => \$cfg{group},
                          't|token=s'            => \$cfg{token},
+                         'B|default-branch=s'   => \$cfg{default_branch},
                          'c|ci-cfg-path=s'      => \$cfg{ci_cfg_path},
                          'e|email-recipients=s' => \$cfg{email_recipients},
                          'i|irc-recipients=s'   => \$cfg{irc_recipients},
@@ -108,6 +110,7 @@ if(!$result || $cfg{help} || !$cfg{project}) {
 	print "-U, --user <NAME>               Salsa user path    ($cfg{user})\n";
 	print "-G, --group <NAME>              Salsa group path   ($cfg{group})\n";
 	print "\n";
+	print "-B, --default-branch <NAME>     Default branch     ($cfg{default_branch})\n";
 	print "-c, --ci-cfg-path <PATH>        CI Config Path     ($cfg{ci_cfg_path})\n";
 	print "-e, --email-recipients <EMAIL>  Email recipients   ($cfg{email_recipients})\n";
 	print "-i, --irc-recipients <CHANNEL>  IRC recipients     ($cfg{irc_recipients})\n";
@@ -438,6 +441,7 @@ sub create_project {
 		      namespace_id                        => $cfg{namespace},
 		      description                         => $cfg{description},
 		      visibility                          => $cfg{visibility},
+		      default_branch                      => $cfg{default_branch},
 		      ci_config_path                      => $cfg{ci_cfg_path},
 		      issues_enabled                      => 'false',
 	              merge_method                        => 'ff',



View it on GitLab: https://salsa.debian.org/debian-gis-team/scripts/-/commit/660f8e604cf6b5022282b17e751153bcff921a90

-- 
View it on GitLab: https://salsa.debian.org/debian-gis-team/scripts/-/commit/660f8e604cf6b5022282b17e751153bcff921a90
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20250928/613f316b/attachment-0001.htm>


More information about the Pkg-grass-devel mailing list