Skip to content

aptly: Add new repository configuration format

Andrej Shadura requested to merge new-aptly-config into collabora/staging

The new configuration format splits aptly repositories and OBS projects into two separate hashmaps, while still allowing to override settings on per-project level:

my $apertis_aptly_server = {
  "url" => "https://...",
  "token" => "...",
};

our $aptly_targets = {
  "apertis" => {
    "server"  => $apertis_aptly_server
    "gpg-key" => $aptly_gpgkey,
    "prefix"  => "apertis",
  }
};

our $aptly_projects = {
  "apertis:v2025:target" => {
    "default" => {
      "target"       => "apertis",
      "distribution" => "v2025",
      "component"    => "target",
    }
  },
  "apertis:v2025:development" => {
    "default" => {
      "target"       => "apertis",
      "distribution" => "v2025",
      "component"    => "development",
    }
  },
  "apertis:v2025:sdk" => {
    "default" => {
      "target"       => "apertis",
      "distribution" => "v2025",
      "gpg-key"      => "...",
      "component"    => "sdk",
    },
    "rebuild" => {
      "distribution" => "v2025",
      "component"    => "sdk",
      "gpg-key"      => "...",
      "prefix"       => "apertis",
      "aptly-server" => {
        "url" => "https://rebuilds.apertis.org",
        "token" => "tokentoken",
      },
    },
  },
  "apertis:v2025:foo" => {
    "default" => {
      "distribution" => "v2025",
      "component"    => "sdk",
      "prefix"       => "foo",
      "gpg-key"      => "...",
      "aptly-server" => {
        "url" => "https://aptly.example.org/debian",
        "token" => "toktok",
      },
    }
  },
};

The old-style configuration is still accepted for the time being, subject to be removed in future.

Edited by Andrej Shadura

Merge request reports