From 0a7330d5cdca161f334054df5453c3300940d94d Mon Sep 17 00:00:00 2001 From: ignacionelson Date: Mon, 21 Sep 2026 18:21:04 -0300 Subject: [PATCH] Accept a CLA signature that has line breaks after it The CLA job only ran for a comment exactly equal to the signing phrase. @JensS signed on #1792 with the phrase followed by line breaks ("...sign the CLA\r\n\r\n\n"), the comparison failed, the job was skipped, and the signature was never recorded, so all three of his pull requests still show the CLA as unsigned. The action itself matches the phrase loosely. The filter in front of it now does too: contains() for the signature, startsWith() for recheck, both case-insensitive. It still keeps the job off ordinary comments, which is what it is there for. --- .github/workflows/cla.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index bd975c63..7c1a542e 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -41,11 +41,19 @@ jobs: # `issue.pull_request` is present only when the comment is on a pull # request; comments on ordinary issues have nothing for this action to # check. + # + # Loose on purpose, never `==`. The action matches the signing phrase + # loosely itself -- any case, anything around it -- and this filter has + # to be at least as forgiving, or it throws away signatures the action + # would have accepted. It did: a contributor's signature arrived with + # trailing line breaks ("...sign the CLA\r\n\r\n"), the exact match + # skipped the job, and nothing was recorded. `contains` and + # `startsWith` ignore case here as well. if: >- github.event_name == 'pull_request_target' || (github.event.issue.pull_request - && (github.event.comment.body == 'recheck' - || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA')) + && (startsWith(github.event.comment.body, 'recheck') + || contains(github.event.comment.body, 'I have read the CLA Document and I hereby sign the CLA'))) runs-on: ubuntu-latest steps: - name: CLA check