Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | /**
* GitHub Sync Service
*
* Handles git-based sync with GitHub repositories using embgit.
* Extends EmbgitSyncBase with GitHub-specific URL construction.
*/
import type { PublConf } from '@quiqr/types';
import type { SyncServiceDependencies } from '../sync-factory.js';
import { EmbgitSyncBase, type BaseSyncConfig } from '../embgit-sync-base.js';
/**
* GitHub sync configuration
*/
export interface GithubSyncConfig extends BaseSyncConfig {
type: 'github';
username: string;
repository: string;
}
/**
* GithubSync - Git-based sync with GitHub
*/
export class GithubSync extends EmbgitSyncBase {
protected override config: GithubSyncConfig;
constructor(config: PublConf, siteKey: string, dependencies: SyncServiceDependencies) {
super(config, siteKey, dependencies);
this.config = config as GithubSyncConfig;
}
/**
* Get the GitHub SSH URL
*/
getGitUrl(): string {
return `git@github.com:${this.config.username}/${this.config.repository}.git`;
}
/**
* Get the log prefix for console output
*/
getLogPrefix(): string {
return 'GITHUB';
}
}
|