File tree Expand file tree Collapse file tree 3 files changed +58
-0
lines changed
Expand file tree Collapse file tree 3 files changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ repos.edn
2+ .nrepl-port
Original file line number Diff line number Diff line change 1+ {:deps {metosin/jsonista {:mvn/version " 0.3.5" }}}
Original file line number Diff line number Diff line change 1+ (ns site.technology
2+ (:require [jsonista.core :as json]
3+ [clojure.java.io :as io]
4+ [clojure.edn :as edn]
5+ [clojure.pprint :refer [pprint]]
6+ [clojure.string :as str]))
7+
8+ (defn repos
9+ ([]
10+ (repos " https://api.github.com/orgs/Metosin/repos?type=public" ))
11+ ([url]
12+ (let [u (java.net.URL. url)
13+ c (.openConnection u)
14+ links (-> (.getHeaderField c " Link" )
15+ (str/split #"," )
16+ (->> (map (fn [x]
17+ (let [[_ url rel] (re-matches #"<(.*)>; rel=\" (.*)\" " (str/trim x))]
18+ [rel url])))
19+ (into {})))
20+ data (with-open [is (.getInputStream c)]
21+ (json/read-value is json/keyword-keys-object-mapper))]
22+ (if-let [x (get links " next" )]
23+ (into data (repos x))
24+ data))))
25+
26+ (defn update-github-data []
27+ (let [data (repos )]
28+ (spit (io/file " repos.edn" ) (with-out-str (pprint data)))))
29+
30+ (comment
31+ (update-github-data ))
32+
33+ (def all-repos (edn/read-string (slurp (io/file " repos.edn" ))))
34+
35+ (def topic->stage
36+ {" metosin-experimental" :experimental
37+ " metosin-active-development" :active-development
38+ " metosin-stable" :stable
39+ " metosin-deprecated" :deprecated })
40+
41+ (first all-repos)
42+
43+ (defn csv-export []
44+ (doseq [{:keys [topics archived open_issues_count] :as repo} all-repos]
45+ (let [stages (keep topic->stage topics)]
46+ (println (str (:name repo) " ,"
47+ archived " ,"
48+ (if (seq stages)
49+ (str/join " " (map name stages))
50+ " unknown" ) " ,"
51+ open_issues_count)))))
52+
53+ (defn -main [& _]
54+ (doseq [{:keys [topics archived] :as repo} all-repos]
55+ ))
You can’t perform that action at this time.
0 commit comments