DodoApp: Commit Helm charts to dodo branch

Change-Id: I98c528b37b2e3cb1765944792e4057e3ccbee4c9
diff --git a/core/installer/soft/repoio.go b/core/installer/soft/repoio.go
index 7df75dc..dcf897d 100644
--- a/core/installer/soft/repoio.go
+++ b/core/installer/soft/repoio.go
@@ -36,6 +36,7 @@
 type DoFn func(r RepoFS) (string, error)
 
 type doOptions struct {
+	NoPull   bool
 	NoCommit bool
 	Force    bool
 	ToBranch string
@@ -43,6 +44,12 @@
 
 type DoOption func(*doOptions)
 
+func WithNoPull() DoOption {
+	return func(o *doOptions) {
+		o.NoPull = true
+	}
+}
+
 func WithNoCommit() DoOption {
 	return func(o *doOptions) {
 		o.NoCommit = true
@@ -219,13 +226,15 @@
 func (r *repoIO) Do(op DoFn, opts ...DoOption) error {
 	r.l.Lock()
 	defer r.l.Unlock()
-	if err := r.pullWithoutLock(); err != nil {
-		return err
-	}
 	o := &doOptions{}
 	for _, i := range opts {
 		i(o)
 	}
+	if !o.NoPull {
+		if err := r.pullWithoutLock(); err != nil {
+			return err
+		}
+	}
 	if msg, err := op(r); err != nil {
 		return err
 	} else {