@daghis/teamcity-mcp 2.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.0.1](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v2.0.0...teamcity-mcp-v2.0.1) (2025-12-23)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * resolve HTTP 400 when updating artifactRules via update_build_config ([#335](https://github.com/Daghis/teamcity-mcp/issues/335)) ([21614ad](https://github.com/Daghis/teamcity-mcp/commit/21614ad9af4e7a519a0ece0d7c41b90a10f74a73))
9
+
3
10
  ## [2.0.0](https://github.com/Daghis/teamcity-mcp/compare/teamcity-mcp-v1.13.1...teamcity-mcp-v2.0.0) (2025-12-22)
4
11
 
5
12
 
package/dist/index.js CHANGED
@@ -1195,7 +1195,7 @@ function debug2(message, meta) {
1195
1195
  // package.json
1196
1196
  var package_default = {
1197
1197
  name: "@daghis/teamcity-mcp",
1198
- version: "2.0.0",
1198
+ version: "2.0.1",
1199
1199
  description: "Model Control Protocol server for TeamCity CI/CD integration with AI coding assistants",
1200
1200
  mcpName: "io.github.Daghis/teamcity",
1201
1201
  main: "dist/index.js",
@@ -2327,8 +2327,6 @@ var BuildConfigurationCloneManager = class {
2327
2327
  };
2328
2328
 
2329
2329
  // src/teamcity/build-configuration-update-manager.ts
2330
- var ARTIFACT_RULES_SETTINGS_FIELD = "settings/artifactRules";
2331
- var ARTIFACT_RULES_LEGACY_FIELD = "artifactRules";
2332
2330
  var isArtifactRulesRetryableError = (error3) => {
2333
2331
  if (error3 == null || typeof error3 !== "object") return false;
2334
2332
  if (!("response" in error3)) return false;
@@ -2336,9 +2334,12 @@ var isArtifactRulesRetryableError = (error3) => {
2336
2334
  const status = response?.status;
2337
2335
  return status === 400 || status === 404;
2338
2336
  };
2339
- var setArtifactRulesWithFallback = async (api, buildTypeId, artifactRules) => {
2337
+ var setArtifactRulesWithFallback = async (http, buildTypeId, artifactRules) => {
2338
+ const encodedId = encodeURIComponent(buildTypeId);
2340
2339
  try {
2341
- await api.setBuildTypeField(buildTypeId, ARTIFACT_RULES_SETTINGS_FIELD, artifactRules);
2340
+ await http.put(`/app/rest/buildTypes/${encodedId}/settings/artifactRules`, artifactRules, {
2341
+ headers: { "Content-Type": "text/plain" }
2342
+ });
2342
2343
  } catch (err) {
2343
2344
  if (!isArtifactRulesRetryableError(err)) {
2344
2345
  throw err;
@@ -2349,7 +2350,9 @@ var setArtifactRulesWithFallback = async (api, buildTypeId, artifactRules) => {
2349
2350
  status
2350
2351
  });
2351
2352
  try {
2352
- await api.setBuildTypeField(buildTypeId, ARTIFACT_RULES_LEGACY_FIELD, artifactRules);
2353
+ await http.put(`/app/rest/buildTypes/${encodedId}/artifactRules`, artifactRules, {
2354
+ headers: { "Content-Type": "text/plain" }
2355
+ });
2353
2356
  } catch (fallbackError) {
2354
2357
  debug2("Legacy artifact rules update failed", {
2355
2358
  buildTypeId,
@@ -2569,11 +2572,7 @@ var BuildConfigurationUpdateManager = class {
2569
2572
  if (settings.length > 0) {
2570
2573
  for (const setting of settings) {
2571
2574
  if (setting.name === "artifactRules") {
2572
- await setArtifactRulesWithFallback(
2573
- this.client.modules.buildTypes,
2574
- currentConfig.id,
2575
- setting.value
2576
- );
2575
+ await setArtifactRulesWithFallback(this.client.http, currentConfig.id, setting.value);
2577
2576
  continue;
2578
2577
  }
2579
2578
  await this.client.modules.buildTypes.setBuildTypeField(
@@ -42025,7 +42024,7 @@ var FULL_MODE_TOOLS = [
42025
42024
  }
42026
42025
  if (typedArgs.artifactRules !== void 0) {
42027
42026
  await setArtifactRulesWithFallback(
42028
- adapter.modules.buildTypes,
42027
+ adapter.http,
42029
42028
  typedArgs.buildTypeId,
42030
42029
  typedArgs.artifactRules
42031
42030
  );
@@ -42048,7 +42047,7 @@ var FULL_MODE_TOOLS = [
42048
42047
  }
42049
42048
  if (typedArgs.artifactRules !== void 0) {
42050
42049
  await setArtifactRulesWithFallback(
42051
- adapter.modules.buildTypes,
42050
+ adapter.http,
42052
42051
  typedArgs.buildTypeId,
42053
42052
  typedArgs.artifactRules
42054
42053
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daghis/teamcity-mcp",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "Model Control Protocol server for TeamCity CI/CD integration with AI coding assistants",
5
5
  "mcpName": "io.github.Daghis/teamcity",
6
6
  "main": "dist/index.js",
package/server.json CHANGED
@@ -7,13 +7,13 @@
7
7
  "source": "github"
8
8
  },
9
9
  "websiteUrl": "https://github.com/Daghis/teamcity-mcp",
10
- "version": "2.0.0",
10
+ "version": "2.0.1",
11
11
  "packages": [
12
12
  {
13
13
  "registryType": "npm",
14
14
  "registryBaseUrl": "https://registry.npmjs.org",
15
15
  "identifier": "@daghis/teamcity-mcp",
16
- "version": "2.0.0",
16
+ "version": "2.0.1",
17
17
  "runtimeHint": "npx",
18
18
  "runtimeArguments": [
19
19
  {