thank-you-starsを使用してGoのライブラリにスターを送る

2021/04/17に公開

みなさん普段GitHubのスターを投げることはありますか?

職業柄みなさんも人のGitHubアカウントを覗くことがよくあると思いますが、人によってすごく多くのライブラリに対してスターを投げている人もいれば、全くスターを投げていない人もいると感じます。
(人によってスターを投げる基準が異なるのは当たり前で、スターを投げないことが悪いことだとは全く言いません。)

僕個人の意見としては「自分のリポジトリで使用しているのであれば、スターを投げて欲しいな」と思っていて、自分はスターを投げるようにしています。

そこで、thank-you-starsという依存しているGoのライブラリにスターを送ることができるライブラリを開発しました。
https://github.com/sanposhiho/thank-you-stars

このツールは以下のツールに強く影響を受けています。それぞれを使用してHaskellのリポジトリ、npmパッケージへもスターを送ることができます。
https://github.com/y-taka-23/thank-you-stars
https://github.com/teppeis/thank-you-stars

これらのツールの開発の背景も以下の記事に記載があります。
https://ccvanishing.hateblo.jp/entry/2017/09/14/150435
https://teppeis.hatenablog.com/entry/2017/08/thank-you-stars

個人でいくつかのツールを開発しているのですが、スターを一つもらえるだけで、少なくとも僕はもんのすごいモチベーションになります。そもそも細かなライブラリなどは使用してもらえているという事実だけでやる気が出るものです。

issueやPRを出すと言う貢献の方法は敷居が高いところですが、スターを渡すと言うのもすごく身近でありながらモチベーション寄与という意味で大きな貢献になると思います。

使い方

インストールはgo getgo installなどで行うことができます

Go version < 1.16

GO111MODULE=on go get github.com/sanposhiho/thank-you-stars

Go version 1.16+

go install github.com/sanposhiho/thank-you-stars@latest

あとはGitHub Auth Tokenが必要になります。

以下のページからtokenを生成してください。必要になるのはpublic_repoのスコープのみです。

https://github.com/settings/tokens

あとは環境変数にセットして実行するだけ!です!

$ export GITHUB_AUTH_TOKEN=your_github_auth_token
$ thank-you-stars
2021/04/17 15:09:49 Starred! github.com/go-gorp/gorp/v3 
2021/04/17 15:09:50 Starred! github.com/go-sql-driver/mysql 
2021/04/17 15:09:50 Starred! github.com/golang/mock 
2021/04/17 15:09:50 Starred! github.com/golang/protobuf 
2021/04/17 15:09:51 Starred! github.com/google/go-cmp 
2021/04/17 15:09:51 Starred! github.com/google/uuid 
2021/04/17 15:09:51 Starred! github.com/gorilla/websocket 
2021/04/17 15:09:52 Starred! github.com/labstack/echo/v4 
2021/04/17 15:09:52 Starred! github.com/labstack/gommon 
2021/04/17 15:09:52 Starred! github.com/patrickmn/go-cache 
2021/04/17 15:09:52 Starred! github.com/zmb3/spotify 

ちょっとだけ技術的な話

このリポジトリ自体は特に技術的に面白いことはしているわけではないですが、modfileパッケージを使用してgo.modをパースするというのは初体験でした。

https://pkg.go.dev/golang.org/x/mod/modfile

GitHubへのリクエストはお馴染みのgo-githubを使用しています。

https://github.com/google/go-github

終わりに

あとは使用した各thank-you-starsへのスターをポチッと押してくださいね(お

https://github.com/sanposhiho/thank-you-stars
https://github.com/y-taka-23/thank-you-stars
https://github.com/teppeis/thank-you-stars

Discussion