1
0
mirror of https://github.com/actions/labeler synced 2026-05-05 03:07:49 +02:00

81 Commits

Author SHA1 Message Date
Luca Boccassi
c5dadc2a45 Add 'changed-files-labels-limit' and 'max-files-changed' configs to allow capping number of labels added (#923)
* README.md: drop trailing whitespace

* Add 'changed-files-labels-limit' config to allow capping number of labels added

When a repository has many components, each with a changed-files label,
a large refactor ends up with the labeler spamming the pull request
with label changes. The end result is not very useful as it's not
very readable, and due to how github automatically hides comments
when label changes overflow the discussion tab, it means useful
information is hidden and one has to manually click "Load more..."
dozens of time every time the page is loaded.

Add a changed-files-labels-limit top level config knob. If more than the
configured limit of labels is set to be added, none are added.
This only affects changed-files labels.

* Add 'max-files-changed' config to allow capping number of files for labelling

When a PR modifies a very large number of files (e.g., tree-wide
refactors, automated code formatting), this new options allows
skipping file-based labeling entirely when the number of files
that are changed hits the configured limit.

Fixes https://github.com/actions/labeler/issues/486
2026-03-26 10:03:12 -05:00
Chiranjib Swain
25abb3cad4 Improve Labeler Action Documentation and Error Handling for Permissions (#897)
* Update README.md and labeler.ts to clarify permissions for GitHub Labeler Action

* Update dist/index.js with latest build changes

* Update README.md to clarify manual label creation as an alternative to granting issues write permission

* Fix labeler error handling to ensure case-insensitive check for unauthorized access

* Refactor error handling in labeler to throw an error for unauthorized access instead of logging

* Add tests for labeler error handling and improve error reporting
2025-09-19 14:46:04 -05:00
MaksimZhukov
9181355e36 Apply suggestions for the beta vesrion and update the documentation 2023-10-31 13:09:20 +01:00
MaksimZhukov
917e5cce72 Merge branch 'main' 2023-10-24 12:11:31 +02:00
MaksimZhukov
f4eefdc659 [Beta] Implement the new structure of the match object for the changed-files section (#680)
* Implement the new structure of the match object for changed files section

* Replace inner loops with the find method
2023-09-20 13:43:39 +02:00
Eric Cornelissen
b3ae1bded7 Make jest-each a devDependency (#611)
* Make `jest-each` a devDependency

Change the dependency on `jest-each` from a regular dependency to a
development dependency (devDependency) as it is only used in tests.

* Remove `jest-each` and use `test-each` instead
2023-07-11 14:57:50 +02:00
Nathan Hammond
be13bbd1b7 Early exit when no files are changed. (#456)
* Early exit when no files are changed.

As a consequence of the `checkAll` function call returning `true` if the length of `changedFiles` is 0, this must early-exit in order to avoid labeling empty PRs.

* Update dist.

* Update for new code styles.

* review changes requested

* Update dist.

* chore: prettify code

---------

Co-authored-by: MaksimZhukov <maksimzhukov@github.com>
Co-authored-by: IvanZosimov <ivanzosimov@github.com>
2023-07-07 16:35:16 +02:00
Liam Stanley
994304c5d5 feat(config): support reading from local file if it exists (#394)
* feat(config): support reading from local file if it exists

Signed-off-by: Liam Stanley <me@liamstanley.io>

* fix: fix review point, update logic

* docs: update readme

* docs: update readme

* feat: add additional logging

* chore: update licenses

* docs: fix review point in readme.md

---------

Signed-off-by: Liam Stanley <me@liamstanley.io>
Co-authored-by: IvanZosimov <ivanzosimov@github.com>
2023-07-07 12:44:54 +02:00
Mark Ridgwell
327d35fdca Added ability to pass in an optional PR number as a parameter (#349)
* Adding pr-number as an optional parameter

* Updated README

* Tests on the pr-number parameter

* Added missing | to table

* re-built script

* Adding support for multiple pr-numbers

* excluded .idea

* Updated readme to reflect that there might be more than one PR

* Additional warning

* Removed unused

* Reformatted and re-built

* Corrected message

* Removed required check

* Added (s) to pull request numbers in the description

Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>

* Reworded PR-number parameter description

Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>

* adding getMultilineInput into the tests

* Fixing tests for single pr

* Fixing tests for multiple prs

* Updated README.md to make it more obvious that it can take a list of PRs

* Added example that labels PR's 1-3

* Handled no pull requests better (from code review)

* Handled no pull requests better (from code review)

* Handled missing pull request better (from code review)

* Back out suggested change as it broke the tests

* Rebuilt dist

* Update src/labeler.ts

Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>

* Added Emphasis to the note

Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>

* Changed mockInput for pr-number to be string[]

---------

Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>
2023-07-06 17:10:50 +02:00
Daniel Shteremberg
0967ca812e Added output (#60)
* Added output

* removed formatting changes

* more formatting changes

* Fix merge conflicts

* Small test refactoring

* tests are passing

* Add a test

* Add a small jest mock for addLabels. Not used.

* Add tests for more cases

* get rid of an unused jest mock

* fix review points

* rebuild + minor README fix

* fix review points

* update tests

* fix formatting

* add tests, fix bug

* cleanup

---------

Co-authored-by: Daniel Shteremberg <dshteremberg@labelbox.com>
Co-authored-by: Daniel Shteremberg <Daniel@Daniel-Shterembergs-MacBook-Pro.local>
Co-authored-by: Patrick Ellis <patrick.j.ellis@gmail.com>
Co-authored-by: Andrey Lobanovich <andrei.lobanovich@akvelon.com>
2023-06-29 12:45:24 +02:00
Mark Massoud
7a202e6428 fix: Limit number of labels added to 100 (#497)
* push to excess labels to avoid reaching the limit

* build dist

* never set more than 100 labels

* use splice instead of set

* ignore IDE folders

* install @octokit/plugin-retry

* always setLabels

* fix indentations

* fix specs

* add spec for excess labels

* prettier

* licensed cache

* revert to !!core.getInput('sync-labels')

* better warning for exceeded labels

* keep manually-added labels

* nest the dedupe logic

* rename `removeLabel` to `removeLabelFromList` to avoid confusion

* use Sets, and issue a call only if labels have actually changed

* remove IDE config folders from gitignore

* remove obsolete duplucation check

---------

Co-authored-by: Mark Massoud <mark@unrealcloud.io>
2023-06-21 11:49:43 +02:00
Alexander Kachkaev
71d2484daa Address review comment 2023-05-31 18:46:23 +01:00
Alexander Kachkaev
e3b3815c8d Further diff reduction 2023-05-31 01:54:22 +01:00
Alexander Kachkaev
44414dbc7d Fix tests 2023-05-31 01:50:00 +01:00
Alexander Kachkaev
60f44e7cf1 Fix unrelated test 2023-05-31 01:45:27 +01:00
Alexander Kachkaev
cecbd94bd4 Merge remote-tracking branch 'u/main' into dot-option 2023-05-31 01:35:46 +01:00
MaksimZhukov
26342ba349 fix: correct reading of sync-labels input 2023-05-24 12:21:33 +02:00
MaksimZhukov
e1fcf6fe5b Merge pull request #203 from joshdales/main
Assigns labels based on branch names
2023-05-24 12:01:55 +02:00
MaksimZhukov
5c4deb8a24 Revert "fix: correct reading of sync-labels input. (#480)" (#564)
This reverts commit 751921c443.
2023-05-23 19:06:03 +02:00
Josh Dales
3352df1f2b Bring test I accidently deleted 2023-05-17 07:26:44 -04:00
Josh Dales
57d34076e0 Better check for empty configs in checkAll 2023-05-17 07:05:19 -04:00
Josh Dales
a256a58edf Add check for empty objects in checkAll 2023-05-15 10:45:56 -04:00
Josh Dales
51cc5e079c Update text in test descriptions and logging
Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>
2023-05-11 16:35:05 -04:00
Josh Dales
9cfddd0144 Consolidate the new any change files test into the old one 2023-05-05 09:05:40 -04:00
Josh Dales
3aa0d436e5 Better test description 2023-05-05 09:02:53 -04:00
Josh Dales
9488def29a Update tests and build 2023-05-05 08:58:23 -04:00
Josh Dales
2a3422a64e Better description for the new test 2023-04-13 15:15:10 -04:00
Josh Dales
2637d23bca Add test for when not all globs match any changed file 2023-04-13 14:58:52 -04:00
Alexander Kachkaev
b28379f6ed Cleanup 2023-03-27 09:44:05 +01:00
Alexander Kachkaev
b898cc8e29 Merge remote-tracking branch 'u/main' into dot-option 2023-03-27 09:39:25 +01:00
Josh Dales
4554c0d1af Add a bunch more tests 2023-03-25 16:07:56 -04:00
Josh Dales
3bec9227d1 Add any and all functions for both checks 2023-03-24 21:51:33 -04:00
Josh Dales
a9e07ce8ff Add some new tests 2023-03-24 21:23:51 -04:00
Josh Dales
8e6367ddee Merge branch 'main' into main 2023-03-23 09:02:46 -04:00
Adam Azarchs
751921c443 fix: correct reading of sync-labels input. (#480)
* fix: correct reading of sync-labels input.

Contrary to the assumptions made in the unit tests, core.getInput
always returns a string, and !!'false' is true.

Also updates the unit test to reduce changes of regressions by ensuring
that the mocked getInput returns a string, as it would in production.

Fixes https://github.com/actions/labeler/issues/112

Make sure test catches regressions.

* Rebuild dist/index.js.
2023-03-23 10:47:14 +01:00
Josh Dales
b25e3a8c27 Better wording for the new test 2023-03-20 17:51:58 -04:00
Josh Dales
d31255f7be Make sure that empty config options don't accidently label things 2023-03-20 17:40:28 -04:00
Josh Dales
92990c0c57 Don't allow empty changed-files objects through 2023-03-20 17:40:28 -04:00
Josh Dales
d0d3628020 Add extra tests and use toEqual matcher.
Turns out that toMatchObject would allow extra properties through
2023-03-20 17:40:28 -04:00
Josh Dales
65b7640e45 Add unit tests for toMatchConfig 2023-03-18 17:15:18 -04:00
Josh Dales
e9a1777eb0 Fix linting and formatting 2023-03-18 16:46:54 -04:00
Josh Dales
c31ee1fd86 Add more unit tests for changedFiles.ts 2023-03-18 16:44:50 -04:00
Josh Dales
3af9a47a26 Add unit tests for toChangedFilesMatchConfig 2023-03-18 16:44:49 -04:00
Josh Dales
a988f4eb9d Add todo tests for changedFiles 2023-03-18 16:44:49 -04:00
Josh Dales
1ce9b356f6 Move all changedFiles logic into it's own file 2023-03-18 16:44:49 -04:00
Josh Dales
9f259ee115 Rename checkGlobs to checkMatchConfigs and check each property 2023-03-18 16:44:49 -04:00
Josh Dales
90ef37079a Merge branch 'actions:main' into main 2023-03-18 16:44:40 -04:00
Ivan
8d81f881dd Add and configure ESLint and update configuration for Prettier (#508)
* Add ESLint and update Prettier

* Rebuild action

* Update package.json
2023-03-09 15:02:17 +02:00
Josh Dales
394a01bde3 Make getBranchName argument non-optional 2023-03-03 11:15:48 -05:00
Josh Dales
2a5bc55cbf Fix bad test descriptions
Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>
2023-03-03 09:28:40 -05:00