diff --git a/api/publish.go b/api/publish.go index 5c8d06ade..3b970f424 100644 --- a/api/publish.go +++ b/api/publish.go @@ -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 @@ -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) { @@ -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 @@ -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) { diff --git a/cmd/publish_update.go b/cmd/publish_update.go index 34075bb2d..7240863dc 100644 --- a/cmd/publish_update.go +++ b/cmd/publish_update.go @@ -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) } @@ -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 } diff --git a/system/t06_publish/PublishUpdate20Test_gold b/system/t06_publish/PublishUpdate20Test_gold new file mode 100644 index 000000000..040bcc133 --- /dev/null +++ b/system/t06_publish/PublishUpdate20Test_gold @@ -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. diff --git a/system/t06_publish/PublishUpdate20Test_release b/system/t06_publish/PublishUpdate20Test_release new file mode 100644 index 000000000..0ab5dd0ab --- /dev/null +++ b/system/t06_publish/PublishUpdate20Test_release @@ -0,0 +1,11 @@ +Origin: earth +Label: fun +Suite: maverick +Codename: maverick +Architectures: i386 +Components: main +Description: Generated by aptly +MD5Sum: +SHA1: +SHA256: +SHA512: diff --git a/system/t12_api/publish.py b/system/t12_api/publish.py index 58ed244a3..1d207ce9e 100644 --- a/system/t12_api/publish.py +++ b/system/t12_api/publish.py @@ -938,6 +938,8 @@ def check(self): "Snapshots": [{"Component": "main", "Name": snapshot2_name}], "Signing": DefaultSigningOptions, "SkipContents": True, + "Label": "fun", + "Origin": "earth", }) self.check_task(task) repo_expected = { @@ -945,8 +947,8 @@ def check(self): 'Architectures': ['i386', 'source'], 'Codename': '', 'Distribution': 'wheezy', - 'Label': '', - 'Origin': '', + 'Label': 'fun', + 'Origin': 'earth', 'NotAutomatic': '', 'ButAutomaticUpgrades': '', 'Path': prefix + '/' + 'wheezy', @@ -1845,6 +1847,8 @@ def check(self): "Signing": DefaultSigningOptions, "SkipBz2": True, "SkipContents": True, + "Label": "fun", + "Origin": "earth", } ).status_code, 200) @@ -1853,8 +1857,8 @@ def check(self): 'Architectures': ['i386', 'source'], 'Codename': '', 'Distribution': 'wheezy', - 'Label': '', - 'Origin': '', + 'Label': 'fun', + 'Origin': 'earth', 'NotAutomatic': '', 'ButAutomaticUpgrades': '', 'Path': prefix + '/' + 'wheezy',