Socket
Book a DemoInstallSign in
Socket

@pvm/cowners

Package Overview
Dependencies
Maintainers
3
Versions
58
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pvm/cowners

A library for working with CODEOWNERS file

latest
Source
npmnpm
Version
0.56.18
Version published
Weekly downloads
313
-8.21%
Maintainers
3
Weekly downloads
 
Created
Source

@pvm/cowners

A library for working with CODEOWNERS file.

Usage

const { readCodeOwners } = require('@pvm/cowners')

async function main() {
  const codeOwners = await readCodeOwners()
}

Interfaces

OwnersEntry

Structure which holds each valid line with pattern and owners in CODEWNERS file. Here is typescript definition:

interface OwnersGroup {
  attrs: Record<string, string | number | boolean | null>,
  pattern: string,
  owners: string[],
  match(path: string): boolean,
}

Where attrs are being parsed from shebang comments. Example shebang comment with all available cases:

#! int=4 str='cat\'s ball' new=false old=true greet="hello world!" vs=null
* @owners

Api

getGroups(): OwnersGroup[]

Returns all OwnersGroups which has been parsed.

affectedGroups(paths: string[]): IterableIterator<OwnersGroup>

Returns OwnersGroups which related to given paths.

getOwners(paths: string[]): string[]

Get all owners for given paths.

getMajority(paths: string[], opts: GetMajorityOpts = {}): string[]

Get majority of owners required for review merge request. For each mask majority is Math.ceil(owners_for_mask / 2).

GetMajorityOpts.initial

List if initial reviewers.

GetMajorityOpts.exclude

List of reviewers which should be excluded from result.

groupOwnersByMask(paths: string[]): Record<string, string[]>

Get all owners for given paths and group by filename patterns.

FAQs

Package last updated on 02 Jun 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts