Skip to content
Draft
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
24 changes: 24 additions & 0 deletions api/publish.go
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,10 @@ type publishedRepoUpdateSwitchParams struct {
SignedBy *string ` json:"SignedBy" example:""`
// Enable multiple packages with the same filename in different distributions
MultiDist *bool ` json:"MultiDist" example:"false"`
// Value of Label: field in published repository stanza
Label *string ` json:"Label" example:"Debian"`
// Value of Origin: field in published repository stanza
Origin *string ` json:"Origin" example:"Debian"`
}

// @Summary Update Published Repository
Expand Down Expand Up @@ -477,6 +481,14 @@ func apiPublishUpdateSwitch(c *gin.Context) {
published.MultiDist = *b.MultiDist
}

if b.Label != nil {
published.Label = *b.Label
}

if b.Origin != nil {
published.Origin = *b.Origin
}

resources := []string{string(published.Key())}
taskName := fmt.Sprintf("Update published %s repository %s/%s", published.SourceKind, published.StoragePrefix(), published.Distribution)
maybeRunTaskInBackground(c, taskName, resources, func(out aptly.Progress, _ *task.Detail) (*task.ProcessReturnValue, error) {
Expand Down Expand Up @@ -970,6 +982,10 @@ type publishedRepoUpdateParams struct {
SignedBy *string ` json:"SignedBy" example:""`
// Enable multiple packages with the same filename in different distributions
MultiDist *bool ` json:"MultiDist" example:"false"`
// Value of Label: field in published repository stanza
Label *string ` json:"Label" example:"Debian"`
// Value of Origin: field in published repository stanza
Origin *string ` json:"Origin" example:"Debian"`
}

// @Summary Update Published Repository
Expand Down Expand Up @@ -1042,6 +1058,14 @@ func apiPublishUpdate(c *gin.Context) {
published.MultiDist = *b.MultiDist
}

if b.Label != nil {
published.Label = *b.Label
}

if b.Origin != nil {
published.Origin = *b.Origin
}

resources := []string{string(published.Key())}
taskName := fmt.Sprintf("Update published %s repository %s/%s", published.SourceKind, published.StoragePrefix(), published.Distribution)
maybeRunTaskInBackground(c, taskName, resources, func(out aptly.Progress, _ *task.Detail) (*task.ProcessReturnValue, error) {
Expand Down
10 changes: 10 additions & 0 deletions cmd/publish_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,14 @@ func aptlyPublishUpdate(cmd *commander.Command, args []string) error {
published.SignedBy = context.Flags().Lookup("signed-by").Value.String()
}

if context.Flags().IsSet("origin") {
published.Origin = context.Flags().Lookup("origin").Value.String()
}

if context.Flags().IsSet("label") {
published.Label = context.Flags().Lookup("label").Value.String()
}

if context.Flags().IsSet("multi-dist") {
published.MultiDist = context.Flags().Lookup("multi-dist").Value.Get().(bool)
}
Expand Down Expand Up @@ -132,6 +140,8 @@ Example:
cmd.Flag.String("signed-by", "", "an optional field containing a comma separated list of OpenPGP key fingerprints to be used for validating the next Release file")
cmd.Flag.Bool("skip-cleanup", false, "don't remove unreferenced files in prefix/component")
cmd.Flag.Bool("multi-dist", false, "enable multiple packages with the same filename in different distributions")
cmd.Flag.String("origin", "", "overwrite origin name to publish")
cmd.Flag.String("label", "", "overwrite label to publish")

return cmd
}
9 changes: 9 additions & 0 deletions system/t06_publish/PublishUpdate20Test_gold
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
Loading packages...
Generating metadata files and linking package files...
Finalizing metadata files...
Signing file 'Release' with gpg, please enter your passphrase when prompted:
Clearsigning file 'Release' with gpg, please enter your passphrase when prompted:
Cleaning up published repository ./maverick...
Cleaning up component 'main'...

Published local repository ./maverick (origin: earth, label: fun) [i386, source] publishes {main: [local-repo]} has been updated successfully.
11 changes: 11 additions & 0 deletions system/t06_publish/PublishUpdate20Test_release
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Origin: earth
Label: fun
Suite: maverick
Codename: maverick
Architectures: i386
Components: main
Description: Generated by aptly
MD5Sum:
SHA1:
SHA256:
SHA512:
12 changes: 8 additions & 4 deletions system/t12_api/publish.py
Original file line number Diff line number Diff line change
Expand Up @@ -938,15 +938,17 @@ def check(self):
"Snapshots": [{"Component": "main", "Name": snapshot2_name}],
"Signing": DefaultSigningOptions,
"SkipContents": True,
"Label": "fun",
"Origin": "earth",
})
self.check_task(task)
repo_expected = {
'AcquireByHash': False,
'Architectures': ['i386', 'source'],
'Codename': '',
'Distribution': 'wheezy',
'Label': '',
'Origin': '',
'Label': 'fun',
'Origin': 'earth',
'NotAutomatic': '',
'ButAutomaticUpgrades': '',
'Path': prefix + '/' + 'wheezy',
Expand Down Expand Up @@ -1845,6 +1847,8 @@ def check(self):
"Signing": DefaultSigningOptions,
"SkipBz2": True,
"SkipContents": True,
"Label": "fun",
"Origin": "earth",
}
).status_code, 200)

Expand All @@ -1853,8 +1857,8 @@ def check(self):
'Architectures': ['i386', 'source'],
'Codename': '',
'Distribution': 'wheezy',
'Label': '',
'Origin': '',
'Label': 'fun',
'Origin': 'earth',
'NotAutomatic': '',
'ButAutomaticUpgrades': '',
'Path': prefix + '/' + 'wheezy',
Expand Down
Loading