blog.bouzuya.net

2019-03-15 bouzuya/borage 廃止 / 現状の言語別リポジトリ数

bouzuya/borage を廃止 (archive) した。

borage は bouzuya/blog.bouzuya.net のデプロイに使っていたもの。 Amazon S3 にアップロードする。ローカルとリモートのそれぞれの hash をとって変更があればアップロードするようになっていた。

AWS CLI で置き換えた。 AWS CLI のインストールを除けば↓だけ。

aws s3 sync --size-only dist s3://blog.bouzuya.net/

--size-only をつけないとタイムスタンプの違いでアップロードしてしまう。名前どおりサイズしか見ていないなら一文字だけの変更だとアップロードされなくなってしまう。あまりないと予想して妥協した。


borage の廃止は CoffeeScript & JavaScript リポジトリ廃止 (2019-01-07) の一貫。これで残るリポジトリはふたつ。

あとひといきだ。

いまのぼくの言語別リポジトリ数は↓のとおり。ぼくの持つフォークではなくアーカイブされていないリポジトリだ。

77,TypeScript
42,PureScript
24,Clojure
14,null
8,Ruby
6,Java
6,Haskell
5,VimL
5,CSS
3,Visual Basic
3,Rust
3,HTML
2,Shell
2,C#
1,Swift
1,JavaScript
1,CoffeeScript

来月以降に Clojure や Ruby のリポジトリを廃止するつもりでいる。

↓が↑を生成するシェルスクリプト。 curl と jq でがりがり。たぶん他の人でも動くと思う。

#!/bin/bash

user="$1" # 'bouzuya'

user_url="https://api.github.com/users/${user}"
page_count_query='((.public_repos - 1) / 100 | floor) + 1'
page_count=$(curl --silent "${user_url}" | jq "${page_count_query}")
all_repos=''
for i in $(seq 1 "${page_count}")
do
  repos_url="https://api.github.com/users/${user}/repos"
  repos_query="type=owner&sort=full_name&direction=asc&per_page=100&page=${i}"
  repos=$(curl --silent "${repos_url}?${repos_query}")
  all_repos="${all_repos}${repos}"
done
echo "${all_repos}" | \
  jq -s add - | \
  jq '. |
    map(select(.fork == false)) |
    map(select(.archived == false)) |
    map({full_name,language}) |
    group_by(.language) |
    map({
      language:(.[0].language),
      length:(. | length),
      repositories:map(.full_name)
    })' | \
  jq -r '. |
    sort_by(.length) |
    reverse |
    .[] |
    (.length|tostring)+","+(.language|tostring)'