Skip to content

Commit 9fe23f4

Browse files
wip: works, ok in both modes
1 parent 4dbce16 commit 9fe23f4

File tree

8 files changed

+313
-171
lines changed

8 files changed

+313
-171
lines changed

cmd/configsetup/setup.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -434,19 +434,19 @@ func BuildRepositoryConfigurationFiles(flags domain.InitFlags) error {
434434

435435
logVersionConflicts(familyToVersions, toolsWithLatestVersion)
436436

437-
// Generate languages configuration based on API tools response
437+
// Create main config files with all enabled API tools (including cli-config.yaml)
438+
if err := CreateConfigurationFiles(toolsWithLatestVersion, false); err != nil {
439+
return err
440+
}
441+
442+
// Generate languages configuration based on API tools response (after cli-config.yaml is created)
438443
if err := tools.CreateLanguagesConfigFile(toolsWithLatestVersion, toolsConfigDir, uuidToName, flags); err != nil {
439444
return fmt.Errorf("failed to create languages configuration file: %w", err)
440445
}
441446

442447
// Filter out any tools that use configuration file
443448
configuredToolsWithUI := tools.FilterToolsByConfigUsage(toolsWithLatestVersion)
444449

445-
// Create main config files with all enabled API tools
446-
if err := CreateConfigurationFiles(toolsWithLatestVersion, false); err != nil {
447-
return err
448-
}
449-
450450
// Generate config files for tools not using their own config file
451451
return createToolConfigurationFiles(configuredToolsWithUI, flags)
452452
}

codacy-client/client.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,26 @@ func GetRepositoryTools(initFlags domain.InitFlags) ([]domain.Tool, error) {
211211
return nil, err
212212
}
213213

214+
// Get global tools with languages to populate the Languages field
215+
globalTools, err := GetToolsVersions()
216+
if err != nil {
217+
fmt.Printf("Warning: Failed to get global tools for languages: %v\n", err)
218+
return toolsResponse.Data, nil // Return repository tools without languages
219+
}
220+
221+
// Create a map of UUID to languages from global tools
222+
uuidToLanguages := make(map[string][]string)
223+
for _, globalTool := range globalTools {
224+
uuidToLanguages[globalTool.Uuid] = globalTool.Languages
225+
}
226+
227+
// Populate Languages field in repository tools
228+
for i := range toolsResponse.Data {
229+
if languages, exists := uuidToLanguages[toolsResponse.Data[i].Uuid]; exists {
230+
toolsResponse.Data[i].Languages = languages
231+
}
232+
}
233+
214234
return toolsResponse.Data, nil
215235
}
216236

