Skip to content

Instantly share code, notes, and snippets.

@apeckham
Last active September 15, 2017 04:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save apeckham/5eade32c349da1490130982ee4303a62 to your computer and use it in GitHub Desktop.
Save apeckham/5eade32c349da1490130982ee4303a62 to your computer and use it in GitHub Desktop.
bitrise for bitbar in clojurescript with planck
#!/usr/local/bin/planck
(require 'planck.http 'goog.json 'goog.string.format)
(def icon-success-symbol "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAbdJREFUOBGVU80rRFEUP+fOYxrlI/bWirCyMIySjI+NjbJTWBArlmp6jZWNUmTjPyB2GIuRhiyF+AOU1GSIjeK9e5xzzXvd1Kvnbu655/x+5/si/Dn5i2y7r2GOAIaBqNWYER8R4DShYDfXV7i3Kaz/Pe79ZK1+/dgAggUiUoHevhFRA8KOam5Ydtv3vsRmHAjZr7wfM3nQJkTKCMVES+OoODGRqpHjkcUrBzIcFtG9HO/QvncTlXaQBQJucl/qmT0jOinHUdCpyPdmY5DPOjINK0kgl4v+FAfCkWY7ptuiiT5PyqmbeniAhEbcZ2YqgApXhaOqajnVF87vzTwRvsFRk276sEyVj02O2hOQzc1jNk0MlZwe1zVU4yQGEKHMlS6vpU+ucucj05poPsRZguJoj+GbIPVNkM31Ht0lAbvXMoWtfCnbRah3QowtMFfJhtk6LmmdI7qrmcKzez3R5BEd8NjCum2scFFW19Nw+3cSCnGD025jwphNCuRgjGYTc6XsFmlaDIxxblS4ne8vLJkmym7zfItxiAbDWMPhh3EgOy27LV7Nh4nwJDbBBP9AYKYEG//f7/wDKPq20ttyqQEAAAAASUVORK5CYII=")
(def icon-failure-symbol "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAYpJREFUOBGVk0tKA0EQhqtjyMozeACj8Q5ZBHIBNSKo4EZ0FQh4BheuHNwoPuNj41aIkDsYNQeYK+hKTfT7OzOTVlScgmLq9f9V1d3j7Js8mZUHZuvOrEZqKknHH2adCbODshklY6FuJERLAHcJbFBcSOPhl9yQ3D5ETYhelfMECfgWvxoC/rC7kNRF4jupcw6weKsJxpx2Hpr1grF3KOihx2gRlQwYdRVV7bYCWofulYIOLABr+X7FrM2IDereE23Mmp1T1xdYIoywRZhqOJnQ4fCR3djv8oHOJBzgG2KL5I6yQiXAOoqeIZgME9h+ZHVVnDWXYDrFZLCxQPDiD3Ec+mK9pR5g2eGgacofUow3nUXoDuvyjNk10y0oziSyHQwXuOEUsU75Ds0IGGsN8BWAeQBtcoadkpSInSkmwe78eI20uGfsE2qya8RegXwOUEtgbH+NfP2l7/HZlJ1DIq57yx8iHZsAuznAesrCjH4avWkCdfxIo/1GlOQi1QqjOr9CCNDTZv9//86fOzh2PypLeVgAAAAASUVORK5CYII=")
(def auth "token LOLOLOLOLOLOLOL")
(defn api-get [path]
(-> (str "https://api.bitrise.io/v0.1/" path)
(planck.http/get {:headers {:Authorization auth}})
:body
goog.json/parse
(js->clj :keywordize-keys true)
:data))
(defn apps []
(api-get "me/apps"))
(defn builds [{:keys [slug]}]
(api-get (str "apps/" slug "/builds")))
(def apps-and-builds
(map #(assoc % :builds (builds %)) (apps)))
(def success
(every? #(= "success" (:status_text (first (:builds %)))) apps-and-builds))
(println (str "| image=" (if success icon-success-symbol icon-failure-symbol)))
(println "---")
(println "Bitrise")
(doseq [app apps-and-builds]
(println "---")
(println (goog.string.format "%s | href='https://www.bitrise.io/app/%s'" (:title app) (:slug app)))
(println (-> app :builds first :status_text)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment