GitHubに限ったことではないのですが、最近はセキュリティを高めるために二段階認証にしているWebサービスが増えています。そのように移り変わる中で、これまで使えていたソフトウェアが使えなくなるケースが多々あります。 GitHubについても同様で、元々のBasic認証で動いていたものが使えなくなっているケースは多々あります。そんな中だからこそ使いたいソフトウェアがghauthです。

インストールは簡単で、npmでできます。

$ npm install ghauth

例えばテストコードは次のようになります。

const ghauth = require('ghauth')
    , authOptions = {
           // ~/.config/awesome.json will store the token
          configName : 'awesome'

          // (optional) whatever GitHub auth scopes you require
        , scopes     : [ 'user' ]

          // (optional) saved with the token on GitHub
        , note       : 'This token is for my awesome app'

          // (optional)
        , userAgent  : 'My Awesome App'
      }

ghauth(authOptions, function (err, authData) {
  console.log(authData)
})

使い方としてはスコープを指定して、ghauthを実行するだけです。これをnodeで実行すると次のようになります。

実行例。二段階認証に対応しています!

ID、パスワードを入力してオプションとしての二段階認証のコードを入力して実行しています。その結果として、トークンが取得できています。これで従来のコマンドラインでGitHubを使っていたライブラリが使えるようになりそうです。なお一度取得した認証トークンはローカルに保存されますので次回はパスワード入力なしで使えます。

WebサービスであればOAuthを使えば良いでしょうが、コマンドライン系のソフトウェアはそうもいきません。ghauthを使えばこれまでのソフトウェアが最新技術に対応するのもさほど難しくなさそうです。

ghauthはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。

rvagg/ghauth