Add workflow to check `help wanted` labelling by williammartin · Pull Request #11105 · cli/cli · GitHub | Latest TMZ Celebrity News & Gossip | Watch TMZ Live
Skip to content

Add workflow to check help wanted labelling #11105

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

williammartin
Copy link
Member

@williammartin williammartin commented Jun 12, 2025

Description

Fixes #11100

@Copilot Copilot AI review requested due to automatic review settings June 12, 2025 08:35
@williammartin williammartin requested a review from a team as a code owner June 12, 2025 08:35
@williammartin williammartin requested a review from BagToad June 12, 2025 08:35
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Adds an automated check that comments on pull requests addressing issues which lack the help-wanted label, in order to enforce the project’s contribution guidelines (fixes #11100).

  • Introduces a Bash script (check-help-wanted.sh) to inspect linked issues for the help-wanted label and post a comment if missing.
  • Adds a GitHub Actions workflow (pr-help-wanted.yml) to run the script on newly opened PRs (excluding bots and org members).

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/scripts/check-help-wanted.sh New script to fetch closing issues, verify labels, and comment when missing
.github/workflows/pr-help-wanted.yml Workflow that triggers the script for new PRs and skips bots/org members
Comments suppressed due to low confidence (3)

.github/workflows/pr-help-wanted.yml:30

  • The workflow references the script at .github/scripts/check-help-wanted.sh but the file is located under .github/workflows/scripts/. Update the path to bash .github/workflows/scripts/check-help-wanted.sh to match the actual location.
bash .github/scripts/check-help-wanted.sh ${{ github.event.pull_request.html_url }}

.github/workflows/pr-help-wanted.yml:24

  • The second condition is quoted, so the gh api command never runs. Remove the quotes around gh api orgs/cli/public_members/${PR_AUTHOR} so that the command executes properly (if [ ... ] || gh api ... --silent).
if [ "$PR_AUTHOR_TYPE" = "Bot" ] || "gh api orgs/cli/public_members/${PR_AUTHOR}" --silent 2>/dev/null

.github/workflows/scripts/check-help-wanted.sh:1

  • This script contains branching logic (no PR URL, missing labels, all labeled) but there are no tests or dry-run validations to ensure it behaves as expected. Consider adding unit tests or a test workflow to cover key scenarios.
#!/bin/bash

Copy link
Member

@babakks babakks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 🙏 with a few suggestions.

Comment on lines 21 to 24
if [ -z "$CLOSING_ISSUES" ]; then
echo "No closing issues found for PR #$PRNUM"
exit 0
fi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we do something in this case? Most spam PRs will end up here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What would you suggest we do?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just a comment that this PR does not have a corresponding issue? However, that is kind of out of the scope of the script (at least how it's named to handle help-wanted cases). So, we can leave it as is, I think.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggest: updating any echo of output as notice / warning / error commands will make them show up on the Actions run summary, making them easier to find without digging into the logs and preserved when the logs expire

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe just a comment that this PR does not have a corresponding issue? However, that is kind of out of the scope of the script (at least how it's named to handle help-wanted cases). So, we can leave it as is, I think.

I agree this is a bit out of scope of this workflow, but an interesting thing to dig into later.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggest: updating any echo of output as notice / warning / error commands will make them show up on the Actions run summary, making them easier to find without digging into the logs and preserved when the logs expire

@andyfeller do you feel strongly about including this? If so, could you please help progress this by pushing a commit with what you're recommending?

Personally, I always find myself looking at the raw logs anyways since I find these workflow annotations tend to not include all the information that the logs would by their very nature.

Copy link
Member

@andyfeller andyfeller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks really good! My only questions relate to the auth used with minor suggestions or thoughts in some places

Comment on lines 21 to 24
if [ -z "$CLOSING_ISSUES" ]; then
echo "No closing issues found for PR #$PRNUM"
exit 0
fi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggest: updating any echo of output as notice / warning / error commands will make them show up on the Actions run summary, making them easier to find without digging into the logs and preserved when the logs expire

@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

Copy link
Member

@babakks babakks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed this again only to find a leftover call to gh pr comment that I had missed. Removed it, and now it LGTM.

@andyfeller
Copy link
Member

Thank you for your pull request! 🎉

This PR appears to fix the following issues that are not labeled with help wanted:

As outlined in our Contributing Guidelines, we expect that PRs are only created for issues that have been labeled help wanted.

While we appreciate your initiative, please note that:

  • PRs for non-help wanted issues may not be reviewed immediately as they might not align with our current priorities
  • The issue might already be assigned to a team member or planned for a specific release
  • We may need to close this PR. For example, if it conflicts with ongoing work or architectural decisions

What happens next:

  • Our team will review this PR and the associated issues
  • We may add the help wanted label to the issues, if appropriate, and review this pull request
  • In some cases, we may need to close the PR. For example, if it doesn't fit our current roadmap

Thank you for your understanding and contribution to the project! 🙏

This comment was automatically generated by cliAutomation.

Copy link
Member

@andyfeller andyfeller left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Easy to follow and appreciate being able to test it out locally!

The only concerning question is whether this should filter closing issue references for cli/cli or not. I will defer to you if this is enhanced further versus following up based on experience.

if: !github.event.pull_request.draft
run: |
# Skip if PR is from a bot or org member
if [ "$PR_AUTHOR_TYPE" = "Bot" ] || "gh api orgs/cli/public_members/${PR_AUTHOR}" --silent 2>/dev/null
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought: I always forget = is considered identical to ==, resulting in a double take. I know this is used in other places, so just an errant thought to help others.

Comment on lines +24 to +27
if [ -z "$CLOSING_ISSUES" ]; then
echo "No closing issues found for PR #$PR_NUM"
exit 0
fi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thought: given this script is focused on checking help wanted, I suspect we rely upon other automation to deal with the situation where there are no closing issues:

if ! grep -Eq '(#|issues/)[0-9]+' <<<"$PRBODY"
then
commentPR "Hi! Thanks for the pull request. Please ensure that this change is linked to an issue by mentioning an issue number in the description of the pull request. If this pull request would close the issue, please put the word 'Fixes' before the issue number somewhere in the pull request body. If this is a tiny change like fixing a typo, feel free to ignore this message."
fi

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should probably combine the two workflows into one general PR handling one but I think it makes sense to follow up because I think we're going to want to tear that one out of the workflow file.

Comment on lines +2 to +4
on:
pull_request_target:
types: [opened]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: should this workflow run again when the PR is edited or reopened as the user updates the PR body or reopened after closed?

I'm just thinking through the scenarios in depth, so not a blocking question but one that comes to mind. 🤔

For more information:

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See notes section of the issue: #11100 (comment)

Co-authored-by: Andy Feller <andyfeller@github.com>
@williammartin williammartin changed the title Add workflow to check help-wanted labelling Add workflow to check help wanted labelling Jun 16, 2025
@williammartin williammartin merged commit 928a326 into trunk Jun 16, 2025
15 checks passed
@williammartin williammartin deleted the 11100-automate-comment-on-pull-requests-that-fix-issues-without-help-wanted branch June 16, 2025 15:09
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jun 19, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [cli/cli](https://github.com/cli/cli) | patch | `v2.74.1` -> `v2.74.2` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>cli/cli (cli/cli)</summary>

### [`v2.74.2`](https://github.com/cli/cli/releases/tag/v2.74.2): GitHub CLI 2.74.2

[Compare Source](cli/cli@v2.74.1...v2.74.2)

#### What's Changed

##### 🐛 Fixes

- Fix assignees being dropped from `gh pr edit` by [@&#8203;BagToad](https://github.com/BagToad) in cli/cli#11065
- Add accurate context when run rerun fails by [@&#8203;leudz](https://github.com/leudz) in cli/cli#10774
- Avoid requesting MR reviewer twice by [@&#8203;williammartin](https://github.com/williammartin) in cli/cli#11099
- Quote filenames suggested at the end of worklow run by [@&#8203;williammartin](https://github.com/williammartin) in cli/cli#11134
- Fix expected error output of TestRepo/repo-rename-transfer-ownership by [@&#8203;aconsuegra](https://github.com/aconsuegra) in cli/cli#10888

##### 📚 Docs & Chores

- Add instructions for MidnightBSD installation by [@&#8203;laffer1](https://github.com/laffer1) in cli/cli#10699
- docs: update install command for Debian by [@&#8203;MagneticNeedle](https://github.com/MagneticNeedle) in cli/cli#10935
- Fix step order for CodeQL workflow by [@&#8203;BagToad](https://github.com/BagToad) in cli/cli#11145
- Add workflow to check `help wanted` labelling by [@&#8203;williammartin](https://github.com/williammartin) in cli/cli#11105
- Quote workflow conditional by [@&#8203;williammartin](https://github.com/williammartin) in cli/cli#11122
- Fix script path for help-wanted check by [@&#8203;BagToad](https://github.com/BagToad) in cli/cli#11125
- Exclude 3rd party license compliance content from GHAS scanning by [@&#8203;andyfeller](https://github.com/andyfeller) in cli/cli#11127
- Second fix for file not found in help-wanted check by [@&#8203;BagToad](https://github.com/BagToad) in cli/cli#11128
- Ensure gh executes in workflow check script by [@&#8203;williammartin](https://github.com/williammartin) in cli/cli#11133
- Improve help wanted check skipping logic by [@&#8203;BagToad](https://github.com/BagToad) in cli/cli#11135

##### :dependabot: Dependencies

- Bump go to 1.24 by [@&#8203;williammartin](https://github.com/williammartin) in cli/cli#11142
- chore(deps): bump mislav/bump-homebrew-formula-action from 3.2 to 3.4 by [@&#8203;dependabot](https://github.com/dependabot) in cli/cli#11066
- chore(deps): bump github.com/sigstore/protobuf-specs from 0.4.2 to 0.4.3 by [@&#8203;dependabot](https://github.com/dependabot) in cli/cli#11092
- chore(deps): bump google.golang.org/grpc from 1.72.0 to 1.72.2 by [@&#8203;dependabot](https://github.com/dependabot) in cli/cli#11033
- chore(deps): bump actions/attest-build-provenance from 2.3.0 to 2.4.0 by [@&#8203;dependabot](https://github.com/dependabot) in cli/cli#11107
- chore(deps): bump github.com/in-toto/attestation from 1.1.1 to 1.1.2 by [@&#8203;dependabot](https://github.com/dependabot) in cli/cli#11123
- chore(deps): bump github.com/google/go-containerregistry from 0.20.3 to 0.20.6 by [@&#8203;dependabot](https://github.com/dependabot) in cli/cli#11120
- Bump golangci-lint to v2 by [@&#8203;williammartin](https://github.com/williammartin) in cli/cli#11121

#### New Contributors

- [@&#8203;MagneticNeedle](https://github.com/MagneticNeedle) made their first contribution in cli/cli#10935
- [@&#8203;laffer1](https://github.com/laffer1) made their first contribution in cli/cli#10699

**Full Changelog**: cli/cli@v2.74.1...v2.74.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever MR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Automate comment on Pull Requests that fix issues without help-wanted
4 participants

TMZ Celebrity News – Breaking Stories, Videos & Gossip

Looking for the latest TMZ celebrity news? You've come to the right place. From shocking Hollywood scandals to exclusive videos, TMZ delivers it all in real time.

Whether it’s a red carpet slip-up, a viral paparazzi moment, or a legal drama involving your favorite stars, TMZ news is always first to break the story. Stay in the loop with daily updates, insider tips, and jaw-dropping photos.

🎥 Watch TMZ Live

TMZ Live brings you daily celebrity news and interviews straight from the TMZ newsroom. Don’t miss a beat—watch now and see what’s trending in Hollywood.