Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ The CLI parses settings from a configuration file, looking for `aetherpak.yaml`
* **`remote_name`** (string): The repository name configured in user Flatpak clients (defaults to `<owner>-<repo>`). Historically used for OCI registry pushes; now acts as a fallback for `oci_repository` (deprecated for registry pushes).
* **`output_dir`** (string): Base directory for all output assets (state, records, site, ccache, repo) unless overridden.
* **`no_sign`** (boolean): Set to `true` to disable GPG signing of repositories and OCI images entirely (defaults to `false`).
* **`repo_title`** (string): Customized title shown on the landing page and `.flatpakrepo` metadata (defaults to `"Flatpak Repository"`).
* **`repo_title`** (string): Customized title shown on the landing page and `.flatpakrepo` metadata (defaults to the value of `remote_name`, which defaults to `"aetherpak"`).
* **`repo_homepage`** (string): URL link for repository homepage metadata.
* **`runtime_repo`** (string): Fallback `.flatpakrepo` URL used to resolve dependencies (defaults to Flathub).
* **`channel_mappings`** (map[string]string): Key-value pairs mapping Git references (supporting glob wildcards like `staging/*`) to target flatpak branches.
Expand Down
4 changes: 2 additions & 2 deletions pkg/site/site.go
Original file line number Diff line number Diff line change
Expand Up @@ -529,7 +529,7 @@ func writeFlatpakRepoFile(siteDir string, registry string, gpgKeyBase64 string,

title := opts.RepoTitle
if title == "" {
title = "Flatpak Repository"
title = remote
}

homepage := opts.RepoHomepage
Expand Down Expand Up @@ -968,7 +968,7 @@ func buildTemplateData(opts SiteOptions, index FlatpakIndex, fingerprint string,
data.RemoteName = "aetherpak"
}
if data.RepoTitle == "" {
data.RepoTitle = "Flatpak Repository"
data.RepoTitle = data.RemoteName
}
if data.AccentColor == "" {
data.AccentColor = "#8b5cf6"
Expand Down
58 changes: 58 additions & 0 deletions pkg/site/site_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1231,6 +1231,64 @@ func TestWriteFlatpakRepoCustomSigDir(t *testing.T) {
}
}

func TestWriteFlatpakRepoDefaultTitle(t *testing.T) {
tests := []struct {
name string
remoteName string
repoTitle string
expected string
}{
{
name: "defaults to remote name when title is empty",
remoteName: "my-custom-remote",
repoTitle: "",
expected: "Title=my-custom-remote",
},
{
name: "defaults to aetherpak when both are empty",
remoteName: "",
repoTitle: "",
expected: "Title=aetherpak",
},
{
name: "uses configured repo title override",
remoteName: "my-custom-remote",
repoTitle: "Override Title",
expected: "Title=Override Title",
},
}

for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
tempDir := t.TempDir()
opts := SiteOptions{
RemoteName: tt.remoteName,
RepoTitle: tt.repoTitle,
}

err := writeFlatpakRepoFile(tempDir, "ghcr.io", "", opts)
if err != nil {
t.Fatalf("writeFlatpakRepoFile failed: %v", err)
}

remote := tt.remoteName
if remote == "" {
remote = "aetherpak"
}
repoFilePath := filepath.Join(tempDir, remote+".flatpakrepo")
repoBytes, err := os.ReadFile(repoFilePath)
if err != nil {
t.Fatalf("failed to read generated flatpakrepo file: %v", err)
}
repoContent := string(repoBytes)

if !strings.Contains(repoContent, tt.expected) {
t.Errorf("expected flatpakrepo to contain %q, got:\n%s", tt.expected, repoContent)
}
})
}
}

func TestBuildSiteDryRun(t *testing.T) {
tempDir := t.TempDir()
recordsDir := filepath.Join(tempDir, "records")
Expand Down
Loading