Handle Multiple Issues
Actionsℹ️ This GitHub workflow is designed for open source projects where users are allowed to work on only one issue at a time.
With this GitHub workflow, you can automate tasks whenever an author creates multiple open issues.
- The workflow can comment the issues that are already created by the author which are currently in the open state.
 - You can also filter the issues that are assigned to the author of the issue
 - You can add your own comment message (even multiline) in the issue.
 - You can add label or 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 
ignoreUsers - You can directly pass 
ignoreCollaborators 
- For custom configuration in-depth, you can check examples.
 - Create a file in the repository at the following path: 
.github/workflows/handle-multiple-issues.ymland paste the following code into it. 
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 trueVarious inputs are defined to let you configure the action:
| Name | Description | Default | 
|---|---|---|
gh-token | 
The GitHub token for authentication | '${{ github.token }}' | 
label | 
Add a label to the current issue. Use commas to separate if there are multiple labels. | 'multiple issues' | 
comment | 
A message to comment on the issue | '' | 
close | 
This will close the issue if set to true | 'false' | 
issueNumber | 
This will comment all the previous issues that are created by the author | 'true' | 
assign | 
This will filter the issues that are assigned to the author (works only if issueNumber is true) | 
'false' | 
ignoreUsers | 
Specify usernames that should be ignored while running this workflow. Use commas to separate if there are multiple users. | '' | 
ignoreCollaborators | 
This will ignore all the collaborators in the repository while running this workflow | 'false' | 
The Combinations that you can use with comment, assign and issueNumber:
Suppose, a user has created
#1,#2which are currently open, only#2is assigned to author and we have now included this workflow. Now suppose he creates the#3issue.
You can see the examples for better clarity.
| issueNumber | comment | assign | Purpose | Message by Bot | 
|---|---|---|---|---|
true | 
false | 
To mention issue number with the default message | #2, #1 is already opened by you | 
|
true | 
custom_message | 
false | 
To mention issue number with a custom message | #2, #1 custom_message | 
false | 
custom_message | 
false | 
Custom message without mentioning issue | custom_message | 
false | 
false | 
Nothing is mentioned; only the label is added as per the workflow | ||
true | 
true | 
To filter issues that are created by the author and assigned to the same author | #2 has been opened by you and is also assigned to you. | 
Only the default message is modified when
assignis set totrue; the concept of a custom message remains unchanged.
Add a custom label and print the issue number with a default message
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  label: "up for grabs" #default is 'multiple issues'
  close: false  #default
  issueNumber: true  #default is trueAdd a default label and print the issue number with a custom message
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  # label 'multiple issues' will be added
  comment: 'custom message'
  issueNumber: true  #default is truePrint a custom message without mentioning issue number
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  label: "multiple issues" #default
  comment: 'custom message'
  issueNumber: false  #default is trueMultiline comment message with issue number
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  label: "multiple issues" #default
  comment: |
    custom message1
    custom message2
  issueNumber: true  #default is true
#  Suppose #1 is already created by the author.
#  Output
#  #1 custom message1
#  custom message2Add multiple labels
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  label: 'label1, label2'   # separate using comma
  issueNumber: true  #default is trueTo filter issues that are assigned to the author
- The same rules for message applies to this condition
 - This will not work unless 
issueNumberistrue. 
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  issueNumber: true   # default is true
  assign: true   # this will not work, unless 'issueNumber' is true
#  Suppose #1, #2 is already created by the author. But only #2 is assigned to the author.
#  Output
#  #2 has been opened by you and is also assigned to you.To ignore specified users while running this workflow
- Suppose, we have to ignore this workflow for users with username: 
Anmol-Baranwal,AnmolB2. 
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  issueNumber: true   # default is true
  ignoreUsers: 'Anmol-Baranwal, AnmolB2'
#  Suppose Anmol-Baranwal created an issue. You will receive a log message during the workflow execution.
#  Log Message
#  User: Anmol-Baranwal is on the ignore list. Ignoring the workflow for this user.To ignore collaborators of the repository while running this workflow
- Suppose, we have to ignore this workflow for users with username: 
Anmol-Baranwal,AnmolB2. 
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
  issueNumber: true   # default is true
  ignoreCollaborators: true
#  Suppose Anmol-Baranwal created an issue and is a collaborator. You will receive a log message during the workflow execution.
#  Log Message
#  User: Anmol-Baranwal is a collaborator. Ignoring the issue for collaborators.All changes are welcome. Please read our contributing guidelines
Feel free to suggest any features or report bugs using these issue templates.
|  
       The scripts and documentation in this project are released under the MIT License.  | 
  
In case you want to run the action locally, without having to commit/push every time, you can use the act tool.
Feel free to contact me if you need a custom workflow for your project. I'll be happy to build one.
  | 
Handle Multiple Issues is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.
