backlog icon indicating copy to clipboard operation
backlog copied to clipboard

As a user, I would like to filter approved PRs out of team reminders (with or without using review requests)

Open goodspark opened this issue 6 years ago • 26 comments

Depending on project, sometimes approval doesn't necessarily mean 'merge now'. Often for some legacy projects, the merging is left up to the author. Sometimes there's coordination, etc to do. So that sometimes leaves approved PRs left 'open' too long, which causes them to get added to the reminder list.

Having a way to filter these out would help reduce the clutter of the reminders and distill them down to PRs that actually need attention.

goodspark avatar Jan 29 '19 18:01 goodspark

@goodspark There's already a way to do this for DM reminders, look under "More settings". For team reminders, have you tried the new "Needed reviews" setting for team reminders?

needed_reviews

Let me know if either of these addresses your needed. Another recommendation is to use a label like "noreminders" for PRs that are going to hang around for whatever reason, and have that label excluded in your reminder settings.

abinoda avatar Jan 29 '19 18:01 abinoda

But that requires me to turn on the 'require review requests' option, right? Which isn't always the case.

goodspark avatar Jan 29 '19 18:01 goodspark

@goodspark Correct, for team reminders that setting is currently only available with the review request setting turned on. Out of curiousity, what's your code review process such that sometimes review requests are used and sometimes they are not?

abinoda avatar Jan 29 '19 18:01 abinoda

It really depends on the team, the project, etc. There's no consistent process and we don't feel the need to enforce any. As long as teams are achieving their desired velocity, review requests is largely a trivial detail.

However, for some larger code bases, sometimes we use review requests so there's a somewhat more targeted set of people.

My personal opinion is to never use review requests, as I want every single developer to be familiar with everything we work on such that anyone can hop on and provide insightful and valuable reviews. Obviously that's quite an ideal and, if even possible, will take some time and training.

goodspark avatar Jan 29 '19 18:01 goodspark

@goodspark Gotcha. We can look into adding an approval filter for team reminders not using review requests... we're also going to be rolling out a new tool to assist with code review assignment that may be helpful to you and also alleviate this issue at the same time. In the meantime I'll tag this and add to the backlog.

abinoda avatar Jan 29 '19 18:01 abinoda

Thank you!

goodspark avatar Jan 29 '19 18:01 goodspark

👍 I'd like this feature as well.

Our team does use review_requests however, even after a PR has been approved I still get a reminder about it. E.g.

camallen requested review from zwolf and marten on 27 Nov 2018 marten approved these changes on 14 Dec 2018

Our use case for the pull reminders system is to get attention on the PR that need a review. I feel like the approved PRs should be dealt with via your 'Remind Authors' functionality instead.

camallen avatar Jan 31 '19 09:01 camallen

@goodspark @camallen An interim solution would be to tag these PRs with a label like noreminders, then exclude that label in your reminder settings. Let me know what you think of this idea, specifically how painful it is to take this additional step. It'll be helpful in assessing the prioritization of this issue.

abinoda avatar Jan 31 '19 15:01 abinoda

Yeah that's reasonable for me. Some of our projects already have a label like ready-but-waiting for when something is approved but needs coordination/timing for deployment. It kind of fits this too.

goodspark avatar Jan 31 '19 15:01 goodspark

For us not ideal tbh, I can see that flow working but it's another step that people will forget that increases the false positive rate of the alerts pull reminders will generate for us.

It doesn't look like github / app has a way to add the label on approval and I'd prefer not to run a service that does this. If I could automate the label creation then yep this flow works.

I understand the need to tailor solutions to what your users need and that's ok, I really appreciate this service.

A possible solution would be to set a notification_rules boolean attribute to ignore approved PR's and when generating the notification, you reflect on this setting to skip any that that have approved review states, e.g.

  1. Get the pull request reviews - http://octokit.github.io/octokit.rb/Octokit/Client/Reviews.html#pull_request_reviews-instance_method
  2. See if any have approval state - https://developer.github.com/v3/pulls/reviews/#list-reviews-on-a-pull-request

Thanks for considering, I'll see if we can't use the label flow to help as it stands.

