Skip to content

Add project create command #168

@tiulpin

Description

@tiulpin

Area: Configuration (parameters, projects)

Problem or use case

The CLI has a CreateProject API method (api/interface.go) but no corresponding CLI command. AI agents following Journey 2 (new developer setting up CI) must fall back to raw teamcity api calls to create a project, which requires knowing the exact REST API payload format:

# Current workaround — fragile and agent-unfriendly
teamcity api '/app/rest/projects' -X POST -f 'name=MyProject' -f 'id=MyProject' -f 'parentProject=id:_Root'

This is a critical gap for the "Set Up CI via Agent" journey where an AI agent needs to create a project as the first step of onboarding.

Proposed solution

teamcity project create <name>                            # Create with auto-generated ID
teamcity project create <name> --id MyProject             # Explicit project ID
teamcity project create <name> --parent ParentProject     # Under a parent project
teamcity project create <name> --id MyProject --parent ParentProject

Output:

✓ Created project "MyProject" (id: MyProject)
  URL: https://teamcity.example.com/project/MyProject

Flags

  • --id — explicit project ID (default: auto-generated from name)
  • --parent, -p — parent project ID (default: _Root)
  • --json — machine-readable output
  • -w, --web — open in browser after creation

API

Uses existing CreateProject method in api/interface.go:

POST /app/rest/projects

The Go API client already has CreateProject(req CreateProjectRequest) — this just needs a CLI wrapper.

Alternatives considered

  • Use teamcity api raw endpoint — works but poor UX, agents must know payload format
  • Only support project creation via Kotlin DSL / versioned settings — not sufficient for the zero-touch onboarding scenario

Contribution

  • I'd be willing to submit a PR for this feature

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:configConfiguration management (parameters, DSL, cleanup)enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions