LoginSignup
0
0

More than 3 years have passed since last update.

GitHubでPRのDCOチェックがいつまでも通らなかった時の対応ログ

Posted at

はじめに

Github上でこれまでちゃんとしたPR(Pull Request)したことなかったので、DCO(Developer Certificate of Origin)チェックで全てのログにSigned-off-byが必要という点を理解していなくて、困った時のログです。

--amend --signoff すればいいんだと思ったものの

プロジェクトのコミッターから、「レビューする前にSigned-off-byを加えて欲しいな。まぁsquashしてもいいかも。」というメッセージが届いたので、PR画面を開いたところ、DCOチェックに失敗していて、その詳細説明には次の手順が書かれていました。

## 最初に読めとあったリンク先に、gh prしなさいとあったのでこれを実行
$ gh pr checkout 2084

## DCOのエラー画面には次のコマンドが表示されていた
$ git commit --amend --no-edit --signoff
$ git push --force-with-lease origin 20210413_anonymous_bind

## 20210413_anonymous_bind は自分で作成したbranchの名前

直前の変更を取り消してSigned-off-byを加えるのかぁ、と思ってそのまま実行したものの、これを実行してもうまくいかず、気がつけばこんな感じのコミットログになっていました。

PRしたブランチのログ
commit 703c1556176fdf89bf819dd6a0118aabe291caad (HEAD -> 20210413_anonymous_bind, origin/20210413_anonymous_bind)
Merge: 66779fff b79308e9
Author: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>
Date:   Wed Apr 14 00:15:06 2021 +0900

    Merge branch '20210413_anonymous_bind' of github.com:YasuhiroABE/dex into 20210413_anonymous_bind

    Signed-off-by: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>

commit 66779fffcab1f3663fa57e3bab9d23e01c1f1c30
Author: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>
Date:   Wed Apr 14 00:02:27 2021 +0900

    add the anonymousBind configuration parameter and to use the UnauthenticatedBind function.

    Signed-off-by: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>

commit b79308e9feda775f8b5e3469894e03a9d2ca704e
Author: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>
Date:   Wed Apr 14 00:02:27 2021 +0900

    add the anonymousBind configuration parameter and to use the UnauthenticatedBind function.

commit b79d9a84bc0c35e13a9d5141e95b641af0f81c8f (origin/master, origin/HEAD, master)
Merge: c7549cce 03db3093
Author: Márk Sági-Kazár <sagikazarmark@users.noreply.github.com>
Date:   Thu Apr 8 17:50:52 2021 +0200

いろいろドキュメントを調べて、この時点で全てのログにsigned-off-byがないといけないのだと知りました。
確かに最初のコミットログ SHA1:b79308e9 にはsigned-off-byがありません。

調べてみると、いくらか不要なコミットを取り消しつつ、signoffするにはいくつか方法があるものの、今回はrebaseがシンプルに思えたので、次の方法を採用しました。

$ mkdir dex.signoff
$ rsync -av dex dex.signoff/
$ cd dex.signoff/dex
$ git rebase --signoff HEAD^^

実際にはrsyncで作業用ディレクトリ全体のコピーを作成して、問題ないことを確認してからpushしています。

これで SHA1:b79308e9 自体がなくなって、ハッシュ値は新しくなっていますが、冗長なログは消えて、最初のメッセージにSigned-off-byが付いたログになりました。

rebase実行後のログ
commit 6e845f2c90c0b1d200e1e016014970e9cf037c15 (HEAD -> 20210413_anonymous_bind, origin/20210413_anonymous_bind)
Author: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>
Date:   Wed Apr 14 00:02:27 2021 +0900

    add the anonymousBind configuration parameter and to use the UnauthenticatedBind function.

    Signed-off-by: Yasuhiro ABE <yasu-abe@u-aizu.ac.jp>

commit b79d9a84bc0c35e13a9d5141e95b641af0f81c8f (origin/master, origin/HEAD, master)
Merge: c7549cce 03db3093
Author: Márk Sági-Kazár <sagikazarmark@users.noreply.github.com>
Date:   Thu Apr 8 17:50:52 2021 +0200

    Merge pull request #2072 from dexidp/dependency-updates

ここから $ git commit --force-with-lease ... を実行して無事にDCOのエラーはなくなりました。

以上

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