PHPackages                             dzunke/panaly-codeowners - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. dzunke/panaly-codeowners

ActiveLibrary

dzunke/panaly-codeowners
========================

A Panaly plugin that makes it able to write paths from a CODEOWNERS file to metrics

07[1 PRs](https://github.com/DZunke/panaly-codeowners/pulls)PHPCI passing

Since Aug 13Pushed 7mo ago1 watchersCompare

[ Source](https://github.com/DZunke/panaly-codeowners)[ Packagist](https://packagist.org/packages/dzunke/panaly-codeowners)[ RSS](/packages/dzunke-panaly-codeowners/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

Panaly - Project Analyzer - CODEOWNERS Plugin
=============================================

[](#panaly---project-analyzer---codeowners-plugin)

The plugin to the [Panaly Project Analyzer](https://github.com/DZunke/panaly) can be utilized to enable metrics which are supporting paths receiving them from a [CODEOWNERS](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)file.

Example Configuration
---------------------

[](#example-configuration)

```
# panaly.dist.yaml
plugins:
    DZunke\PanalyCodeOwners\CodeOwnersPlugin:
        codeowners: CODEOWNERS
        exclude_directories: [ 'vendor' ]
        replace:
            -   metric: filesystem.file_count
                type: relative
                write: paths
                option: paths
                owners: [ '@Hulk', '@DrStrange' ]

groups:
    ownership:
        title: "Information around the Project Ownership"
        metrics:
            unowned_directories: ~
            owned_files_count:
                owners: [ '@my_owner_group' ]
            owned_files_list:
                owners: [ '@my_owner_group' ]
            owned_directories_count:
                owners: [ '@my_owner_group', '@another_owner_group' ]
            owned_directories_list:
                owners: [ '@my_owner_group', '@another_owner_group' ]
```

Options for single metric replacement
-------------------------------------

[](#options-for-single-metric-replacement)

OptionDescriptionmetric**(Required)** The unique naming of the metric were an option should be replaced.option**(Required)** The option in the given metric that should be replaced with the listing parsed from the code owners file.owners**(Required)** A list of owners that should be searched for in the codeowners file. The results will be merged together and hand over to the metric option.type**(Optional)** can be `relative` or `absolute`. The paths will be given relative to the cwd path or absolute. In default the relative type is given.write**(Optional)** can be `files` or `paths`. It defines which of the owned types will be given. In default the option is set to `both` and so everything will be given - beware, because all paths are parsed for their files - so the list can be long.Available Metrics
-----------------

[](#available-metrics)

**Unowned Directories**

The directory count with the name `unowned_directories` gives an `Table` result with a listing of all unowned directories. Beware that the list can be very long. There are no options available. The CODEOWNER file from the plugin options is utilized.

**Owned Files Count**

The file count with the name `owned_files_count` gives an `IntegerValue` result with a summarization of all owned files of specific owners. The owners option has to be given to let the metric work correct, otherwise it will return a zero value.

OptionDescriptionownersAn array of owners that should be summarized to a single integer value.**Owned Files Listing**

The file count with the name `owned_files_list` gives an `Table` result with a listing of all owned files with relative path of specific owners. The owners option has to be given to let the metric work correct, otherwise it will return an empty list.

OptionDescriptionownersAn array of owners that should be summarized to a single integer value.**Owned Directories Count**

The directory count with the name `owned_directories_count` gives an `IntegerValue` result with a summarization of all owned directories of specific owners. The owners option has to be given to let the metric work correct, otherwise it will return a zero value.

OptionDescriptionownersAn array of owners that should be summarized to a single integer value.**Owned Directory Listing**

The file count with the name `owned_directories_list` gives an `Table` result with a listing of all owned directories with relative path of specific owners. The owners option has to be given to let the metric work correct, otherwise it will return an empty list.

OptionDescriptionownersAn array of owners that should be summarized to a single integer value.Known Problems
--------------

[](#known-problems)

- There is no general specification for the `CODEOWNERS` file, so currently just the [Github specification](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners)is supported
    - For example the [Gitlab specification](https://docs.gitlab.com/ee/user/project/codeowners/reference.html) with sections and section owners is not supported

Thanks and License
------------------

[](#thanks-and-license)

**Panaly Project Analyzer - CODEOWNERS Plugin** © 2024+, Denis Zunke. Released utilizing the [MIT License](https://mit-license.org/).

> GitHub [@dzunke](https://github.com/DZunke) · Twitter [@DZunke](https://twitter.com/DZunke)

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance44

Moderate activity, may be stable

Popularity4

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity19

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/0cbe8d66405659eb7cf0776a653954c4c8ea3817c00d026a9cd165b86c80e38f?d=identicon)[DZunke](/maintainers/DZunke)

---

Top Contributors

[![DZunke](https://avatars.githubusercontent.com/u/1244235?v=4)](https://github.com/DZunke "DZunke (15 commits)")

---

Tags

codeownersmetricspanalyphpquality

### Embed Badge

![Health badge](/badges/dzunke-panaly-codeowners/health.svg)

```
[![Health](https://phpackages.com/badges/dzunke-panaly-codeowners/health.svg)](https://phpackages.com/packages/dzunke-panaly-codeowners)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
