Name the S3 keys when storage_url moves to s3:// first (closes #428)
check / check (push) Successful in 18m8s

On a config that loads, `config set storage_url s3://...` is refused
until `s3.access_key_id` and `s3.secret_access_key` are set. The refusal
now says to set those two keys first, then `storage_url`.

Model: opus-5-5
This commit is contained in:
sneak committed 2026-11-11 04:24:28 +00:00
1 parent d8d13d1c8b
commit 45d758e08e
3 files changed
+78 -7

No files matched your search

+11 -6
View File
@@ -76,8 +76,13 @@ var (
"storage not configured; set storage_url or provide s3.endpoint + " +
"s3.bucket + credentials")
errS3BucketRequired = errors.New("s3.bucket is required (or set storage_url)")
errS3KeyIDRequired = errors.New("s3.access_key_id is required")
errS3SecretRequired = errors.New("s3.secret_access_key is required")
)
// Validate returns these when S3 storage is configured without its
// credentials.
var (
ErrS3KeyIDRequired = errors.New("s3.access_key_id is required")
ErrS3SecretRequired = errors.New("s3.secret_access_key is required")
)
// expandTilde expands ~ at the start of a path to the user's home directory.
@@ -513,11 +518,11 @@ func (c *Config) validateStorage() error {
}
if c.S3.AccessKeyID == "" {
return errS3KeyIDRequired
return ErrS3KeyIDRequired
}
if c.S3.SecretAccessKey == "" {
return errS3SecretRequired
return ErrS3SecretRequired
}
return nil
@@ -544,11 +549,11 @@ func (c *Config) validateStorageURL() error {
case strings.HasPrefix(c.StorageURL, "s3://"):
// S3 storage needs credentials
if c.S3.AccessKeyID == "" {
return fmt.Errorf("%w for s3:// URLs", errS3KeyIDRequired)
return fmt.Errorf("%w for s3:// URLs", ErrS3KeyIDRequired)
}
if c.S3.SecretAccessKey == "" {
return fmt.Errorf("%w for s3:// URLs", errS3SecretRequired)
return fmt.Errorf("%w for s3:// URLs", ErrS3SecretRequired)
}
return nil