go-gitea / gitea

Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD
https://gitea.com
MIT License
44.09k stars 5.41k forks source link

Codeowners file doesn't support absolute paths #28107

Open otbutz opened 10 months ago

otbutz commented 10 months ago

Description

The codeowners support #10161 introduced in https://github.com/go-gitea/gitea/pull/24910 doesn't seem to support paths starting with /:

# works
docs/*.\\.md
# doesn't
/docs/*.\\.md

This is supported by Githubs syntax: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#example-of-a-codeowners-file

I thought it might be supported by gitea as well because of this example provided in the documentation:

!/assets/.*\\.(bin|exe|msi) @user9

Gitea Version

1.21.0

Can you reproduce the bug on the Gitea demo site?

Yes

Log Gist

No response

Screenshots

No response

Git Version

No response

Operating System

No response

How are you running Gitea?

Binary started via systemd behind a caddy reverse proxy.

Database

None

yp05327 commented 5 months ago

First, I think your example should be:

# works
docs/.*\\.md
# doesn't
/docs/.*\\.md

We get the changed files path by diff-tree which will not contain / ahead of the path. So the sample you provided is actually not supported yet.

!/assets/.*\\.(bin|exe|msi) @user9

This one works because it has ! which means it is a negative rule, and regexp match will always be false, so it worked. But it is not correct, so without !, it won't work. image ↑ the condition