body method

  1. @override
String body(
  1. String path,
  2. String baseName,
  3. String className
)
override

Defines the actual body code. path is passed relative to lib, baseName is the filename, and className is the filename converted to Pascal case.

実際の本体コードを定義します。pathlibからの相対パス、baseNameにファイル名が渡され、classNameにファイル名をパスカルケースに変換した値が渡されます。

Implementation

@override
String body(String path, String baseName, String className) {
  return r"""
# Code review of Flutter and TypeScript files.
#
# FlutterおよびTypeScriptのファイルのコードレビューをします。
name: CodeReview

permissions:
contents: read
pull-requests: write

on:
pull_request:
  types: [opened, reopened, synchronize]
  paths:
    - "**.dart"
    - "**.ts"

jobs:
gpt_review:
  runs-on: ubuntu-latest
  steps:
    - uses: anc95/ChatGPT-CodeReview@main
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        LANGUAGE: Japanese
        OPENAI_API_ENDPOINT: https://api.openai.com/v1
        MODEL: gpt-4o
        PROMPT: |
          あなたはベテランエンジニアです。回答は日本語でお願いします。
          渡されたコードについて改善点を見つけ、変更する理由を説明した上で、変更後のコード例を示してください。
          改善点がない場合には絶対にコメントをしないでください。
          対象とするファイルは `**.dart` と `**.ts` ファイルです。
          ただし`**.g.dart`、`**.freezed.dart`、`**.m.dart`、`**.page.dart`、`**.localize.dart`、`**.theme.dart`は自動生成されたコードなため対象外です。絶対にコメントしないでください。
          それ以外のファイルにも絶対にコメントしないでください。

          特に以下の点を指摘してください:
            - 誤解を招いたり、実態を正確に表していない命名があるか
            - 適度に変数を定義し自己ドキュメントされているか
            - 冗長な書き方のコードがないか
            - N+1問題(N+1 query problem)を引き起こす箇所
            - 読んで理解が難しい箇所にコメントが適切にされているか
            - コメントの内容は日本語として読んでわかりやすく、簡潔に説明できているか
            - 理解の難しい複雑な条件式が作られていないか
            - テスト内の説明文は、テストの内容をわかりやすく適切に表しているか
            - 明らかなセキュリティの問題があるか

          誰にとっても読みやすいコードになるよう、改善点を見つけたら積極的にレビューしてください。
          あなたに渡されるコードは一部分であるため、未定義のメソッドやクラスなどの指摘については消極的にしてください。
        top_p: 1
        temperature: 1
        max_tokens: 4096
        MAX_PATCH_LENGTH: 4096
""";
}