Skip to content

API Reference

env-sync exposes a small programmatic API from the package root.

typescript
import {
  buildSecretMap,
  discoverEnvFiles,
  GitHubProvider,
  GitLabProvider,
  parseEnvFiles,
} from '@hardmachinelabs/env-sync';

Discovery

typescript
const files = discoverEnvFiles(process.cwd(), 'production');

Discovers .env and .env.production for the selected environment.

Parsing

typescript
const parsed = parseEnvFiles(files, process.cwd(), 'production');

Parses env files and extracts ENV_SYNC_PROVIDER metadata when present.

Mapping

typescript
const secrets = buildSecretMap(parsed);

Builds generated secret names and values.

Providers

typescript
const provider = new GitLabProvider();
const result = await provider.push(secrets, {
  dryRun: true,
  workflowsOnly: false,
  syncOnly: false,
});

GitHub:

typescript
const provider = new GitHubProvider(process.cwd());

Result shape

Provider calls return:

typescript
{
  created: string[];
  updated: string[];
  skipped: string[];
  errors: Array<{ key: string; message: string }>;
}

Safety note

The API can expose source file paths and secret keys in memory and logs. Avoid printing real secret values.