Security & customer control
Trust is built
at every handoff.
A migration touches someone else’s application. Versionlane separates preparation, customer execution, publication and reporting so each decision is explicit.
Ask a security question ↗
Where the work happens
Versionlane control serviceReviewed packages.
Campaigns. Connections.
Coordinates approvals and stores consented status metadata. The control service does not check out or execute customer repository code.
↗Customer machine or GitHub runnerRepository analysis.
Verification. Draft PR.
Repository execution stays in the customer’s environment. Tests run in restricted Docker containers; publication uses a separate credential-bearing step.
Reviewed input, pinned revision.
Migration packages are declarative data selecting supported operations. They cannot supply arbitrary executable plugins. Published revisions are immutable and signed; the runner checks the exact package hash, signature and online campaign availability before a live run.
Novel changes need supported, reviewed migration definitions and passing preparation evidence. General autonomous authoring is not a currently available capability.
Verification without write credentials.
Customer tests run without GitHub write credentials or Versionlane reporting tokens. Test containers have networking disabled, a read-only root filesystem, an unprivileged user, dropped capabilities and resource limits. A bounded temporary filesystem supplies working space.
Dependency preparation is a separate step that can access public packages. Offline tests do not establish live API behaviour or production equivalence. The customer chooses an eligible test command and reviews the configuration.
Permission at each decision.
A repository connection records a customer-approved relationship. Saving one requires GitHub proof of repository write permission with a customer-owned credential; that proof credential is not retained by Versionlane.
Each campaign requires approval of its exact revision. Verification approval does not grant PR publication. The customer separately requests a draft PR and supplies the required repository access in their own environment.
A draft belongs to its maintainers.
Verification failures and unsupported usages block publication. The publisher checks the repository state and protects maintainer edits rather than overwriting them. Repeated eligible runs reuse the existing PR.
Maintainers inspect the patch, run ordinary CI on the current commit and decide whether to merge. Versionlane does not merge automatically. A verified proposal and a merged PR are different outcomes.
Reporting by consent.
Status sharing starts off. When enabled, the provider receives bounded, customer-reported outcomes and blocker categories. Customer source code, diffs, filenames and test logs are not included in those reports.
Repository and pull request links each need separate consent. Reporting runs separately from verification. A reporting failure can be retried without turning a passing local test into a failed migration.
Revocation stops future work.
Customers can revoke a saved connection, provider relationship or enrollment. Providers can withdraw a campaign. Online authorization checks block subsequent live operations when approval is no longer valid.
Revocation does not undo code already delivered or delete migration history. A previously created PR remains under the repository owner’s control.
A quiet public website.
This company site serves self-hosted fonts, graphics and scripts. It has no analytics, third-party embeds, tracking storage or contact form backend. Contact links open your email client.
A restrictive Content Security Policy confines page assets to this site and disables browser API connections and form submissions. The separate product application has its own authentication and operational permissions.