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 and for local Markdown files.
- A strict
pytestsuite 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_wikilocal_files
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.
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
ChangeSetas 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 asresources/.... - If a plugin already provides its own
resourcesobject, the host leaves it untouched.
Documentation Map
Start here depending on your role:
- New to the host:
docs/getting-started.md - Need the host architecture:
docs/architecture.md - Need the runtime execution lifecycle:
docs/execution-flow.md - Need the YAML configuration model:
docs/configuration.md - Need the host/SDK boundary:
docs/sdk-relationship.md - Using the CLI:
docs/guides/using-the-cli.md - Building a plugin for this host:
docs/guides/build-a-plugin.md - Building a provider for this host:
docs/guides/build-a-provider.md - Need module-level runtime reference:
docs/reference/core-modules.md - Need the built-in Azure DevOps provider reference:
docs/reference/azure-devops-wiki.md - Need the built-in local files provider reference:
docs/reference/local-files.md - Need host internal boundaries:
docs/reference/internal-boundaries.md
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.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wikiops-1.3.0.tar.gz | 32.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wikiops-1.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 73.9 kB
Release files / wikiops-1.3.0.tar.gz
| Download URL | wikiops-1.3.0.tar.gz |
|---|---|
| Size | 32.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e725e62de509432db30221a78be8474056db11f740fc450893200632151c6220
|
|
BLAKE2b-256 checksum How to use checksums |
cb84766a3235577c7732bc1a98c2f3ca95480e35ca7128acd75b2182aa7f637f
|
| 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 6, 2026.
Transparency logRelease files / wikiops-1.3.0-py3-none-any.whl
| Download URL | wikiops-1.3.0-py3-none-any.whl |
|---|---|
| Size | 41.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f9b27269a3f77aad1b88332e8283ccae94a7270f23a1cc35cd4872fc21644962
|
|
BLAKE2b-256 checksum How to use checksums |
153ffd3186e177889c629e03830d70af02a05a9db22d698452e7b67256e11601
|
| 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 6, 2026.
Transparency log