7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

githubに自動で草を生やそう

Last updated at Posted at 2019-09-07

注意! なぜか私の環境では、この記事の方法では草を生やせなくなりました。それでも良いなら読み進めていただければ幸いです。

みなさんgituhubに「草」と呼ばれるものがあるのをご存知ですか?

そう、git commitや、git pushの数を視覚的に表してくれるものですね。
我らがmatzのように、コミット履歴が緑で埋まっているとかっこ良いですー
スクリーンショット 2019-09-07 19.42.38.png
しかし、普段bitbucketや、gitlabを使っている人はgithubで草がスカスカになってしまいます。
これはかっこ悪い...
しかし、草を生やすためにgithubに乗り換えるのも面倒です。
そこで、プログラミングで草を自動的に生やしましょう。

草を生やすには

まず、awsや、gcpを使って、サーバーから適当なリポジトリにコミットしようとした貴方。このやり方ではgithubには草を生やすことは出来ません。bot行為として、githubはこれらのコミットを無視します。

そのため草を生やすには、ローカルマシンからコミットする必要があります。

毎日、自分のPCでbashスクリプト(git push)を定期実行出来れば、草を生やすことができます。

これに適した技術は....

crontabです。

crontabとは、

crontabコマンドはUnix系オペレーティングシステム において、コマンドの定時実行のスケジュール管理を行うために用いられるコマンドである。標準入力からコマンド列を読み取り、crontabと呼ばれるファイルにそれを記録する。この記録を元に定時になると、その命令内容を読み取り、実行が行われる。
wikipedia参照

便利なコマンドですねw

実装

1. 自分のアカウントで適当な名前のリポジトリ(wwwなど)を作成します。
2. .glassMakerというフォルダをルートフォルダに作成し、README.mdを作成します。

mkdir .glassMaker
cd .glassMaker
touch README.md
git init
git add .
git commit -m 'init'
git remote add origin 先ほど作成したリポジトリ
  1. ターミナルで
    crontab -e
    を実行すると、Vimでcrontabファイルが開かれるので、a と打ち込んで、インサートモードに入ってから、以下をペーストし、:wqと打って保存しましょう。
1 0 12 * * * cd $HOME/.glassMaker; echo "草ァ" >> README.md; git add .; git commit -m "www"; git push origin HEAD

左の*はcron記法というものです。左の*から順番に、分、時、日、月、年を表します。
この例だと、毎日昼の12時になるとgithubにプッシュが送られます。

完成!

これで、githubに大草原を作れました。
あとは、コミットメッセージを"Manage redbox updates by comparing exception IDs"のように、さも重要なコミットとして偽装したり、水曜日だけ3コミットするなどノイズを入れれば完璧です。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?