mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 01:53:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package credentials
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
 | 
						|
	"github.com/aws/aws-sdk-go-v2/aws"
 | 
						|
)
 | 
						|
 | 
						|
const (
 | 
						|
	// StaticCredentialsName provides a name of Static provider
 | 
						|
	StaticCredentialsName = "StaticCredentials"
 | 
						|
)
 | 
						|
 | 
						|
// StaticCredentialsEmptyError is emitted when static credentials are empty.
 | 
						|
type StaticCredentialsEmptyError struct{}
 | 
						|
 | 
						|
func (*StaticCredentialsEmptyError) Error() string {
 | 
						|
	return "static credentials are empty"
 | 
						|
}
 | 
						|
 | 
						|
// A StaticCredentialsProvider is a set of credentials which are set, and will
 | 
						|
// never expire.
 | 
						|
type StaticCredentialsProvider struct {
 | 
						|
	Value aws.Credentials
 | 
						|
}
 | 
						|
 | 
						|
// NewStaticCredentialsProvider return a StaticCredentialsProvider initialized with the AWS
 | 
						|
// credentials passed in.
 | 
						|
func NewStaticCredentialsProvider(key, secret, session string) StaticCredentialsProvider {
 | 
						|
	return StaticCredentialsProvider{
 | 
						|
		Value: aws.Credentials{
 | 
						|
			AccessKeyID:     key,
 | 
						|
			SecretAccessKey: secret,
 | 
						|
			SessionToken:    session,
 | 
						|
		},
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// Retrieve returns the credentials or error if the credentials are invalid.
 | 
						|
func (s StaticCredentialsProvider) Retrieve(_ context.Context) (aws.Credentials, error) {
 | 
						|
	v := s.Value
 | 
						|
	if v.AccessKeyID == "" || v.SecretAccessKey == "" {
 | 
						|
		return aws.Credentials{
 | 
						|
			Source: StaticCredentialsName,
 | 
						|
		}, &StaticCredentialsEmptyError{}
 | 
						|
	}
 | 
						|
 | 
						|
	if len(v.Source) == 0 {
 | 
						|
		v.Source = StaticCredentialsName
 | 
						|
	}
 | 
						|
 | 
						|
	return v, nil
 | 
						|
}
 |