Skip to content

Commit ed7744f

Browse files
author
Daniele Rondina
committed
Add support for Mottainai API key
1 parent e92d3d9 commit ed7744f

File tree

5 files changed

+18
-4
lines changed

5 files changed

+18
-4
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Available Commands:
4040
print Show configuration params
4141

4242
Flags:
43+
-k, --apikey string Mottainai API Key
4344
-c, --config string SimpleStreams Builder configuration file
4445
-h, --help help for this command
4546
-t, --target-dir string Target dir of operations.

cmd/root.go

+2
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ func initCommand(rootCmd *cobra.Command, config *conf.BuilderTreeConfig) {
5757

5858
pflags.StringP("config", "c", "", "SimpleStreams Builder configuration file")
5959
pflags.StringP("target-dir", "t", "", "Target dir of operations.")
60+
pflags.StringP("apikey", "k", "", "Mottainai API Key")
6061

6162
config.Viper.BindPFlag("config", pflags.Lookup("config"))
6263
config.Viper.BindPFlag("target-dir", pflags.Lookup("target-dir"))
64+
config.Viper.BindPFlag("apikey", pflags.Lookup("apikey"))
6365

6466
rootCmd.AddCommand(
6567
newPrintCommand(config),

pkg/images/file.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func BuildImagesFile(config *config.BuilderTreeConfig, sourceDir string) (*lxd_s
7777
strings.TrimRight(v.Directory, "/"),
7878
)
7979
// Fetch and parse remote ssb.json file
80-
manifest, err = ReadVersionsManifestJsonFromUrl(ssbPath)
80+
manifest, err = ReadVersionsManifestJsonFromUrl(ssbPath, config.Viper.GetString("apikey"))
8181

8282
} else {
8383
// POST: Try to search ssb.json file under local filesystem.

pkg/images/versions.go

+12-2
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,9 @@ func WriteVersionsManifestJson(manifest *VersionsSSBuilderManifest, out io.Write
229229
return enc.Encode(manifest)
230230
}
231231

232-
func ReadVersionsManifestJsonFromUrl(url string) (*VersionsSSBuilderManifest, error) {
232+
func ReadVersionsManifestJsonFromUrl(url, apiKey string) (*VersionsSSBuilderManifest, error) {
233233
var ans *VersionsSSBuilderManifest = nil
234+
var req *http.Request = nil
234235
var err error
235236

236237
transport := &http.Transport{
@@ -251,7 +252,16 @@ func ReadVersionsManifestJsonFromUrl(url string) (*VersionsSSBuilderManifest, er
251252
Timeout: 60 * time.Second,
252253
}
253254

254-
resp, err := client.Get(url)
255+
req, err = http.NewRequest("GET", url, nil)
256+
if err != nil {
257+
return nil, err
258+
}
259+
260+
if apiKey != "" {
261+
req.Header.Add("Authorization", "token "+apiKey)
262+
}
263+
264+
resp, err := client.Do(req)
255265
if err != nil {
256266
return nil, err
257267
}

pkg/index/index.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,8 @@ func BuildIndexStruct(config *config.BuilderTreeConfig, sourceDir string) (*lxd_
7676
strings.TrimRight(v.Directory, "/"),
7777
)
7878
// Fetch and parse remote ssb.json file
79-
manifest, err = images.ReadVersionsManifestJsonFromUrl(ssbPath)
79+
manifest, err = images.ReadVersionsManifestJsonFromUrl(ssbPath,
80+
config.Viper.GetString("apikey"))
8081

8182
} else {
8283
// POST: Try to search ssb.json file under local filesystem.

0 commit comments

Comments
 (0)