詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Fork me on GitHub

GitHub のリポジトリの description/website をワークスペースから更新する

f:id:motemen:20140603191822p:plain

☝ この部分です。新しいリポジトリを作ったとき、ここの空欄が主張してきてちょっと気になりますよね。かといってブラウザでいちいち入力するのもだるい。エディタで書きたい。

ところで .git/description ってファイルを見たことありますか? ものの本には

the description file is only used by the GitWeb program, so don’t worry about those. Git - Plumbing and Porcelain

とあります。中身はこんなの。

% cat .git/description 
Unnamed repository; edit this file 'description' to name the repository.

ずっとこの内容のまま更新されることもないだろうファイルです。なのでこいつを GitHubリポジトリ情報のためのファイルとして使ってやろうって話です。

motemen/git-hub-sync-repo-info · GitHub

この簡単なスクリプトで、GitHubリポジトリ情報(description および website)とローカルのファイル(.git/description および .git/homepage)とを同期させることができます。API では homepage というキーになってるので URL が格納されるのは .git/homepage です。これらのファイルはもちろんバージョン管理されないファイルです。ファイルの内容が空かデフォルトのままの場合はリモートの情報がファイルに格納され、それ以外の場合はファイルの内容が GitHub の側に反映されます。

% echo "Synchronize .git/description and .git/homepage files with GitHub repository's info" > .git/description 
% git hub-sync-repo-info
# description:
#   local  = Synchronize .git/description and .git/homepage files with GitHub repository's info
#   remote = 
# homepage:
#   local  = 
#   remote = http://www.example.com/
Updated .git/homepage: [http://www.example.com/]
Updated remote description: [Synchronize .git/description and .git/homepage files with GitHub repository's info]

GitHubAPI トークンを設定しない場合は GitHub の更新ができません。個人用のトークンを作成してgit config --global hub-sync-repo-info.token TOKEN で設定してください。

簡単ですね。どうぞご利用ください。

はてなで一緒に働きませんか?