-
Notifications
You must be signed in to change notification settings - Fork 6
Open
Labels
area:configConfiguration management (parameters, DSL, cleanup)Configuration management (parameters, DSL, cleanup)enhancementNew feature or requestNew feature or request
Description
Area: Configuration (parameters, projects)
Problem or use case
The CLI API has SetBuildTypeSetting but it is not exposed as a CLI command. Build engineers (Journey 5) need to make targeted edits to build configuration settings — checkout rules, build number format, artifact rules, execution timeout, etc. — without rewriting the entire configuration.
Currently the only options are raw API calls or editing Kotlin DSL:
# Current workaround
teamcity api '/app/rest/buildTypes/id:MyBuild/settings/buildNumberPattern' -X PUT --input <(echo '1.0.%build.counter%')Proposed solution
teamcity job settings list <job-id> # List all settings
teamcity job settings get <job-id> <setting> # Get a setting value
teamcity job settings set <job-id> <setting> <value> # Set a setting valueExamples
# View all settings
teamcity job settings list MyBuild
# Get specific setting
teamcity job settings get MyBuild buildNumberPattern
# → 1.0.%build.counter%
# Set build number format
teamcity job settings set MyBuild buildNumberPattern "2.0.%build.counter%"
# Set execution timeout
teamcity job settings set MyBuild executionTimeoutMin "30"
# Set artifact paths
teamcity job settings set MyBuild artifactRules "build/output/** => artifacts.zip"Output:
$ teamcity job settings list MyBuild
SETTING VALUE
buildNumberPattern 1.0.%build.counter%
executionTimeoutMin 0
artifactRules build/** => output
allowExternalStatus false
checkoutMode ON_AGENT
cleanBuild false
...
Flags
--json— machine-readable output (for list/get)
API
Uses existing method in api/interface.go:
SetBuildTypeSetting(buildTypeID, setting, value string) errorNeeds additions:
GetBuildTypeSettings(buildTypeID string) (*SettingsList, error)
GetBuildTypeSetting(buildTypeID, setting string) (string, error)REST endpoints:
GET /app/rest/buildTypes/id:<id>/settings
GET /app/rest/buildTypes/id:<id>/settings/<name>
PUT /app/rest/buildTypes/id:<id>/settings/<name>
Alternatives considered
- Expose individual settings as dedicated flags on
job view— too many settings, better to have a generic key-value interface likejob param - Only support via Kotlin DSL — doesn't work for server-only configs or for quick targeted edits
Contribution
- I'd be willing to submit a PR for this feature
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
area:configConfiguration management (parameters, DSL, cleanup)Configuration management (parameters, DSL, cleanup)enhancementNew feature or requestNew feature or request