• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

agama-project / agama / 14790939260
73%

Build:
DEFAULT BRANCH: master
Ran 02 May 2025 07:47AM UTC
Jobs 0
Files 0
Run time –
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Canceled at 06 Dec 2025 02:43PM UTC via web
14790939260

push

github

web-flow
feat: add support for relative URLs (#2305)

## Problem

The `relurl` schema is used in several places, especially in AutoYaST
profiles. It can be used to refer a script, a file, repositories, etc.
They are useful because you do not need to specify the full URL, but it
uses a URL which is relative to the profile URL.

The `relurl` is not directly supported by the FileFromUrl API, but it is
implemented in different places. The goal of this PR is adding support
to read files and scripts from relative locations.

`relurl` is an AutoYaST-specific invention.

## Solution

Instead of porting `relurl`, introduce the concept of **URL reference**,
well known from HTML `<a href=...>` and standardized in [RFC3986][]
(Uniform Resource Identifier (URI): Generic Syntax).
A URL reference is either a URL (absolute), or a relative reference
(typically just a path), resolved in relation to a base URL.

[RFC3986]: https://datatracker.ietf.org/doc/html/rfc3986.html

```jsonnet
{
  files: [
    {
      destination: '/etc/issue.d/agama.issue',
      url: 'issue-sles',
    },
    {
      destination: '/etc/issue.d/readme.issue',
      url: 'http://192.168.122.1/agama/issue-readme',
    },
  ],
  scripts: {
    post: [
      {
        name: "disable-nginx",
        url: "disable-nginx.sh",
      },
      {
        name: "disable-firewall",
        url: "http://192.168.122.1/agama/disable-firewall.sh",
      },
    ],
  }
}
```

### A new Url

The [Url struct](https://docs.rs/url/latest/url/struct.Url.html) from
the [url crate](https://crates.io/crates/url) does not support relative
URLs. This PR uses
[fluent_uri](https://github.com/yescallop/fluent-uri-rs) but the old
`Url` has not been replaced everywhere yet.

### What is the base URL?

The first problem when using relative URLs is to determine which is the
base URL. In this case, it is the profile's URL. We could store the URL
somewhere (in the manager?) but the true is that it can change with
every call to `agama profile... (continued)
Source Files on build 14790939260
Detailed source file information is not available for this build.
  • Back to Repo
  • Github Actions Build #14790939260
  • 932f83f6 on github
  • Prev Build on master (#14790939275)
  • Next Build on master (#15025581597)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc