Production changes

Read what rolled out, who was involved, and why.

Evitrus collects those events from Linear, GitHub, and the service that rolled out. You read that stream instead of rebuilding the story by hand. It holds what those tools already recorded.

Sample events notifications Example · production Recorded
  1. Ticket · Linear Issue completed LIN-204 · Retry failed notifications 11:10
  2. Pull request · GitHub Approved #350 13:54
  3. Rollout · Kubernetes Production updated notifications 16:21

The ticket The pull request The running version

The problem

People still rebuild that story by hand.

Many companies build their own links between Linear, GitHub, and the services that finally rolled out. When those links are missing, this is the path that is left.

You start from the version that is running.

In an incident you open the rolled-out version, walk the git history, and look for the pull request. You hope that pull request has a ticket. The ticket is what says why the change was made, and whether it can be reverted safely.

The links between those tools are their own project.

Someone has to build and keep the connections from the ticket, to the pull request, to the service that rolled out. When that work falls behind, the story has to be assembled again.

An auditor asks about one change.

Three months later, someone asks why this change was rolled out and who approved it. The question goes back to the engineering teams, in the hope that the internal process was followed at the time.

How Evitrus helps

The events are collected as the change happens.

Evitrus keeps change events from the tools you connect in one stream. People who do not work in those tools every day can read the same stream.

See what, who, and why.

You can read what rolled out, who acted, and why, as completely as those systems documented it. A pull request and a rollout are shown as one change when they share a commit. A Linear issue is kept in the same stream, with its identifier and its title.

You do not keep your own collectors.

You connect Linear, GitHub, and Kubernetes or ECS. Evitrus receives the events. You do not run a separate project whose job is to copy those events into one place.

Check a recorded change against the process you expect.

Evitrus can look for a review or a merge, and for a test or a scan that passed before the rollout. You can add further checks that look for other events. The result is shown on the change.

You can refuse a rollout that misses a guideline you set.

On Kubernetes, you can turn this on for the namespaces you choose. A rollout there is refused when the change does not meet a guideline you have switched on.

Sometimes the process has to be skipped.

Evitrus supports audit tracked emergency windows, in which the controls are skipped.

A later question can be answered with an export.

Choose a time window and download the changes and events in it as JSON. Each event was fingerprinted and signed when Evitrus stored it. The file is a summary of that window.

Delivery

Data-driven companies want to base their decisions on defendable standpoints.

Evitrus helps you measure your delivery performance and time-to-patch metrics.

See how often changes reach production, and how fast.

Delivery performance is the pace of production changes, and the time a change takes to get there.

Know which dependency versions are running.

When you need to know what a service in production depends on, the versions are there to look up.

Measure time-to-patch for public advisories and CVEs.

See how long a published advisory or CVE takes before the fix is running in production.

How it is set up

You connect the tools that already record the change.

You connect or install a few pieces in your own accounts. Events then flow to your organisation. You decide what is included.

Connect Linear.

In Evitrus, connect Linear and paste the address and the signing secret into a Linear webhook. When an issue is created, started, completed, or cancelled, Evitrus stores the identifier, the title, and who it was assigned to. Comments and the longer description are not sent.

Connect GitHub.

Add a webhook for pull requests, reviews, check suites, and code scanning alerts. Evitrus stores the pull request title, who acted, and the commit. It does not store the code diff. You choose which of those events GitHub is allowed to send.

Install a reader for the running service.

  • For Kubernetes, install the exporter in your cluster. It watches rollouts and sends the service, the environment, and the image that finished. It is only allowed to read.
  • For Amazon ECS, add the EventBridge module beside the service so deployment updates are forwarded.
  • A GitHub Actions step can also send the image digest, so the built image can match the running one.

You choose what is collected.

  • Ignore an event type, and the Kubernetes exporter skips it before sending. If a matching event still arrives, Evitrus drops it before storing it.
  • Mark one Kubernetes workload to skip it. Secret values are never sent, and secret watching stays off unless you turn it on.
  • Config changes can be included. Evitrus stores key names and a short hash of each value, not the value. You can turn that watch off.

Security

Evitrus stores the change record, not your customers' data.

The connectors need the story of the change. They do not need the records your product keeps about the people who use it.

The change record is enough.

That is an issue title and identifier, a pull request title, who acted, a commit, and which version rolled out. Titles are stored as they were written. Source diffs, secret values, and your customers' records are not collected.

The service is hosted in Germany.

The managed service runs on Hetzner in Germany. The events you send stay in that European Union cluster.

The cluster install only reads.

The Kubernetes exporter watches rollouts and sends events out. It does not change your workloads.

Each event is fingerprinted and signed when it is stored.

Evitrus hashes the event and signs that hash as it is accepted. Stored events are appended, so a later rewrite would not match the original signature.

Your organisation sees only its own events.

Every request is limited to the organisation on the sign-in or the API key. A caller cannot choose another organisation by typing its name.

For more details, see the security whitepaper.

Closed beta

Ask to join the closed beta.

Evitrus is in a closed beta. Send your company, your name, and a work email, and we will write back.

We may contact you about the beta. See our privacy policy.

Look through a sample organisation.

It is read-only. The sample includes a ticket, a pull request, and a rollout that share a commit, so you can see how a collected change reads.