Skip to main content

wikiops

wikiops is the host application and CLI runtime for the WikiOps ecosystem.

It orchestrates documentation automation workflows around wikiops-sdk by loading configuration, discovering plugins and providers, building execution context, rendering previews, and applying planned changes.

What This Repository Contains

  • A command-line interface for WikiOps execution workflows.
  • The host orchestrator that coordinates planning and apply flows.
  • Runtime loading for plugins and providers through Python entry points.
  • YAML configuration loading for providers, profiles, refs, and plugin config.
  • Document loading, diff rendering, and apply delegation.
  • Built-in providers for Azure DevOps Wiki, for local Markdown files, and for GitHub wikis.
  • A strict pytest suite with coverage enforcement.

What This Repository Does Not Contain

  • The public extension contracts and shared domain models.
  • A stable SDK-level API surface for plugins and providers.
  • Built-in documentation plugins.
  • Project-specific documentation business logic.

Those concerns belong to wikiops-sdk and external plugin repositories.

Relationship To wikiops-sdk

The WikiOps ecosystem is intentionally split across repositories:

plugin -> sdk <- host
provider -> sdk <- host
  • wikiops-sdk
    • defines the shared contracts, domain models, and compatibility helpers
  • wikiops
    • orchestrates execution around those SDK contracts
  • plugins
    • implement documentation planning logic
  • providers
    • implement persistence and read-side infrastructure

Canonical SDK documentation lives in the separate SDK repository:

Quick Start

Install the host and its runtime dependencies:

poetry install --with test

Inspect the currently available extensions:

poetry run wikiops plugins
poetry run wikiops providers

The host currently ships with these built-in provider implementations:

  • azure_devops_wiki
  • local_files
  • github_wiki

Plugins are expected to be installed separately through Python packages that expose the wikiops.plugins entry point group.

Example Configuration

The host reads YAML configuration with provider definitions, profiles, refs, and plugin-specific settings.

providers:
  azdo:
    type: azure_devops_wiki
    organization: acme
    project: engineering
    wiki: platform

profiles:
  default:
    provider: azdo
    refs:
      docs_root:
        provider: azdo
        kind: path
        locator:
          path: /Engineering/Teams
    plugins:
      acme.team-docs:
        parent_alias: docs_root

To write documents as Markdown files in a local directory instead, use the local_files provider. Ref paths are relative to root and end in .md:

providers:
  local:
    type: local_files
    root: ./docs

profiles:
  default:
    provider: local
    refs:
      docs_root:
        provider: local
        kind: path
        locator:
          path: README.md

A relative root resolves against the current working directory. Plans include a provider_target note with the resolved root; read it before applying. See docs/reference/local-files.md.

To publish pages to the wiki of a GitHub repository, use the github_wiki provider. It works through a local git clone, commits what a run wrote, and pushes only when you enable it. Pages are flat (Home.md, never guides/setup.md):

providers:
  wiki:
    type: github_wiki
    repository: acme/platform
    auth:
      mode: env
      variable: GITHUB_TOKEN
    allow_auto_push: false

profiles:
  default:
    provider: wiki
    refs:
      home:
        provider: wiki
        kind: path
        locator:
          path: Home.md

The wiki needs its first page created in the web UI. Plans include a provider_target note with the remote and the clone directory; read it before applying. See docs/reference/github-wiki.md.

Example Input

team_name: Platform

Plan A Run

Replace acme.team-docs with an installed plugin ID shown by wikiops plugins.

poetry run wikiops run \
  --config wikiops.yaml \
  --profile default \
  --plugin acme.team-docs \
  --input input.yaml

This prints:

  • the planned ChangeSet as JSON
  • a preview diff

Apply A Run

poetry run wikiops run \
  --config wikiops.yaml \
  --profile default \
  --plugin acme.team-docs \
  --input input.yaml \
  --apply

On apply, the CLI also prints the provider ApplyResult and exits with code 1 if any operation failed.

Plugin Resources

wikiops injects a PluginResourceProvider when loading plugin entry points.

  • Resource paths are relative to the plugin package root.
  • The host does not assume a fixed resources/ directory.
  • If a plugin stores assets under resources/, it should request them as resources/....
  • If a plugin already provides its own resources object, the host leaves it untouched.

Documentation Map

Start here depending on your role:

The full host documentation index lives at docs/index.md.

Tests

This repository ships with a strict pytest suite and coverage threshold.

poetry run pytest

The tests are also useful as executable examples of the current host behavior.

Metadata

Release files for wikiops 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wikiops 1.5.0
File Size Uploaded
wikiops-1.5.0.tar.gz 104.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wikiops 1.5.0
File Interpreter ABI Platform
wikiops-1.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 233.7 kB

Release files / wikiops-1.5.0.tar.gz

Download URL wikiops-1.5.0.tar.gz
Size 104.9 kB
Tags Source
SHA-256 checksum
How to use checksums
fc26f5a8a16ffc4bd708f19357e98bd203ee1b97f4cb44bbdde9b816d1c99c8f
BLAKE2b-256 checksum
How to use checksums
a5af659a3fe3da5b0d138ac1af6c636e948e935517402b0cb57d7e88b0e307a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / wikiops-1.5.0-py3-none-any.whl

Download URL wikiops-1.5.0-py3-none-any.whl
Size 128.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
69ee70f56aecc2fa113ef160954ad9c46e5c5dafaccd16c0ad93f243a1cd0a6c
BLAKE2b-256 checksum
How to use checksums
65a714189dd3ebd2bbfdcd51246ff13046ab5b31c9c4243049304d75c108517c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

1.6.0

2 release files

This release

1.5.0 This release

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page