Skip to content

Commit

Permalink
[stable-2.15] Backport pr_labeler changes (#1917)
Browse files Browse the repository at this point in the history
* 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>
  • Loading branch information
gotmax23 and dependabot[bot] authored Sep 20, 2024
1 parent 3095c93 commit 3ca9187
Show file tree
Hide file tree
Showing 22 changed files with 648 additions and 330 deletions.
13 changes: 8 additions & 5 deletions .github/workflows/labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,26 +41,29 @@ jobs:
- name: Checkout parent repository
uses: actions/checkout@v4
- name: Install Python 3.11
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Set up UV
run: curl -LsSf https://astral.sh/uv/install.sh | sh
- name: Setup venv
run: |
python -m venv venv
./venv/bin/pip install -r hacking/pr_labeler/requirements.txt
uv venv venv
uv pip install --python venv \
-e hacking/pr_labeler -c tests/pr_labeler.txt
- name: "Run the issue labeler"
if: "github.event.issue || inputs.type == 'issue'"
env:
event_json: "${{ toJSON(github.event) }}"
GITHUB_TOKEN: ${{ steps.create_token.outputs.token }}
number: "${{ github.event.issue.number || inputs.number }}"
run: |
./venv/bin/python hacking/pr_labeler/label.py issue "${number}"
./venv/bin/ad-triage issue "${number}"
- name: "Run the PR labeler"
if: "github.event.pull_request || inputs.type == 'pr'"
env:
event_json: "${{ toJSON(github.event) }}"
GITHUB_TOKEN: ${{ steps.create_token.outputs.token }}
number: "${{ github.event.number || inputs.number }}"
run: |
./venv/bin/python hacking/pr_labeler/label.py pr "${number}"
./venv/bin/ad-triage pr "${number}"
1 change: 1 addition & 0 deletions hacking/pr_labeler/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.egg-info/
310 changes: 0 additions & 310 deletions hacking/pr_labeler/label.py

This file was deleted.

Empty file.
13 changes: 13 additions & 0 deletions hacking/pr_labeler/pr_labeler/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright (C) 2023 Maxwell G <[email protected]>
# SPDX-License-Identifier: GPL-3.0-or-later

"""
Module entrypoint
"""

from __future__ import annotations

from .cli import APP

if __name__ == "__main__":
APP()
Loading

0 comments on commit 3ca9187

Please sign in to comment.