     (start [this total-tasks])
     (update [this completed])))
 
+; commands
+
 (defn clone!
   [^String uri f progress]
   (-> (Git/cloneRepository)
       (.setURI uri)
       (.setDirectory f)
-      (.setCredentialsProvider (creds))
+      (.setCredentialsProvider @creds)
       (.setProgressMonitor progress)
       .call
       .close))

(defn pull!
  [^FileRepository repo ^ProgressMonitor progress]
  (-> repo Git. .pull
      (.setCredentialsProvider (creds))
      (.setProgressMonitor progress)
      .call))

(defn push!
  [^FileRepository repo ^ProgressMonitor progress]
  (-> repo Git. .push
      (.setCredentialsProvider (creds))
      (.setProgressMonitor progress)
      .call))


(def ^:const git-name "Git")
(def ^:const max-commits 50)

; utils

(defn address->name
  [s]
