Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/chefe/gitlabcodeowners

A golang library to parse and query a CODEOWNERS file from Gitlab.
https://github.com/chefe/gitlabcodeowners

codeowners gitlab gitlab-codeowners

Last synced: about 1 month ago
JSON representation

A golang library to parse and query a CODEOWNERS file from Gitlab.

Awesome Lists containing this project

README

        

[![Go Report Card](https://goreportcard.com/badge/github.com/chefe/gitlabcodeowners)](https://goreportcard.com/report/github.com/chefe/gitlabcodeowners)
[![GitHub Actions](https://github.com/chefe/gitlabcodeowners/workflows/default/badge.svg)](https://github.com/chefe/gitlabcodeowners/actions/workflows/default.yml?query=branch%3Amain)
[![Go Reference](https://pkg.go.dev/badge/github.com/chefe/gitlabcodeowners.svg)](https://pkg.go.dev/github.com/chefe/gitlabcodeowners)

# gitlabcodeowners

```go
import "github.com/chefe/gitlabcodeowners"
```

Package gitlabcodeowners provides parsing and querying function to work with \`CODEOWNERS\` file from Gitlab. See https://docs.gitlab.com/ee/user/project/codeowners for more details.

## Index

- [func GetPossibleCodeOwnersLocations\(\) \[\]string](<#GetPossibleCodeOwnersLocations>)
- [type Approval](<#Approval>)
- [type File](<#File>)
- [func NewCodeOwnersFile\(reader io.Reader\) \(File, error\)](<#NewCodeOwnersFile>)
- [func \(f File\) GetRequiredApprovalsForFile\(path string\) map\[string\]Approval](<#File.GetRequiredApprovalsForFile>)
- [func \(f File\) GetRequiredApprovalsForFiles\(paths \[\]string\) map\[string\]\[\]Approval](<#File.GetRequiredApprovalsForFiles>)


## func [GetPossibleCodeOwnersLocations]()

```go
func GetPossibleCodeOwnersLocations() []string
```

GetPossibleCodeOwnersLocations returns a list of possible locations where a \`CODEOWNERS\` file can be located according to Gitlab.


## type [Approval]()

Approval describes an approval required by a rule in the \`CODEOWNERS\` file.

```go
type Approval struct {
Pattern string
Approvals int
Owners []string
}
```


## type [File]()

File is a representation of a parsed \`CODEOWNERS\` file.

```go
type File struct {
// contains filtered or unexported fields
}
```


### func [NewCodeOwnersFile]()

```go
func NewCodeOwnersFile(reader io.Reader) (File, error)
```

NewCodeOwnersFile tries to parse the given description and returns a \`File\` instance if parsing succeeded otherwise it return an error.


### func \(File\) [GetRequiredApprovalsForFile]()

```go
func (f File) GetRequiredApprovalsForFile(path string) map[string]Approval
```

GetRequiredApprovalsForFile returns a map of all approvals which apply to the file given by it's path. All path need to start with a \`/\` which represents the root folder of the repository.


### func \(File\) [GetRequiredApprovalsForFiles]()

```go
func (f File) GetRequiredApprovalsForFiles(paths []string) map[string][]Approval
```

GetRequiredApprovalsForFiles returns a map of all approvals which apply to the files given by their path. All paths need to start with a \`/\` which represents the root folder of the repository.

Generated by [gomarkdoc]()