Skip to main content

TicketSync — bidirectional ticket synchronization across ITSM systems

Project description

TicketSync

Bidirectional ticket synchronization across ITSM and issue-tracking systems.

Part of the Libre Ticket Suite — a loosely coupled set of open-source Python libraries for automating ticket, alert, and issue handling.

CI PyPI Python License

Overview

TicketSync provides a structured IR (Intermediate Representation) and sync engine for moving tickets between ITSM, alerting, and issue-tracking systems. It is designed to be:

  • Adapter-based: each system is a pluggable adapter implementing a simple protocol.
  • Config-driven: a single YAML file defines sources, destinations, and sync behaviour.
  • Type-safe: fully typed with pydantic v2 models; mypy --strict passes.

Install

pip install ticketsync

Requires Python 3.10+.

Quick start

from ticketsync import SyncEngine, SyncConfig

config = SyncConfig.from_yaml("sync.yaml")
engine = SyncEngine(config)
result = engine.run()
print(f"Synced {result.synced} tickets, {result.skipped} skipped, {result.errors} errors")

Minimal sync.yaml

source:
  adapter: local
  path: ./tickets/source

destination:
  adapter: local
  path: ./tickets/destination

Supported adapters

Adapter Direction Status
local read / write stable
github_issues read stable
opscenter write stable

Adapters are importable from ticketsync.adapters:

from ticketsync.adapters import LocalFilesystemAdapter, ADAPTER_REGISTRY

Core data model

Every ticket is normalised to the Ticket IR before being passed between adapters:

from ticketsync import Ticket, SeverityLevel, TicketStatus

ticket = Ticket(
    id="acme-42",
    title="Disk usage critical on web-01",
    severity=SeverityLevel.HIGH,
    status=TicketStatus.OPEN,
)

Rich entity types (AccountEntity, HostEntity, IpAddressEntity, UrlEntity, FileEntity, ProcessEntity) can be attached to tickets for richer context.

Writing a custom adapter

from ticketsync import TicketAdapter, Ticket
from typing import Iterator

class MyAdapter(TicketAdapter):
    def read(self) -> Iterator[Ticket]:
        yield Ticket(id="1", title="example", ...)

    def write(self, ticket: Ticket) -> None:
        print(f"Writing: {ticket.title}")

License

Apache 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ticketsync-0.2.0.tar.gz (32.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ticketsync-0.2.0-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file ticketsync-0.2.0.tar.gz.

File metadata

  • Download URL: ticketsync-0.2.0.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ticketsync-0.2.0.tar.gz
Algorithm Hash digest
SHA256 19006ce38e5c81cc56d67081d6039a964d8ebea178f8a2af38dd1cedab6683fc
MD5 f8a68af911e6a68a80e9a2c1850f7497
BLAKE2b-256 7cb45b83e6004f4d6a2d2a9dd3f1bfe907df5d0cebbe301bc94f7b6d541d1d1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for ticketsync-0.2.0.tar.gz:

Publisher: publish.yml on LeonardoSanBenitez/TicketSync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ticketsync-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: ticketsync-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ticketsync-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3078abf3c2795c0114c8dcbbe1100a83fd4a1a407c9665efc29f13052c39a4be
MD5 34c7cf2b37296314c3a5b1c9f1ec877b
BLAKE2b-256 02f02fb69d62548e470ede017873f8b360df7330f46a1f90031f95eff4c8fa32

See more details on using hashes here.

Provenance

The following attestation bundles were made for ticketsync-0.2.0-py3-none-any.whl:

Publisher: publish.yml on LeonardoSanBenitez/TicketSync

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page