-
Notifications
You must be signed in to change notification settings - Fork 0
/
GitlabAuthenticationOptions.go
142 lines (108 loc) · 3.36 KB
/
GitlabAuthenticationOptions.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package asciichgolangpublic
import (
"strings"
)
type GitlabAuthenticationOptions struct {
AccessTokensFromGopass []string
Verbose bool
GitlabUrl string
}
func NewGitlabAuthenticationOptions() (g *GitlabAuthenticationOptions) {
return new(GitlabAuthenticationOptions)
}
func (g *GitlabAuthenticationOptions) GetAccessTokensFromGopass() (accessTokensFromGopass []string, err error) {
if g.AccessTokensFromGopass == nil {
return nil, TracedErrorf("AccessTokensFromGopass not set")
}
if len(g.AccessTokensFromGopass) <= 0 {
return nil, TracedErrorf("AccessTokensFromGopass has no elements")
}
return g.AccessTokensFromGopass, nil
}
func (g *GitlabAuthenticationOptions) GetGitlabUrl() (gitlabUrl string, err error) {
if g.GitlabUrl == "" {
return "", TracedErrorf("GitlabUrl not set")
}
return g.GitlabUrl, nil
}
func (g *GitlabAuthenticationOptions) GetVerbose() (verbose bool, err error) {
return g.Verbose, nil
}
func (g *GitlabAuthenticationOptions) IsAuthenticatingAgainst(serviceName string) (isAuthenticatingAgainst bool, err error) {
gitlabUrl, err := g.GetGitlabUrl()
if err != nil {
return false, err
}
isAuthenticatingAgainst = strings.HasPrefix(serviceName, gitlabUrl)
return isAuthenticatingAgainst, nil
}
func (g *GitlabAuthenticationOptions) IsVerbose() (isVerbose bool) {
return g.Verbose
}
func (g *GitlabAuthenticationOptions) MustGetAccessTokensFromGopass() (accessTokensFromGopass []string) {
accessTokensFromGopass, err := g.GetAccessTokensFromGopass()
if err != nil {
LogGoErrorFatal(err)
}
return accessTokensFromGopass
}
func (g *GitlabAuthenticationOptions) MustGetGitlabUrl() (gitlabUrl string) {
gitlabUrl, err := g.GetGitlabUrl()
if err != nil {
LogGoErrorFatal(err)
}
return gitlabUrl
}
func (g *GitlabAuthenticationOptions) MustGetVerbose() (verbose bool) {
verbose, err := g.GetVerbose()
if err != nil {
LogGoErrorFatal(err)
}
return verbose
}
func (g *GitlabAuthenticationOptions) MustIsAuthenticatingAgainst(serviceName string) (isAuthenticatingAgainst bool) {
isAuthenticatingAgainst, err := g.IsAuthenticatingAgainst(serviceName)
if err != nil {
LogGoErrorFatal(err)
}
return isAuthenticatingAgainst
}
func (g *GitlabAuthenticationOptions) MustSetAccessTokensFromGopass(accessTokensFromGopass []string) {
err := g.SetAccessTokensFromGopass(accessTokensFromGopass)
if err != nil {
LogGoErrorFatal(err)
}
}
func (g *GitlabAuthenticationOptions) MustSetGitlabUrl(gitlabUrl string) {
err := g.SetGitlabUrl(gitlabUrl)
if err != nil {
LogGoErrorFatal(err)
}
}
func (g *GitlabAuthenticationOptions) MustSetVerbose(verbose bool) {
err := g.SetVerbose(verbose)
if err != nil {
LogGoErrorFatal(err)
}
}
func (g *GitlabAuthenticationOptions) SetAccessTokensFromGopass(accessTokensFromGopass []string) (err error) {
if accessTokensFromGopass == nil {
return TracedErrorf("accessTokensFromGopass is nil")
}
if len(accessTokensFromGopass) <= 0 {
return TracedErrorf("accessTokensFromGopass has no elements")
}
g.AccessTokensFromGopass = accessTokensFromGopass
return nil
}
func (g *GitlabAuthenticationOptions) SetGitlabUrl(gitlabUrl string) (err error) {
if gitlabUrl == "" {
return TracedErrorf("gitlabUrl is empty string")
}
g.GitlabUrl = gitlabUrl
return nil
}
func (g *GitlabAuthenticationOptions) SetVerbose(verbose bool) (err error) {
g.Verbose = verbose
return nil
}