Improve CLA PR Workflow

This is just an advice/suggestion to the maintainers of CPython: we could introduce two labels, CLA signed and CLA not signed, and let the current CLA bot add/remove them based on the status it already checks.

The bot already comments on a PR when the CLA is not signed, but this status isn’t visible from the PR list. A reviewer may open a PR, start looking into the issue and changes, and only then notice that the CLA is still pending. Having a label for this would make the status visible upfront and could save some reviewer time by making it easier to spot PRs that are ready for review.

As an additional improvement, the bot could have a time-based workflow for PRs where the CLA remains unsigned. For example, after a reasonable period such as one week, it could convert the PR to draft, or close it with a clear message. Once the CLA is signed, the PR could then be made active again if appropriate.

There is also some precedent for this in Python’s previous CLA bot, the-knights-who-say-ni, which used CLA signed and CLA not signed labels. Just sharing this as a possible workflow improvement; the maintainers can decide what makes sense for the current CLA infrastructure.

I think this would be a step backwards. The label does not seem necessary to me, I find the bot comment and the failing CLA check are already quite visible, and note that the check blocks merging until the CLA is signed.

For automatically closing PRs that remain with an unsigned CLA, there is already an existing issue tracking that: python/core-workflow#441.

2 Likes