{"id":17350602,"url":"https://github.com/lupyuen/nuttx-pr-bot","last_synced_at":"2026-01-28T07:31:49.443Z","repository":{"id":257702578,"uuid":"859071226","full_name":"lupyuen/nuttx-pr-bot","owner":"lupyuen","description":"LLM Bot that does PR Review for Apache NuttX RTOS","archived":false,"fork":false,"pushed_at":"2024-11-01T09:25:51.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-11T01:15:36.222Z","etag":null,"topics":["gemini-ai","github","nuttx","rust"],"latest_commit_sha":null,"homepage":"https://lupyuen.codeberg.page/articles/llm.html","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lupyuen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-18T03:10:13.000Z","updated_at":"2024-11-01T09:25:54.000Z","dependencies_parsed_at":"2024-09-18T07:01:12.144Z","dependency_job_id":null,"html_url":"https://github.com/lupyuen/nuttx-pr-bot","commit_stats":null,"previous_names":["lupyuen/nuttx-pr-bot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-pr-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-pr-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-pr-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lupyuen%2Fnuttx-pr-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lupyuen","download_url":"https://codeload.github.com/lupyuen/nuttx-pr-bot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248792043,"owners_count":21162306,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gemini-ai","github","nuttx","rust"],"created_at":"2024-10-15T17:07:33.369Z","updated_at":"2026-01-28T07:31:44.423Z","avatar_url":"https://github.com/lupyuen.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"![LLM Bot that does PR Review for Apache NuttX RTOS](https://lupyuen.github.io/images/llm-flow.jpg)\n\n# LLM Bot that does PR Review for Apache NuttX RTOS\n\nRead the article...\n\n- [\"LLM Bot that reviews Pull Requests for Apache NuttX RTOS\"](https://lupyuen.codeberg.page/articles/llm.html)\n\n# How To Run\n\n```bash\n## See `run.sh` for the Complete Script\n\n## Browse to Google AI Studio \u003e Get API Key \u003e Create API Key \u003e Create API Key In New Project\n## https://aistudio.google.com/app/apikey\nexport GEMINI_API_KEY=...\n\n## GitHub Settings \u003e Developer Settings \u003e Tokens (Classic) \u003e Generate New Token (Classic)\n## Check the following:\n## repo (Full control of private repositories)\n## repo:status (Access commit status)\n## repo_deployment (Access deployment status)\n## public_repo (Access public repositories)\n## repo:invite (Access repository invitations)\n## security_events (Read and write security events)\nexport GITHUB_TOKEN=...\n\n## Enable Rust Logging\nexport RUST_LOG=info \nexport RUST_BACKTRACE=1\n\n## Run the NuttX PR Bot once on NuttX Repo\ncargo run -- --owner apache --repo nuttx\n\n## Which will: Fetch the Latest 20 PRs\n##   If PR Status = Open\n##   And PR Comments don't exist\n##     Then Call Gemini API to Validate the PR\n##     And Post Gemini Response as PR Comment\n\n## For NuttX Apps Repo\ncargo run -- --owner apache --repo nuttx-apps\n```\n\n# Run Log\n\n```text\n+ cargo run --owner apache --repo nuttx\nwarning: use of deprecated method `octocrab::pulls::PullRequestHandler::\u003c'octo\u003e::pull_number`: specific PR builder transitioned to pr_review_actions, reply_to_comment, reply_to_comment\n   --\u003e src/main.rs:141:10\n    |\n141 |         .pull_number(pr_id)\n    |          ^^^^^^^^^^^\n    |\n    = note: `#[warn(deprecated)]` on by default\n\nwarning: `nuttx-pr-bot` (bin \"nuttx-pr-bot\") generated 1 warning\n    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.18s\n     Running `target/debug/nuttx-pr-bot`\n[2024-09-20T07:47:40Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13554\"\n[2024-09-20T07:47:40Z INFO  nuttx_pr_bot] PR Body: \"## Summary\\r\\ni2c: Optimize access to private data\\r\\n## Impact\\r\\ni2c_driver\\r\\n## Testing\\r\\nLocal iic testing\\r\\n\"\n[2024-09-20T07:47:47Z INFO  nuttx_pr_bot] Gemini Response: Rest(\n        GeminiResponse {\n            candidates: [\n                Candidate {\n                    content: Content {\n                        role: Model,\n                        parts: [\n                            Part {\n                                text: Some(\n                                    \"**No, this PR does not meet the NuttX requirements.**\\n\\n**Missing Information:**\\n\\n* **Summary:** \\n    * Lacks a clear explanation of why the change is necessary. Is it a bug fix, performance improvement, or code cleanup?\\n    * Doesn't describe the functional part of the code being changed within the i2c driver. \\n    *  Missing details on how the optimization works. \\n    *  No mention of related issues.\\n* **Impact:**\\n    * All impact sections are marked as \\\"i2c_driver,\\\" which is too vague.\\n    *  The description should clearly state whether the impact is \\\"NO\\\" or \\\"YES\\\" and provide specific details if applicable. For example, does the change affect any specific architectures, boards, or drivers?\\n* **Testing:**\\n    * Lacks details about the local setup (host OS, target architecture, board configuration).\\n    *  \\\"Local iic testing\\\" is insufficient. Provide specific test cases and commands used.\\n    *  No testing logs provided. \\n\\n**To meet the NuttX requirements, the PR needs to provide comprehensive information in each section. ** \\n\",\n                                ),\n                                inline_data: None,\n                                file_data: None,\n                                video_metadata: None,\n                            },\n                        ],\n                    },\n                    finish_reason: Some(\n                        \"STOP\",\n                    ),\n                    index: Some(\n                        0,\n                    ),\n                    safety_ratings: [\n                        SafetyRating {\n                            category: HarmCategorySexuallyExplicit,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                        SafetyRating {\n                            category: HarmCategoryHateSpeech,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                        SafetyRating {\n                            category: HarmCategoryHarassment,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                        SafetyRating {\n                            category: HarmCategoryDangerousContent,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                    ],\n                },\n            ],\n            prompt_feedback: None,\n            usage_metadata: Some(\n                UsageMetadata {\n                    prompt_token_count: 453,\n                    candidates_token_count: 244,\n                },\n            ),\n        },\n    )\n[2024-09-20T07:47:47Z INFO  nuttx_pr_bot] Response Text: \"**No, this PR does not meet the NuttX requirements.**\\n\\n**Missing Information:**\\n\\n* **Summary:** \\n    * Lacks a clear explanation of why the change is necessary. Is it a bug fix, performance improvement, or code cleanup?\\n    * Doesn't describe the functional part of the code being changed within the i2c driver. \\n    *  Missing details on how the optimization works. \\n    *  No mention of related issues.\\n* **Impact:**\\n    * All impact sections are marked as \\\"i2c_driver,\\\" which is too vague.\\n    *  The description should clearly state whether the impact is \\\"NO\\\" or \\\"YES\\\" and provide specific details if applicable. For example, does the change affect any specific architectures, boards, or drivers?\\n* **Testing:**\\n    * Lacks details about the local setup (host OS, target architecture, board configuration).\\n    *  \\\"Local iic testing\\\" is insufficient. Provide specific test cases and commands used.\\n    *  No testing logs provided. \\n\\n**To meet the NuttX requirements, the PR needs to provide comprehensive information in each section. ** \\n\"\n[2024-09-20T07:47:48Z INFO  nuttx_pr_bot] PR Comment: Comment {\n        id: CommentId(\n            2363049923,\n        ),\n        node_id: \"IC_kwDODZiUac6M2UfD\",\n        url: Url {\n            scheme: \"https\",\n            cannot_be_a_base: false,\n            username: \"\",\n            password: None,\n            host: Some(\n                Domain(\n                    \"api.github.com\",\n                ),\n            ),\n            port: None,\n            path: \"/repos/apache/nuttx/issues/comments/2363049923\",\n            query: None,\n            fragment: None,\n        },\n        html_url: Url {\n            scheme: \"https\",\n            cannot_be_a_base: false,\n            username: \"\",\n            password: None,\n            host: Some(\n                Domain(\n                    \"github.com\",\n                ),\n            ),\n            port: None,\n            path: \"/apache/nuttx/pull/13554\",\n            query: None,\n            fragment: Some(\n                \"issuecomment-2363049923\",\n            ),\n        },\n        issue_url: Some(\n            Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/repos/apache/nuttx/issues/13554\",\n                query: None,\n                fragment: None,\n            },\n        ),\n        body: Some(\n            \"[**\\\\[Experimental Bot, please feedback here\\\\]**](https://github.com/search?q=repo%3Aapache%2Fnuttx+13552\u0026type=issues)\\n\\n\\n\\n**No, this PR does not meet the NuttX requirements.**\\n\\n**Missing Information:**\\n\\n* **Summary:** \\n    * Lacks a clear explanation of why the change is necessary. Is it a bug fix, performance improvement, or code cleanup?\\n    * Doesn't describe the functional part of the code being changed within the i2c driver. \\n    *  Missing details on how the optimization works. \\n    *  No mention of related issues.\\n* **Impact:**\\n    * All impact sections are marked as \\\"i2c_driver,\\\" which is too vague.\\n    *  The description should clearly state whether the impact is \\\"NO\\\" or \\\"YES\\\" and provide specific details if applicable. For example, does the change affect any specific architectures, boards, or drivers?\\n* **Testing:**\\n    * Lacks details about the local setup (host OS, target architecture, board configuration).\\n    *  \\\"Local iic testing\\\" is insufficient. Provide specific test cases and commands used.\\n    *  No testing logs provided. \\n\\n**To meet the NuttX requirements, the PR needs to provide comprehensive information in each section. ** \\n\",\n        ),\n        body_text: None,\n        body_html: None,\n        author_association: None,\n        user: Author {\n            login: \"nuttxpr\",\n            id: UserId(\n                181999181,\n            ),\n            node_id: \"U_kgDOCtkWTQ\",\n            avatar_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"avatars.githubusercontent.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/u/181999181\",\n                query: Some(\n                    \"v=4\",\n                ),\n                fragment: None,\n            },\n            gravatar_id: \"\",\n            url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr\",\n                query: None,\n                fragment: None,\n            },\n            html_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/nuttxpr\",\n                query: None,\n                fragment: None,\n            },\n            followers_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/followers\",\n                query: None,\n                fragment: None,\n            },\n            following_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/following%7B/other_user%7D\",\n                query: None,\n                fragment: None,\n            },\n            gists_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/gists%7B/gist_id%7D\",\n                query: None,\n                fragment: None,\n            },\n            starred_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/starred%7B/owner%7D%7B/repo%7D\",\n                query: None,\n                fragment: None,\n            },\n            subscriptions_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/subscriptions\",\n                query: None,\n                fragment: None,\n            },\n            organizations_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/orgs\",\n                query: None,\n                fragment: None,\n            },\n            repos_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/repos\",\n                query: None,\n                fragment: None,\n            },\n            events_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/events%7B/privacy%7D\",\n                query: None,\n                fragment: None,\n            },\n            received_events_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/received_events\",\n                query: None,\n                fragment: None,\n            },\n            type: \"User\",\n            site_admin: false,\n            patch_url: None,\n            email: None,\n        },\n        created_at: 2024-09-20T07:47:47Z,\n        updated_at: Some(\n            2024-09-20T07:47:47Z,\n        ),\n    }\n[2024-09-20T07:47:49Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13554\"\n[2024-09-20T07:48:54Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13553\"\n[2024-09-20T07:48:54Z INFO  nuttx_pr_bot] PR Body: \"## Summary\\r\\nnuttx add pci ep framework\\r\\n## Impact\\r\\n\\r\\n## Testing\\r\\n\\r\\n\"\n[2024-09-20T07:49:04Z INFO  nuttx_pr_bot] Gemini Response: Rest(\n        GeminiResponse {\n            candidates: [\n                Candidate {\n                    content: Content {\n                        role: Model,\n                        parts: [\n                            Part {\n                                text: Some(\n                                    \"**No, this PR does not meet the NuttX requirements.**\\n\\n**Summary:**\\n\\n* **Insufficient information:** The summary is too brief and lacks essential details. It doesn't explain:\\n    * **Necessity:** Why is the PCI EP framework needed? What problem does it solve, or what improvement does it bring?\\n    * **Functionality:** Which part of the codebase is affected? What specific PCI EP capabilities are being added?\\n    * **Implementation:** How does the framework work? What changes have been made to the code?\\n* **Missing references:**  Are there related NuttX issues or NuttX Apps issues/pull requests?\\n\\n**Impact:**\\n\\n* **Entirely missing:** The impact section is empty.  You must address all the points to demonstrate a thorough understanding of your changes.\\n\\n**Testing:**\\n\\n* **No details provided:** \\n    *  You need to list the specific build hosts (OS, CPU, compiler) and target devices (architecture, board, configuration) where you tested the changes.\\n    *  Provide actual testing logs from **before** and **after** the change to show the difference in behavior.\\n\\n**To improve this PR:**\\n\\n1. **Expand the Summary:** Provide a clear and detailed explanation of the changes, their purpose, and how they are implemented.\\n2. **Complete the Impact section:** Analyze and describe the impact of your changes on all the listed aspects (user, build, hardware, documentation, security, compatibility).\\n3. **Provide Testing Details:** Specify your build hosts and target devices, and include relevant testing logs from before and after applying your changes.\\n\\n**By addressing these points, your PR will be far more likely to be reviewed and merged.** \\n\",\n                                ),\n                                inline_data: None,\n                                file_data: None,\n                                video_metadata: None,\n                            },\n                        ],\n                    },\n                    finish_reason: Some(\n                        \"STOP\",\n                    ),\n                    index: Some(\n                        0,\n                    ),\n                    safety_ratings: [\n                        SafetyRating {\n                            category: HarmCategorySexuallyExplicit,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                        SafetyRating {\n                            category: HarmCategoryHateSpeech,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                        SafetyRating {\n                            category: HarmCategoryHarassment,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                        SafetyRating {\n                            category: HarmCategoryDangerousContent,\n                            probability: Negligible,\n                            blocked: false,\n                        },\n                    ],\n                },\n            ],\n            prompt_feedback: None,\n            usage_metadata: Some(\n                UsageMetadata {\n                    prompt_token_count: 441,\n                    candidates_token_count: 358,\n                },\n            ),\n        },\n    )\n[2024-09-20T07:49:04Z INFO  nuttx_pr_bot] Response Text: \"**No, this PR does not meet the NuttX requirements.**\\n\\n**Summary:**\\n\\n* **Insufficient information:** The summary is too brief and lacks essential details. It doesn't explain:\\n    * **Necessity:** Why is the PCI EP framework needed? What problem does it solve, or what improvement does it bring?\\n    * **Functionality:** Which part of the codebase is affected? What specific PCI EP capabilities are being added?\\n    * **Implementation:** How does the framework work? What changes have been made to the code?\\n* **Missing references:**  Are there related NuttX issues or NuttX Apps issues/pull requests?\\n\\n**Impact:**\\n\\n* **Entirely missing:** The impact section is empty.  You must address all the points to demonstrate a thorough understanding of your changes.\\n\\n**Testing:**\\n\\n* **No details provided:** \\n    *  You need to list the specific build hosts (OS, CPU, compiler) and target devices (architecture, board, configuration) where you tested the changes.\\n    *  Provide actual testing logs from **before** and **after** the change to show the difference in behavior.\\n\\n**To improve this PR:**\\n\\n1. **Expand the Summary:** Provide a clear and detailed explanation of the changes, their purpose, and how they are implemented.\\n2. **Complete the Impact section:** Analyze and describe the impact of your changes on all the listed aspects (user, build, hardware, documentation, security, compatibility).\\n3. **Provide Testing Details:** Specify your build hosts and target devices, and include relevant testing logs from before and after applying your changes.\\n\\n**By addressing these points, your PR will be far more likely to be reviewed and merged.** \\n\"\n[2024-09-20T07:49:04Z INFO  nuttx_pr_bot] PR Comment: Comment {\n        id: CommentId(\n            2363052015,\n        ),\n        node_id: \"IC_kwDODZiUac6M2U_v\",\n        url: Url {\n            scheme: \"https\",\n            cannot_be_a_base: false,\n            username: \"\",\n            password: None,\n            host: Some(\n                Domain(\n                    \"api.github.com\",\n                ),\n            ),\n            port: None,\n            path: \"/repos/apache/nuttx/issues/comments/2363052015\",\n            query: None,\n            fragment: None,\n        },\n        html_url: Url {\n            scheme: \"https\",\n            cannot_be_a_base: false,\n            username: \"\",\n            password: None,\n            host: Some(\n                Domain(\n                    \"github.com\",\n                ),\n            ),\n            port: None,\n            path: \"/apache/nuttx/pull/13553\",\n            query: None,\n            fragment: Some(\n                \"issuecomment-2363052015\",\n            ),\n        },\n        issue_url: Some(\n            Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/repos/apache/nuttx/issues/13553\",\n                query: None,\n                fragment: None,\n            },\n        ),\n        body: Some(\n            \"[**\\\\[Experimental Bot, please feedback here\\\\]**](https://github.com/search?q=repo%3Aapache%2Fnuttx+13552\u0026type=issues)\\n\\n__Squash The Commits:__ This PR contains 6 Commits. Please Squash the Multiple Commits into a Single Commit.\\n\\n\\n\\n**No, this PR does not meet the NuttX requirements.**\\n\\n**Summary:**\\n\\n* **Insufficient information:** The summary is too brief and lacks essential details. It doesn't explain:\\n    * **Necessity:** Why is the PCI EP framework needed? What problem does it solve, or what improvement does it bring?\\n    * **Functionality:** Which part of the codebase is affected? What specific PCI EP capabilities are being added?\\n    * **Implementation:** How does the framework work? What changes have been made to the code?\\n* **Missing references:**  Are there related NuttX issues or NuttX Apps issues/pull requests?\\n\\n**Impact:**\\n\\n* **Entirely missing:** The impact section is empty.  You must address all the points to demonstrate a thorough understanding of your changes.\\n\\n**Testing:**\\n\\n* **No details provided:** \\n    *  You need to list the specific build hosts (OS, CPU, compiler) and target devices (architecture, board, configuration) where you tested the changes.\\n    *  Provide actual testing logs from **before** and **after** the change to show the difference in behavior.\\n\\n**To improve this PR:**\\n\\n1. **Expand the Summary:** Provide a clear and detailed explanation of the changes, their purpose, and how they are implemented.\\n2. **Complete the Impact section:** Analyze and describe the impact of your changes on all the listed aspects (user, build, hardware, documentation, security, compatibility).\\n3. **Provide Testing Details:** Specify your build hosts and target devices, and include relevant testing logs from before and after applying your changes.\\n\\n**By addressing these points, your PR will be far more likely to be reviewed and merged.** \\n\",\n        ),\n        body_text: None,\n        body_html: None,\n        author_association: None,\n        user: Author {\n            login: \"nuttxpr\",\n            id: UserId(\n                181999181,\n            ),\n            node_id: \"U_kgDOCtkWTQ\",\n            avatar_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"avatars.githubusercontent.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/u/181999181\",\n                query: Some(\n                    \"v=4\",\n                ),\n                fragment: None,\n            },\n            gravatar_id: \"\",\n            url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr\",\n                query: None,\n                fragment: None,\n            },\n            html_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/nuttxpr\",\n                query: None,\n                fragment: None,\n            },\n            followers_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/followers\",\n                query: None,\n                fragment: None,\n            },\n            following_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/following%7B/other_user%7D\",\n                query: None,\n                fragment: None,\n            },\n            gists_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/gists%7B/gist_id%7D\",\n                query: None,\n                fragment: None,\n            },\n            starred_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/starred%7B/owner%7D%7B/repo%7D\",\n                query: None,\n                fragment: None,\n            },\n            subscriptions_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/subscriptions\",\n                query: None,\n                fragment: None,\n            },\n            organizations_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/orgs\",\n                query: None,\n                fragment: None,\n            },\n            repos_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/repos\",\n                query: None,\n                fragment: None,\n            },\n            events_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/events%7B/privacy%7D\",\n                query: None,\n                fragment: None,\n            },\n            received_events_url: Url {\n                scheme: \"https\",\n                cannot_be_a_base: false,\n                username: \"\",\n                password: None,\n                host: Some(\n                    Domain(\n                        \"api.github.com\",\n                    ),\n                ),\n                port: None,\n                path: \"/users/nuttxpr/received_events\",\n                query: None,\n                fragment: None,\n            },\n            type: \"User\",\n            site_admin: false,\n            patch_url: None,\n            email: None,\n        },\n        created_at: 2024-09-20T07:49:04Z,\n        updated_at: Some(\n            2024-09-20T07:49:04Z,\n        ),\n    }\n[2024-09-20T07:49:05Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13553\"\n[2024-09-20T07:50:11Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13551\"\n[2024-09-20T07:50:11Z INFO  nuttx_pr_bot] Skipping PR with comments: 13551\n[2024-09-20T07:50:16Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13550\"\n[2024-09-20T07:50:16Z INFO  nuttx_pr_bot] Skipping PR with comments: 13550\n[2024-09-20T07:50:22Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13549\"\n[2024-09-20T07:50:22Z INFO  nuttx_pr_bot] Skipping PR with comments: 13549\n[2024-09-20T07:50:27Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13546\"\n[2024-09-20T07:50:27Z INFO  nuttx_pr_bot] Skipping PR with comments: 13546\n[2024-09-20T07:50:33Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13545\"\n[2024-09-20T07:50:33Z INFO  nuttx_pr_bot] Skipping PR with comments: 13545\n[2024-09-20T07:50:38Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13541\"\n[2024-09-20T07:50:38Z INFO  nuttx_pr_bot] Skipping PR with comments: 13541\n[2024-09-20T07:50:43Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13539\"\n[2024-09-20T07:50:43Z INFO  nuttx_pr_bot] Skipping PR with comments: 13539\n[2024-09-20T07:50:49Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13538\"\n[2024-09-20T07:50:49Z INFO  nuttx_pr_bot] Skipping PR with comments: 13538\n[2024-09-20T07:50:54Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13536\"\n[2024-09-20T07:50:54Z INFO  nuttx_pr_bot] Skipping PR with comments: 13536\n[2024-09-20T07:51:00Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13530\"\n[2024-09-20T07:51:00Z INFO  nuttx_pr_bot] Skipping PR with comments: 13530\n[2024-09-20T07:51:05Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13527\"\n[2024-09-20T07:51:05Z INFO  nuttx_pr_bot] Skipping PR with comments: 13527\n[2024-09-20T07:51:11Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13526\"\n[2024-09-20T07:51:11Z INFO  nuttx_pr_bot] Skipping PR with comments: 13526\n[2024-09-20T07:51:16Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13520\"\n[2024-09-20T07:51:16Z INFO  nuttx_pr_bot] Skipping PR with comments: 13520\n[2024-09-20T07:51:22Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13519\"\n[2024-09-20T07:51:22Z INFO  nuttx_pr_bot] Skipping PR with comments: 13519\n[2024-09-20T07:51:27Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13518\"\n[2024-09-20T07:51:27Z INFO  nuttx_pr_bot] Skipping PR with comments: 13518\n[2024-09-20T07:51:33Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13507\"\n[2024-09-20T07:51:33Z INFO  nuttx_pr_bot] Skipping PR with comments: 13507\n[2024-09-20T07:51:38Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13502\"\n[2024-09-20T07:51:38Z INFO  nuttx_pr_bot] Skipping PR with comments: 13502\n[2024-09-20T07:51:43Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13498\"\n[2024-09-20T07:51:43Z INFO  nuttx_pr_bot] Skipping PR with comments: 13498\n+ sleep 600\n+ (( 1 ))\n+ (( 1 ))\n+ cargo run --owner apache --repo nuttx\nwarning: use of deprecated method `octocrab::pulls::PullRequestHandler::\u003c'octo\u003e::pull_number`: specific PR builder transitioned to pr_review_actions, reply_to_comment, reply_to_comment\n   --\u003e src/main.rs:141:10\n    |\n141 |         .pull_number(pr_id)\n    |          ^^^^^^^^^^^\n    |\n    = note: `#[warn(deprecated)]` on by default\n\nwarning: `nuttx-pr-bot` (bin \"nuttx-pr-bot\") generated 1 warning\n    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.17s\n     Running `target/debug/nuttx-pr-bot`\n[2024-09-20T08:01:50Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13555\"\n[2024-09-20T08:01:50Z INFO  nuttx_pr_bot] Skipping PR Size XS: 13555\n[2024-09-20T08:01:56Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13554\"\n[2024-09-20T08:01:56Z INFO  nuttx_pr_bot] Skipping PR with comments: 13554\n[2024-09-20T08:02:01Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13553\"\n[2024-09-20T08:02:01Z INFO  nuttx_pr_bot] Skipping PR with comments: 13553\n[2024-09-20T08:02:06Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13551\"\n[2024-09-20T08:02:06Z INFO  nuttx_pr_bot] Skipping PR with comments: 13551\n[2024-09-20T08:02:12Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13550\"\n[2024-09-20T08:02:12Z INFO  nuttx_pr_bot] Skipping PR with comments: 13550\n[2024-09-20T08:02:17Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13549\"\n[2024-09-20T08:02:17Z INFO  nuttx_pr_bot] Skipping PR with comments: 13549\n[2024-09-20T08:02:23Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13546\"\n[2024-09-20T08:02:23Z INFO  nuttx_pr_bot] Skipping PR with comments: 13546\n[2024-09-20T08:02:28Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13545\"\n[2024-09-20T08:02:28Z INFO  nuttx_pr_bot] Skipping PR with comments: 13545\n[2024-09-20T08:02:34Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13541\"\n[2024-09-20T08:02:34Z INFO  nuttx_pr_bot] Skipping PR with comments: 13541\n[2024-09-20T08:02:39Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13539\"\n[2024-09-20T08:02:39Z INFO  nuttx_pr_bot] Skipping PR with comments: 13539\n[2024-09-20T08:02:45Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13538\"\n[2024-09-20T08:02:45Z INFO  nuttx_pr_bot] Skipping PR with comments: 13538\n[2024-09-20T08:02:50Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13536\"\n[2024-09-20T08:02:50Z INFO  nuttx_pr_bot] Skipping PR with comments: 13536\n[2024-09-20T08:02:56Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13530\"\n[2024-09-20T08:02:56Z INFO  nuttx_pr_bot] Skipping PR with comments: 13530\n[2024-09-20T08:03:02Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13527\"\n[2024-09-20T08:03:02Z INFO  nuttx_pr_bot] Skipping PR with comments: 13527\n[2024-09-20T08:03:07Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13526\"\n[2024-09-20T08:03:07Z INFO  nuttx_pr_bot] Skipping PR with comments: 13526\n[2024-09-20T08:03:13Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13520\"\n[2024-09-20T08:03:13Z INFO  nuttx_pr_bot] Skipping PR with comments: 13520\n[2024-09-20T08:03:18Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13519\"\n[2024-09-20T08:03:18Z INFO  nuttx_pr_bot] Skipping PR with comments: 13519\n[2024-09-20T08:03:24Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13518\"\n[2024-09-20T08:03:24Z INFO  nuttx_pr_bot] Skipping PR with comments: 13518\n[2024-09-20T08:03:29Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13507\"\n[2024-09-20T08:03:29Z INFO  nuttx_pr_bot] Skipping PR with comments: 13507\n[2024-09-20T08:03:35Z INFO  nuttx_pr_bot] \"https://api.github.com/repos/apache/nuttx/pulls/13502\"\n[2024-09-20T08:03:35Z INFO  nuttx_pr_bot] Skipping PR with comments: 13502\n+ sleep 600  \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flupyuen%2Fnuttx-pr-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flupyuen%2Fnuttx-pr-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flupyuen%2Fnuttx-pr-bot/lists"}