Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add env value merging feature #4

Merged
merged 7 commits into from
Apr 3, 2024
Merged

Add env value merging feature #4

merged 7 commits into from
Apr 3, 2024

Conversation

idubnori
Copy link
Owner

@idubnori idubnori commented Apr 3, 2024

Type

enhancement, documentation


Description

  • GitHub Actionsの設定に、テストコードの変更または追加の必要性について考え、提案するためのpr_code_suggestions.extra_instructions環境変数を追加しました。
  • READMEに、extra_instructionsの設定と管理を容易にする新機能についての説明を追加しました。
  • action.ymlに、環境変数から追加の指示を連結し、common_instructionsとマージするconcat_env_value関数を実装しました。

Changes walkthrough

Relevant files
Enhancement
pr-agent.yml
GitHub Actions設定にテストコード提案の指示を追加                                                   

.github/workflows/pr-agent.yml

  • pr_code_suggestions.extra_instructions
    環境変数にテストコードの変更または追加の必要性について考え、提案するための指示を追加。
  • +2/-0     
    action.yml
    環境変数からの指示をマージする機能の追加                                                                         

    action.yml

  • 環境変数から追加の指示を連結するconcat_env_value関数を追加。
  • common_instructionsに加えて、環境変数で指定された追加の指示をextra_instructionsにマージする機能を実装。

  • +6/-5     
    Documentation
    README.md
    READMEにテストコード提案機能の説明を追加                                                                   

    README.md

  • extra_instructionsの設定と管理を容易にする機能を提供する説明を追加。
  • common_instructionsと環境変数extra_instructionsをWiki設定値とマージするプロセスの説明を更新。
  • +4/-1     

    PR-Agent usage:
    Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    @idubnori idubnori marked this pull request as ready for review April 3, 2024 14:45
    @github-actions github-actions bot added documentation Improvements or additions to documentation enhancement New feature or request labels Apr 3, 2024
    Copy link

    github-actions bot commented Apr 3, 2024

    PR Description updated to latest commit (cf76df0)

    Copy link

    github-actions bot commented Apr 3, 2024

    PR Review

    ⏱️ Estimated effort to review [1-5]

    2, このPRは主に設定ファイルとドキュメントの更新に関連しており、コードの変更は少ないため、レビューにかかる時間と労力は比較的少ないと考えられます。

    🧪 Relevant tests

    No

    🔍 Possible issues

    環境変数の連結: concat_env_value関数で、additional_instructionscommon_instructionsを連結する際、両方の変数が空の場合でも改行が追加されます。これにより、意図しない改行が挿入される可能性があります。

    🔒 Security concerns

    No

    Code feedback:
    relevant fileaction.yml
    suggestion      

    concat_env_value関数内で、additional_instructionscommon_instructionsを連結する前に、両方が空でないかをチェックし、不要な改行を避けることを検討してください。これにより、結果の文字列が意図した形式であることを保証できます。 [important]

    relevant lineadditional_instructions = os.getenv(f"{key}.{ei_key}", '').strip() + '\n' + common_instructions


    ✨ Review tool usage guide:

    Overview:
    The review tool scans the PR code changes, and generates a PR review which includes several types of feedbacks, such as possible PR issues, security threats and relevant test in the PR. More feedbacks can be added by configuring the tool.

    The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.

    • When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:
    /review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...
    
    [pr_reviewer]
    some_config1=...
    some_config2=...
    

    See the review usage page for a comprehensive guide on using this tool.

    Copy link

    github-actions bot commented Apr 3, 2024

    PR Code Suggestions

    CategorySuggestions                                                                                                                                                       
    Bug
    concat_env_value関数にei_keyを引数として渡す必要があります。


    concat_env_value関数内で、ei_keyが未定義です。この変数は、環境変数のキー名を構築する際に使用されていますが、この関数内で定義または引数として渡されていません。適切な値を引数としてconcat_env_value関数に渡すか、関数内で定義する必要があります。

    action.yml [60-70]

    -def concat_env_value(parsed_toml):
    +def concat_env_value(parsed_toml, ei_key):
         common_instructions = os.getenv('common_instructions')
         for key in ei_sections:
             additional_instructions = os.getenv(f"{key}.{ei_key}", '').strip() + '\n' + common_instructions
             if key in parsed_toml:
                 if ei_key in parsed_toml[key]:
                     parsed_toml[key][ei_key] = (parsed_toml[key][ei_key]).strip() + '\n' + additional_instructions
                 else:
                     parsed_toml[key][ei_key] = additional_instructions
             else:
                 parsed_toml[key] = {ei_key: additional_instructions}
         
         return parsed_toml
     
    concat_env_value関数にei_sectionsを引数として渡す必要があります。


    concat_env_value関数内でei_sectionsが未定義です。この変数は、環境変数のセクション名を列挙するために使用されていますが、この関数内で定義または引数として渡されていません。適切な値を引数としてconcat_env_value関数に渡すか、関数内で定義する必要があります。

    action.yml [60-70]

    -def concat_env_value(parsed_toml):
    +def concat_env_value(parsed_toml, ei_sections, ei_key):
         common_instructions = os.getenv('common_instructions')
         for key in ei_sections:
             additional_instructions = os.getenv(f"{key}.{ei_key}", '').strip() + '\n' + common_instructions
             if key in parsed_toml:
                 if ei_key in parsed_toml[key]:
                     parsed_toml[key][ei_key] = (parsed_toml[key][ei_key]).strip() + '\n' + additional_instructions
                 else:
                     parsed_toml[key][ei_key] = additional_instructions
             else:
                 parsed_toml[key] = {ei_key: additional_instructions}
         
         return parsed_toml
     
    Enhancement
    ドキュメントのステップ番号を修正します。


    ドキュメントの番号付けが間違っています。Markdownでは、リストアイテムの番号付けにおいて、すべてのアイテムを1.として記述することで自動的に正しい番号が割り当てられます。しかし、手動で番号を割り当てる場合は、正しい順序を保つ必要があります。現在、2つのステップが1.と番号付けされていますが、これを修正することをお勧めします。

    README.md [12-14]

     1. Load `.pr_agent.toml` configuration from Wiki page
    -1. Merge `common_instructions` and the env `extra_instructions` with the Wiki config value
    -1. Set each extra_instructions to environment variables
    +2. Merge `common_instructions` and the env `extra_instructions` with the Wiki config value
    +3. Set each extra_instructions to environment variables
     
    環境変数の値の可読性を向上させます。


    環境変数pr_code_suggestions.extra_instructionsの値を改行文字で区切ることで、より読みやすくすることを提案します。YAMLでは、複数行の文字列を>-で始めることで、改行をスペースに変換せずに保持することができますが、リストアイテム間の区切りとして改行を使用することで、可読性が向上します。

    .github/workflows/pr-agent.yml [20-21]

    Best practice
    環境変数が未設定の場合のデフォルト値を設定します。


    concat_env_value関数内でos.getenvを使用して環境変数を取得していますが、環境変数が設定されていない場合のデフォルト値を明示的に設定することをお勧めします。これにより、環境変数が未設定の場合に関数が予期せず失敗することを防ぐことができます。

    action.yml [61-63]

    -common_instructions = os.getenv('common_instructions')
    +common_instructions = os.getenv('common_instructions', '')
     additional_instructions = os.getenv(f"{key}.{ei_key}", '').strip() + '\n' + common_instructions
     

    ✨ Improve tool usage guide:

    Overview:
    The improve tool scans the PR code changes, and automatically generates suggestions for improving the PR code. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.

    • When commenting, to edit configurations related to the improve tool (pr_code_suggestions section), use the following template:
    /improve --pr_code_suggestions.some_config1=... --pr_code_suggestions.some_config2=...
    
    [pr_code_suggestions]
    some_config1=...
    some_config2=...
    

    See the improve usage page for a comprehensive guide on using this tool.

    @idubnori
    Copy link
    Owner Author

    idubnori commented Apr 3, 2024

    @idubnori idubnori merged commit 27748a8 into main Apr 3, 2024
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    documentation Improvements or additions to documentation enhancement New feature or request Review effort [1-5]: 2
    Projects
    None yet
    Development

    Successfully merging this pull request may close these issues.

    1 participant