camallen avatar Jan 31 '19 16:01 camallen

@camallen Yeah, the issue for us is diminishing returns on adding more configuration options. Mostly we want to avoid making setup complicated by offering too many options.

It doesn't look like github / app has a way to add the label on approval and I'd prefer not to run a service that does this. If I could automate the label creation then yep this flow works.

This is something you could easily automate with GitHub Actions. We've created Actions for other customers with unique situations, for example this one. If you're interested, shoot me an email at [email protected] and I can help you get set up with this. And in the meantime sign your org up for the beta and sign the beta agreement on behalf of your org.

abinoda avatar Jan 31 '19 16:01 abinoda

I completely understand re the addition of options, etc.

I appreciate the reminder and offer for help with Github Actions I will look into your examples and try it out. Thanks again :)

camallen avatar Jan 31 '19 16:01 camallen

@camallen Sounds good. And just to be clear, I'm offering to write the code for the Action for you. It's something we'd be happy to do since we could provide it to other customers as well, i.e. @goodspark.

abinoda avatar Jan 31 '19 16:01 abinoda

(Let me know if you'd like us to – just wasnt sure if you'd be interested in the idea)

abinoda avatar Jan 31 '19 16:01 abinoda

Without charge? I'd very much be interested in that.

camallen avatar Jan 31 '19 16:01 camallen

@camallen Yep, without charge. Please email me at [email protected] though – there's one other thing I need to assist you with.

abinoda avatar Jan 31 '19 16:01 abinoda

To be honest, I'd rather have the service itself do this somehow. Either by an option or some other integration that's managed by the service itself as opposed to ad-hoc/bespoke work done on a repo-basis. I'm a bit iffy about having to add Actions to different repositories just for this. If it were part of an existing process a project already had, it'd make more sense to integrate.

As it stands, there's a reasonable work-around (albeit a slightly manual process that can easily be automated as you suggested). So my needs are met. If you do implement this, it'll be a nice convenience.

goodspark avatar Jan 31 '19 17:01 goodspark

@goodspark Yeah, that makes sense. We'll continue considering this... it's not a lot of work but we're just concerned about bloating the tool.

abinoda avatar Jan 31 '19 17:01 abinoda

@goodspark

In case you might be interested in giving it a try (no pressure), here's the GitHub Action I just created for @camallen to try out: https://github.com/pullreminders/label-when-approved-action. It only takes a minute to set up on a repo and the functionality is very straightforward. The example below is with the settings set to add a label after 2 approvals:

abinoda avatar Feb 01 '19 03:02 abinoda

Slick!

goodspark avatar Feb 03 '19 19:02 goodspark

Also marking this as unresolved for @kenske

abinoda avatar Mar 14 '19 03:03 abinoda

Also requested by @cdimartino and @nobert.

Will get this added soon!

abinoda avatar Apr 15 '19 17:04 abinoda

Would it be possible to make the # of approvals before hiding configurable?

Context: For several of our teams, our flow involves getting 2 approvals, so we don't want to show PRs that have 2 or more

AzRu avatar Apr 15 '19 18:04 AzRu

@AzRu Definitely.

abinoda avatar Apr 15 '19 19:04 abinoda

Also looking forward to this. Any updates?

stclairdaniel avatar Jun 27 '19 18:06 stclairdaniel

Would it be possible to make the # of approvals before hiding configurable?

Context: For several of our teams, our flow involves getting 2 approvals, so we don't want to show PRs that have 2 or more

Seconding this request!

Use case: at $work my team is using our Pull Reminder integration to alert us to PRs which need to be reviewed, but another team is responsible for merging them, so once they have been reviewed, my team no longer considers them actionable. So these PRs require approvals but without anyone specifying who the reviewers must be (thus we're not using the review_requests option). We want to be able to consider a PR that has gotten (say) 2+ approvals not-stale, since after that point it becomes the territory of a different team. For now we are using a label approach, however I worry about how error-prone our system of manually adding and removing a tag will be when a PR is approved but then additional work is committed, thus requiring additional approvals...

Thanks!

alxndr avatar Jul 20 '19 03:07 alxndr