diff --git a/src/api/json/catalog.json b/src/api/json/catalog.json index 83208960a3a..c11de3fc83e 100644 --- a/src/api/json/catalog.json +++ b/src/api/json/catalog.json @@ -5540,7 +5540,7 @@ "name": "rumdl", "description": "Configuration file for rumdl, a fast Markdown linter and formatter", "fileMatch": [".rumdl.toml", "rumdl.toml"], - "url": "https://raw.githubusercontent.com/rvben/rumdl/main/rumdl.schema.json" + "url": "https://raw.githubusercontent.com/SchemaStore/schemastore/master/src/schemas/json/rumdl.json" }, { "name": "rustfmt", diff --git a/src/negative_test/dotnet-releases-index/invalid-null-eol-date.json b/src/negative_test/dotnet-releases-index/invalid-null-eol-date.json index fd2e374dcbc..57d5b21b82b 100644 --- a/src/negative_test/dotnet-releases-index/invalid-null-eol-date.json +++ b/src/negative_test/dotnet-releases-index/invalid-null-eol-date.json @@ -8,7 +8,7 @@ "latest-runtime": "7.0.0-preview.1.22076.8", "latest-sdk": "7.0.100-preview.1.22110.4", "product": ".NET", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/7.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/7.0/releases.json", "security": false, "support-phase": "preview" }, @@ -20,7 +20,7 @@ "latest-runtime": "6.0.2", "latest-sdk": "6.0.200", "product": ".NET", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/6.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/6.0/releases.json", "security": true, "support-phase": "lts" }, @@ -32,7 +32,7 @@ "latest-runtime": "5.0.14", "latest-sdk": "5.0.405", "product": ".NET", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/5.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/5.0/releases.json", "security": true, "support-phase": "maintenance" }, @@ -44,7 +44,7 @@ "latest-runtime": "3.1.22", "latest-sdk": "3.1.416", "product": ".NET Core", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/3.1/releases.json", "security": true, "support-phase": "lts" }, @@ -56,7 +56,7 @@ "latest-runtime": "3.0.3", "latest-sdk": "3.0.103", "product": ".NET Core", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/3.0/releases.json", "security": false, "support-phase": "eol" }, @@ -68,7 +68,7 @@ "latest-runtime": "2.1.30", "latest-sdk": "2.1.818", "product": ".NET Core", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/2.1/releases.json", "security": true, "support-phase": "eol" }, @@ -80,7 +80,7 @@ "latest-runtime": "2.2.8", "latest-sdk": "2.2.207", "product": ".NET Core", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/2.2/releases.json", "security": true, "support-phase": "eol" }, @@ -92,7 +92,7 @@ "latest-runtime": "2.0.9", "latest-sdk": "2.1.202", "product": ".NET Core", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/2.0/releases.json", "security": true, "support-phase": "eol" }, @@ -104,7 +104,7 @@ "latest-runtime": "1.1.13", "latest-sdk": "1.1.14", "product": ".NET Core", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/1.1/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/1.1/releases.json", "security": true, "support-phase": "eol" }, @@ -116,7 +116,7 @@ "latest-runtime": "1.0.16", "latest-sdk": "1.1.14", "product": ".NET Core", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/1.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/1.0/releases.json", "security": true, "support-phase": "eol" } diff --git a/src/schemas/json/claude-code-settings.json b/src/schemas/json/claude-code-settings.json index c4a0542814f..cb002d793e3 100644 --- a/src/schemas/json/claude-code-settings.json +++ b/src/schemas/json/claude-code-settings.json @@ -4,19 +4,24 @@ "$defs": { "permissionRule": { "type": "string", - "description": "Tool permission rule", - "pattern": "^((Bash|BashOutput|Edit|ExitPlanMode|Glob|Grep|KillShell|NotebookEdit|Read|Skill|SlashCommand|Task|TodoWrite|WebFetch|WebSearch|Write)(\\((?=.*[^)*?])[^)]+\\))?|mcp__.*)$", + "description": "Tool permission rule. See https://code.claude.com/docs/en/settings#permission-rule-syntax", + "pattern": "^((Bash|Edit|ExitPlanMode|Glob|Grep|KillShell|NotebookEdit|Read|Skill|Task|TodoWrite|WebFetch|WebSearch|Write)(\\((?=.*[^)*?])[^)]+\\))?|mcp__.*)$", "examples": [ + "Bash", + "Bash(npm run build)", "Bash(git commit:*)", - "Bash(npm run lint:*)", + "Bash(npm run:*)", + "Bash(ls*)", + "Bash(git * main)", + "Edit", "Edit(/src/**/*.ts)", - "mcp__github__search_repositories", - "Read(*.env)", - "Read(//Users/alice/secrets/**)", + "Read(./.env)", + "Read(./secrets/**)", + "Read(/Users/alice/secrets/**)", "Read(~/Documents/*.pdf)", "WebFetch", - "WebFetch(domain:github.com)", - "Read(//tmp/**/*)" + "WebFetch(domain:example.com)", + "mcp__github__search_repositories" ] }, "hookCommand": { @@ -89,7 +94,7 @@ } } }, - "description": "Configuration settings for Claude Code. Learn more: https://docs.claude.com/en/docs/claude-code/settings", + "description": "Configuration settings for Claude Code. Learn more: https://code.claude.com/docs/en/settings", "allowTrailingCommas": true, "additionalProperties": true, "type": "object", @@ -104,6 +109,12 @@ "examples": ["/bin/generate_temp_api_key.sh"], "minLength": 1 }, + "autoUpdatesChannel": { + "type": "string", + "enum": ["stable", "latest"], + "description": "Release channel to follow for updates. Use \"stable\" for a version that is typically about one week old and skips versions with major regressions, or \"latest\" (default) for the most recent release", + "default": "latest" + }, "awsCredentialExport": { "type": "string", "description": "Path to a script that exports AWS credentials", @@ -141,9 +152,35 @@ } } }, + "attribution": { + "type": "object", + "description": "Customize attribution for git commits and pull requests. See https://code.claude.com/docs/en/settings#attribution-settings", + "additionalProperties": false, + "properties": { + "commit": { + "type": "string", + "description": "Attribution for git commits, including any trailers. Empty string hides commit attribution" + }, + "pr": { + "type": "string", + "description": "Attribution for pull request descriptions. Empty string hides pull request attribution" + } + } + }, "includeCoAuthoredBy": { "type": "boolean", - "description": "Whether to include Claude's co-authored by attribution in commits and PRs (defaults to true)", + "description": "DEPRECATED. Use 'attribution' instead. Whether to include the co-authored-by Claude byline in git commits and pull requests (default: true)", + "default": true + }, + "plansDirectory": { + "type": "string", + "description": "Customize where plan files are stored. Path is relative to project root (default: ~/.claude/plans)", + "default": "~/.claude/plans", + "examples": ["./plans"] + }, + "respectGitignore": { + "type": "boolean", + "description": "Control whether the @ file picker respects .gitignore patterns. When true (default), files matching .gitignore patterns are excluded from suggestions", "default": true }, "permissions": { @@ -195,7 +232,7 @@ } }, "additionalProperties": false, - "description": "Tool usage permissions configuration", + "description": "Tool usage permissions configuration. See https://code.claude.com/docs/en/iam#configuring-permissions", "examples": [ { "allow": ["Bash(git add:*)"], @@ -205,13 +242,18 @@ } ] }, + "language": { + "type": "string", + "description": "Preferred language for Claude's responses", + "examples": ["japanese", "spanish", "french"] + }, "model": { "type": "string", "description": "Override the default model used by Claude Code" }, "enableAllProjectMcpServers": { "type": "boolean", - "description": "Whether to automatically approve all MCP servers in the project", + "description": "Whether to automatically approve all MCP servers in the project. See https://code.claude.com/docs/en/mcp", "examples": [true] }, "enabledMcpjsonServers": { @@ -267,7 +309,7 @@ "hooks": { "type": "object", "additionalProperties": false, - "description": "Custom commands to run before/after tool executions", + "description": "Custom commands to run before/after tool executions. See https://code.claude.com/docs/en/hooks", "examples": [ { "PostToolUse": [ @@ -299,6 +341,20 @@ "$ref": "#/$defs/hookMatcher" } }, + "PostToolUseFailure": { + "type": "array", + "description": "UNDOCUMENTED. Hooks that run after a tool fails", + "items": { + "$ref": "#/$defs/hookMatcher" + } + }, + "PermissionRequest": { + "type": "array", + "description": "UNDOCUMENTED. Hooks that run when a permission is requested", + "items": { + "$ref": "#/$defs/hookMatcher" + } + }, "Notification": { "type": "array", "description": "Hooks that trigger on notifications", @@ -354,6 +410,10 @@ "type": "boolean", "description": "Disable all hooks and statusLine execution" }, + "allowManagedHooksOnly": { + "type": "boolean", + "description": "(Managed settings only) Prevent loading of user, project, and plugin hooks. Only allows managed hooks and SDK hooks. See https://code.claude.com/docs/en/settings#hook-configuration" + }, "statusLine": { "type": "object", "properties": { @@ -370,7 +430,7 @@ }, "required": ["type", "command"], "additionalProperties": false, - "description": "Custom status line display configuration", + "description": "Custom status line display configuration. See https://code.claude.com/docs/en/statusline", "examples": [ { "type": "command", @@ -378,6 +438,28 @@ } ] }, + "fileSuggestion": { + "type": "object", + "properties": { + "type": { + "type": "string", + "const": "command" + }, + "command": { + "type": "string", + "description": "Shell command to execute for file suggestions" + } + }, + "required": ["type", "command"], + "additionalProperties": false, + "description": "Configure a custom script for @ file autocomplete. See https://code.claude.com/docs/en/settings#file-suggestion-settings", + "examples": [ + { + "type": "command", + "command": "~/.claude/file-suggestion.sh" + } + ] + }, "enabledPlugins": { "type": "object", "additionalProperties": { @@ -396,7 +478,7 @@ } ] }, - "description": "Enabled plugins using plugin-id@marketplace-id format. Example: { \"formatter@anthropic-tools\": true }. Also supports extended format with version constraints." + "description": "Enabled plugins using plugin-id@marketplace-id format. Example: { \"formatter@anthropic-tools\": true }. See https://code.claude.com/docs/en/plugins" }, "extraKnownMarketplaces": { "type": "object", @@ -524,7 +606,135 @@ "required": ["source"], "additionalProperties": false }, - "description": "Additional marketplaces to make available for this repository. Typically used in repository .claude/settings.json to ensure team members have required plugin sources." + "description": "Additional marketplaces to make available for this repository. Typically used in repository .claude/settings.json to ensure team members have required plugin sources. See https://code.claude.com/docs/en/plugin-marketplaces" + }, + "strictKnownMarketplaces": { + "type": "array", + "description": "(Managed settings only) Allowlist of plugin marketplaces users can add. Undefined = no restrictions, empty array = lockdown. Uses exact matching for source specifications. See https://code.claude.com/docs/en/settings#strictknownmarketplaces", + "items": { + "anyOf": [ + { + "type": "object", + "properties": { + "source": { + "type": "string", + "const": "github" + }, + "repo": { + "type": "string", + "description": "GitHub repository in owner/repo format" + }, + "ref": { + "type": "string", + "description": "Git branch, tag, or SHA" + }, + "path": { + "type": "string", + "description": "Subdirectory path" + } + }, + "required": ["source", "repo"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "source": { + "type": "string", + "const": "git" + }, + "url": { + "type": "string", + "description": "Full git repository URL" + }, + "ref": { + "type": "string", + "description": "Git branch, tag, or SHA" + }, + "path": { + "type": "string", + "description": "Subdirectory path" + } + }, + "required": ["source", "url"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "source": { + "type": "string", + "const": "url" + }, + "url": { + "type": "string", + "format": "uri", + "description": "Direct URL to marketplace.json" + }, + "headers": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "HTTP headers for authenticated access" + } + }, + "required": ["source", "url"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "source": { + "type": "string", + "const": "npm" + }, + "package": { + "type": "string", + "description": "NPM package name (supports scoped packages)" + } + }, + "required": ["source", "package"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "source": { + "type": "string", + "const": "file" + }, + "path": { + "type": "string", + "description": "Absolute path to marketplace.json file" + } + }, + "required": ["source", "path"], + "additionalProperties": false + }, + { + "type": "object", + "properties": { + "source": { + "type": "string", + "const": "directory" + }, + "path": { + "type": "string", + "description": "Absolute path to directory containing .claude-plugin/marketplace.json" + } + }, + "required": ["source", "path"], + "additionalProperties": false + } + ] + }, + "examples": [ + [ + { "source": "github", "repo": "acme-corp/approved-plugins" }, + { "source": "npm", "package": "@acme-corp/compliance-plugins" } + ] + ] }, "skippedMarketplaces": { "type": "array", @@ -561,7 +771,7 @@ }, "outputStyle": { "type": "string", - "description": "Controls the output style for assistant responses", + "description": "Controls the output style for assistant responses. See https://code.claude.com/docs/en/output-styles", "examples": ["default", "Explanatory", "Learning"], "minLength": 1 }, @@ -571,6 +781,7 @@ }, "sandbox": { "type": "object", + "description": "Sandbox execution configuration. See https://code.claude.com/docs/en/sandboxing", "properties": { "network": { "type": "object", @@ -640,11 +851,22 @@ }, "spinnerTipsEnabled": { "type": "boolean", - "description": "Whether to show tips in the spinner" + "description": "Show tips in the spinner while Claude is working. Set to false to disable tips (default: true)", + "default": true + }, + "terminalProgressBarEnabled": { + "type": "boolean", + "description": "Enable the terminal progress bar that shows progress in supported terminals like Windows Terminal and iTerm2 (default: true)", + "default": true + }, + "showTurnDuration": { + "type": "boolean", + "description": "Show turn duration messages after responses (e.g., \"Cooked for 1m 6s\"). Set to false to hide these messages (default: true)", + "default": true }, "alwaysThinkingEnabled": { "type": "boolean", - "description": "Whether extended thinking is always enabled (default: false)" + "description": "Enable extended thinking by default for all sessions. Typically configured via the /config command rather than editing directly. See https://code.claude.com/docs/en/common-workflows#use-extended-thinking-thinking-mode" }, "companyAnnouncements": { "type": "array", diff --git a/src/schemas/json/htmlhint.json b/src/schemas/json/htmlhint.json index 620008915dd..19ba3d605c9 100644 --- a/src/schemas/json/htmlhint.json +++ b/src/schemas/json/htmlhint.json @@ -9,7 +9,10 @@ }, "attr-lowercase": { "description": "Attribute name must be lowercase.", - "anyOf": [{ "type": "boolean" }, { "type": "array" }], + "anyOf": [ + { "type": "boolean" }, + { "type": "array", "items": { "type": "string" } } + ], "default": false }, "attr-no-duplication": { @@ -34,7 +37,10 @@ }, "attr-value-no-duplication": { "description": "Class attributes should not contain duplicate values. Other attributes can be checked via configuration.", - "anyOf": [{ "type": "boolean" }, { "type": "array" }], + "anyOf": [ + { "type": "boolean" }, + { "type": "array", "items": { "type": "string" } } + ], "default": false }, "attr-value-not-empty": { diff --git a/src/schemas/json/rumdl.json b/src/schemas/json/rumdl.json new file mode 100644 index 00000000000..ef896c9cd7c --- /dev/null +++ b/src/schemas/json/rumdl.json @@ -0,0 +1,181 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://json.schemastore.org/rumdl.json", + "title": "Config", + "description": "rumdl configuration for linting Markdown files. Rules can be configured individually using [MD###] sections with rule-specific options.", + "type": "object", + "properties": { + "global": { + "$ref": "#/definitions/GlobalConfig", + "description": "Global configuration options", + "default": { + "enable": [], + "disable": [], + "exclude": [], + "include": [], + "respect-gitignore": true, + "line-length": 80, + "fixable": [], + "unfixable": [], + "flavor": "standard", + "force-exclude": false, + "cache": true + } + }, + "per-file-ignores": { + "description": "Per-file rule ignores: maps file patterns to lists of rules to ignore\nExample: { \"README.md\": [\"MD033\"], \"docs/**/*.md\": [\"MD013\"] }", + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + }, + "default": {} + }, + "per-file-flavor": { + "description": "Per-file flavor overrides: maps file patterns to Markdown flavors\nExample: { \"docs/**/*.md\": MkDocs, \"**/*.mdx\": MDX }\nUses IndexMap to preserve config file order for \"first match wins\" semantics", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/MarkdownFlavor" + }, + "default": {} + } + }, + "additionalProperties": { + "$ref": "#/definitions/RuleConfig" + }, + "definitions": { + "GlobalConfig": { + "description": "Global configuration options", + "type": "object", + "properties": { + "enable": { + "description": "Enabled rules", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "disable": { + "description": "Disabled rules", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "exclude": { + "description": "Files to exclude", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "include": { + "description": "Files to include", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "respect-gitignore": { + "description": "Respect .gitignore files when scanning directories", + "type": "boolean", + "default": true + }, + "line-length": { + "$ref": "#/definitions/LineLength", + "description": "Global line length setting (used by MD013 and other rules if not overridden)", + "default": 80 + }, + "output-format": { + "description": "Output format for linting results (e.g., \"text\", \"json\", \"pylint\", etc.)", + "type": ["string", "null"] + }, + "fixable": { + "description": "Rules that are allowed to be fixed when --fix is used\nIf specified, only these rules will be fixed", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "unfixable": { + "description": "Rules that should never be fixed, even when --fix is used\nTakes precedence over fixable", + "type": "array", + "items": { + "type": "string" + }, + "default": [] + }, + "flavor": { + "$ref": "#/definitions/MarkdownFlavor", + "description": "Markdown flavor/dialect to use (mkdocs, gfm, commonmark, etc.)\nWhen set, adjusts parsing and validation rules for that specific Markdown variant", + "default": "standard" + }, + "force-exclude": { + "description": "[DEPRECATED] Whether to enforce exclude patterns for explicitly passed paths.\nThis option is deprecated as of v0.0.156 and has no effect.\nExclude patterns are now always respected, even for explicitly provided files.\nThis prevents duplication between rumdl config and tool configs like pre-commit.", + "type": "boolean", + "deprecated": true, + "default": false + }, + "cache-dir": { + "description": "Directory to store cache files (default: .rumdl_cache)\nCan also be set via --cache-dir CLI flag or RUMDL_CACHE_DIR environment variable", + "type": ["string", "null"] + }, + "cache": { + "description": "Whether caching is enabled (default: true)\nCan also be disabled via --no-cache CLI flag", + "type": "boolean", + "default": true + } + } + }, + "LineLength": { + "description": "A line length value that can be 0 (meaning no limit) or a positive value (≥1)\n\nMany configuration values for line length need to support both:\n- 0: Special value meaning \"no line length limit\"\n- ≥1: Actual line length limit\n\nThis type enforces those constraints at deserialization time.", + "type": ["integer", "null"], + "minimum": 0 + }, + "MarkdownFlavor": { + "description": "Markdown flavor/dialect. Accepts: standard, gfm, mkdocs, mdx, quarto. Aliases: commonmark/github map to standard, qmd/rmd/rmarkdown map to quarto.", + "type": "string", + "enum": [ + "standard", + "gfm", + "github", + "commonmark", + "mkdocs", + "mdx", + "quarto", + "qmd", + "rmd", + "rmarkdown" + ] + }, + "RuleConfig": { + "description": "Represents a rule-specific configuration", + "type": "object", + "properties": { + "severity": { + "description": "Severity override for this rule (Error, Warning, or Info)", + "anyOf": [ + { + "$ref": "#/definitions/Severity" + }, + { + "type": "null" + } + ] + } + }, + "additionalProperties": true + }, + "Severity": { + "type": "string", + "enum": ["error", "warning", "info"] + } + } +} diff --git a/src/test/claude-code-settings/modern-complete-config.json b/src/test/claude-code-settings/modern-complete-config.json index 79b1a2db260..4caee0a228e 100644 --- a/src/test/claude-code-settings/modern-complete-config.json +++ b/src/test/claude-code-settings/modern-complete-config.json @@ -1,6 +1,11 @@ { "$schema": "https://json.schemastore.org/claude-code-settings.json", "apiKeyHelper": "/usr/local/bin/claude-auth-helper", + "attribution": { + "commit": "Generated with AI\n\nCo-Authored-By: AI ", + "pr": "" + }, + "autoUpdatesChannel": "stable", "cleanupPeriodDays": 60, "disabledMcpjsonServers": ["untrusted-server"], "enableAllProjectMcpServers": true, @@ -10,6 +15,10 @@ "CLAUDE_LOG_LEVEL": "debug", "PROJECT_ROOT": "/home/user/projects" }, + "fileSuggestion": { + "command": "~/.claude/file-suggestion.sh", + "type": "command" + }, "forceLoginMethod": "claudeai", "hooks": { "PreToolUse": [ @@ -36,6 +45,7 @@ ] }, "includeCoAuthoredBy": true, + "language": "english", "outputStyle": "Explanatory", "permissions": { "additionalDirectories": ["~/Documents/reference", "~/.config/claude-code"], @@ -61,5 +71,9 @@ "Write(/etc/**)", "Write(/System/**)" ] - } + }, + "plansDirectory": "./plans", + "respectGitignore": true, + "showTurnDuration": true, + "terminalProgressBarEnabled": true } diff --git a/src/test/dotnet-releases-index/latest.json b/src/test/dotnet-releases-index/latest.json index 22d2429b0c0..aeede8137dc 100644 --- a/src/test/dotnet-releases-index/latest.json +++ b/src/test/dotnet-releases-index/latest.json @@ -9,7 +9,7 @@ "latest-sdk": "8.0.100-preview.5.23303.2", "product": ".NET", "release-type": "lts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/8.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/8.0/releases.json", "security": false, "support-phase": "preview" }, @@ -22,7 +22,7 @@ "latest-sdk": "7.0.304", "product": ".NET", "release-type": "sts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/7.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/7.0/releases.json", "security": true, "support-phase": "active" }, @@ -35,7 +35,7 @@ "latest-sdk": "6.0.410", "product": ".NET", "release-type": "lts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/6.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/6.0/releases.json", "security": true, "support-phase": "active" }, @@ -48,7 +48,7 @@ "latest-sdk": "5.0.408", "product": ".NET", "release-type": "sts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/5.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/5.0/releases.json", "security": true, "support-phase": "eol" }, @@ -61,7 +61,7 @@ "latest-sdk": "3.1.426", "product": ".NET Core", "release-type": "lts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.1/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/3.1/releases.json", "security": true, "support-phase": "eol" }, @@ -74,7 +74,7 @@ "latest-sdk": "3.0.103", "product": ".NET Core", "release-type": "sts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/3.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/3.0/releases.json", "security": false, "support-phase": "eol" }, @@ -87,7 +87,7 @@ "latest-sdk": "2.1.818", "product": ".NET Core", "release-type": "lts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.1/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/2.1/releases.json", "security": true, "support-phase": "eol" }, @@ -100,7 +100,7 @@ "latest-sdk": "2.2.207", "product": ".NET Core", "release-type": "sts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.2/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/2.2/releases.json", "security": true, "support-phase": "eol" }, @@ -113,7 +113,7 @@ "latest-sdk": "2.1.202", "product": ".NET Core", "release-type": "sts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/2.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/2.0/releases.json", "security": true, "support-phase": "eol" }, @@ -126,7 +126,7 @@ "latest-sdk": "1.1.14", "product": ".NET Core", "release-type": "lts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/1.1/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/1.1/releases.json", "security": true, "support-phase": "eol" }, @@ -139,7 +139,7 @@ "latest-sdk": "1.1.14", "product": ".NET Core", "release-type": "lts", - "releases.json": "https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/1.0/releases.json", + "releases.json": "https://builds.dotnet.microsoft.com//dotnet/release-metadata/1.0/releases.json", "security": true, "support-phase": "eol" }