8
8
core_policy "github.com/diggerhq/digger/cli/pkg/core/policy"
9
9
"github.com/diggerhq/digger/cli/pkg/policy"
10
10
"github.com/diggerhq/digger/cli/pkg/utils"
11
- ee_policy "github.com/diggerhq/digger/ee/cli/pkg/policy"
12
11
"github.com/diggerhq/digger/libs/comment_utils/reporting"
13
12
"github.com/diggerhq/digger/libs/locking"
14
13
"github.com/diggerhq/digger/libs/orchestrator"
@@ -86,25 +85,11 @@ var lock locking.Lock
86
85
87
86
func PreRun (cmd * cobra.Command , args []string ) {
88
87
89
- if os .Getenv ("NO_BACKEND" ) == "true" {
90
- log .Println ("WARNING: running in 'backendless' mode. Features that require backend will not be available." )
91
- PolicyChecker = policy.NoOpPolicyChecker {}
92
- BackendApi = backend.NoopApi {}
93
- } else {
94
- if os .Getenv ("DIGGER_ORGANISATION" ) == "" {
95
- log .Fatalf ("Token specified but missing organisation: DIGGER_ORGANISATION. Please set this value in action digger_config." )
96
- }
97
- PolicyChecker = policy.DiggerPolicyChecker {
98
- PolicyProvider : & ee_policy.DiggerRepoPolicyProvider {
99
- ManagementRepoUrl : os .Getenv ("DIGGER_MANAGEMENT_REPO" ),
100
- GitToken : os .Getenv ("GITHUB_TOKEN" ),
101
- }}
102
- BackendApi = backend.DiggerApi {
103
- DiggerHost : os .Getenv ("DIGGER_HOSTNAME" ),
104
- AuthToken : os .Getenv ("DIGGER_TOKEN" ),
105
- HttpClient : http .DefaultClient ,
106
- }
107
- }
88
+ hostName := os .Getenv ("DIGGER_HOSTNAME" )
89
+ token := os .Getenv ("DIGGER_TOKEN" )
90
+ orgName := os .Getenv ("DIGGER_ORGANISATION" )
91
+ BackendApi = NewBackendApi (hostName , token )
92
+ PolicyChecker = NewPolicyChecker (hostName , orgName , token )
108
93
109
94
if os .Getenv ("REPORTING_STRATEGY" ) == "comments_per_run" || os .Getenv ("ACCUMULATE_PLANS" ) == "true" {
110
95
ReportStrategy = & reporting.CommentPerRunStrategy {
@@ -119,14 +104,52 @@ func PreRun(cmd *cobra.Command, args []string) {
119
104
}
120
105
121
106
var err error
122
- lock , err = locking .GetLock ()
107
+ if os .Getenv ("NO_BACKEND" ) == "true" {
108
+ lock , err = locking .GetLock ()
109
+ } else {
110
+ log .Printf ("Warning: not performing locking in cli since digger is invoked with orchestrator mode, any arguments to LOCKING_PROVIDER will be ignored" )
111
+ lock = locking.NoOpLock {}
112
+ err = nil
113
+ }
123
114
if err != nil {
124
115
log .Printf ("Failed to create lock provider. %s\n " , err )
125
116
os .Exit (2 )
126
117
}
127
118
log .Println ("Lock provider has been created successfully" )
128
119
}
129
120
121
+ func NewBackendApi (hostName string , authToken string ) core_backend.Api {
122
+ var backendApi core_backend.Api
123
+ if os .Getenv ("NO_BACKEND" ) == "true" {
124
+ log .Println ("WARNING: running in 'backendless' mode. Features that require backend will not be available." )
125
+ backendApi = backend.NoopApi {}
126
+ } else {
127
+ backendApi = backend.DiggerApi {
128
+ DiggerHost : hostName ,
129
+ AuthToken : authToken ,
130
+ HttpClient : http .DefaultClient ,
131
+ }
132
+ }
133
+ return backendApi
134
+ }
135
+
136
+ func NewPolicyChecker (hostname string , organisationName string , authToken string ) core_policy.Checker {
137
+ var policyChecker core_policy.Checker
138
+ if os .Getenv ("NO_BACKEND" ) == "true" {
139
+ log .Println ("WARNING: running in 'backendless' mode. Features that require backend will not be available." )
140
+ policyChecker = policy.NoOpPolicyChecker {}
141
+ } else {
142
+ policyChecker = policy.DiggerPolicyChecker {
143
+ PolicyProvider : & policy.DiggerHttpPolicyProvider {
144
+ DiggerHost : hostname ,
145
+ DiggerOrganisation : organisationName ,
146
+ AuthToken : authToken ,
147
+ HttpClient : http .DefaultClient ,
148
+ }}
149
+ }
150
+ return policyChecker
151
+ }
152
+
130
153
var rootCmd = & cobra.Command {
131
154
Use : "digger" ,
132
155
Short : "An open source IaC orchestration tool" ,
0 commit comments