[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