mszostok / codeowners-validator

The GitHub CODEOWNERS file validator
Apache License 2.0
217 stars 47 forks source link

Discussion: Support to ignore @ghost #52

Closed LetticiaNicoli closed 3 years ago

LetticiaNicoli commented 3 years ago

I have a scenario in my CODEOWNERS file, which I define as the owner of a path is @ghost because it's a trick to avoid getting review requests. The problem is that when I run the checker through GH actions, it returns this error:

[err] line 13: User "@ghost" is not a member of the organization

(because in fact, this "user" does not exist)

Reading the documentation, I thought that perhaps not_owned_checker_skip_patterns could solve this problem. But I couldn't solve it 😢

Do you have any other ideas?

Thanks 🌷

LetticiaNicoli commented 3 years ago

PR opened https://github.com/mszostok/codeowners-validator/pull/53

mszostok commented 3 years ago

Hi @LetticiaNicoli

Thanks for reporting that problem.

Just a little context: The not_owned_checker_skip_patterns it is a config for Not Owned File Checker and allows you to ignore patterns. For example, you can specify * and as a result, the * pattern from the CODEOWNERS file will be ignored and files owned by this pattern will be reported as unowned unless a later specific pattern will match that path. It's useful because often we have default owners entry at the begging of the CODOEWNERS files, so with * always all files have an owner. But sometimes you want to ensure that the list maintained by the default codeowners is empty or short and here not_owned_checker_skip_patterns option is helpful.

Regarding your problem, first, we need to take a look at the CODEOWNERS file:

*       @global-owner1 @global-owner2

so the syntax is pattern owner1..owner2. In your case you want to skip/whitelist owner in case of Valid Owner Checker.

Unfortunately, it's not possible with the current version but what we can do is to add ignore_owners which takes a list of owners e.g. users, teams etc. that should be ignored by Valid Owner Checker.

Thanks also for the contribution, I will take a look on that PR :)

LetticiaNicoli commented 3 years ago

Hi @mszostok 😄 Thanks for the explanation! Now I better understood the use of the not_owned_checker_skip_patterns. Your project fits very well in our scenario! We'll take a look at your feedback on PR 🎉

mszostok commented 3 years ago

Hi, I decided to merge the PR as it was in general a 100% valid case. I extracted the generalization logic to a separate issue 👍 The user-facing behavior will stay the same, so by default the @ghost user will be deleted :)

Thanks for your interest in this project and your active support!

I will try to do a release with this enhancement this Sunday :)

Nuru commented 3 years ago

I have a scenario in my CODEOWNERS file, which I define as the owner of a path is @ghost because it's a trick to avoid getting review requests. The problem is that when I run the checker through GH actions, it returns this error:

[err] line 13: User "@ghost" is not a member of the organization

(because in fact, this "user" does not exist)

@LetticiaNicoli If the "ghost" user does not exist, it will invalidate the entire CODEOWNERS file. From the documenation:

If any line in your CODEOWNERS file contains invalid syntax, the file will not be detected and will not be used to request reviews. Invalid syntax includes inline comments and user or team names that do not exist on GitHub.