pr-size-labeler/action.yml
John Kuhn f2aafc4d87
Support ignore deletions with "ignore_line_deletions" param (#71)
* Support ignore deletions with "ignore_file_deletions" param

Test files_to_ignore code path

Tweak the variable type

Correct bad logic in the file ignore block

Debug

More debugging

More debugging

Fingers crossed

Another try

Last try

Lets see if this one does it

Testing again

More tests

More testing

Last test

Wait, I might be onto something

Put some changes back

Fixes

Whoops

Walk back yml test

* Rename config variable to be ignore_line_deletions

* Add and update tests

* Update action.yml to provided more consistent desc.

Co-authored-by: Javier Ferrer González <javier.mailserio@gmail.com>

* Delete redundant helper function

* Fix parse error in action.yml

---------

Co-authored-by: Javier Ferrer González <javier.mailserio@gmail.com>
2024-04-16 08:35:06 -07:00

87 lines
2.8 KiB
YAML

name: 'Pull Request size labeler'
description: 'Label a PR based on the amount of changes'
inputs:
GITHUB_TOKEN:
description: 'GitHub token'
required: true
xs_label:
description: 'Label for xs PR'
required: false
default: 'size/xs'
xs_max_size:
description: 'Max size for a PR to be considered xs'
required: false
default: '10'
s_label:
description: 'Label for s PR'
required: false
default: 'size/s'
s_max_size:
description: 'Max size for a PR to be considered s'
required: false
default: '100'
m_label:
description: 'Label for m PR'
required: false
default: 'size/m'
m_max_size:
description: 'Max size for a PR to be considered m'
required: false
default: '500'
l_label:
description: 'Label for l PR'
required: false
default: 'size/l'
l_max_size:
description: 'Max size for a PR to be considered l'
required: false
default: '1000'
xl_label:
description: 'Label for xl PR'
required: false
default: 'size/xl'
fail_if_xl:
description: 'Report GitHub Workflow failure if the PR size is xl allowing to forbid PR merge'
required: false
default: 'false'
message_if_xl:
description: 'Message to show if the PR size is xl'
required: false
default: >
This PR exceeds the recommended size of 1000 lines.
Please make sure you are NOT addressing multiple issues with one PR.
Note this PR might be rejected due to its size.
github_api_url:
description: 'URL to the API of your Github Server, only necessary for Github Enterprise customers'
required: false
default: 'https://api.github.com'
files_to_ignore:
description: 'Whitespace separated list of files to ignore when calculating the PR size (sum of changes)'
required: false
default: ''
ignore_line_deletions:
description: 'Whether to ignore lines which are deleted when calculating the PR size. If set to "true", deleted lines will be ignored.'
required: false
default: 'false'
runs:
using: 'docker'
image: 'Dockerfile'
args:
- --github_token=${{ inputs.GITHUB_TOKEN }}
- --github_api_url=${{ inputs.github_api_url }}
- --xs_label=${{ inputs.xs_label }}
- --xs_max_size=${{ inputs.xs_max_size }}
- --s_label=${{ inputs.s_label }}
- --s_max_size=${{ inputs.s_max_size }}
- --m_label=${{ inputs.m_label }}
- --m_max_size=${{ inputs.m_max_size }}
- --l_label=${{ inputs.l_label }}
- --l_max_size=${{ inputs.l_max_size }}
- --xl_label=${{ inputs.xl_label }}
- --fail_if_xl=${{ inputs.fail_if_xl }}
- --message_if_xl="${{ inputs.message_if_xl }}"
- --files_to_ignore=${{ inputs.files_to_ignore }}
- --ignore_line_deletions=${{ inputs.ignore_line_deletions }}
branding:
icon: 'tag'
color: 'green'