/** * Portfolio configuration utilities * Handles repository name configuration for portfolio sync */ /** * Validates a GitHub repository name against GitHub's naming requirements. * * GitHub repository names must: * - Contain only alphanumeric characters, hyphens, underscores, and dots * - Not contain slashes (use PORTFOLIO_REPOSITORY_NAME instead of owner/repo format) * - Not be empty or only whitespace * * @param name - The repository name to validate * @returns The trimmed repository name if valid * @throws Error if the repository name is invalid with guidance on how to fix it * * @example * // Valid repository names * validateRepositoryName('dollhouse-portfolio'); // 'dollhouse-portfolio' * validateRepositoryName('my_repo.test'); // 'my_repo.test' * validateRepositoryName(' repo-123 '); // 'repo-123' (trimmed) * * @example * // Invalid repository names (throw errors) * validateRepositoryName('owner/repo'); // Error: contains slash * validateRepositoryName(''); // Error: empty * validateRepositoryName('repo@name'); // Error: invalid character */ export declare function validateRepositoryName(name: string | undefined): string; /** * Get the configured portfolio repository name. * * Priority order: * 1. PORTFOLIO_REPOSITORY_NAME environment variable (preferred, dedicated config) * 2. GITHUB_REPOSITORY environment variable (legacy, deprecated for portfolio use) * - Only used if it doesn't contain '/' (not in GitHub Actions "owner/repo" format) * - Shows deprecation warning * 3. TEST_GITHUB_REPO environment variable (deprecated, backward compatibility) * 4. GITHUB_TEST_REPO environment variable (deprecated, backward compatibility) * 5. TEST_PORTFOLIO_REPO environment variable (deprecated, backward compatibility) * 6. Default: 'dollhouse-portfolio' * * @returns The configured portfolio repository name (validated) * @throws Error if any configured name is invalid * * @example * // Default usage (no env vars set) * const repo = getPortfolioRepositoryName(); // 'dollhouse-portfolio' * * @example * // With PORTFOLIO_REPOSITORY_NAME (preferred) * process.env.PORTFOLIO_REPOSITORY_NAME = 'my-portfolio'; * const repo = getPortfolioRepositoryName(); // 'my-portfolio' * * @example * // With legacy GITHUB_REPOSITORY (shows deprecation warning) * process.env.GITHUB_REPOSITORY = 'my-portfolio'; * const repo = getPortfolioRepositoryName(); // 'my-portfolio' + warning * * @example * // Error: GITHUB_REPOSITORY in GitHub Actions format * process.env.GITHUB_REPOSITORY = 'owner/repo'; * getPortfolioRepositoryName(); // throws Error with migration guidance */ export declare function getPortfolioRepositoryName(): string; /** * Check if we're in a test environment * * @example * // When NODE_ENV=test * process.env.NODE_ENV = 'test'; * const isTest = isTestEnvironment(); // true * * @example * // In production environment * process.env.NODE_ENV = 'production'; * const isTest = isTestEnvironment(); // false * * @returns {boolean} True if running in a test environment */ export declare function isTestEnvironment(): boolean; //# sourceMappingURL=portfolioConfig.d.ts.map