@@ -10,6 +10,7 @@ import (
1010 "log"
1111 "net/http"
1212 "os"
13+ "path/filepath"
1314 "time"
1415
1516 "github.com/spf13/cobra"
@@ -142,6 +143,8 @@ func buildRepositoryConfigurationFiles(token string) error {
142143 fmt .Println ("Building repository configuration files ..." )
143144 fmt .Println ("Fetching repository configuration from codacy ..." )
144145
146+ localCodacyDir := config .Config .LocalCodacyDirectory ()
147+
145148 // API call to fetch settings
146149 url := CodacyApiBase + "/2.0/project/analysis/configuration"
147150
@@ -198,7 +201,7 @@ func buildRepositoryConfigurationFiles(token string) error {
198201 eslintDomainConfiguration := convertAPIToolConfigurationToDomain (* eslintApiConfiguration )
199202 eslintConfigurationString := tools .CreateEslintConfig (eslintDomainConfiguration )
200203
201- eslintConfigFile , err := os .Create ("eslint.config.mjs" )
204+ eslintConfigFile , err := os .Create (filepath . Join ( localCodacyDir , "eslint.config.mjs" ) )
202205 if err != nil {
203206 return fmt .Errorf ("failed to create eslint config file: %v" , err )
204207 }
@@ -210,7 +213,7 @@ func buildRepositoryConfigurationFiles(token string) error {
210213 }
211214 fmt .Println ("ESLint configuration created based on Codacy settings" )
212215 } else {
213- err = createDefaultEslintConfigFile ()
216+ err = createDefaultEslintConfigFile (localCodacyDir )
214217 if err != nil {
215218 return fmt .Errorf ("failed to create default ESLint config: %v" , err )
216219 }
@@ -220,13 +223,13 @@ func buildRepositoryConfigurationFiles(token string) error {
220223 // Trivy configuration
221224 trivyApiConfiguration := extractTrivyConfiguration (apiToolConfigurations )
222225 if trivyApiConfiguration != nil {
223- err = createTrivyConfigFile (* trivyApiConfiguration )
226+ err = createTrivyConfigFile (* trivyApiConfiguration , localCodacyDir )
224227 if err != nil {
225228 return fmt .Errorf ("failed to create Trivy config: %v" , err )
226229 }
227230 fmt .Println ("Trivy configuration created based on Codacy settings" )
228231 } else {
229- err = createDefaultTrivyConfigFile ()
232+ err = createDefaultTrivyConfigFile (localCodacyDir )
230233 if err != nil {
231234 return fmt .Errorf ("failed to create default Trivy config: %v" , err )
232235 }
@@ -236,13 +239,13 @@ func buildRepositoryConfigurationFiles(token string) error {
236239 // PMD configuration
237240 pmdApiConfiguration := extractPMDConfiguration (apiToolConfigurations )
238241 if pmdApiConfiguration != nil {
239- err = createPMDConfigFile (* pmdApiConfiguration )
242+ err = createPMDConfigFile (* pmdApiConfiguration , localCodacyDir )
240243 if err != nil {
241244 return fmt .Errorf ("failed to create PMD config: %v" , err )
242245 }
243246 fmt .Println ("PMD configuration created based on Codacy settings" )
244247 } else {
245- err = createDefaultPMDConfigFile ()
248+ err = createDefaultPMDConfigFile (localCodacyDir )
246249 if err != nil {
247250 return fmt .Errorf ("failed to create default PMD config: %v" , err )
248251 }
@@ -318,16 +321,16 @@ func extractPMDConfiguration(toolConfigurations []CodacyToolConfiguration) *Coda
318321 return nil
319322}
320323
321- func createPMDConfigFile (config CodacyToolConfiguration ) error {
324+ func createPMDConfigFile (config CodacyToolConfiguration , localCodacyDir string ) error {
322325 pmdDomainConfiguration := convertAPIToolConfigurationToDomain (config )
323326 pmdConfigurationString := tools .CreatePmdConfig (pmdDomainConfiguration )
324- return os .WriteFile ("pmd-ruleset.xml" , []byte (pmdConfigurationString ), 0644 )
327+ return os .WriteFile (filepath . Join ( localCodacyDir , "pmd-ruleset.xml" ) , []byte (pmdConfigurationString ), 0644 )
325328}
326329
327- func createDefaultPMDConfigFile () error {
330+ func createDefaultPMDConfigFile (localCodacyDir string ) error {
328331 emptyConfig := tools.ToolConfiguration {}
329332 content := tools .CreatePmdConfig (emptyConfig )
330- return os .WriteFile ("pmd-ruleset.xml" , []byte (content ), 0644 )
333+ return os .WriteFile (filepath . Join ( localCodacyDir , "pmd-ruleset.xml" ) , []byte (content ), 0644 )
331334}
332335
333336type CodacyToolConfiguration struct {
@@ -347,15 +350,15 @@ type ParameterConfiguration struct {
347350}
348351
349352// createTrivyConfigFile creates a trivy.yaml configuration file based on the API configuration
350- func createTrivyConfigFile (config CodacyToolConfiguration ) error {
353+ func createTrivyConfigFile (config CodacyToolConfiguration , localCodacyDir string ) error {
351354 // Convert CodacyToolConfiguration to tools.ToolConfiguration
352355 trivyDomainConfiguration := convertAPIToolConfigurationForTrivy (config )
353356
354357 // Use the shared CreateTrivyConfig function to generate the config content
355358 trivyConfigurationString := tools .CreateTrivyConfig (trivyDomainConfiguration )
356359
357360 // Write to file
358- return os .WriteFile ("trivy.yaml" , []byte (trivyConfigurationString ), 0644 )
361+ return os .WriteFile (filepath . Join ( localCodacyDir , "trivy.yaml" ) , []byte (trivyConfigurationString ), 0644 )
359362}
360363
361364// convertAPIToolConfigurationForTrivy converts API tool configuration to domain model for Trivy
@@ -399,21 +402,21 @@ func convertAPIToolConfigurationForTrivy(config CodacyToolConfiguration) tools.T
399402}
400403
401404// createDefaultTrivyConfigFile creates a default trivy.yaml configuration file
402- func createDefaultTrivyConfigFile () error {
405+ func createDefaultTrivyConfigFile (localCodacyDir string ) error {
403406 // Use empty tool configuration to get default settings
404407 emptyConfig := tools.ToolConfiguration {}
405408 content := tools .CreateTrivyConfig (emptyConfig )
406409
407410 // Write to file
408- return os .WriteFile ("trivy.yaml" , []byte (content ), 0644 )
411+ return os .WriteFile (filepath . Join ( localCodacyDir , "trivy.yaml" ) , []byte (content ), 0644 )
409412}
410413
411414// createDefaultEslintConfigFile creates a default eslint.config.mjs configuration file
412- func createDefaultEslintConfigFile () error {
415+ func createDefaultEslintConfigFile (localCodacyDir string ) error {
413416 // Use empty tool configuration to get default settings
414417 emptyConfig := tools.ToolConfiguration {}
415418 content := tools .CreateEslintConfig (emptyConfig )
416419
417420 // Write to file
418- return os .WriteFile ("eslint.config.mjs" , []byte (content ), 0644 )
421+ return os .WriteFile (filepath . Join ( localCodacyDir , "eslint.config.mjs" ) , []byte (content ), 0644 )
419422}
0 commit comments