42 lines
1.4 KiB
Hy
42 lines
1.4 KiB
Hy
;; Copyright 2019 the authors.
|
|
;; This file is part of Hy, which is free software licensed under the Expat
|
|
;; license. See the LICENSE.
|
|
|
|
;; You need to install the requests package first
|
|
|
|
(import os.path)
|
|
(import requests)
|
|
|
|
|
|
(setv *api-url* "https://api.github.com/{}")
|
|
(setv *rst-format* "* `{} <{}>`_")
|
|
(setv *missing-names* {"khinsen" "Konrad Hinsen"})
|
|
;; We have three concealed members on the hylang organization
|
|
;; and GitHub only shows public members if the requester is not
|
|
;; an owner of the organization.
|
|
(setv *concealed-members* [(, "aldeka" "Karen Rustad")
|
|
(, "tuturto" "Tuukka Turto")
|
|
(, "cndreisbach" "Clinton N. Dreisbach")])
|
|
|
|
(defn get-dev-name [login]
|
|
(setv name (get (.json (requests.get (.format *api-url* (+ "users/" login)))) "name"))
|
|
(if-not name
|
|
(.get *missing-names* login)
|
|
name))
|
|
|
|
(setv coredevs (requests.get (.format *api-url* "orgs/hylang/members")))
|
|
|
|
(setv result (set))
|
|
(for [dev (.json coredevs)]
|
|
(result.add (.format *rst-format* (get-dev-name (get dev "login"))
|
|
(get dev "html_url"))))
|
|
|
|
(for [(, login name) *concealed-members*]
|
|
(result.add (.format *rst-format* name (+ "https://github.com/" login))))
|
|
|
|
(setv filename (os.path.abspath (os.path.join os.path.pardir
|
|
"docs" "coreteam.rst")))
|
|
|
|
(with [fobj (open filename "w+")]
|
|
(fobj.write (+ (.join "\n" result) "\n")))
|