aboutsummaryrefslogtreecommitdiffstats
path: root/repository/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'repository/config.go')
-rw-r--r--repository/config.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/repository/config.go b/repository/config.go
new file mode 100644
index 00000000..a2bb33fd
--- /dev/null
+++ b/repository/config.go
@@ -0,0 +1,23 @@
+package repository
+
+// Config represent the common function interacting with the repository config storage
+type Config interface {
+ // Store writes a single key/value pair in the config of the repo
+ Store(key string, value string) error
+
+ // ReadAll reads all key/value pair matching the key prefix
+ ReadAll(keyPrefix string) (map[string]string, error)
+
+ // ReadBool read a single boolean value from the config
+ // Return ErrNoConfigEntry or ErrMultipleConfigEntry if
+ // there is zero or more than one entry for this key
+ ReadBool(key string) (bool, error)
+
+ // ReadBool read a single string value from the config
+ // Return ErrNoConfigEntry or ErrMultipleConfigEntry if
+ // there is zero or more than one entry for this key
+ ReadString(key string) (string, error)
+
+ // RemoveAll removes all key/value pair matching the key prefix
+ RemoveAll(keyPrefix string) error
+}