-
Notifications
You must be signed in to change notification settings - Fork 546
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
pr_labeler: refactor new_contributor_welcome code #990
Conversation
d24ef02
to
4932bf4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems fine but would be nice to test this out. @gotmax23 any suggestions on how to go about that?
As of ansible#69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: ansible#204
4932bf4
to
28526b8
Compare
You could checkout the PR and set up a venv for the script:
Then, you can try processing a PR from a new contributor, such as #984 $ python ./label.py pr --dry-run --force-process-closed 984
984: Welcoming new contributor
984: Adding labels 'new_contributor'
# This error is expected when using dry run mode without authentication
990: Failed to get members of @ansible/release-management-wg and one from an existing contributor, such as this one: $ python ./label.py pr --dry-run 990
990: Failed to get members of @ansible/release-management-wg You see that the first welcomes the new contributor and the other does not. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the pointers on testing this @gotmax23 LGTM
Backport to stable-2.15: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 763815d on top of patchback/backports/stable-2.15/763815d1ad4e1054226077c72a5719054637fe0b/pr-990 Backporting merged PR #990 into devel
🤖 @patchback |
Thanks @oraNod! |
Backport to stable-2.14: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 763815d on top of patchback/backports/stable-2.14/763815d1ad4e1054226077c72a5719054637fe0b/pr-990 Backporting merged PR #990 into devel
🤖 @patchback |
Backport to stable-2.16: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 763815d on top of patchback/backports/stable-2.16/763815d1ad4e1054226077c72a5719054637fe0b/pr-990 Backporting merged PR #990 into devel
🤖 @patchback |
* pr_labeler: add GlobalArgs.full_repo property * pr_labeler: refactor new_contributor_welcome code As of ansible#69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: ansible#204 * pr_labeler: address potential race condition (cherry picked from commit 763815d)
* pr_labeler: add GlobalArgs.full_repo property * pr_labeler: refactor new_contributor_welcome code As of ansible#69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: ansible#204 * pr_labeler: address potential race condition (cherry picked from commit 763815d)
* pr_labeler: add GlobalArgs.full_repo property * pr_labeler: refactor new_contributor_welcome code As of ansible#69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: ansible#204 * pr_labeler: address potential race condition (cherry picked from commit 763815d)
* pr_labeler: add GlobalArgs.full_repo property * pr_labeler: refactor new_contributor_welcome code As of ansible#69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: ansible#204 * pr_labeler: address potential race condition (cherry picked from commit 763815d)
* pr_labeler: improve create_boilerplate_comment logging (cherry picked from commit 5730ba9) * pr_labeler: add --force-process-closed flag (cherry picked from commit 44ffe0f) * pr_labeler: add warning for porting_guides changes This adds a warning message when PRs are created that edit porting_guides by someone outside of the Release Management WG. These files are automatically generated during the ansible release process and should not be modified. Fixes: #503 (cherry picked from commit d2e6625) * pr_labeler: use @release-management-wg team for porting_guide check Instead of hardcoding the list of release managers, we can use the Github API to retrieve the members of the `@ansible/release-management-wg` team. (cherry picked from commit dddfd7e) * pr_labeler: exempt bots from porting_guide check For example, patchback is not a release manager, but we still want it to backport Porting Guide PRs. (cherry picked from commit 746662c) * pr_labeler: improve porting_guide_changes template wording Co-authored-by: Sandra McCann <[email protected]> (cherry picked from commit 95ece7e) * pr_labeler: refactor new_contributor_welcome code (#990) * pr_labeler: add GlobalArgs.full_repo property * pr_labeler: refactor new_contributor_welcome code As of #69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: #204 * pr_labeler: address potential race condition (cherry picked from commit 763815d) * Bump actions/setup-python from 4 to 5 (#966) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... (cherry picked from commit 466b1fd) * pr_labeler: re-architect triager script (#1882) This commit reorganizes the issue/PR triager script and updates the workflow to run more efficiently. - Make the script a proper Python package instead of an unwieldy single file - Use locked dependencies and UV to decrease workflow runtime to under 10 seconds. (cherry picked from commit 7138e42) (cherry picked from commit 1cf9f79) --------- Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* pr_labeler: improve create_boilerplate_comment logging (cherry picked from commit 5730ba9) * pr_labeler: add --force-process-closed flag (cherry picked from commit 44ffe0f) * pr_labeler: add warning for porting_guides changes This adds a warning message when PRs are created that edit porting_guides by someone outside of the Release Management WG. These files are automatically generated during the ansible release process and should not be modified. Fixes: #503 (cherry picked from commit d2e6625) * pr_labeler: use @release-management-wg team for porting_guide check Instead of hardcoding the list of release managers, we can use the Github API to retrieve the members of the `@ansible/release-management-wg` team. (cherry picked from commit dddfd7e) * pr_labeler: exempt bots from porting_guide check For example, patchback is not a release manager, but we still want it to backport Porting Guide PRs. (cherry picked from commit 746662c) * pr_labeler: improve porting_guide_changes template wording Co-authored-by: Sandra McCann <[email protected]> (cherry picked from commit 95ece7e) * pr_labeler: refactor new_contributor_welcome code (#990) * pr_labeler: add GlobalArgs.full_repo property * pr_labeler: refactor new_contributor_welcome code As of #69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: #204 * pr_labeler: address potential race condition (cherry picked from commit 763815d) * Bump actions/setup-python from 4 to 5 (#966) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... (cherry picked from commit 466b1fd) * pr_labeler: re-architect triager script (#1882) This commit reorganizes the issue/PR triager script and updates the workflow to run more efficiently. - Make the script a proper Python package instead of an unwieldy single file - Use locked dependencies and UV to decrease workflow runtime to under 10 seconds. (cherry picked from commit 7138e42) (cherry picked from commit 1cf9f79) --------- Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* pr_labeler: improve create_boilerplate_comment logging (cherry picked from commit 5730ba9) * pr_labeler: add --force-process-closed flag (cherry picked from commit 44ffe0f) * pr_labeler: add warning for porting_guides changes This adds a warning message when PRs are created that edit porting_guides by someone outside of the Release Management WG. These files are automatically generated during the ansible release process and should not be modified. Fixes: #503 (cherry picked from commit d2e6625) * pr_labeler: use @release-management-wg team for porting_guide check Instead of hardcoding the list of release managers, we can use the Github API to retrieve the members of the `@ansible/release-management-wg` team. (cherry picked from commit dddfd7e) * pr_labeler: exempt bots from porting_guide check For example, patchback is not a release manager, but we still want it to backport Porting Guide PRs. (cherry picked from commit 746662c) * pr_labeler: improve porting_guide_changes template wording Co-authored-by: Sandra McCann <[email protected]> (cherry picked from commit 95ece7e) * pr_labeler: refactor new_contributor_welcome code (#990) * pr_labeler: add GlobalArgs.full_repo property * pr_labeler: refactor new_contributor_welcome code As of #69, the pr_labeler responds with a welcome message when an issue or PR is opened by a new contributor. It turns out this never actually worked properly. The previous method that relied on Github's `author_association` flag did not work with the app token that the pr_labeler uses. This refactors the code to figure out whether a user is a new contributor by searching the list of issues and PRs. Fixes: #204 * pr_labeler: address potential race condition (cherry picked from commit 763815d) * Bump actions/setup-python from 4 to 5 (#966) Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](actions/setup-python@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... (cherry picked from commit 466b1fd) * pr_labeler: re-architect triager script (#1882) This commit reorganizes the issue/PR triager script and updates the workflow to run more efficiently. - Make the script a proper Python package instead of an unwieldy single file - Use locked dependencies and UV to decrease workflow runtime to under 10 seconds. (cherry picked from commit 7138e42) (cherry picked from commit 1cf9f79) --------- Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
As of #69, the
pr_labeler responds with a welcome message when an issue or PR is opened
by a new contributor. It turns out this never actually worked properly.
The previous method that relied on Github's
author_association
flagdid not work with the app token that the pr_labeler uses. This refactors
the code to figure out whether a user is a new contributor by
searching the list of issues and PRs.
Fixes: #204