In some open source projects, contributors make lots of issues with some time between them, making it hard to manage. The more issues there are, the tougher it gets.
Every good open source project or major organization deals with this problem.
In general, contributors start with just one issue at a time. As they contribute more, they are allowed to work on multiple issues because they would have gained the trust of maintainers.
Now, during Hacktoberfest or other open source events.
Most of the contributors create multiple issues even when it's mentioned in the guidelines not to do so.
We faced a lot of problems in tracking if a contributor made several issues because they are human and have the intelligence to bypass the system.
In our situation, there are 3-4 maintainers, and each maintainer assigns the issue whenever they can. So, sometimes when I assign someone, he creates an issue after some gap, and this time another maintainer assigns it.
We cannot go back to check which maintainer is assigning whom.
We can solve it with just 1 person assigning issues, but it is still a problem on how one can remember that anyway. For instance, this is not feasible where issues cross 100 or so.
This creates a major problem for maintainers to track how many contributors have created multiple issues.
As you know, I'm a developer and a very picky one :D
I solved this myself since there was no existing solution.
The solution
I created handle multiple issues workflow to handle this efficiently and quickly.
With this GitHub workflow, you can automate tasks whenever an author creates multiple issues.
So, you can see the case of LinksHub Issue #2251.
The bot clearly says this.
This helps the maintainers because the issues are linked, and it will get noticed.
Now, I have made it good enough to use it in any organization.
name: Handle Multiple Issues
on:
issues:
types:
- reopened
- opened
jobs:
handle-multiple-issues:
runs-on: ubuntu-latest
steps:
- name: Handle Multiple Issues
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
label: "multiple issues" #default
close: false #default
issueNumber: true #default is true
Marketplace: github.com/marketplace/actions/handle-multiple-issues
What I did was create options.
These options improve the solution for many end-user cases and can make it ready to use in good open source projects.
You can read about options here. I will explain, even if you don't want to.
use cases with options
You can also filter the issues assigned to the author in that open source project.
You can add your own comment message (even multiline) to the issue. (Can be fully customized)
You can add label/labels based on your preferences.
Optionally, you can also close the issue (previous issues won't be affected), and only the current issue will be closed.
You can ignore this workflow for specific users by using ignore users
.
You can directly pass ignoreCollaborators
.
These are some of the screenshots that you can see to understand the context better.
Workflow:
Result:
There are many more which you can learn more from the readme.
I need serious feedback on this.
Thanks for any help you can provide :D
What else can be added here?
What can be improved?
Is it good enough to use in any open source project?
Thanks a bunch!
Repo: github.com/Anmol-Baranwal/handle-multiple-issues
Marketplace: github.com/marketplace/actions/handle-multiple-issues
You can connect me on GitHub.