Merge pull request #3081 from github/koesie10/github-databases-directory

Move GitHub databases files to separate directory
This commit is contained in:
Koen Vlaswinkel
2023-11-24 15:44:56 +01:00
committed by GitHub
9 changed files with 77 additions and 70 deletions

View File

@@ -1,10 +1,10 @@
import { RequestError } from "@octokit/request-error";
import { Octokit } from "@octokit/rest";
import { RestEndpointMethodTypes } from "@octokit/plugin-rest-endpoint-methods";
import { showNeverAskAgainDialog } from "../common/vscode/dialog";
import { GitHubDatabaseConfig } from "../config";
import { Credentials } from "../common/authentication";
import { AppOctokit } from "../common/octokit";
import { showNeverAskAgainDialog } from "../../common/vscode/dialog";
import { GitHubDatabaseConfig } from "../../config";
import { Credentials } from "../../common/authentication";
import { AppOctokit } from "../../common/octokit";
export type CodeqlDatabase =
RestEndpointMethodTypes["codeScanning"]["listCodeqlDatabases"]["response"]["data"][number];

View File

@@ -1,14 +1,14 @@
import { window } from "vscode";
import { Octokit } from "@octokit/rest";
import { showNeverAskAgainDialog } from "../common/vscode/dialog";
import { getLanguageDisplayName } from "../common/query-language";
import { downloadGitHubDatabaseFromUrl } from "./database-fetcher";
import { withProgress } from "../common/vscode/progress";
import { DatabaseManager } from "./local-databases";
import { CodeQLCliServer } from "../codeql-cli/cli";
import { AppCommandManager } from "../common/commands";
import { GitHubDatabaseConfig } from "../config";
import type { CodeqlDatabase } from "./github-database-api";
import { showNeverAskAgainDialog } from "../../common/vscode/dialog";
import { getLanguageDisplayName } from "../../common/query-language";
import { downloadGitHubDatabaseFromUrl } from "../database-fetcher";
import { withProgress } from "../../common/vscode/progress";
import { DatabaseManager } from "../local-databases";
import { CodeQLCliServer } from "../../codeql-cli/cli";
import { AppCommandManager } from "../../common/commands";
import { GitHubDatabaseConfig } from "../../config";
import type { CodeqlDatabase } from "./api";
/**
* Ask whether the user wants to download a database from GitHub.

View File

@@ -1,30 +1,33 @@
import { window } from "vscode";
import { DisposableObject } from "../common/disposable-object";
import { App } from "../common/app";
import { findGitHubRepositoryForWorkspace } from "./github-repository-finder";
import { redactableError } from "../common/errors";
import { asError, assertNever, getErrorMessage } from "../common/helpers-pure";
import { DisposableObject } from "../../common/disposable-object";
import { App } from "../../common/app";
import { findGitHubRepositoryForWorkspace } from "../github-repository-finder";
import { redactableError } from "../../common/errors";
import {
asError,
assertNever,
getErrorMessage,
} from "../../common/helpers-pure";
import {
askForGitHubDatabaseDownload,
downloadDatabaseFromGitHub,
} from "./github-database-download";
import { GitHubDatabaseConfig, GitHubDatabaseConfigListener } from "../config";
import { DatabaseManager } from "./local-databases";
import { CodeQLCliServer } from "../codeql-cli/cli";
} from "./download";
import {
CodeqlDatabase,
listDatabases,
ListDatabasesResult,
} from "./github-database-api";
GitHubDatabaseConfig,
GitHubDatabaseConfigListener,
} from "../../config";
import { DatabaseManager } from "../local-databases";
import { CodeQLCliServer } from "../../codeql-cli/cli";
import { CodeqlDatabase, listDatabases, ListDatabasesResult } from "./api";
import {
askForGitHubDatabaseUpdate,
DatabaseUpdate,
downloadDatabaseUpdateFromGitHub,
isNewerDatabaseAvailable,
} from "./github-database-updates";
} from "./updates";
import { Octokit } from "@octokit/rest";
export class GithubDatabaseModule extends DisposableObject {
export class GitHubDatabasesModule extends DisposableObject {
private readonly config: GitHubDatabaseConfig;
private constructor(
@@ -43,17 +46,17 @@ export class GithubDatabaseModule extends DisposableObject {
databaseManager: DatabaseManager,
databaseStoragePath: string,
cliServer: CodeQLCliServer,
): Promise<GithubDatabaseModule> {
const githubDatabaseModule = new GithubDatabaseModule(
): Promise<GitHubDatabasesModule> {
const githubDatabasesModule = new GitHubDatabasesModule(
app,
databaseManager,
databaseStoragePath,
cliServer,
);
app.subscriptions.push(githubDatabaseModule);
app.subscriptions.push(githubDatabasesModule);
await githubDatabaseModule.initialize();
return githubDatabaseModule;
await githubDatabasesModule.initialize();
return githubDatabasesModule;
}
private async initialize(): Promise<void> {

View File

@@ -0,0 +1 @@
export * from "./github-databases-module";

View File

@@ -1,15 +1,15 @@
import { CodeqlDatabase } from "./github-database-api";
import { DatabaseItem, DatabaseManager } from "./local-databases";
import { CodeqlDatabase } from "./api";
import { DatabaseItem, DatabaseManager } from "../local-databases";
import { Octokit } from "@octokit/rest";
import { CodeQLCliServer } from "../codeql-cli/cli";
import { AppCommandManager } from "../common/commands";
import { getLanguageDisplayName } from "../common/query-language";
import { showNeverAskAgainDialog } from "../common/vscode/dialog";
import { downloadGitHubDatabaseFromUrl } from "./database-fetcher";
import { withProgress } from "../common/vscode/progress";
import { CodeQLCliServer } from "../../codeql-cli/cli";
import { AppCommandManager } from "../../common/commands";
import { getLanguageDisplayName } from "../../common/query-language";
import { showNeverAskAgainDialog } from "../../common/vscode/dialog";
import { downloadGitHubDatabaseFromUrl } from "../database-fetcher";
import { withProgress } from "../../common/vscode/progress";
import { window } from "vscode";
import { GitHubDatabaseConfig } from "../config";
import { joinLanguages, promptForDatabases } from "./github-database-download";
import { GitHubDatabaseConfig } from "../../config";
import { joinLanguages, promptForDatabases } from "./download";
export type DatabaseUpdate = {
database: CodeqlDatabase;

View File

@@ -137,7 +137,7 @@ import { QueriesModule } from "./queries-panel/queries-module";
import { OpenReferencedFileCodeLensProvider } from "./local-queries/open-referenced-file-code-lens-provider";
import { LanguageContextStore } from "./language-context-store";
import { LanguageSelectionPanel } from "./language-selection-panel/language-selection-panel";
import { GithubDatabaseModule } from "./databases/github-database-module";
import { GitHubDatabasesModule } from "./databases/github-databases";
/**
* extension.ts
@@ -871,7 +871,7 @@ async function activateWithInstalledDistribution(
),
);
await GithubDatabaseModule.initialize(
await GitHubDatabasesModule.initialize(
app,
dbm,
getContextStoragePath(ctx),

View File

@@ -1,17 +1,17 @@
import {
mockedObject,
mockedOctokitFunction,
} from "../../utils/mocking.helpers";
import { GitHubDatabaseConfig } from "../../../../src/config";
import * as dialog from "../../../../src/common/vscode/dialog";
import { listDatabases } from "../../../../src/databases/github-database-api";
import { Credentials } from "../../../../src/common/authentication";
} from "../../../utils/mocking.helpers";
import { GitHubDatabaseConfig } from "../../../../../src/config";
import * as dialog from "../../../../../src/common/vscode/dialog";
import { listDatabases } from "../../../../../src/databases/github-databases/api";
import { Credentials } from "../../../../../src/common/authentication";
import * as Octokit from "@octokit/rest";
import { AppOctokit } from "../../../../src/common/octokit";
import { AppOctokit } from "../../../../../src/common/octokit";
import { RequestError } from "@octokit/request-error";
// Mock the AppOctokit constructor to ensure we aren't making any network requests
jest.mock("../../../../src/common/octokit", () => ({
jest.mock("../../../../../src/common/octokit", () => ({
AppOctokit: jest.fn(),
}));
const appMockListCodeqlDatabases = mockedOctokitFunction<

View File

@@ -1,18 +1,21 @@
import { faker } from "@faker-js/faker";
import { Octokit } from "@octokit/rest";
import { QuickPickItem, window } from "vscode";
import { mockedObject, mockedQuickPickItem } from "../../utils/mocking.helpers";
import {
mockedObject,
mockedQuickPickItem,
} from "../../../utils/mocking.helpers";
import {
askForGitHubDatabaseDownload,
downloadDatabaseFromGitHub,
} from "../../../../src/databases/github-database-download";
import { DatabaseManager } from "../../../../src/databases/local-databases";
import { GitHubDatabaseConfig } from "../../../../src/config";
import { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
import { createMockCommandManager } from "../../../__mocks__/commandsMock";
import * as databaseFetcher from "../../../../src/databases/database-fetcher";
import * as dialog from "../../../../src/common/vscode/dialog";
import { CodeqlDatabase } from "../../../../src/databases/github-database-api";
} from "../../../../../src/databases/github-databases/download";
import { DatabaseManager } from "../../../../../src/databases/local-databases";
import { GitHubDatabaseConfig } from "../../../../../src/config";
import { CodeQLCliServer } from "../../../../../src/codeql-cli/cli";
import { createMockCommandManager } from "../../../../__mocks__/commandsMock";
import * as databaseFetcher from "../../../../../src/databases/database-fetcher";
import * as dialog from "../../../../../src/common/vscode/dialog";
import { CodeqlDatabase } from "../../../../../src/databases/github-databases/api";
describe("askForGitHubDatabaseDownload", () => {
const setDownload = jest.fn();

View File

@@ -5,20 +5,20 @@ import {
mockDatabaseItem,
mockedObject,
mockedQuickPickItem,
} from "../../utils/mocking.helpers";
import { CodeqlDatabase } from "../../../../src/databases/github-database-api";
import { DatabaseManager } from "../../../../src/databases/local-databases";
import { GitHubDatabaseConfig } from "../../../../src/config";
import { CodeQLCliServer } from "../../../../src/codeql-cli/cli";
import { createMockCommandManager } from "../../../__mocks__/commandsMock";
import * as databaseFetcher from "../../../../src/databases/database-fetcher";
import * as dialog from "../../../../src/common/vscode/dialog";
} from "../../../utils/mocking.helpers";
import { CodeqlDatabase } from "../../../../../src/databases/github-databases/api";
import { DatabaseManager } from "../../../../../src/databases/local-databases";
import { GitHubDatabaseConfig } from "../../../../../src/config";
import { CodeQLCliServer } from "../../../../../src/codeql-cli/cli";
import { createMockCommandManager } from "../../../../__mocks__/commandsMock";
import * as databaseFetcher from "../../../../../src/databases/database-fetcher";
import * as dialog from "../../../../../src/common/vscode/dialog";
import {
DatabaseUpdate,
askForGitHubDatabaseUpdate,
downloadDatabaseUpdateFromGitHub,
isNewerDatabaseAvailable,
} from "../../../../src/databases/github-database-updates";
} from "../../../../../src/databases/github-databases/updates";
describe("isNewerDatabaseAvailable", () => {
const owner = "github";