   (let [changes (get-changed-files)]
     (if (empty? changes)
       {:project project :diff :no-change}
-      {:project project :diff changes})))
+      {:project project :diff (str/join " " changes)})))
 
 (defn pull-rebase! [project]
   (let [pull-result (sh/sh "git" "pull" "-r")]

  (u/output-of (sh/sh "git" "log" "-1" "--format=%cr" path) ""))

(defn get-changed-files []
  (u/output-of (sh/sh "git" "diff" "--name-only") " "))

(defn unpushed-commit []
  (u/output-of (sh/sh "git" "diff" "origin/master..HEAD" "--name-only")))

                  (u/output-of status-result " "))}
      {:project project :status (status-failed)})))

(defn commit! [project commit-msg]
  (let [commit-result (sh/sh "git" "commit" "-m" commit-msg)]
    (if (u/is-success? commit-result)
      {:project        project
       :status         :commited
       :commit-message commit-msg}
      {:project        project
       :status         (status-failed)
       :commit-message commit-msg
       :cause          (u/sub-str (u/error-of commit-result " ") output-length)})))

(defn commit-project! [project commit-msg]
  (let [add-status (->> (get-changed-files)
                        (map add)
                        (filter #(= % :failed)))]
    (if (zero? (count add-status))
      (commit! project commit-msg)
      {:project        project
       :status         :skipped
       :commit-message commit-msg
       :cause          add-status})))