Does this PR effectively resolve the linked issues, here's how AI can help answer this
Tags: codereview, codequality, github, githubactions
Published: 2023-12-18 05:11:23

In this blog, we'll explore the common challenges developers encounter in assessing PR against an issue and then we'll introduce [CodeRabbit](https://coderabbit.ai/blog/coderabbit-deep-dive), a leading AI-driven PR review copilot, as an automated solution to assess PRs.

> Check out an example of assessing PR against the linked issues for PR [autolab/Autolab/pull/2016](https://github.com/autolab/Autolab/pull/2016) (this assessment was done by [CodeRabbit](https://coderabbit.ai) PR review bot).


![PR assessment demo screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/efey3cniawdqfqji7z4b.jpg)


Let’s deep dive and understand the topic of PR assessment


## Assessing PR against linked issues

For a PR reviewer and author, the most important question is:

> How effectively does this PR address the issue?

It is the job of us developers to evaluate how effectively the PR addresses the objectives of the issues. Although it is obvious to many of us but understanding the context of PR assessment deeply will help us make better and quicker judgement as developers.

Before we dive into how, let's understand why.

### Why do we need to assess whether a PR effectively achieves the issue objectives

Assessing whether a Pull Request (PR) effectively addresses an issue is a fundamental aspect of PR review process for several reasons:


* **Ensuring correctness:** It's crucial for maintaining the integrity and functionality of the software.
* **Quality control:** By rigorously evaluating a PR against the issue it purports to resolve, the team can maintain high standards of quality. This process helps in identifying any potential bugs, performance issues, or unintended consequences introduced by the PR. Having the assessment written in the PR gives a good sense to the author and the peer reviewer.
* **Prevent unnecessary work:** Effective assessment ensures that time and effort are not wasted on PRs that do not fully resolve issues, preventing the need for additional fixes or rework in the future.
* **User satisfaction:** In cases where issues are user-reported or significantly affect user experience, ensuring that a PR effectively resolves the issue is key to maintaining user trust and satisfaction.
* **Learning and improvement:** The process of assessment provides valuable learning opportunities for developers. It allows them to understand more about the system, the nature of the problem, and the effectiveness of their solution.


### What stops developers from assessing PR against an issue correctly

There are several challenges associated with this assessment:

* **Time pressure:** Under tight deadlines, there might be a rush to get PRs merged, which can lead to insufficient assessment and oversight.
* **Limited context:** Reviewers might not always have full context or deep knowledge about every aspect of the issue, which can lead to challenges in accurately assessing the PR.
* **Complexity of Issues:** Some issues can be complex, with subtle nuances or hidden dependencies. Understanding whether a PR fully addresses such issues can be difficult.
* **Subjective evaluation:** Assessment can sometimes be subjective, especially in cases where the issue and the solution are not strictly technical but involve user experience, design, or other qualitative aspects.
* **Inadequate Testing:** In some cases, the lack of comprehensive testing can hinder the assessment. If a PR is not thoroughly tested in various scenarios, it might be difficult to ensure it completely resolves the issue.

So what can we do about it?


### Solution : CodeRabbit’s AI-powered assessment against linked issues

CodeRabbit PR review bot analyzes the issue in depth, understanding the objectives. Then based on the code diff, it analyzes whether those objectives are met or not. The result along with the explanation is shown in the PR summary or comment. The PR author or peer reviewer then quickly get a sense which objectives were met (marked ✅), which which not met (marked ❌), and which were unclear to make a judgment (marked ❓).  

See it in action:

[autolab/Autolab/pull/2016](https://github.com/autolab/Autolab/pull/2016)


![PR assessment demo screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/efey3cniawdqfqji7z4b.jpg)

[appsmithorg/appsmith/pull/29375](https://github.com/appsmithorg/appsmith/pull/29375)



![PR assessment demo screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7mv3c8sgpn0ytqixomlp.jpg)


[SickChill/sickchill/pull/8640](https://github.com/SickChill/sickchill/pull/8640)



![PR assessment demo screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p329knmq3ku09ffkch8l.jpg)

To get this feature, just install the [CodeRabbit PR review app](https://coderabbit.ai/) in your GitHub repository. Deep dive into [how CodeRabbit works](https://coderabbit.ai/blog/coderabbit-deep-dive).


## Conclusion

It is a fundamentally essential task for PR authors and reviewers to assess whether the PR effectively resolves the related issues or not. We discussed how this simple-looking task could be challenging due to reasons such as limited context and time pressure. [CodeRabbit](http://coderabbit.ai/)’s AI-powered PR review bot solves these challenges by automatically validating linked issues against PR.