https://github.com/anmol-baranwal/handle-multiple-issues
Track if a contributor creates multiple issues with 10+ options đĨ
https://github.com/anmol-baranwal/handle-multiple-issues
action-workflow author contributor github-actions github-workflow multiple-issues opensource-projects projects-management workflow
Last synced: 2 months ago
JSON representation
Track if a contributor creates multiple issues with 10+ options đĨ
- Host: GitHub
- URL: https://github.com/anmol-baranwal/handle-multiple-issues
- Owner: Anmol-Baranwal
- License: mit
- Created: 2023-10-13T12:57:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-25T19:26:56.000Z (over 1 year ago)
- Last Synced: 2025-04-03T04:05:43.666Z (3 months ago)
- Topics: action-workflow, author, contributor, github-actions, github-workflow, multiple-issues, opensource-projects, projects-management, workflow
- Language: TypeScript
- Homepage:
- Size: 396 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: Contributing.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
## Handle Multiple Issues
> âšī¸ 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.
### Use cases
- 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`---
### đ Getting Started
- For custom configuration in-depth, you can check [examples](#examples).
- Create a file in the repository at the following path: `.github/workflows/handle-multiple-issues.yml` and paste the following code into it.```yml
name: Handle Multiple Issueson:
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
```---
### Inputs
Various 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`, `#2` which are currently open, only `#2` is assigned to author and we have now included this workflow. Now suppose he creates the `#3` issue.
> You can see the [examples](#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 `assign` is set to `true`; the concept of a custom message remains unchanged.
---
### đ Examples
Add a custom label and print the issue number with a default message
```yml
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
label: "up for grabs" #default is 'multiple issues'
close: false #default
issueNumber: true #default is true
```
Add a default label and print the issue number with a custom message
```yml
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
# label 'multiple issues' will be added
comment: 'custom message'
issueNumber: true #default is true
```
Print a custom message without mentioning issue number
```yml
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
label: "multiple issues" #default
comment: 'custom message'
issueNumber: false #default is true
```
Multiline comment message with issue number
```yml
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 message2
```
Add multiple labels
```yml
uses: Anmol-Baranwal/handle-multiple-issues@v1
with:
label: 'label1, label2' # separate using comma
issueNumber: true #default is true
```
To filter issues that are assigned to the author
- The same rules for message applies to this condition
- This will not work unless `issueNumber` is `true`.
```yml
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`.
```yml
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`.
```yml
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.
```---
### đ¤ How to Contribute?
All changes are welcome. Please read our [contributing guidelines](Contributing.md)
Feel free to suggest any features or report bugs using these [issue templates](https://github.com/Anmol-Baranwal/handle-multiple-issues/issues/new/choose).
---
### đ License
![]()
![]()
The scripts and documentation in this project are released under the MIT License.![]()
---
###
Tech & Tools
> In case you want to run the action locally, without having to commit/push every time, you can use the [act](https://github.com/nektos/act) tool.
![]()
---
### Author
> Feel free to contact me if you need a custom workflow for your project. I'll be happy to build one.
Anmol Baranwal
@Anmol-Baranwal