Subversion · Capability

SVN WebDAV HTTP API — Commits

SVN WebDAV HTTP API — Commits. 4 operations. Lead operation: Create Commit Transaction. Self-contained Naftiko capability covering one Svn business surface.

Run with Naftiko SvnCommits

What You Can Do

POST
Createcommittransaction — Create Commit Transaction
/v1/svn/act
DELETE
Abortcommittransaction — Abort Commit Transaction
/v1/svn/act/{txn-id}
PUT
Putfile — Upload File Content
/v1/{path}
DELETE
Deletefileordirectory — Delete File or Directory
/v1/{path}

MCP Tools

create-commit-transaction

Create Commit Transaction

abort-commit-transaction

Abort Commit Transaction

idempotent
upload-file-content

Upload File Content

idempotent
delete-file-directory

Delete File or Directory

idempotent

Capability Spec

webdav-commits.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: SVN WebDAV HTTP API — Commits
  description: 'SVN WebDAV HTTP API — Commits. 4 operations. Lead operation: Create Commit Transaction. Self-contained Naftiko
    capability covering one Svn business surface.'
  tags:
  - Svn
  - Commits
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SVN_API_KEY: SVN_API_KEY
capability:
  consumes:
  - type: http
    namespace: webdav-commits
    baseUri: https://svn.example.com/repos/{repository}
    description: SVN WebDAV HTTP API — Commits business capability. Self-contained, no shared references.
    resources:
    - name: $svn-act
      path: /$svn/act/
      operations:
      - name: createcommittransaction
        method: POST
        description: Create Commit Transaction
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: X-SVN-Options
          in: header
          type: string
    - name: $svn-act-txn-id
      path: /$svn/act/{txn-id}
      operations:
      - name: abortcommittransaction
        method: DELETE
        description: Abort Commit Transaction
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: txn-id
          in: path
          type: string
          description: Transaction ID from MKACTIVITY
          required: true
    - name: path
      path: /{path}
      operations:
      - name: putfile
        method: PUT
        description: Upload File Content
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: path
          in: path
          type: string
          required: true
        - name: X-SVN-Base-Fulltext-MD5
          in: header
          type: string
          description: MD5 checksum of the base file for delta validation
        - name: X-SVN-Result-Fulltext-MD5
          in: header
          type: string
          description: Expected MD5 checksum of the resulting file
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletefileordirectory
        method: DELETE
        description: Delete File or Directory
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: path
          in: path
          type: string
          required: true
    authentication:
      type: basic
      username: '{{env.SVN_USER}}'
      password: '{{env.SVN_PASS}}'
  exposes:
  - type: rest
    namespace: webdav-commits-rest
    port: 8080
    description: REST adapter for SVN WebDAV HTTP API — Commits. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/svn/act
      name: svn-act
      description: REST surface for $svn-act.
      operations:
      - method: POST
        name: createcommittransaction
        description: Create Commit Transaction
        call: webdav-commits.createcommittransaction
        with:
          X-SVN-Options: rest.X-SVN-Options
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/svn/act/{txn-id}
      name: svn-act-txn-id
      description: REST surface for $svn-act-txn-id.
      operations:
      - method: DELETE
        name: abortcommittransaction
        description: Abort Commit Transaction
        call: webdav-commits.abortcommittransaction
        with:
          txn-id: rest.txn-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/{path}
      name: path
      description: REST surface for path.
      operations:
      - method: PUT
        name: putfile
        description: Upload File Content
        call: webdav-commits.putfile
        with:
          path: rest.path
          X-SVN-Base-Fulltext-MD5: rest.X-SVN-Base-Fulltext-MD5
          X-SVN-Result-Fulltext-MD5: rest.X-SVN-Result-Fulltext-MD5
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletefileordirectory
        description: Delete File or Directory
        call: webdav-commits.deletefileordirectory
        with:
          path: rest.path
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: webdav-commits-mcp
    port: 9090
    transport: http
    description: MCP adapter for SVN WebDAV HTTP API — Commits. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: create-commit-transaction
      description: Create Commit Transaction
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: webdav-commits.createcommittransaction
      with:
        X-SVN-Options: tools.X-SVN-Options
      outputParameters:
      - type: object
        mapping: $.
    - name: abort-commit-transaction
      description: Abort Commit Transaction
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: webdav-commits.abortcommittransaction
      with:
        txn-id: tools.txn-id
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-file-content
      description: Upload File Content
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: webdav-commits.putfile
      with:
        path: tools.path
        X-SVN-Base-Fulltext-MD5: tools.X-SVN-Base-Fulltext-MD5
        X-SVN-Result-Fulltext-MD5: tools.X-SVN-Result-Fulltext-MD5
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-file-directory
      description: Delete File or Directory
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: webdav-commits.deletefileordirectory
      with:
        path: tools.path
      outputParameters:
      - type: object
        mapping: $.