Skip to content

Commit a6ee34e

Browse files
committed
feature: Handle empty states CY-7485
1 parent 559f673 commit a6ee34e

File tree

4 files changed

+176
-171
lines changed

4 files changed

+176
-171
lines changed

package.json

Lines changed: 41 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -44,90 +44,95 @@
4444
"views": {
4545
"codacy-main": [
4646
{
47-
"id": "codacy:login",
48-
"name": "Connect to Codacy",
49-
"icon": "resources/icons/codacy-logo.svg",
50-
"when": "Codacy:RepositoryManagerStateContext == NeedsAuthentication"
47+
"id": "codacy:statuses",
48+
"name": "Status",
49+
"icon": "$(library)",
50+
"when": "!codacy:hasProject || Codacy:RepositoryManagerStateContext == NeedsAuthentication ||Codacy:RepositoryManagerStateContext == NoRepository || Codacy:RepositoryManagerStateContext == NoRemote || Codacy:RepositoryManagerStateContext == Initializing || (Codacy:RepositoryManagerStateContext == Loaded && Codacy:PullRequestStateContext == NoPullRequest)",
51+
"initialSize": 1,
52+
"collapsed": false
5153
},
5254
{
5355
"id": "codacy:cli",
5456
"name": "Codacy CLI",
55-
"when": "!codacy:cliInstalled && codacy:canInstallCLI",
57+
"when": "codacy:hasProject && !codacy:cliInstalled && codacy:canInstallCLI",
58+
"icon": "$(gear)",
59+
"initialSize": 2
60+
},
61+
{
62+
"id": "codacy:mcp",
63+
"name": "Codacy MCP Server",
64+
"when": "codacy:hasProject && codacy:supportsMCP",
5665
"icon": "$(gear)",
5766
"initialSize": 2
5867
},
5968
{
6069
"id": "codacy:prSummary",
6170
"name": "Pull request",
62-
"when": "Codacy:RepositoryManagerStateContext == Loaded && Codacy:PullRequestStateContext == Loaded",
71+
"when": "codacy:hasProject && codacy:isGitRepository && Codacy:RepositoryManagerStateContext == Loaded && Codacy:PullRequestStateContext == Loaded",
6372
"icon": "$(git-pull-request)",
6473
"initialSize": 3
6574
},
6675
{
6776
"id": "codacy:pullRequests",
6877
"name": "Open pull requests",
69-
"when": "Codacy:RepositoryManagerStateContext == Loaded",
78+
"when": "codacy:hasProject && codacy:isGitRepository && Codacy:RepositoryManagerStateContext == Loaded",
7079
"icon": "$(git-pull-request)",
7180
"initialSize": 3
7281
},
7382
{
7483
"id": "codacy:branchIssues",
7584
"name": "Issue Browser",
76-
"when": "Codacy:RepositoryManagerStateContext == Loaded && Codacy:BranchStateContext == OnAnalysedBranch",
85+
"when": "codacy:hasProject && codacy:isGitRepository && Codacy:RepositoryManagerStateContext == Loaded && Codacy:BranchStateContext == OnAnalysedBranch",
7786
"icon": "$(bug)",
7887
"initialSize": 3
79-
},
80-
{
81-
"id": "codacy:statuses",
82-
"name": "Status",
83-
"icon": "$(library)",
84-
"when": "Codacy:RepositoryManagerStateContext == NoRepository || Codacy:RepositoryManagerStateContext == NoRemote || Codacy:RepositoryManagerStateContext == Initializing || (Codacy:RepositoryManagerStateContext == Loaded && Codacy:PullRequestStateContext == NoPullRequest)",
85-
"initialSize": 1
86-
},
87-
{
88-
"id": "codacy:mcp",
89-
"name": "Codacy MCP Server",
90-
"when": "codacy:supportsMCP",
91-
"icon": "$(gear)",
92-
"initialSize": 2
9388
}
9489
]
9590
},
9691
"viewsWelcome": [
9792
{
98-
"view": "codacy:login",
99-
"contents": "You have not yet signed in with Codacy\n[Connect to Codacy](command:codacy.signIn)",
100-
"when": "Codacy:RepositoryManagerStateContext == NeedsAuthentication"
93+
"view": "codacy:statuses",
94+
"contents": "You are not connected to Codacy.\n[Connect to Codacy](command:codacy.signIn)",
95+
"when": "codacy:hasProject && Codacy:RepositoryManagerStateContext == NeedsAuthentication"
10196
},
10297
{
103-
"view": "codacy:cli",
104-
"contents": "Install Codacy CLI to analyze your code locally\n[Install Codacy CLI](command:codacy.installCLI)",
105-
"when": "!codacy:cliInstalled && codacy:canInstallCLI && !codacy:cliInstalling"
98+
"view": "codacy:statuses",
99+
"contents": "There is no project opened. Open a project to use Codacy extension.",
100+
"when": "!codacy:hasProject"
106101
},
107102
{
108-
"view": "codacy:cli",
109-
"contents": "$(loading~spin) Installing Codacy CLI...",
110-
"when": "!codacy:cliInstalled && codacy:canInstallCLI && codacy:cliInstalling"
103+
"view": "codacy:statuses",
104+
"contents": "This project isn't a Git repository. To connect it to Codacy, initialize a Git repository first.",
105+
"when": "!codacy:isGitRepository && codacy:hasProject"
111106
},
112107
{
113108
"view": "codacy:statuses",
114-
"contents": "No repositories open.",
115-
"when": "Codacy:RepositoryManagerStateContext == NoRepository"
109+
"contents": "Failed to find repository in Codacy.",
110+
"when": "codacy:hasProject && codacy:isGitRepository && Codacy:RepositoryManagerStateContext == NoRepository"
116111
},
117112
{
118113
"view": "codacy:statuses",
119114
"contents": "No remote repositories configured.",
120-
"when": "Codacy:RepositoryManagerStateContext == NoRemote"
115+
"when": "codacy:hasProject && codacy:isGitRepository && Codacy:RepositoryManagerStateContext == NoRemote"
121116
},
122117
{
123118
"view": "codacy:statuses",
124119
"contents": "Codacy is initializing...",
125-
"when": "Codacy:RepositoryManagerStateContext == Initializing"
120+
"when": "codacy:hasProject && codacy:isGitRepository && Codacy:RepositoryManagerStateContext == Initializing"
126121
},
127122
{
128123
"view": "codacy:statuses",
129124
"contents": "No open pull request found.\n[Try again](command:codacy.pr.load)",
130-
"when": "Codacy:RepositoryManagerStateContext == Loaded && Codacy:PullRequestStateContext == NoPullRequest"
125+
"when": "codacy:hasProject && codacy:isGitRepository && Codacy:RepositoryManagerStateContext == Loaded && Codacy:PullRequestStateContext == NoPullRequest"
126+
},
127+
{
128+
"view": "codacy:cli",
129+
"contents": "Install Codacy CLI to analyze your code locally\n[Install Codacy CLI](command:codacy.installCLI)",
130+
"when": "!codacy:cliInstalled && codacy:canInstallCLI && !codacy:cliInstalling"
131+
},
132+
{
133+
"view": "codacy:cli",
134+
"contents": "$(loading~spin) Installing Codacy CLI...",
135+
"when": "!codacy:cliInstalled && codacy:canInstallCLI && codacy:cliInstalling"
131136
},
132137
{
133138
"view": "codacy:mcp",

src/commands/configureMCP.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ export function isMCPConfigured(): boolean {
218218

219219
const config = JSON.parse(fs.readFileSync(filePath, 'utf8'))
220220

221-
return get(config, ideConfig.configAccessor) !== undefined
221+
return get(config, `${ideConfig.configAccessor}.codacy`) !== undefined
222222
} catch {
223223
// If there's any error reading or parsing the file, assume it's not configured
224224
return false
@@ -244,9 +244,11 @@ export async function configureMCP(repository?: Repository) {
244244
const codacyServer = {
245245
command: 'npx',
246246
args: ['-y', '@codacy/codacy-mcp@latest'],
247-
env: {
248-
CODACY_ACCOUNT_TOKEN: apiToken,
249-
},
247+
env: apiToken
248+
? {
249+
CODACY_ACCOUNT_TOKEN: apiToken,
250+
}
251+
: undefined,
250252
}
251253

252254
// Read existing configuration if it exists

0 commit comments

Comments
 (0)