mirror of
https://github.com/Luzifer/repo-template.git
synced 2024-11-12 17:32:43 +00:00
Add make-jenkins filter to find Makefiles with jenkins
target
Signed-off-by: Knut Ahlers <knut@ahlers.me>
This commit is contained in:
parent
ce33916809
commit
5122350026
2 changed files with 34 additions and 5 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
repo-template
|
38
filters.go
38
filters.go
|
@ -2,7 +2,9 @@ package main
|
|||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/Luzifer/go_helpers/str"
|
||||
"github.com/google/go-github/github"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
@ -10,10 +12,11 @@ import (
|
|||
type filterFunc func(*github.Repository) bool
|
||||
|
||||
var filters = map[string]filterFunc{
|
||||
"archived": filterArchived,
|
||||
"fork": filterFork,
|
||||
"dockerfile": filterDockerfile,
|
||||
"public": filterPublic,
|
||||
"archived": filterArchived,
|
||||
"dockerfile": filterDockerfile,
|
||||
"fork": filterFork,
|
||||
"make-jenkins": filterMakeJenkins,
|
||||
"public": filterPublic,
|
||||
}
|
||||
|
||||
func filterArchived(repo *github.Repository) bool { return repo.Archived != nil && *repo.Archived }
|
||||
|
@ -33,5 +36,30 @@ func filterDockerfile(repo *github.Repository) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func filterFork(repo *github.Repository) bool { return repo.Fork != nil && *repo.Fork }
|
||||
func filterFork(repo *github.Repository) bool { return repo.Fork != nil && *repo.Fork }
|
||||
|
||||
func filterMakeJenkins(repo *github.Repository) bool {
|
||||
ctx := context.Background()
|
||||
fc, _, resp, err := client.Repositories.GetContents(ctx, *repo.Owner.Login, *repo.Name, "Makefile", nil)
|
||||
if err != nil {
|
||||
if resp.StatusCode == 404 {
|
||||
return false
|
||||
}
|
||||
|
||||
log.WithError(err).Error("Error while looking for Dockerfile")
|
||||
return false
|
||||
}
|
||||
|
||||
if fc.Content == nil {
|
||||
log.Error("File content had no content")
|
||||
return false
|
||||
}
|
||||
|
||||
if str.StringInSlice("jenkins:", strings.Split(*fc.Content, "\n")) {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func filterPublic(repo *github.Repository) bool { return repo.Private != nil && !*repo.Private }
|
||||
|
|
Loading…
Reference in a new issue