-
Notifications
You must be signed in to change notification settings - Fork 540
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: re-architect triager script #1882
Conversation
9ba2bf1
to
cd1b26f
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.
LGTM. Thanks @gotmax23 Think there are some conflicts to fix before we can merge though.
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.
cd1b26f
to
9d34332
Compare
Backport to stable-2.14: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 7138e42 on top of patchback/backports/stable-2.14/7138e42716a7a33fb87d5bf6ce590fa9ec291f68/pr-1882 Backporting merged PR #1882 into devel
🤖 @patchback |
Backport to stable-2.17: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 7138e42 on top of patchback/backports/stable-2.17/7138e42716a7a33fb87d5bf6ce590fa9ec291f68/pr-1882 Backporting merged PR #1882 into devel
🤖 @patchback |
Backport to stable-2.15: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 7138e42 on top of patchback/backports/stable-2.15/7138e42716a7a33fb87d5bf6ce590fa9ec291f68/pr-1882 Backporting merged PR #1882 into devel
🤖 @patchback |
Backport to stable-2.16: 💔 cherry-picking failed — conflicts found❌ Failed to cleanly apply 7138e42 on top of patchback/backports/stable-2.16/7138e42716a7a33fb87d5bf6ce590fa9ec291f68/pr-1882 Backporting merged PR #1882 into devel
🤖 @patchback |
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)
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)
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)
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)
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)
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)
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)
* 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>
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.
This commit reorganizes the issue/PR triager script and updates the workflow to run more efficiently.
Review note
The only code changes are the CI configuration, the pyproject.toml, and the new requirements file. The other code is largely the same, just split out into separate files.
I did some testing in https://github.com/gotmax23/ansible-documentation/actions/workflows/labeler.yml.