-
Notifications
You must be signed in to change notification settings - Fork 0
/
cleaner.go
66 lines (52 loc) · 1.34 KB
/
cleaner.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
package main
import (
"strings"
utils "github.com/ivanetchart/gitlab-registry-cleaner/utils"
log "github.com/sirupsen/logrus"
gitlab "github.com/xanzy/go-gitlab"
)
func main() {
gitlabConfig, err := utils.LoadConfiguration().Validate()
if err != nil {
log.Errorln(err)
return
}
if gitlabConfig.Debug {
log.SetLevel(log.DebugLevel)
}
log.Debugf("Gitlab Token: %s", gitlabConfig.Token)
log.Debugf("Gitlab Project: %s", gitlabConfig.Project)
git := gitlab.NewClient(nil, gitlabConfig.Token)
repositories, _, err := git.ContainerRegistry.ListRegistryRepositories(
gitlabConfig.Project,
&gitlab.ListRegistryRepositoriesOptions{},
)
if err != nil {
log.Errorln(err)
return
}
log.Infof(
"Found these repositories at %s (it will include also the default one for the project):\n - %+v",
gitlabConfig.Project,
strings.Join(utils.GetRepositoriesNames(repositories), "\n - "),
)
log.Debugf(
"Configuration used to delete tags: %s", gitlabConfig,
)
for _, repo := range repositories {
log.Infof(
"Starting to delete tags from repository: %s",
repo.Path,
)
bulkDeleteOpts := utils.BuildGitlabBulkDeleteFromConf(gitlabConfig)
_, bulkErr := git.ContainerRegistry.DeleteRegistryRepositoryTags(
gitlabConfig.Project,
repo.ID,
bulkDeleteOpts,
)
if bulkErr != nil {
log.Errorln(bulkErr)
return
}
}
}