@n8n-plus/n8n-plus
Version:
n8n Workflow Automation Tool (plus edition)
91 lines (90 loc) • 4.57 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import { FolderRepository, type TagEntity, TagRepository, type User } from '@n8n/db';
import { EventService } from '../../events/event.service';
import { SourceControlGitService } from './source-control-git.service.ee';
import { SourceControlImportService } from './source-control-import.service.ee';
import { SourceControlPreferencesService } from './source-control-preferences.service.ee';
import type { StatusExportableCredential } from './types/exportable-credential';
import type { ExportableFolder } from './types/exportable-folders';
import type { ExportableProjectWithFileName } from './types/exportable-project';
import { ExportableVariable } from './types/exportable-variable';
import type { SourceControlGetStatus } from './types/source-control-get-status';
import type { SourceControlWorkflowVersionId } from './types/source-control-workflow-version-id';
export declare class SourceControlStatusService {
private readonly logger;
private readonly gitService;
private readonly sourceControlImportService;
private readonly sourceControlPreferencesService;
private readonly tagRepository;
private readonly folderRepository;
private readonly eventService;
constructor(logger: Logger, gitService: SourceControlGitService, sourceControlImportService: SourceControlImportService, sourceControlPreferencesService: SourceControlPreferencesService, tagRepository: TagRepository, folderRepository: FolderRepository, eventService: EventService);
private get gitFolder();
getStatus(user: User, options: SourceControlGetStatus): Promise<{
type: "workflow" | "project" | "credential" | "file" | "tags" | "variables" | "folders";
status: "unknown" | "new" | "modified" | "deleted" | "created" | "renamed" | "conflicted" | "ignored" | "staged";
file: string;
id: string;
name: string;
updatedAt: string;
location: "local" | "remote";
conflict: boolean;
pushed?: boolean | undefined;
owner?: {
type: "personal" | "team";
projectId: string;
projectName: string;
} | undefined;
}[] | {
wfRemoteVersionIds: SourceControlWorkflowVersionId[];
wfLocalVersionIds: SourceControlWorkflowVersionId[];
wfMissingInLocal: SourceControlWorkflowVersionId[];
wfMissingInRemote: SourceControlWorkflowVersionId[];
wfModifiedInEither: SourceControlWorkflowVersionId[];
credMissingInLocal: StatusExportableCredential[];
credMissingInRemote: StatusExportableCredential[];
credModifiedInEither: StatusExportableCredential[];
varMissingInLocal: ExportableVariable[];
varMissingInRemote: import("@n8n/db").Variables[];
varModifiedInEither: ExportableVariable[];
tagsMissingInLocal: TagEntity[];
tagsMissingInRemote: TagEntity[];
tagsModifiedInEither: TagEntity[];
mappingsMissingInLocal: import("@n8n/db").WorkflowTagMapping[];
mappingsMissingInRemote: import("@n8n/db").WorkflowTagMapping[];
foldersMissingInLocal: ExportableFolder[];
foldersMissingInRemote: ExportableFolder[];
foldersModifiedInEither: ExportableFolder[];
projectsRemote: ExportableProjectWithFileName[];
projectsLocal: ExportableProjectWithFileName[];
projectsMissingInLocal: ExportableProjectWithFileName[];
projectsMissingInRemote: ExportableProjectWithFileName[];
projectsModifiedInEither: ExportableProjectWithFileName[];
sourceControlledFiles: {
type: "workflow" | "project" | "credential" | "file" | "tags" | "variables" | "folders";
status: "unknown" | "new" | "modified" | "deleted" | "created" | "renamed" | "conflicted" | "ignored" | "staged";
file: string;
id: string;
name: string;
updatedAt: string;
location: "local" | "remote";
conflict: boolean;
pushed?: boolean | undefined;
owner?: {
type: "personal" | "team";
projectId: string;
projectName: string;
} | undefined;
}[];
}>;
private resetWorkfolder;
private getStatusWorkflows;
private getStatusCredentials;
private getStatusVariables;
private getStatusTagsMappings;
private getStatusFoldersMapping;
private getStatusProjects;
private areVariablesEqual;
private isProjectModified;
private isProjectIconModified;
}