Categorygithub.com/circa10a/github-pr-exporter
modulepackage
0.3.2
Repository: https://github.com/circa10a/github-pr-exporter.git
Documentation: pkg.go.dev

# README

github-pr-exporter

A prometheus exporter for monitoring pull requests for specified users in the last X number of days. Useful for tracking things like hacktoberfest within your org.

Build Status Go Report Card GitHub release (latest by date) Docker Pulls

alt text

Usage

Once started, application will be accessible at http://localhost:8080/metrics

CLI

# Install with Go
go install github.com/circa10a/github-pr-exporter@latest

# Execute
❯ github-pr-exporter -h
Usage of ./github-pr-exporter:
      --config string       Path to config file (default "./config.yaml")
      --days-ago int        How many days back to search for pull requests (default 90)
      --ignore-user-repos   Ignore the user's own repos
      --interval int        How many seconds to wait before refreshing pull request data. Defaults to 6 hours (default 21600)
      --port int            What port to listen on (default 8080)
pflag: help requested

Configuration file

The CLI expects a YAML config file like so:

---
config:
  users:
    - circa10a
    - sindresorhus

You can also look in the examples directory

Docker

docker run -p 8080:8080 -v $PWD/config.yaml:/config.yaml circa10a/github-pr-exporter

docker-compose

First, update examples/config.yaml

Then, to start a preconfigured prometheus + grafana + exporter stack:

docker-compose up

Then you can browse the preconfigured dashboard at http://localhost:3000/d/h_PRluMnk/pull-requests?orgId=1

Metrics

NameTypeCardinalityHelp
pull_requestgauge4A pull request from a user in config. Contains labels user, created_at, link, and status
pull_request_totalgauge0Total number of pull requests created by all users in the configured time window (previous 90 days)

# Structs

Config represents config file read in from --config.
No description provided by the author

# Type aliases

No description provided by the author
User is a github user.
Users are a slice of github users.