@@ -144,6 +144,12 @@ func buildRepositoryConfigurationFiles(token string) error {
144144 fmt .Println ("Fetching repository configuration from codacy ..." )
145145
146146 localCodacyDir := config .Config .LocalCodacyDirectory ()
147+ toolsConfigDir := filepath .Join (localCodacyDir , "tools-configs" )
148+
149+ // Create tools-configs directory if it doesn't exist
150+ if err := os .MkdirAll (toolsConfigDir , 0777 ); err != nil {
151+ return fmt .Errorf ("failed to create tools-configs directory: %w" , err )
152+ }
147153
148154 // API call to fetch settings
149155 url := CodacyApiBase + "/2.0/project/analysis/configuration"
@@ -201,7 +207,7 @@ func buildRepositoryConfigurationFiles(token string) error {
201207 eslintDomainConfiguration := convertAPIToolConfigurationToDomain (* eslintApiConfiguration )
202208 eslintConfigurationString := tools .CreateEslintConfig (eslintDomainConfiguration )
203209
204- eslintConfigFile , err := os .Create (filepath .Join (localCodacyDir , "eslint.config.mjs" ))
210+ eslintConfigFile , err := os .Create (filepath .Join (toolsConfigDir , "eslint.config.mjs" ))
205211 if err != nil {
206212 return fmt .Errorf ("failed to create eslint config file: %v" , err )
207213 }
@@ -213,7 +219,7 @@ func buildRepositoryConfigurationFiles(token string) error {
213219 }
214220 fmt .Println ("ESLint configuration created based on Codacy settings" )
215221 } else {
216- err = createDefaultEslintConfigFile (localCodacyDir )
222+ err = createDefaultEslintConfigFile (toolsConfigDir )
217223 if err != nil {
218224 return fmt .Errorf ("failed to create default ESLint config: %v" , err )
219225 }
@@ -223,13 +229,13 @@ func buildRepositoryConfigurationFiles(token string) error {
223229 // Trivy configuration
224230 trivyApiConfiguration := extractTrivyConfiguration (apiToolConfigurations )
225231 if trivyApiConfiguration != nil {
226- err = createTrivyConfigFile (* trivyApiConfiguration , localCodacyDir )
232+ err = createTrivyConfigFile (* trivyApiConfiguration , toolsConfigDir )
227233 if err != nil {
228234 return fmt .Errorf ("failed to create Trivy config: %v" , err )
229235 }
230236 fmt .Println ("Trivy configuration created based on Codacy settings" )
231237 } else {
232- err = createDefaultTrivyConfigFile (localCodacyDir )
238+ err = createDefaultTrivyConfigFile (toolsConfigDir )
233239 if err != nil {
234240 return fmt .Errorf ("failed to create default Trivy config: %v" , err )
235241 }
@@ -239,13 +245,13 @@ func buildRepositoryConfigurationFiles(token string) error {
239245 // PMD configuration
240246 pmdApiConfiguration := extractPMDConfiguration (apiToolConfigurations )
241247 if pmdApiConfiguration != nil {
242- err = createPMDConfigFile (* pmdApiConfiguration , localCodacyDir )
248+ err = createPMDConfigFile (* pmdApiConfiguration , toolsConfigDir )
243249 if err != nil {
244250 return fmt .Errorf ("failed to create PMD config: %v" , err )
245251 }
246252 fmt .Println ("PMD configuration created based on Codacy settings" )
247253 } else {
248- err = createDefaultPMDConfigFile (localCodacyDir )
254+ err = createDefaultPMDConfigFile (toolsConfigDir )
249255 if err != nil {
250256 return fmt .Errorf ("failed to create default PMD config: %v" , err )
251257 }
@@ -321,16 +327,16 @@ func extractPMDConfiguration(toolConfigurations []CodacyToolConfiguration) *Coda
321327 return nil
322328}
323329
324- func createPMDConfigFile (config CodacyToolConfiguration , localCodacyDir string ) error {
330+ func createPMDConfigFile (config CodacyToolConfiguration , toolsConfigDir string ) error {
325331 pmdDomainConfiguration := convertAPIToolConfigurationToDomain (config )
326332 pmdConfigurationString := tools .CreatePmdConfig (pmdDomainConfiguration )
327- return os .WriteFile (filepath .Join (localCodacyDir , "pmd-ruleset.xml" ), []byte (pmdConfigurationString ), 0644 )
333+ return os .WriteFile (filepath .Join (toolsConfigDir , "pmd-ruleset.xml" ), []byte (pmdConfigurationString ), 0644 )
328334}
329335
330- func createDefaultPMDConfigFile (localCodacyDir string ) error {
336+ func createDefaultPMDConfigFile (toolsConfigDir string ) error {
331337 emptyConfig := tools.ToolConfiguration {}
332338 content := tools .CreatePmdConfig (emptyConfig )
333- return os .WriteFile (filepath .Join (localCodacyDir , "pmd-ruleset.xml" ), []byte (content ), 0644 )
339+ return os .WriteFile (filepath .Join (toolsConfigDir , "pmd-ruleset.xml" ), []byte (content ), 0644 )
334340}
335341
336342type CodacyToolConfiguration struct {
@@ -350,15 +356,15 @@ type ParameterConfiguration struct {
350356}
351357
352358// createTrivyConfigFile creates a trivy.yaml configuration file based on the API configuration
353- func createTrivyConfigFile (config CodacyToolConfiguration , localCodacyDir string ) error {
359+ func createTrivyConfigFile (config CodacyToolConfiguration , toolsConfigDir string ) error {
354360 // Convert CodacyToolConfiguration to tools.ToolConfiguration
355361 trivyDomainConfiguration := convertAPIToolConfigurationForTrivy (config )
356362
357363 // Use the shared CreateTrivyConfig function to generate the config content
358364 trivyConfigurationString := tools .CreateTrivyConfig (trivyDomainConfiguration )
359365
360366 // Write to file
361- return os .WriteFile (filepath .Join (localCodacyDir , "trivy.yaml" ), []byte (trivyConfigurationString ), 0644 )
367+ return os .WriteFile (filepath .Join (toolsConfigDir , "trivy.yaml" ), []byte (trivyConfigurationString ), 0644 )
362368}
363369
364370// convertAPIToolConfigurationForTrivy converts API tool configuration to domain model for Trivy
@@ -402,21 +408,21 @@ func convertAPIToolConfigurationForTrivy(config CodacyToolConfiguration) tools.T
402408}
403409
404410// createDefaultTrivyConfigFile creates a default trivy.yaml configuration file
405- func createDefaultTrivyConfigFile (localCodacyDir string ) error {
411+ func createDefaultTrivyConfigFile (toolsConfigDir string ) error {
406412 // Use empty tool configuration to get default settings
407413 emptyConfig := tools.ToolConfiguration {}
408414 content := tools .CreateTrivyConfig (emptyConfig )
409415
410416 // Write to file
411- return os .WriteFile (filepath .Join (localCodacyDir , "trivy.yaml" ), []byte (content ), 0644 )
417+ return os .WriteFile (filepath .Join (toolsConfigDir , "trivy.yaml" ), []byte (content ), 0644 )
412418}
413419
414420// createDefaultEslintConfigFile creates a default eslint.config.mjs configuration file
415- func createDefaultEslintConfigFile (localCodacyDir string ) error {
421+ func createDefaultEslintConfigFile (toolsConfigDir string ) error {
416422 // Use empty tool configuration to get default settings
417423 emptyConfig := tools.ToolConfiguration {}
418424 content := tools .CreateEslintConfig (emptyConfig )
419425
420426 // Write to file
421- return os .WriteFile (filepath .Join (localCodacyDir , "eslint.config.mjs" ), []byte (content ), 0644 )
427+ return os .WriteFile (filepath .Join (toolsConfigDir , "eslint.config.mjs" ), []byte (content ), 0644 )
422428}
0 commit comments