domain/tool.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ type ToolsResponse struct {
77

88
// Tool represents a tool in the Codacy API
99
type Tool struct {
10-
Uuid string `json:"uuid"`
11-
Name string `json:"name"`
12-
Version string `json:"version"`
13-
ShortName string `json:"shortName"`
14-
Prefix string `json:"prefix"`
10+
Uuid string `json:"uuid"`
11+
Name string `json:"name"`
12+
Version string `json:"version"`
13+
ShortName string `json:"shortName"`
14+
Prefix string `json:"prefix"`
15+
Languages []string `json:"languages"`
1516
Settings struct {
1617
Enabled bool `json:"isEnabled"`
1718
HasConfigurationFile bool `json:"hasConfigurationFile"`
Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,25 @@
11
tools:
2-
- name: codacy-enigma-cli
3-
languages: [Multiple]
4-
extensions: []
52
- name: dartanalyzer
63
languages: [Dart]
74
extensions: [.dart]
85
- name: eslint
9-
languages: [JavaScript, TypeScript, JSX, TSX]
6+
languages: [Javascript, TypeScript]
107
extensions: [.js, .jsm, .jsx, .mjs, .ts, .tsx, .vue]
118
- name: lizard
12-
languages: [C, CPP, Java, C#, JavaScript, TypeScript, VueJS, Objective-C, Swift, Python, Ruby, TTCN-3, PHP, Scala, GDScript, Golang, Lua, Rust, Fortran, Kotlin, Solidity, Erlang, Zig, Perl]
9+
languages: [C, CPP, CSharp, Erlang, Fortran, Go, Java, Javascript, Kotlin, Lua, Objective C, PHP, Python, Ruby, Rust, Scala, Solidity, Swift, TypeScript]
1310
extensions: [.c, .cc, .cpp, .cs, .cxx, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .jsx, .kt, .kts, .m, .mjs, .opal, .php, .podspec, .py, .rake, .rb, .rlib, .rs, .scala, .swift, .ts, .tsx, .vue]
1411
- name: pmd
15-
languages: [Java, JavaScript, JSP, Velocity, XML, Apex, Scala, Ruby, VisualForce]
16-
extensions: [.cls, .component, .gemspec, .java, .jbuilder, .js, .jsm, .jsp, .jsx, .mjs, .opal, .page, .podspec, .pom, .rake, .rb, .scala, .trigger, .vm, .vue, .wsdl, .xml, .xsl]
12+
languages: [Apex, JSP, Java, Javascript, PLSQL, SQL, Velocity, VisualForce, XML]
13+
extensions: [.cls, .component, .fnc, .java, .js, .jsm, .jsp, .jsx, .mjs, .page, .pck, .pkb, .pkh, .pks, .plb, .pld, .plh, .pls, .pom, .prc, .sql, .tpb, .tps, .trg, .trigger, .tyb, .typ, .vm, .vue, .wsdl, .xml, .xsl]
1714
- name: pylint
1815
languages: [Python]
1916
extensions: [.py]
2017
- name: revive
2118
languages: [Go]
2219
extensions: [.go]
2320
- name: semgrep
24-
languages: [C, CPP, C#, Generic, Go, Java, JavaScript, JSON, Kotlin, Python, TypeScript, Ruby, Rust, JSX, PHP, Scala, Swift, Terraform]
25-
extensions: [.c, .cc, .cpp, .cs, .cxx, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .json, .jsx, .kt, .kts, .mjs, .opal, .php, .podspec, .py, .rake, .rb, .rlib, .rs, .scala, .swift, .tf, .ts, .tsx, .vue]
21+
languages: [Apex, C, CPP, CSharp, Dockerfile, Go, Java, Javascript, Kotlin, PHP, PLSQL, Python, Ruby, Rust, SQL, Scala, Shell, Swift, Terraform, TypeScript, YAML]
22+
extensions: [.bash, .c, .cc, .cls, .cpp, .cs, .cxx, .dockerfile, .fnc, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .jsx, .kt, .kts, .mjs, .opal, .pck, .php, .pkb, .pkh, .pks, .plb, .pld, .plh, .pls, .podspec, .prc, .py, .rake, .rb, .rlib, .rs, .scala, .sh, .sql, .swift, .tf, .tpb, .tps, .trg, .trigger, .ts, .tsx, .tyb, .typ, .vue, .yaml, .yml]
2623
- name: trivy
27-
languages: [Multiple]
28-
extensions: []
24+
languages: [C, CPP, CSharp, Dart, Dockerfile, Elixir, Go, JSON, Java, Javascript, PHP, Python, Ruby, Rust, Scala, Swift, Terraform, TypeScript, XML, YAML]
25+
extensions: [.c, .cc, .cpp, .cs, .cxx, .dart, .dockerfile, .ex, .exs, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .json, .jsx, .mjs, .opal, .php, .podspec, .pom, .py, .rake, .rb, .rlib, .rs, .scala, .swift, .tf, .ts, .tsx, .vue, .wsdl, .xml, .xsl, .yaml, .yml]
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
tools:
22
- name: eslint
3-
languages: [JavaScript]
3+
languages: [Javascript]
44
extensions: [.js, .jsm, .jsx, .mjs, .vue]
55
- name: lizard
6-
languages: [Java, JavaScript, Python]
6+
languages: [Java, Javascript, Python]
77
extensions: [.java, .js, .jsm, .jsx, .mjs, .py, .vue]
88
- name: pmd
9-
languages: [Java, JavaScript]
9+
languages: [Java, Javascript]
1010
extensions: [.java, .js, .jsm, .jsx, .mjs, .vue]
1111
- name: pylint
1212
languages: [Python]
1313
extensions: [.py]
1414
- name: semgrep
15-
languages: [Java, JavaScript, JSON, Python]
16-
extensions: [.java, .js, .jsm, .json, .jsx, .mjs, .py, .vue]
15+
languages: [Java, Javascript, Python]
16+
extensions: [.java, .js, .jsm, .jsx, .mjs, .py, .vue]
1717
- name: trivy
1818
languages: [Multiple]
1919
extensions: []
Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,25 @@
11
tools:
2-
- name: codacy-enigma-cli
3-
languages: [Multiple]
4-
extensions: []
52
- name: dartanalyzer
63
languages: [Dart]
74
extensions: [.dart]
85
- name: eslint
9-
languages: [JavaScript, TypeScript, JSX, TSX]
6+
languages: [Javascript, TypeScript]
107
extensions: [.js, .jsm, .jsx, .mjs, .ts, .tsx, .vue]
118
- name: lizard
12-
languages: [C, CPP, Java, C#, JavaScript, TypeScript, VueJS, Objective-C, Swift, Python, Ruby, TTCN-3, PHP, Scala, GDScript, Golang, Lua, Rust, Fortran, Kotlin, Solidity, Erlang, Zig, Perl]
9+
languages: [C, CPP, CSharp, Erlang, Fortran, Go, Java, Javascript, Kotlin, Lua, Objective C, PHP, Python, Ruby, Rust, Scala, Solidity, Swift, TypeScript]
1310
extensions: [.c, .cc, .cpp, .cs, .cxx, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .jsx, .kt, .kts, .m, .mjs, .opal, .php, .podspec, .py, .rake, .rb, .rlib, .rs, .scala, .swift, .ts, .tsx, .vue]
1411
- name: pmd
15-
languages: [Java, JavaScript, JSP, Velocity, XML, Apex, Scala, Ruby, VisualForce]
16-
extensions: [.cls, .component, .gemspec, .java, .jbuilder, .js, .jsm, .jsp, .jsx, .mjs, .opal, .page, .podspec, .pom, .rake, .rb, .scala, .trigger, .vm, .vue, .wsdl, .xml, .xsl]
12+
languages: [Apex, JSP, Java, Javascript, PLSQL, SQL, Velocity, VisualForce, XML]
13+
extensions: [.cls, .component, .fnc, .java, .js, .jsm, .jsp, .jsx, .mjs, .page, .pck, .pkb, .pkh, .pks, .plb, .pld, .plh, .pls, .pom, .prc, .sql, .tpb, .tps, .trg, .trigger, .tyb, .typ, .vm, .vue, .wsdl, .xml, .xsl]
1714
- name: pylint
1815
languages: [Python]
1916
extensions: [.py]
2017
- name: revive
2118
languages: [Go]
2219
extensions: [.go]
2320
- name: semgrep
24-
languages: [C, CPP, C#, Generic, Go, Java, JavaScript, JSON, Kotlin, Python, TypeScript, Ruby, Rust, JSX, PHP, Scala, Swift, Terraform]
25-
extensions: [.c, .cc, .cpp, .cs, .cxx, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .json, .jsx, .kt, .kts, .mjs, .opal, .php, .podspec, .py, .rake, .rb, .rlib, .rs, .scala, .swift, .tf, .ts, .tsx, .vue]
21+
languages: [Apex, C, CPP, CSharp, Dockerfile, Go, Java, Javascript, Kotlin, PHP, PLSQL, Python, Ruby, Rust, SQL, Scala, Shell, Swift, Terraform, TypeScript, YAML]
22+
extensions: [.bash, .c, .cc, .cls, .cpp, .cs, .cxx, .dockerfile, .fnc, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .jsx, .kt, .kts, .mjs, .opal, .pck, .php, .pkb, .pkh, .pks, .plb, .pld, .plh, .pls, .podspec, .prc, .py, .rake, .rb, .rlib, .rs, .scala, .sh, .sql, .swift, .tf, .tpb, .tps, .trg, .trigger, .ts, .tsx, .tyb, .typ, .vue, .yaml, .yml]
2623
- name: trivy
27-
languages: [Multiple]
28-
extensions: []
24+
languages: [C, CPP, CSharp, Dart, Dockerfile, Elixir, Go, JSON, Java, Javascript, PHP, Python, Ruby, Rust, Scala, Swift, Terraform, TypeScript, XML, YAML]
25+
extensions: [.c, .cc, .cpp, .cs, .cxx, .dart, .dockerfile, .ex, .exs, .gemspec, .go, .h, .hpp, .ino, .java, .jbuilder, .js, .jsm, .json, .jsx, .mjs, .opal, .php, .podspec, .pom, .py, .rake, .rb, .rlib, .rs, .scala, .swift, .tf, .ts, .tsx, .vue, .wsdl, .xml, .xsl, .yaml, .yml]

0 commit comments

Comments
 (0)