added base logic for search pj and filtered files of branches

This commit is contained in:
Pavel 2024-07-29 12:39:27 +03:00
parent 81ef860c2c
commit 4fef222482
2 changed files with 51 additions and 1 deletions

@ -1,5 +1,55 @@
package main
func main() {
import (
"fmt"
"github.com/xanzy/go-gitlab"
"log"
"os"
)
const (
gitlabToken string = "glpat-soV6sDQnNdNTFVxv7u44"
gitlabUrl string = "https://penahub.gitlab.yandexcloud.net/api/v4"
)
func main() {
git, err := gitlab.NewClient(gitlabToken, gitlab.WithBaseURL(gitlabUrl))
if err != nil {
log.Fatalf("failed create client: %v", err)
}
projects, _, err := git.Projects.ListProjects(&gitlab.ListProjectsOptions{})
if err != nil {
log.Fatalf("failed getting projects: %v", err)
}
resultFile, err := os.Create("report.txt")
if err != nil {
log.Fatalf("failed create report file: %v", err)
}
defer resultFile.Close()
for _, pj := range projects {
changes, err := getChangelog(git, pj.ID, pj.Name)
if err != nil {
log.Printf("Error getting changelogs for %s: %v", pj.Name, err)
continue
}
if len(changes) > 0 {
fmt.Fprintf(resultFile, "Repository: %s\n", pj.Name)
for _, change := range changes {
fmt.Fprintln(resultFile, change)
}
fmt.Fprintln(resultFile)
}
}
}
func getChangelog(git *gitlab.Client, pjID int, pjName string) ([]string, error) {
fmt.Println(git.RepositoryFiles.GetFile(pjID, "cmd/main.go", &gitlab.GetFileOptions{Ref: gitlab.String("main")}))
fmt.Println(pjName)
return []string{}, nil
}