LoginSignup
4
4

More than 5 years have passed since last update.

初めてのpull request

Last updated at Posted at 2013-09-15

バグの発見

rubyでGoogle Maps APIを簡単に扱えるgemがあります。

これがmacでは動くけど、windowsだとエラーが出て動きません。
原因はログファイルの出力で/dev/nullを使ってるから。

これをwindowsではnulを使うように修正すればmacでもwindowsでも使えるようになります。

というわけで修正したものをgithubにアップして、本家の作者に取り込んでもらえるようにpull requestを送るまでの流れをまとめました。

GithubにSSHキーの登録

主に以下の記事通りに進めます。
キーの登録が既に済んでる人はこの作業をやる必要はありません。

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa): ↓(エンターキーの入力)
Created directory '/Users/username/.ssh'.
Enter passphrase (empty for no passphrase): 設定したいパスワードを入力↓
Enter same passphrase again: 上で入力したのと同じパスワードを入力↓
Your identification has been saved in /Users/username/.ssh/id_rsa.
Your public key has been saved in /Users/username/.ssh/id_rsa.pub.
The key fingerprint is:
:
:
:
$ cat ~/.ssh/id_rsa.pub | pbcopy

以上の操作でクリップボードに公開鍵がクリップボードにコピーされるので、下記ページから登録します。

登録が済んだら、接続できるかテストしてみます。

$ ssh -T git@github.com
(パスワード入力画面が出るので、先ほど設定したパスワードを入力)
Identity added: /Users/username/.ssh/id_rsa (/Users/username/.ssh/id_rsa)
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

以上のようにsuccessfullyと出れば、SSHの設定はうまくいっています。

修正してpull request

ここからが本番です。
主に下記の記事の通りに進めます。

forkしてリポジトリをコピーしてきたら作業に移ります。

$ git clone git@github.com:inarin/google-maps.git
$ cd google-maps
$ ls
Gemfile         Rakefile        spec
LICENSE.mkd     google-maps.gemspec
README.mkd      lib
$ git checkout -b external

これでexternalブランチに移ったので、ファイルを修正します。

lib/google-maps/logger.rb
require 'logger'

module Google
  module Maps
    module Logger

      attr_accessor :logger

      def log_file=(file)
        self.logger = ::Logger.new(file)
      end

      def self.extended(base)
        # base.log_file = "/dev/null"
        base.log_file = RUBY_PLATFORM.index(/mswin(?!ce)|mingw|cygwin|bccwin/) ? "nul" : "/dev/null"
      end
    end
  end
end

変更をcommitしてリモートへpushします。

$ git commit -am "windows bug fix"
$ git push origin external

これでGitHubのレポジトリにexternalブランチができます。

あとは記事の通りに…。

追記

pull requestを無事に送れたので参考までにリンクを貼っておきます。

4
4
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
4
4