0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

reviewDogをいじってみた

Posted at

はじめに

reviewDogをいじる機会があり、理解を深めようと個人的にいじってみました。

こちらの記事がすごく分かりやすかったので、真似てやってみました。

前提

砂遊びリポジトリがあるので、こちらで色々お試し。

ちょっとハマったこと

GitHubActions初心者過ぎて、ちょっとハマったので残します。

トークンってどうするんだろう。

トークン発行の手順をGeminiに聞いたところ「secrets.GITHUB_TOKEN」を使うと、何もせずとも利用できるよ!ってことを教えて貰い変更。

REVIEWDOG_GITHUB_API_TOKEN : ${{ secrets.GITHUB_TOKEN }}

改めて公式を調べてみたら、ふむふむ。って感じ。

カレントディレクトリって、どこだろう・?

kotlinc -script ./reviewdog/Main.kts

自分の脳内では、「reviewdog.yml が置いてあるフォルダがカレントディレクトリになる?」と迷ったので、Geminiに相談したところ、「リポジトリ直下」だよ。というアドバイスを貰い、無事に保存。

reviewdog.ymlってどこのブランチのが利用される?

feature/test1(マージ元) からdevelop(マージ先)へのPR だったら、「develop」と「feature/test1」のどっちのreviewdog.ymlが利用されるか?
(今、冷静に考えると答えは明らかなんですが。)

「feature/test1」(マージ元)でした。
当時は色々いじっていて、反映されない?とかありテンパっていました。

キーワードで検出してもコメントがPRに出力されない。

1個目の原因

PR内の変更点に対象キーワードが無いとPRにコメントされない。

Gemini曰く、reviewDogは以下のようにPR上に修正箇所を引用してコメントするので、PR上に修正箇所が無いとコメントがされないとのこと。(まあ、言われてみると確かに。)

image.png

2個目の原因

pull-requests: write

の権限が無くて書き込めなかったらしく、以下のように追記。

permissions:
  contents: read
  pull-requests: write

on:

深堀の疑問

コメントを警告とかエラーとか分かりやすくできないかな?

パターン1

reviewdogのパラメータに「-efm="%f:%l:%c:%m"」があったので、深堀。

image.png

「%t」があり、「e - error message」と「w - warning message」を知る。

結果はこんな感じ。

cat ./result.txt | reviewdog -name="test" -efm="%f:%l:%c:%t:%m" -reporter=github-pr-review

「e - error message」は、以下の赤枠で囲ったアイコンが出てきた。

image.png

「w - warning message」は、こんな感じ。(コメントに記載した「:warning:」と同じアイコンだ!と気づきました。)

image.png

パターン2

本文にアイコンを書けるだろうか?
ということころで、試したのが、
:warning: :x: :information_source:

:warning: :x: :information_source:

で、試した結果は以下の通り。

image.png

パターン3(ダメでした。)

具体的にはこの書き方ができないか?

image.png

を試したところ

その1 「\n」で改行してみる。

report.appendText("${file.path}:${index + 1}:1:w: > [!CAUTION] \n > test.\n")

image.png

ダメだった、2行目が削られるし、「> [!CAUTION]」を認識していない。

そもそも、どういう風にコメントされているのか?を分析するため、コメントを「EDIT」で見てみるとこんな感じ。

⚠️ **[test]** <sub>reported by [reviewdog](https://github.com/reviewdog/reviewdog) :dog:</sub><br> > [!CAUTION] 
<!-- __reviewdog__:ChAxYjBhZjliOTRjNWFjMTY0EgR0ZXN0 -->

試しに、手動で以下のように「Edit」すると、出てくる。

⚠️ **[test]** <sub>reported by [reviewdog](https://github.com/reviewdog/reviewdog) :dog:</sub><br> > [!CAUTION] 
> [!CAUTION] 
> test
<!-- __reviewdog__:ChAxYjBhZjliOTRjNWFjMTY0EgR0ZXN0 -->

※ 手動で編集して表示しています。(reviewDogの自動ではありません)
image.png

つまり、改行して入力してあげれば良いのだが、これが難しい。

その2 HTMLのbrタグで改行してみる。(今考えるとあまり意味が無かった)

report.appendText("${file.path}:${index + 1}:1:w: > [!CAUTION] <br> > test.\n")

image.png

副産物として複数行を表現したい場合は、HTMLのBRタグで表現すれば良さそう。

その3 半角スペースを2つ 入れてみる。

report.appendText("${file.path}:${index + 1}:1:w:   > [!CAUTION]    > test.\n")

image.png

で、諦める。

番外編

reviewDogじゃなくて、GitHubActionsから直接PRにコメントできない?
って思い、Geminiに相談したら以下で送れることを教えて貰いました。

これはこれで便利。

      - name: Add a custom comment using GitHub CLI
        if: ${{ github.event_name == 'pull_request' }}
        env:
          # GitHub CLI を認証するためにトークンを環境変数にセット
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          # 複数行のメッセージを変数に格納
          MESSAGE="## :memo: 最終チェックリスト
          
          - [ ] 命名規則は守られています
          - [ ] テストが追加されています

          > [!CAUTION]
          > この処理は危険です。
          
          上記を確認後、マージを許可します。"

          # gh pr comment コマンドでPRにコメントを投稿
          # -b: body (メッセージ内容)
          # $PR_NUMBER は PRの番号
          PR_NUMBER=${{ github.event.pull_request.number }}
          gh pr comment $PR_NUMBER -b "$MESSAGE"

image.png

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?