mirror of
https://github.com/RayLabsHQ/gitea-mirror.git
synced 2025-12-27 01:58:07 +03:00
52 lines
1.5 KiB
TypeScript
52 lines
1.5 KiB
TypeScript
import { decrypt } from "./encryption";
|
|
import type { Config } from "@/types/config";
|
|
|
|
/**
|
|
* Decrypts tokens in a config object for use in API calls
|
|
* @param config The config object with potentially encrypted tokens
|
|
* @returns Config object with decrypted tokens
|
|
*/
|
|
export function decryptConfigTokens(config: Config): Config {
|
|
const decryptedConfig = { ...config };
|
|
|
|
// Deep clone the config objects
|
|
if (config.githubConfig) {
|
|
decryptedConfig.githubConfig = { ...config.githubConfig };
|
|
if (config.githubConfig.token) {
|
|
decryptedConfig.githubConfig.token = decrypt(config.githubConfig.token);
|
|
}
|
|
}
|
|
|
|
if (config.giteaConfig) {
|
|
decryptedConfig.giteaConfig = { ...config.giteaConfig };
|
|
if (config.giteaConfig.token) {
|
|
decryptedConfig.giteaConfig.token = decrypt(config.giteaConfig.token);
|
|
}
|
|
}
|
|
|
|
return decryptedConfig;
|
|
}
|
|
|
|
/**
|
|
* Gets a decrypted GitHub token from config
|
|
* @param config The config object
|
|
* @returns Decrypted GitHub token
|
|
*/
|
|
export function getDecryptedGitHubToken(config: Config): string {
|
|
if (!config.githubConfig?.token) {
|
|
throw new Error("GitHub token not found in config");
|
|
}
|
|
return decrypt(config.githubConfig.token);
|
|
}
|
|
|
|
/**
|
|
* Gets a decrypted Gitea token from config
|
|
* @param config The config object
|
|
* @returns Decrypted Gitea token
|
|
*/
|
|
export function getDecryptedGiteaToken(config: Config): string {
|
|
if (!config.giteaConfig?.token) {
|
|
throw new Error("Gitea token not found in config");
|
|
}
|
|
return decrypt(config.giteaConfig.token);
|
|
} |