diff --git a/config/config.go b/config/config.go index e84c66dc..278c5b0d 100644 --- a/config/config.go +++ b/config/config.go @@ -51,7 +51,7 @@ func Init() Config { } orgs := os.Getenv("ORGS") if orgs != "" { - appConfig.SetOrganisations(strings.Split(repos, ", ")) + appConfig.SetOrganisations(strings.Split(orgs, ", ")) } users := os.Getenv("USERS") if users != "" { diff --git a/exporter/metrics.go b/exporter/metrics.go index 3bd3c161..4137583d 100644 --- a/exporter/metrics.go +++ b/exporter/metrics.go @@ -8,6 +8,11 @@ func AddMetrics() map[string]*prometheus.Desc { APIMetrics := make(map[string]*prometheus.Desc) + APIMetrics["Visibility"] = prometheus.NewDesc( + prometheus.BuildFQName("github", "repo", "visibility"), + "Visibility for given repository, [private - 0, public - 1]", + []string{"repo", "user", "fork", "archived", "license", "language"}, nil, + ) APIMetrics["Stars"] = prometheus.NewDesc( prometheus.BuildFQName("github", "repo", "stars"), "Total number of Stars for given repository", @@ -71,6 +76,11 @@ func (e *Exporter) processMetrics(data []*Datum, rates *RateLimits, ch chan<- pr ch <- prometheus.MustNewConstMetric(e.APIMetrics["Forks"], prometheus.GaugeValue, x.Forks, x.Name, x.Owner.Login, strconv.FormatBool(x.Private), strconv.FormatBool(x.Fork), strconv.FormatBool(x.Archived), x.License.Key, x.Language) ch <- prometheus.MustNewConstMetric(e.APIMetrics["Watchers"], prometheus.GaugeValue, x.Watchers, x.Name, x.Owner.Login, strconv.FormatBool(x.Private), strconv.FormatBool(x.Fork), strconv.FormatBool(x.Archived), x.License.Key, x.Language) ch <- prometheus.MustNewConstMetric(e.APIMetrics["Size"], prometheus.GaugeValue, x.Size, x.Name, x.Owner.Login, strconv.FormatBool(x.Private), strconv.FormatBool(x.Fork), strconv.FormatBool(x.Archived), x.License.Key, x.Language) + if x.Private { + ch <- prometheus.MustNewConstMetric(e.APIMetrics["Visibility"], prometheus.GaugeValue, 0, x.Name, x.Owner.Login, strconv.FormatBool(x.Private), strconv.FormatBool(x.Fork), strconv.FormatBool(x.Archived), x.License.Key, x.Language) + } else { + ch <- prometheus.MustNewConstMetric(e.APIMetrics["Visibility"], prometheus.GaugeValue, 1, x.Name, x.Owner.Login, strconv.FormatBool(x.Fork), strconv.FormatBool(x.Archived), x.License.Key, x.Language) + } for _, release := range x.Releases { for _, asset := range release.Assets {