label-sync-core

The core module of Label Sync manager.

Usage no npm install needed!

<script type="module">
  import labelSyncCore from 'https://cdn.skypack.dev/label-sync-core';
</script>

README

label-sync-core

The core module of Label Sync assistant.

label-sync-core equips you with all the functionallity needed to customise Label Syncing from the ground up. It exposes two functions handleSync and generateSyncReport which help you build delightful workflows for your application.

Example

import { handleSync, generateSyncReport } from 'label-sync-core'
import labels from './labels'

async function main(cli: meow.Result): Promise<void> {
  const report = await handleSync(labels, {
    githubToken: process.env.GITHUB_TOKEN,
    dryRun: process.env.DRYRUN,
  })

  const humanReadableReport = generateSyncReport(report)

  console.log(humanReadableReport)
}

main(cli)

Types

/**
 * Handle sync
 */

interface SyncOptions {
  dryRun: boolean
  githubToken: string
}

interface SyncReport {
  config: Config
  options: SyncOptions
  successes: RepositorySyncSuccessReport[]
  errors: RepositorySyncErrorReport[]
}

interface RepositorySyncSuccessReport {
  name: string
  config: RepositoryConfig
  additions: GithubLabel[]
  updates: GithubLabel[]
  removals: GithubLabel[]
}

interface RepositorySyncErrorReport {
  name: string
  config: RepositoryConfig
  message: string
}

declare function handleSync(
  config: Config,
  options: SyncOptions,
): Promise<SyncReport>

/**
 * Generate Sync report
 */

export declare function generateSyncReport(report: SyncReport): string

License

MIT @ Matic Zavadlal