Documentation ¶
Index ¶
- func CryptoBackendName(cb CryptoBackend) string
- func HasCryptoBackend(ctx context.Context) bool
- func HasRCSBackend(ctx context.Context) bool
- func HasStorageBackend(ctx context.Context) bool
- func RCSBackendName(sb RCSBackend) string
- func StorageBackendName(sb StorageBackend) string
- func WithCryptoBackend(ctx context.Context, be CryptoBackend) context.Context
- func WithCryptoBackendString(ctx context.Context, be string) context.Context
- func WithRCSBackend(ctx context.Context, sb RCSBackend) context.Context
- func WithRCSBackendString(ctx context.Context, sb string) context.Context
- func WithStorageBackend(ctx context.Context, sb StorageBackend) context.Context
- func WithStorageBackendString(ctx context.Context, sb string) context.Context
- type Crypto
- type CryptoBackend
- type Keyring
- type RCS
- type RCSBackend
- type Revision
- type Storage
- type StorageBackend
- type URL
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CryptoBackendName ¶
func CryptoBackendName(cb CryptoBackend) string
CryptoBackendName returns the name of the given backend
func HasCryptoBackend ¶
HasCryptoBackend returns true if a value for crypto backend has been set in the context
func HasRCSBackend ¶
HasRCSBackend returns true if a value for sync backend has been set in the context
func HasStorageBackend ¶
HasStorageBackend returns true if a value for store backend was set
func RCSBackendName ¶
func RCSBackendName(sb RCSBackend) string
RCSBackendName returns the name of the given backend
func StorageBackendName ¶
func StorageBackendName(sb StorageBackend) string
StorageBackendName returns the name of the given backend
func WithCryptoBackend ¶
func WithCryptoBackend(ctx context.Context, be CryptoBackend) context.Context
WithCryptoBackend returns a context with the given crypto backend set
func WithCryptoBackendString ¶
WithCryptoBackendString returns a context with the given crypto backend set
func WithRCSBackend ¶
func WithRCSBackend(ctx context.Context, sb RCSBackend) context.Context
WithRCSBackend returns a context with the given sync backend set
func WithRCSBackendString ¶
WithRCSBackendString returns a context with the given sync backend set
func WithStorageBackend ¶
func WithStorageBackend(ctx context.Context, sb StorageBackend) context.Context
WithStorageBackend returns a context with the given store backend set
Types ¶
type Crypto ¶
type Crypto interface { Keyring Encrypt(ctx context.Context, plaintext []byte, recipients []string) ([]byte, error) Decrypt(ctx context.Context, ciphertext []byte) ([]byte, error) RecipientIDs(ctx context.Context, ciphertext []byte) ([]string, error) Name() string Version(context.Context) semver.Version Initialized(ctx context.Context) error Ext() string // filename extension IDFile() string // recipient IDs }
Crypto is a crypto backend
type CryptoBackend ¶
type CryptoBackend int
CryptoBackend is a cryptographic backend
const ( // Plain is a no-op crypto backend Plain CryptoBackend = iota // GPGCLI is a gpg-cli based crypto backend GPGCLI // XC is an experimental crypto backend XC // OpenPGP is a GPG1.x compatible pure-Go crypto backend OpenPGP // Vault is Hashicorp Vault backend Vault )
func GetCryptoBackend ¶
func GetCryptoBackend(ctx context.Context) CryptoBackend
GetCryptoBackend returns the selected crypto backend or the default (GPGCLI)
func (CryptoBackend) String ¶
func (c CryptoBackend) String() string
type Keyring ¶
type Keyring interface { ImportPublicKey(ctx context.Context, key []byte) error ExportPublicKey(ctx context.Context, id string) ([]byte, error) ListPublicKeyIDs(ctx context.Context) ([]string, error) ListPrivateKeyIDs(ctx context.Context) ([]string, error) FindPublicKeys(ctx context.Context, needles ...string) ([]string, error) FindPrivateKeys(ctx context.Context, needles ...string) ([]string, error) FormatKey(ctx context.Context, id string) string NameFromKey(ctx context.Context, id string) string EmailFromKey(ctx context.Context, id string) string Fingerprint(ctx context.Context, id string) string ReadNamesFromKey(ctx context.Context, buf []byte) ([]string, error) CreatePrivateKeyBatch(ctx context.Context, name, email, passphrase string) error CreatePrivateKey(ctx context.Context) error }
Keyring is a public/private key manager
type RCS ¶
type RCS interface { Add(ctx context.Context, args ...string) error Commit(ctx context.Context, msg string) error Push(ctx context.Context, remote, location string) error Pull(ctx context.Context, remote, location string) error Name() string Version(ctx context.Context) semver.Version InitConfig(ctx context.Context, name, email string) error AddRemote(ctx context.Context, remote, location string) error RemoveRemote(ctx context.Context, remote string) error Revisions(ctx context.Context, name string) ([]Revision, error) GetRevision(ctx context.Context, name, revision string) ([]byte, error) }
RCS is a revision control backend
type RCSBackend ¶
type RCSBackend int
RCSBackend is a remote-sync backend
const ( // Noop is a no-op mock backend Noop RCSBackend = iota // GitCLI is a git-cli based sync backend GitCLI // GoGit is an src-d/go-git.v4 based sync backend GoGit )
func GetRCSBackend ¶
func GetRCSBackend(ctx context.Context) RCSBackend
GetRCSBackend returns the sync backend or the default (Git Mock)
func (RCSBackend) String ¶
func (s RCSBackend) String() string
type Revision ¶
type Revision struct { Hash string AuthorName string AuthorEmail string Date time.Time Subject string Body string }
Revision is a SCM revision
type Storage ¶
type Storage interface { Get(ctx context.Context, name string) ([]byte, error) Set(ctx context.Context, name string, value []byte) error Delete(ctx context.Context, name string) error Exists(ctx context.Context, name string) bool List(ctx context.Context, prefix string) ([]string, error) IsDir(ctx context.Context, name string) bool Prune(ctx context.Context, prefix string) error Available(ctx context.Context) error Name() string Version() semver.Version Fsck(context.Context) error }
Storage is an storage backend
type StorageBackend ¶
type StorageBackend int
StorageBackend is a type of storage backend
const ( // FS is a filesystem-backend storage FS StorageBackend = iota // InMem is an in-memory mock store for tests InMem // Consul is a consul backend storage Consul )
func GetStorageBackend ¶
func GetStorageBackend(ctx context.Context) StorageBackend
GetStorageBackend returns the store backend or the default (FS)
func (StorageBackend) String ¶
func (s StorageBackend) String() string
type URL ¶
type URL struct { Crypto CryptoBackend RCS RCSBackend Storage StorageBackend Scheme string Host string Port string Path string Username string Password string Query url.Values // contains filtered or unexported fields }
URL is a parsed backend URL
func FromPath ¶
FromPath returns a new backend URL with the given path and default backends (GitCLI, GPGCLI, FS)
func (*URL) MarshalYAML ¶
MarshalYAML implements yaml.Marshaler
func (*URL) UnmarshalYAML ¶
UnmarshalYAML implements yaml.Unmarshaler