From d772a4050cf10a865f216ff822d3217d34ed4118 Mon Sep 17 00:00:00 2001 From: Will Hunt Date: Thu, 18 May 2023 11:38:59 +0100 Subject: [PATCH] Run Clippy in CI (#753) * Clippy fixes * Refactor to make rust linter happy * Enable warnings since we have none * Tidy up tests * changelog --- .github/workflows/main.yml | 2 +- changelog.d/753.misc | 1 + package.json | 8 +-- src/AdminRoom.ts | 10 ++-- src/AdminRoomCommandHandler.ts | 2 +- src/App/BridgeApp.ts | 2 +- src/App/GithubWebhookApp.ts | 2 +- src/App/MatrixSenderApp.ts | 2 +- src/App/ResetCryptoStore.ts | 2 +- src/BotCommands.ts | 2 +- src/Bridge.ts | 16 +++--- src/CommentProcessor.ts | 2 +- src/ConnectionManager.ts | 6 +-- src/Connections/FigmaFileConnection.ts | 2 +- src/Connections/GenericHook.ts | 2 +- src/Connections/GithubDiscussion.ts | 4 +- src/Connections/GithubDiscussionSpace.ts | 6 +-- src/Connections/GithubIssue.ts | 6 +-- src/Connections/GithubProject.ts | 4 +- src/Connections/GithubRepo.ts | 8 +-- src/Connections/GithubUserSpace.ts | 4 +- src/Connections/GitlabIssue.ts | 2 +- src/Connections/GitlabRepo.ts | 2 +- src/Connections/IConnection.ts | 4 +- src/Connections/JiraProject.ts | 12 ++--- src/Connections/SetupConnection.ts | 2 +- src/FormatUtil.ts | 4 +- src/Gitlab/Client.ts | 2 +- src/Gitlab/GrantChecker.ts | 2 +- src/Managers/BotUsersManager.ts | 2 +- src/MatrixSender.ts | 2 +- src/MessageQueue/MessageQueue.ts | 2 +- src/MessageQueue/RedisQueue.ts | 2 +- src/Notifications/GitHubWatcher.ts | 4 +- src/Notifications/UserNotificationWatcher.ts | 4 +- src/NotificationsProcessor.ts | 4 +- src/Stores/MemoryStorageProvider.ts | 2 +- src/Stores/RedisStorageProvider.ts | 2 +- src/Stores/StorageProvider.ts | 2 +- src/UserTokenStore.ts | 20 ++++---- src/Webhooks.ts | 10 ++-- src/Widgets/BridgeWidgetApi.ts | 4 +- src/Widgets/SetupWidget.ts | 2 +- src/appservice.ts | 2 +- src/{Config => config}/Config.ts | 2 +- src/{Config => config}/Decorators.ts | 0 src/{Config => config}/Defaults.ts | 0 src/{Config => config}/mod.rs | 0 src/{Config => config}/permissions.rs | 44 +++++++--------- src/feeds/FeedReader.ts | 2 +- src/figma/index.ts | 2 +- src/figma/router.ts | 2 +- src/format_util.rs | 53 ++++++++------------ src/{Github => github}/AdminCommands.ts | 2 +- src/{Github => github}/Discussion.ts | 0 src/{Github => github}/GithubInstance.ts | 0 src/{Github => github}/GrantChecker.ts | 0 src/{Github => github}/Router.ts | 2 +- src/{Github => github}/Types.ts | 0 src/{Github => github}/mod.rs | 0 src/{Github => github}/types.rs | 0 src/grants/GrantCheck.ts | 2 +- src/{Jira => jira}/AdminCommands.ts | 2 +- src/{Jira => jira}/Client.ts | 0 src/{Jira => jira}/GrantChecker.ts | 0 src/{Jira => jira}/OAuth.ts | 0 src/{Jira => jira}/Router.ts | 2 +- src/{Jira => jira}/Types.ts | 0 src/{Jira => jira}/WebhookTypes.ts | 0 src/{Jira => jira}/client/CloudClient.ts | 2 +- src/{Jira => jira}/client/OnPremClient.ts | 2 +- src/{Jira => jira}/index.ts | 0 src/{Jira => jira}/mod.rs | 0 src/{Jira => jira}/oauth/CloudOAuth.ts | 2 +- src/{Jira => jira}/oauth/OnPremOAuth.ts | 2 +- src/{Jira => jira}/types.rs | 3 +- src/{Jira => jira}/utils.rs | 6 +-- src/lib.rs | 6 +-- src/provisioning/provisioner.ts | 2 +- tests/AdminRoomTest.ts | 2 +- tests/FeedReader.spec.ts | 2 +- tests/FormatUtilTest.ts | 2 +- tests/connections/GenericHookTest.ts | 2 +- tests/connections/GithubRepoTest.ts | 4 +- tests/connections/GitlabRepoTest.ts | 2 +- tests/github/AdminCommands.ts | 4 +- tests/grants/GrantChecker.spec.ts | 4 +- tests/jira/Utils.ts | 11 +++- 88 files changed, 177 insertions(+), 183 deletions(-) create mode 100644 changelog.d/753.misc rename src/{Config => config}/Config.ts (99%) rename src/{Config => config}/Decorators.ts (100%) rename src/{Config => config}/Defaults.ts (100%) rename src/{Config => config}/mod.rs (100%) rename src/{Config => config}/permissions.rs (80%) rename src/{Github => github}/AdminCommands.ts (98%) rename src/{Github => github}/Discussion.ts (100%) rename src/{Github => github}/GithubInstance.ts (100%) rename src/{Github => github}/GrantChecker.ts (100%) rename src/{Github => github}/Router.ts (99%) rename src/{Github => github}/Types.ts (100%) rename src/{Github => github}/mod.rs (100%) rename src/{Github => github}/types.rs (100%) rename src/{Jira => jira}/AdminCommands.ts (98%) rename src/{Jira => jira}/Client.ts (100%) rename src/{Jira => jira}/GrantChecker.ts (100%) rename src/{Jira => jira}/OAuth.ts (100%) rename src/{Jira => jira}/Router.ts (99%) rename src/{Jira => jira}/Types.ts (100%) rename src/{Jira => jira}/WebhookTypes.ts (100%) rename src/{Jira => jira}/client/CloudClient.ts (99%) rename src/{Jira => jira}/client/OnPremClient.ts (98%) rename src/{Jira => jira}/index.ts (100%) rename src/{Jira => jira}/mod.rs (100%) rename src/{Jira => jira}/oauth/CloudOAuth.ts (96%) rename src/{Jira => jira}/oauth/OnPremOAuth.ts (99%) rename src/{Jira => jira}/types.rs (96%) rename src/{Jira => jira}/utils.rs (90%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5ebe4be9..ab24c99b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -44,7 +44,7 @@ jobs: with: node-version-file: .node-version - run: yarn # Need to build scripts to get rust bindings - - run: yarn --silent ts-node src/Config/Defaults.ts --config | diff config.sample.yml - + - run: yarn --silent ts-node src/config/Defaults.ts --config | diff config.sample.yml - metrics-docs: runs-on: ubuntu-latest diff --git a/changelog.d/753.misc b/changelog.d/753.misc new file mode 100644 index 00000000..926cd937 --- /dev/null +++ b/changelog.d/753.misc @@ -0,0 +1 @@ +Apply more Rust clippy suggestions, and run clippy in CI. diff --git a/package.json b/package.json index 2a4f2ce9..af0de1f4 100644 --- a/package.json +++ b/package.json @@ -35,10 +35,10 @@ "test:cover": "nyc --reporter=lcov --reporter=text yarn test", "lint": "yarn run lint:js && yarn run lint:rs", "lint:js": "eslint -c .eslintrc.js 'src/**/*.ts' 'tests/**/*.ts' 'web/**/*.ts' 'web/**/*.tsx'", - "lint:rs": "cargo fmt --all -- --check", - "lint:rs:apply": "cargo fmt --all", - "generate-default-config": "ts-node src/Config/Defaults.ts --config > config.sample.yml", - "validate-config": "ts-node src/Config/Config.ts" + "lint:rs": "cargo fmt --all -- --check && cargo clippy -- -Dwarnings", + "lint:rs:apply": "cargo fmt --all && cargo clippy --fix", + "generate-default-config": "ts-node src/config/Defaults.ts --config > config.sample.yml", + "validate-config": "ts-node src/config/Config.ts" }, "dependencies": { "@alloc/quick-lru": "^5.2.0", diff --git a/src/AdminRoom.ts b/src/AdminRoom.ts index 2b33e003..efa2c130 100644 --- a/src/AdminRoom.ts +++ b/src/AdminRoom.ts @@ -2,20 +2,20 @@ import "reflect-metadata"; import { AdminAccountData, AdminRoomCommandHandler, Category } from "./AdminRoomCommandHandler"; import { botCommand, compileBotCommands, handleCommand, BotCommands, HelpFunction } from "./BotCommands"; -import { BridgeConfig, BridgePermissionLevel } from "./Config/Config"; +import { BridgeConfig, BridgePermissionLevel } from "./config/Config"; import { BridgeRoomState, BridgeRoomStateGitHub } from "./Widgets/BridgeWidgetInterface"; import { Endpoints } from "@octokit/types"; import { GitHubDiscussionSpace, GitHubIssueConnection, GitHubRepoConnection } from "./Connections"; import { ConnectionManager } from "./ConnectionManager"; import { FormatUtil } from "./FormatUtil"; import { GetUserResponse } from "./Gitlab/Types"; -import { GitHubBotCommands } from "./Github/AdminCommands"; -import { GithubGraphQLClient } from "./Github/GithubInstance"; +import { GitHubBotCommands } from "./github/AdminCommands"; +import { GithubGraphQLClient } from "./github/GithubInstance"; import { GitLabClient } from "./Gitlab/Client"; import { Intent } from "matrix-bot-sdk"; -import { JiraBotCommands } from "./Jira/AdminCommands"; +import { JiraBotCommands } from "./jira/AdminCommands"; import { NotifFilter, NotificationFilterStateContent } from "./NotificationFilters"; -import { ProjectsListResponseData } from "./Github/Types"; +import { ProjectsListResponseData } from "./github/Types"; import { UserTokenStore } from "./UserTokenStore"; import { Logger } from "matrix-appservice-bridge"; import markdown from "markdown-it"; diff --git a/src/AdminRoomCommandHandler.ts b/src/AdminRoomCommandHandler.ts index 0aeb628e..10102e7e 100644 --- a/src/AdminRoomCommandHandler.ts +++ b/src/AdminRoomCommandHandler.ts @@ -1,6 +1,6 @@ import EventEmitter from "events"; import { Intent } from "matrix-bot-sdk"; -import { BridgeConfig } from "./Config/Config"; +import { BridgeConfig } from "./config/Config"; import { UserTokenStore } from "./UserTokenStore"; diff --git a/src/App/BridgeApp.ts b/src/App/BridgeApp.ts index 5c24e52a..d3df66e2 100644 --- a/src/App/BridgeApp.ts +++ b/src/App/BridgeApp.ts @@ -1,6 +1,6 @@ import { Bridge } from "../Bridge"; -import { BridgeConfig, parseRegistrationFile } from "../Config/Config"; +import { BridgeConfig, parseRegistrationFile } from "../config/Config"; import { Webhooks } from "../Webhooks"; import { MatrixSender } from "../MatrixSender"; import { UserNotificationWatcher } from "../Notifications/UserNotificationWatcher"; diff --git a/src/App/GithubWebhookApp.ts b/src/App/GithubWebhookApp.ts index a4a5bb0d..6fe6f610 100644 --- a/src/App/GithubWebhookApp.ts +++ b/src/App/GithubWebhookApp.ts @@ -1,4 +1,4 @@ -import { BridgeConfig } from "../Config/Config"; +import { BridgeConfig } from "../config/Config"; import { Webhooks } from "../Webhooks"; import { Logger } from "matrix-appservice-bridge"; import { UserNotificationWatcher } from "../Notifications/UserNotificationWatcher"; diff --git a/src/App/MatrixSenderApp.ts b/src/App/MatrixSenderApp.ts index f0f48919..f41d6451 100644 --- a/src/App/MatrixSenderApp.ts +++ b/src/App/MatrixSenderApp.ts @@ -1,4 +1,4 @@ -import { BridgeConfig, parseRegistrationFile } from "../Config/Config"; +import { BridgeConfig, parseRegistrationFile } from "../config/Config"; import { MatrixSender } from "../MatrixSender"; import { Logger } from "matrix-appservice-bridge"; import Metrics from "../Metrics"; diff --git a/src/App/ResetCryptoStore.ts b/src/App/ResetCryptoStore.ts index 007af35b..1fddf145 100644 --- a/src/App/ResetCryptoStore.ts +++ b/src/App/ResetCryptoStore.ts @@ -1,6 +1,6 @@ import { rm } from "fs/promises"; -import { BridgeConfig, parseRegistrationFile } from "../Config/Config"; +import { BridgeConfig, parseRegistrationFile } from "../config/Config"; import { Logger } from "matrix-appservice-bridge"; import { LogService, MatrixClient } from "matrix-bot-sdk"; import { getAppservice } from "../appservice"; diff --git a/src/BotCommands.ts b/src/BotCommands.ts index d4a7b1d0..27d528a6 100644 --- a/src/BotCommands.ts +++ b/src/BotCommands.ts @@ -3,7 +3,7 @@ import stringArgv from "string-argv"; import { ApiError } from "./api"; import { CommandError } from "./errors"; import { MatrixMessageContent } from "./MatrixEvent"; -import { BridgePermissionLevel } from "./Config/Config"; +import { BridgePermissionLevel } from "./config/Config"; import { PermissionCheckFn } from "./Connections"; const md = new markdown(); diff --git a/src/Bridge.ts b/src/Bridge.ts index 2e4a564f..b7c22698 100644 --- a/src/Bridge.ts +++ b/src/Bridge.ts @@ -2,40 +2,40 @@ import { AdminAccountData } from "./AdminRoomCommandHandler"; import { AdminRoom, BRIDGE_ROOM_TYPE, LEGACY_BRIDGE_ROOM_TYPE } from "./AdminRoom"; import { Appservice, RichRepliesPreprocessor, IRichReplyMetadata, StateEvent, EventKind, PowerLevelsEvent, Intent } from "matrix-bot-sdk"; import BotUsersManager from "./Managers/BotUsersManager"; -import { BridgeConfig, BridgePermissionLevel, GitLabInstance } from "./Config/Config"; +import { BridgeConfig, BridgePermissionLevel, GitLabInstance } from "./config/Config"; import { BridgeWidgetApi } from "./Widgets/BridgeWidgetApi"; import { CommentProcessor } from "./CommentProcessor"; import { ConnectionManager } from "./ConnectionManager"; import { GetIssueResponse, GetIssueOpts } from "./Gitlab/Types" -import { GithubInstance } from "./Github/GithubInstance"; +import { GithubInstance } from "./github/GithubInstance"; import { IBridgeStorageProvider } from "./Stores/StorageProvider"; import { IConnection, GitHubDiscussionSpace, GitHubDiscussionConnection, GitHubUserSpace, JiraProjectConnection, GitLabRepoConnection, GitHubIssueConnection, GitHubProjectConnection, GitHubRepoConnection, GitLabIssueConnection, FigmaFileConnection, FeedConnection, GenericHookConnection } from "./Connections"; import { IGitLabWebhookIssueStateEvent, IGitLabWebhookMREvent, IGitLabWebhookNoteEvent, IGitLabWebhookPushEvent, IGitLabWebhookReleaseEvent, IGitLabWebhookTagPushEvent, IGitLabWebhookWikiPageEvent } from "./Gitlab/WebhookTypes"; -import { JiraIssueEvent, JiraIssueUpdatedEvent, JiraVersionEvent } from "./Jira/WebhookTypes"; -import { JiraOAuthResult } from "./Jira/Types"; +import { JiraIssueEvent, JiraIssueUpdatedEvent, JiraVersionEvent } from "./jira/WebhookTypes"; +import { JiraOAuthResult } from "./jira/Types"; import { MatrixEvent, MatrixMemberContent, MatrixMessageContent } from "./MatrixEvent"; import { MessageQueue, createMessageQueue } from "./MessageQueue"; import { MessageSenderClient } from "./MatrixSender"; import { NotifFilter, NotificationFilterStateContent } from "./NotificationFilters"; import { NotificationProcessor } from "./NotificationsProcessor"; import { NotificationsEnableEvent, NotificationsDisableEvent } from "./Webhooks"; -import { GitHubOAuthToken, GitHubOAuthTokenResponse, ProjectsGetResponseData } from "./Github/Types"; +import { GitHubOAuthToken, GitHubOAuthTokenResponse, ProjectsGetResponseData } from "./github/Types"; import { retry } from "./PromiseUtil"; import { UserNotificationsEvent } from "./Notifications/UserNotificationWatcher"; import { UserTokenStore } from "./UserTokenStore"; import * as GitHubWebhookTypes from "@octokit/webhooks-types"; import { Logger } from "matrix-appservice-bridge"; import { Provisioner } from "./provisioning/provisioner"; -import { JiraProvisionerRouter } from "./Jira/Router"; -import { GitHubProvisionerRouter } from "./Github/Router"; +import { JiraProvisionerRouter } from "./jira/Router"; +import { GitHubProvisionerRouter } from "./github/Router"; import { OAuthRequest } from "./WebhookTypes"; import { promises as fs } from "fs"; import Metrics from "./Metrics"; import { FigmaEvent, ensureFigmaWebhooks } from "./figma"; import { ListenerService } from "./ListenerService"; import { SetupConnection } from "./Connections/SetupConnection"; -import { JiraOAuthRequestCloud, JiraOAuthRequestOnPrem, JiraOAuthRequestResult } from "./Jira/OAuth"; +import { JiraOAuthRequestCloud, JiraOAuthRequestOnPrem, JiraOAuthRequestResult } from "./jira/OAuth"; import { GenericWebhookEvent, GenericWebhookEventResult } from "./generic/types"; import { SetupWidget } from "./Widgets/SetupWidget"; import { FeedEntry, FeedError, FeedReader, FeedSuccess } from "./feeds/FeedReader"; diff --git a/src/CommentProcessor.ts b/src/CommentProcessor.ts index 2ffd442e..7842cda8 100644 --- a/src/CommentProcessor.ts +++ b/src/CommentProcessor.ts @@ -6,7 +6,7 @@ import { MatrixMessageContent, MatrixEvent } from "./MatrixEvent"; import { Logger } from "matrix-appservice-bridge"; import axios from "axios"; import { FormatUtil } from "./FormatUtil"; -import { IssuesGetCommentResponseData, ReposGetResponseData, IssuesGetResponseData } from "./Github/Types" +import { IssuesGetCommentResponseData, ReposGetResponseData, IssuesGetResponseData } from "./github/Types" import { IGitLabWebhookNoteEvent } from "./Gitlab/WebhookTypes"; const REGEX_MENTION = /(^|\s)(@[a-z\d](?:[a-z\d]|-(?=[a-z\d])){0,38})(\s|$)/ig; diff --git a/src/ConnectionManager.ts b/src/ConnectionManager.ts index f131a132..c475aa77 100644 --- a/src/ConnectionManager.ts +++ b/src/ConnectionManager.ts @@ -6,15 +6,15 @@ import { Appservice, Intent, StateEvent } from "matrix-bot-sdk"; import { ApiError, ErrCode } from "./api"; -import { BridgeConfig, BridgePermissionLevel, GitLabInstance } from "./Config/Config"; +import { BridgeConfig, BridgePermissionLevel, GitLabInstance } from "./config/Config"; import { CommentProcessor } from "./CommentProcessor"; import { ConnectionDeclaration, ConnectionDeclarations, GenericHookConnection, GitHubDiscussionConnection, GitHubDiscussionSpace, GitHubIssueConnection, GitHubProjectConnection, GitHubRepoConnection, GitHubUserSpace, GitLabIssueConnection, GitLabRepoConnection, IConnection, IConnectionState, JiraProjectConnection } from "./Connections"; import { FigmaFileConnection, FeedConnection } from "./Connections"; import { GetConnectionTypeResponseItem } from "./provisioning/api"; import { GitLabClient } from "./Gitlab/Client"; -import { GithubInstance } from "./Github/GithubInstance"; +import { GithubInstance } from "./github/GithubInstance"; import { IBridgeStorageProvider } from "./Stores/StorageProvider"; -import { JiraProject, JiraVersion } from "./Jira/Types"; +import { JiraProject, JiraVersion } from "./jira/Types"; import { Logger } from "matrix-appservice-bridge"; import { MessageSenderClient } from "./MatrixSender"; import { UserTokenStore } from "./UserTokenStore"; diff --git a/src/Connections/FigmaFileConnection.ts b/src/Connections/FigmaFileConnection.ts index f1e1fc21..1a662ded 100644 --- a/src/Connections/FigmaFileConnection.ts +++ b/src/Connections/FigmaFileConnection.ts @@ -5,7 +5,7 @@ import { BaseConnection } from "./BaseConnection"; import { IConnection, IConnectionState } from "."; import { Logger } from "matrix-appservice-bridge"; import { IBridgeStorageProvider } from "../Stores/StorageProvider"; -import { BridgeConfig } from "../Config/Config"; +import { BridgeConfig } from "../config/Config"; import { Connection, InstantiateConnectionOpts, ProvisionConnectionOpts } from "./IConnection"; import { ConfigGrantChecker, GrantChecker } from "../grants/GrantCheck"; diff --git a/src/Connections/GenericHook.ts b/src/Connections/GenericHook.ts index 173e805d..26e5c48c 100644 --- a/src/Connections/GenericHook.ts +++ b/src/Connections/GenericHook.ts @@ -8,7 +8,7 @@ import { Appservice, Intent, StateEvent } from "matrix-bot-sdk"; import { ApiError, ErrCode } from "../api"; import { BaseConnection } from "./BaseConnection"; import { GetConnectionsResponseItem } from "../provisioning/api"; -import { BridgeConfigGenericWebhooks } from "../Config/Config"; +import { BridgeConfigGenericWebhooks } from "../config/Config"; import { ensureUserIsInRoom } from "../IntentUtils"; import { randomUUID } from 'node:crypto'; diff --git a/src/Connections/GithubDiscussion.ts b/src/Connections/GithubDiscussion.ts index 44407245..5529118c 100644 --- a/src/Connections/GithubDiscussion.ts +++ b/src/Connections/GithubDiscussion.ts @@ -9,10 +9,10 @@ import { Discussion } from "@octokit/webhooks-types"; import emoji from "node-emoji"; import markdown from "markdown-it"; import { DiscussionCommentCreatedEvent } from "@octokit/webhooks-types"; -import { GithubGraphQLClient } from "../Github/GithubInstance"; +import { GithubGraphQLClient } from "../github/GithubInstance"; import { Logger } from "matrix-appservice-bridge"; import { BaseConnection } from "./BaseConnection"; -import { BridgeConfig, BridgeConfigGitHub } from "../Config/Config"; +import { BridgeConfig, BridgeConfigGitHub } from "../config/Config"; import { ConfigGrantChecker, GrantChecker } from "../grants/GrantCheck"; import QuickLRU from "@alloc/quick-lru"; export interface GitHubDiscussionConnectionState { diff --git a/src/Connections/GithubDiscussionSpace.ts b/src/Connections/GithubDiscussionSpace.ts index 4cc432d1..590b19ca 100644 --- a/src/Connections/GithubDiscussionSpace.ts +++ b/src/Connections/GithubDiscussionSpace.ts @@ -1,13 +1,13 @@ import { Connection, IConnection, InstantiateConnectionOpts } from "./IConnection"; import { Appservice, Space, StateEvent } from "matrix-bot-sdk"; import { Logger } from "matrix-appservice-bridge"; -import { ReposGetResponseData } from "../Github/Types"; +import { ReposGetResponseData } from "../github/Types"; import axios from "axios"; import { GitHubDiscussionConnection } from "./GithubDiscussion"; -import { GithubInstance } from "../Github/GithubInstance"; +import { GithubInstance } from "../github/GithubInstance"; import { BaseConnection } from "./BaseConnection"; import { ConfigGrantChecker, GrantChecker } from "../grants/GrantCheck"; -import { BridgeConfig } from "../Config/Config"; +import { BridgeConfig } from "../config/Config"; const log = new Logger("GitHubDiscussionSpace"); diff --git a/src/Connections/GithubIssue.ts b/src/Connections/GithubIssue.ts index e4ba7f4e..449349d4 100644 --- a/src/Connections/GithubIssue.ts +++ b/src/Connections/GithubIssue.ts @@ -9,11 +9,11 @@ import { MessageSenderClient } from "../MatrixSender"; import { ensureUserIsInRoom, getIntentForUser } from "../IntentUtils"; import { FormatUtil } from "../FormatUtil"; import axios from "axios"; -import { GithubInstance } from "../Github/GithubInstance"; -import { IssuesGetCommentResponseData, IssuesGetResponseData, ReposGetResponseData} from "../Github/Types"; +import { GithubInstance } from "../github/GithubInstance"; +import { IssuesGetCommentResponseData, IssuesGetResponseData, ReposGetResponseData} from "../github/Types"; import { IssuesEditedEvent, IssueCommentCreatedEvent } from "@octokit/webhooks-types"; import { BaseConnection } from "./BaseConnection"; -import { BridgeConfigGitHub } from "../Config/Config"; +import { BridgeConfigGitHub } from "../config/Config"; export interface GitHubIssueConnectionState { org: string; diff --git a/src/Connections/GithubProject.ts b/src/Connections/GithubProject.ts index 690cc70f..f9e99fe2 100644 --- a/src/Connections/GithubProject.ts +++ b/src/Connections/GithubProject.ts @@ -1,10 +1,10 @@ import { Connection, IConnection, InstantiateConnectionOpts } from "./IConnection"; import { Appservice, Intent, StateEvent } from "matrix-bot-sdk"; import { Logger } from "matrix-appservice-bridge"; -import { ProjectsGetResponseData } from "../Github/Types"; +import { ProjectsGetResponseData } from "../github/Types"; import { BaseConnection } from "./BaseConnection"; import { ConfigGrantChecker, GrantChecker } from "../grants/GrantCheck"; -import { BridgeConfig } from "../Config/Config"; +import { BridgeConfig } from "../config/Config"; export interface GitHubProjectConnectionState { // eslint-disable-next-line camelcase diff --git a/src/Connections/GithubRepo.ts b/src/Connections/GithubRepo.ts index f762cb1c..e58dcd0f 100644 --- a/src/Connections/GithubRepo.ts +++ b/src/Connections/GithubRepo.ts @@ -13,22 +13,22 @@ import { IssuesOpenedEvent, IssuesReopenedEvent, IssuesEditedEvent, PullRequestO import { MatrixMessageContent, MatrixEvent, MatrixReactionContent } from "../MatrixEvent"; import { MessageSenderClient } from "../MatrixSender"; import { CommandError, NotLoggedInError } from "../errors"; -import { NAMELESS_ORG_PLACEHOLDER, ReposGetResponseData } from "../Github/Types"; +import { NAMELESS_ORG_PLACEHOLDER, ReposGetResponseData } from "../github/Types"; import { UserTokenStore } from "../UserTokenStore"; import axios, { AxiosError } from "axios"; import emoji from "node-emoji"; import { Logger } from "matrix-appservice-bridge"; import markdown from "markdown-it"; import { CommandConnection } from "./CommandConnection"; -import { GithubInstance } from "../Github/GithubInstance"; +import { GithubInstance } from "../github/GithubInstance"; import { GitHubIssueConnection } from "./GithubIssue"; -import { BridgeConfigGitHub } from "../Config/Config"; +import { BridgeConfigGitHub } from "../config/Config"; import { ApiError, ErrCode, ValidatorApiError } from "../api"; import { PermissionCheckFn } from "."; import { GitHubRepoMessageBody, MinimalGitHubIssue } from "../libRs"; import Ajv, { JSONSchemaType } from "ajv"; import { HookFilter } from "../HookFilter"; -import { GitHubGrantChecker } from "../Github/GrantChecker"; +import { GitHubGrantChecker } from "../github/GrantChecker"; const log = new Logger("GitHubRepoConnection"); const md = new markdown(); diff --git a/src/Connections/GithubUserSpace.ts b/src/Connections/GithubUserSpace.ts index 727a82e8..a943c5bd 100644 --- a/src/Connections/GithubUserSpace.ts +++ b/src/Connections/GithubUserSpace.ts @@ -3,10 +3,10 @@ import { Appservice, Space, StateEvent } from "matrix-bot-sdk"; import { Logger } from "matrix-appservice-bridge"; import axios from "axios"; import { GitHubDiscussionSpace } from "."; -import { GithubInstance } from "../Github/GithubInstance"; +import { GithubInstance } from "../github/GithubInstance"; import { BaseConnection } from "./BaseConnection"; import { ConfigGrantChecker, GrantChecker } from "../grants/GrantCheck"; -import { BridgeConfig } from "../Config/Config"; +import { BridgeConfig } from "../config/Config"; const log = new Logger("GitHubOwnerSpace"); diff --git a/src/Connections/GitlabIssue.ts b/src/Connections/GitlabIssue.ts index 742a6df8..6a19cdd6 100644 --- a/src/Connections/GitlabIssue.ts +++ b/src/Connections/GitlabIssue.ts @@ -5,7 +5,7 @@ import { UserTokenStore } from "../UserTokenStore"; import { Logger } from "matrix-appservice-bridge"; import { CommentProcessor } from "../CommentProcessor"; import { MessageSenderClient } from "../MatrixSender"; -import { BridgeConfig, BridgeConfigGitLab, GitLabInstance } from "../Config/Config"; +import { BridgeConfig, BridgeConfigGitLab, GitLabInstance } from "../config/Config"; import { GetIssueResponse } from "../Gitlab/Types"; import { IGitLabWebhookNoteEvent } from "../Gitlab/WebhookTypes"; import { ensureUserIsInRoom, getIntentForUser } from "../IntentUtils"; diff --git a/src/Connections/GitlabRepo.ts b/src/Connections/GitlabRepo.ts index 9f5c0078..53cbb572 100644 --- a/src/Connections/GitlabRepo.ts +++ b/src/Connections/GitlabRepo.ts @@ -6,7 +6,7 @@ import { BotCommands, botCommand, compileBotCommands } from "../BotCommands"; import { MatrixEvent, MatrixMessageContent } from "../MatrixEvent"; import markdown from "markdown-it"; import { Logger } from "matrix-appservice-bridge"; -import { BridgeConfigGitLab, GitLabInstance } from "../Config/Config"; +import { BridgeConfigGitLab, GitLabInstance } from "../config/Config"; import { IGitlabMergeRequest, IGitlabProject, IGitlabUser, IGitLabWebhookMREvent, IGitLabWebhookNoteEvent, IGitLabWebhookPushEvent, IGitLabWebhookReleaseEvent, IGitLabWebhookTagPushEvent, IGitLabWebhookWikiPageEvent } from "../Gitlab/WebhookTypes"; import { CommandConnection } from "./CommandConnection"; import { Connection, IConnection, IConnectionState, InstantiateConnectionOpts, ProvisionConnectionOpts } from "./IConnection"; diff --git a/src/Connections/IConnection.ts b/src/Connections/IConnection.ts index b1f81157..9fe63a9a 100644 --- a/src/Connections/IConnection.ts +++ b/src/Connections/IConnection.ts @@ -2,12 +2,12 @@ import { MatrixEvent, MatrixMessageContent } from "../MatrixEvent"; import { IssuesOpenedEvent, IssuesEditedEvent } from "@octokit/webhooks-types"; import { ConnectionWarning, GetConnectionsResponseItem } from "../provisioning/api"; import { Appservice, Intent, IRichReplyMetadata, StateEvent } from "matrix-bot-sdk"; -import { BridgeConfig, BridgePermissionLevel } from "../Config/Config"; +import { BridgeConfig, BridgePermissionLevel } from "../config/Config"; import { UserTokenStore } from "../UserTokenStore"; import { CommentProcessor } from "../CommentProcessor"; import { MessageSenderClient } from "../MatrixSender"; import { IBridgeStorageProvider } from "../Stores/StorageProvider"; -import { GithubInstance } from "../Github/GithubInstance"; +import { GithubInstance } from "../github/GithubInstance"; import "reflect-metadata"; export type PermissionCheckFn = (service: string, level: BridgePermissionLevel) => boolean; diff --git a/src/Connections/JiraProject.ts b/src/Connections/JiraProject.ts index 9d9a68cf..a1aa2acd 100644 --- a/src/Connections/JiraProject.ts +++ b/src/Connections/JiraProject.ts @@ -1,11 +1,11 @@ import { Connection, IConnection, IConnectionState, InstantiateConnectionOpts, ProvisionConnectionOpts } from "./IConnection"; import { Appservice, Intent, StateEvent } from "matrix-bot-sdk"; import { Logger } from "matrix-appservice-bridge"; -import { JiraIssueEvent, JiraIssueUpdatedEvent, JiraVersionEvent } from "../Jira/WebhookTypes"; +import { JiraIssueEvent, JiraIssueUpdatedEvent, JiraVersionEvent } from "../jira/WebhookTypes"; import { FormatUtil } from "../FormatUtil"; import markdownit from "markdown-it"; -import { generateJiraWebLinkFromIssue, generateJiraWebLinkFromVersion } from "../Jira"; -import { JiraProject, JiraVersion } from "../Jira/Types"; +import { generateJiraWebLinkFromIssue, generateJiraWebLinkFromVersion } from "../jira"; +import { JiraProject, JiraVersion } from "../jira/Types"; import { botCommand, BotCommands, compileBotCommands } from "../BotCommands"; import { MatrixMessageContent } from "../MatrixEvent"; import { CommandConnection } from "./CommandConnection"; @@ -14,10 +14,10 @@ import { CommandError, NotLoggedInError } from "../errors"; import { ApiError, ErrCode } from "../api"; import JiraApi from "jira-client"; import { GetConnectionsResponseItem } from "../provisioning/api"; -import { BridgeConfigJira } from "../Config/Config"; -import { HookshotJiraApi } from "../Jira/Client"; +import { BridgeConfigJira } from "../config/Config"; +import { HookshotJiraApi } from "../jira/Client"; import { GrantChecker } from "../grants/GrantCheck"; -import { JiraGrantChecker } from "../Jira/GrantChecker"; +import { JiraGrantChecker } from "../jira/GrantChecker"; type JiraAllowedEventsNames = "issue_created" | diff --git a/src/Connections/SetupConnection.ts b/src/Connections/SetupConnection.ts index fb8f8790..f33fbdbf 100644 --- a/src/Connections/SetupConnection.ts +++ b/src/Connections/SetupConnection.ts @@ -3,7 +3,7 @@ import { BotCommands, botCommand, compileBotCommands, HelpFunction } from "../Bo import { CommandConnection } from "./CommandConnection"; import { GenericHookConnection, GitHubRepoConnection, JiraProjectConnection, JiraProjectConnectionState } from "."; import { CommandError } from "../errors"; -import { BridgePermissionLevel } from "../Config/Config"; +import { BridgePermissionLevel } from "../config/Config"; import markdown from "markdown-it"; import { FigmaFileConnection } from "./FigmaFileConnection"; import { FeedConnection, FeedConnectionState } from "./FeedConnection"; diff --git a/src/FormatUtil.ts b/src/FormatUtil.ts index f0424b39..1f83b4e5 100644 --- a/src/FormatUtil.ts +++ b/src/FormatUtil.ts @@ -1,9 +1,9 @@ /* eslint-disable camelcase */ -import { ProjectsListResponseData } from './Github/Types'; +import { ProjectsListResponseData } from './github/Types'; import emoji from "node-emoji"; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore -import { JiraIssue } from './Jira/Types'; +import { JiraIssue } from './jira/Types'; import { formatLabels, getPartialBodyForJiraIssue, hashId, getPartialBodyForGithubIssue, getPartialBodyForGithubRepo, MinimalGitHubIssue } from "./libRs"; interface IMinimalPR { diff --git a/src/Gitlab/Client.ts b/src/Gitlab/Client.ts index 2c2cb85b..af90f78e 100644 --- a/src/Gitlab/Client.ts +++ b/src/Gitlab/Client.ts @@ -1,5 +1,5 @@ import axios from "axios"; -import { GitLabInstance } from "../Config/Config"; +import { GitLabInstance } from "../config/Config"; import { GetIssueResponse, GetUserResponse, CreateIssueOpts, CreateIssueResponse, GetIssueOpts, EditIssueOpts, GetTodosResponse, EventsOpts, CreateIssueNoteOpts, CreateIssueNoteResponse, GetProjectResponse, ProjectHook, ProjectHookOpts, AccessLevel, SimpleProject } from "./Types"; import { Logger } from "matrix-appservice-bridge"; import { URLSearchParams } from "url"; diff --git a/src/Gitlab/GrantChecker.ts b/src/Gitlab/GrantChecker.ts index 1ce94731..66bd7bea 100644 --- a/src/Gitlab/GrantChecker.ts +++ b/src/Gitlab/GrantChecker.ts @@ -1,6 +1,6 @@ import { Logger } from "matrix-appservice-bridge"; import { Appservice } from "matrix-bot-sdk"; -import { BridgeConfigGitLab } from "../Config/Config"; +import { BridgeConfigGitLab } from "../config/Config"; import { GitLabRepoConnection } from "../Connections"; import { GrantChecker } from "../grants/GrantCheck"; import { UserTokenStore } from "../UserTokenStore"; diff --git a/src/Managers/BotUsersManager.ts b/src/Managers/BotUsersManager.ts index 46b26256..b7fc1f9e 100644 --- a/src/Managers/BotUsersManager.ts +++ b/src/Managers/BotUsersManager.ts @@ -1,7 +1,7 @@ import { Appservice, Intent } from "matrix-bot-sdk"; import { Logger } from "matrix-appservice-bridge"; -import { BridgeConfig } from "../Config/Config"; +import { BridgeConfig } from "../config/Config"; const log = new Logger("BotUsersManager"); diff --git a/src/MatrixSender.ts b/src/MatrixSender.ts index 391cb4c6..924d1f9e 100644 --- a/src/MatrixSender.ts +++ b/src/MatrixSender.ts @@ -1,4 +1,4 @@ -import { BridgeConfig } from "./Config/Config"; +import { BridgeConfig } from "./config/Config"; import { MessageQueue, createMessageQueue } from "./MessageQueue"; import { Appservice } from "matrix-bot-sdk"; import { Logger } from "matrix-appservice-bridge"; diff --git a/src/MessageQueue/MessageQueue.ts b/src/MessageQueue/MessageQueue.ts index 41003256..476e6d86 100644 --- a/src/MessageQueue/MessageQueue.ts +++ b/src/MessageQueue/MessageQueue.ts @@ -1,4 +1,4 @@ -import { BridgeConfigQueue } from "../Config/Config"; +import { BridgeConfigQueue } from "../config/Config"; import { LocalMQ } from "./LocalMQ"; import { RedisMQ } from "./RedisQueue"; import { MessageQueue } from "./Types"; diff --git a/src/MessageQueue/RedisQueue.ts b/src/MessageQueue/RedisQueue.ts index 38b2db58..bc749098 100644 --- a/src/MessageQueue/RedisQueue.ts +++ b/src/MessageQueue/RedisQueue.ts @@ -1,7 +1,7 @@ import { MessageQueue, MessageQueueMessage, DEFAULT_RES_TIMEOUT, MessageQueueMessageOut } from "./Types"; import { Redis, default as redis } from "ioredis"; -import { BridgeConfigQueue } from "../Config/Config"; +import { BridgeConfigQueue } from "../config/Config"; import { EventEmitter } from "events"; import { Logger } from "matrix-appservice-bridge"; import { randomUUID } from 'node:crypto'; diff --git a/src/Notifications/GitHubWatcher.ts b/src/Notifications/GitHubWatcher.ts index 6d573a6f..4d05d151 100644 --- a/src/Notifications/GitHubWatcher.ts +++ b/src/Notifications/GitHubWatcher.ts @@ -1,7 +1,7 @@ import { Octokit, RestEndpointMethodTypes } from "@octokit/rest"; import { EventEmitter } from "events"; -import { GithubInstance } from "../Github/GithubInstance"; -import { GitHubUserNotification as HSGitHubUserNotification } from "../Github/Types"; +import { GithubInstance } from "../github/GithubInstance"; +import { GitHubUserNotification as HSGitHubUserNotification } from "../github/Types"; import { Logger } from "matrix-appservice-bridge"; import { NotificationWatcherTask } from "./NotificationWatcherTask"; import { RequestError } from "@octokit/request-error"; diff --git a/src/Notifications/UserNotificationWatcher.ts b/src/Notifications/UserNotificationWatcher.ts index c7d881f3..4531c7b9 100644 --- a/src/Notifications/UserNotificationWatcher.ts +++ b/src/Notifications/UserNotificationWatcher.ts @@ -4,9 +4,9 @@ import { createMessageQueue, MessageQueue, MessageQueueMessage } from "../Messag import { MessageSenderClient } from "../MatrixSender"; import { NotificationWatcherTask } from "./NotificationWatcherTask"; import { GitHubWatcher } from "./GitHubWatcher"; -import { GitHubUserNotification } from "../Github/Types"; +import { GitHubUserNotification } from "../github/Types"; import { GitLabWatcher } from "./GitLabWatcher"; -import { BridgeConfig, BridgePermissionLevel } from "../Config/Config"; +import { BridgeConfig, BridgePermissionLevel } from "../config/Config"; import Metrics from "../Metrics"; export interface UserNotificationsEvent { roomId: string; diff --git a/src/NotificationsProcessor.ts b/src/NotificationsProcessor.ts index 2bf9b74d..8b4ea801 100644 --- a/src/NotificationsProcessor.ts +++ b/src/NotificationsProcessor.ts @@ -5,8 +5,8 @@ import { Logger } from "matrix-appservice-bridge"; import { AdminRoom } from "./AdminRoom"; import markdown from "markdown-it"; import { FormatUtil } from "./FormatUtil"; -import { PullGetResponseData, IssuesGetResponseData, PullsListRequestedReviewersResponseData, PullsListReviewsResponseData, IssuesGetCommentResponseData } from "./Github/Types"; -import { GitHubUserNotification } from "./Github/Types"; +import { PullGetResponseData, IssuesGetResponseData, PullsListRequestedReviewersResponseData, PullsListReviewsResponseData, IssuesGetCommentResponseData } from "./github/Types"; +import { GitHubUserNotification } from "./github/Types"; import { components } from "@octokit/openapi-types/types"; import { NotifFilter } from "./NotificationFilters"; diff --git a/src/Stores/MemoryStorageProvider.ts b/src/Stores/MemoryStorageProvider.ts index ac29b997..b4bcf894 100644 --- a/src/Stores/MemoryStorageProvider.ts +++ b/src/Stores/MemoryStorageProvider.ts @@ -1,6 +1,6 @@ import { MemoryStorageProvider as MSP } from "matrix-bot-sdk"; import { IBridgeStorageProvider } from "./StorageProvider"; -import { IssuesGetResponseData } from "../Github/Types"; +import { IssuesGetResponseData } from "../github/Types"; import { ProvisionSession } from "matrix-appservice-bridge"; import QuickLRU from "@alloc/quick-lru"; diff --git a/src/Stores/RedisStorageProvider.ts b/src/Stores/RedisStorageProvider.ts index 7fae2491..5b5d027e 100644 --- a/src/Stores/RedisStorageProvider.ts +++ b/src/Stores/RedisStorageProvider.ts @@ -1,4 +1,4 @@ -import { IssuesGetResponseData } from "../Github/Types"; +import { IssuesGetResponseData } from "../github/Types"; import { Redis, default as redis } from "ioredis"; import { Logger } from "matrix-appservice-bridge"; diff --git a/src/Stores/StorageProvider.ts b/src/Stores/StorageProvider.ts index fe293aae..447fb84a 100644 --- a/src/Stores/StorageProvider.ts +++ b/src/Stores/StorageProvider.ts @@ -1,6 +1,6 @@ import { ProvisioningStore } from "matrix-appservice-bridge"; import { IAppserviceStorageProvider, IStorageProvider } from "matrix-bot-sdk"; -import { IssuesGetResponseData } from "../Github/Types"; +import { IssuesGetResponseData } from "../github/Types"; export interface IBridgeStorageProvider extends IAppserviceStorageProvider, IStorageProvider, ProvisioningStore { connect?(): Promise; diff --git a/src/UserTokenStore.ts b/src/UserTokenStore.ts index c0d01dfe..afd6520d 100644 --- a/src/UserTokenStore.ts +++ b/src/UserTokenStore.ts @@ -1,20 +1,20 @@ -import { GithubInstance } from "./Github/GithubInstance"; +import { GithubInstance } from "./github/GithubInstance"; import { GitLabClient } from "./Gitlab/Client"; import { Intent } from "matrix-bot-sdk"; import { promises as fs } from "fs"; import { publicEncrypt, privateDecrypt } from "crypto"; import { Logger } from "matrix-appservice-bridge"; -import { isJiraCloudInstance, JiraClient } from "./Jira/Client"; -import { JiraStoredToken } from "./Jira/Types"; -import { BridgeConfig, BridgeConfigJira, BridgeConfigJiraOnPremOAuth, BridgePermissionLevel } from "./Config/Config"; +import { isJiraCloudInstance, JiraClient } from "./jira/Client"; +import { JiraStoredToken } from "./jira/Types"; +import { BridgeConfig, BridgeConfigJira, BridgeConfigJiraOnPremOAuth, BridgePermissionLevel } from "./config/Config"; import { randomUUID } from 'node:crypto'; -import { GitHubOAuthToken } from "./Github/Types"; +import { GitHubOAuthToken } from "./github/Types"; import { ApiError, ErrCode } from "./api"; -import { JiraOAuth } from "./Jira/OAuth"; -import { JiraCloudOAuth } from "./Jira/oauth/CloudOAuth"; -import { JiraOnPremOAuth } from "./Jira/oauth/OnPremOAuth"; -import { JiraOnPremClient } from "./Jira/client/OnPremClient"; -import { JiraCloudClient } from "./Jira/client/CloudClient"; +import { JiraOAuth } from "./jira/OAuth"; +import { JiraCloudOAuth } from "./jira/oauth/CloudOAuth"; +import { JiraOnPremOAuth } from "./jira/oauth/OnPremOAuth"; +import { JiraOnPremClient } from "./jira/client/OnPremClient"; +import { JiraCloudClient } from "./jira/client/CloudClient"; import { TokenError, TokenErrorCode } from "./errors"; import { TypedEmitter } from "tiny-typed-emitter"; diff --git a/src/Webhooks.ts b/src/Webhooks.ts index 47b694fe..958cfde4 100644 --- a/src/Webhooks.ts +++ b/src/Webhooks.ts @@ -1,5 +1,5 @@ /* eslint-disable camelcase */ -import { BridgeConfig } from "./Config/Config"; +import { BridgeConfig } from "./config/Config"; import { Router, default as express, Request, Response } from "express"; import { EventEmitter } from "events"; import { MessageQueue, createMessageQueue } from "./MessageQueue"; @@ -8,14 +8,14 @@ import qs from "querystring"; import axios from "axios"; import { IGitLabWebhookEvent, IGitLabWebhookIssueStateEvent, IGitLabWebhookMREvent, IGitLabWebhookReleaseEvent } from "./Gitlab/WebhookTypes"; import { EmitterWebhookEvent, EmitterWebhookEventName, Webhooks as OctokitWebhooks } from "@octokit/webhooks" -import { IJiraWebhookEvent } from "./Jira/WebhookTypes"; -import { JiraWebhooksRouter } from "./Jira/Router"; +import { IJiraWebhookEvent } from "./jira/WebhookTypes"; +import { JiraWebhooksRouter } from "./jira/Router"; import { OAuthRequest } from "./WebhookTypes"; -import { GitHubOAuthTokenResponse } from "./Github/Types"; +import { GitHubOAuthTokenResponse } from "./github/Types"; import Metrics from "./Metrics"; import { FigmaWebhooksRouter } from "./figma/router"; import { GenericWebhooksRouter } from "./generic/Router"; -import { GithubInstance } from "./Github/GithubInstance"; +import { GithubInstance } from "./github/GithubInstance"; import QuickLRU from "@alloc/quick-lru"; const log = new Logger("Webhooks"); diff --git a/src/Widgets/BridgeWidgetApi.ts b/src/Widgets/BridgeWidgetApi.ts index 9da3a5ef..6e64aec7 100644 --- a/src/Widgets/BridgeWidgetApi.ts +++ b/src/Widgets/BridgeWidgetApi.ts @@ -2,7 +2,7 @@ import { Application, NextFunction, Response } from "express"; import { AdminRoom } from "../AdminRoom"; import { Logger } from "matrix-appservice-bridge"; import { ApiError, ErrCode } from "../api"; -import { BridgeConfig } from "../Config/Config"; +import { BridgeConfig } from "../config/Config"; import { GetAuthPollResponse, GetAuthResponse, GetConnectionsForServiceResponse } from "./BridgeWidgetInterface"; import { ProvisioningApi, ProvisioningRequest } from "matrix-appservice-bridge"; import { IBridgeStorageProvider } from "../Stores/StorageProvider"; @@ -12,7 +12,7 @@ import { assertUserPermissionsInRoom, GetConnectionsResponseItem } from "../prov import { Appservice, PowerLevelsEvent } from "matrix-bot-sdk"; import { GoNebMigrator } from "./GoNebMigrator"; import { StatusCodes } from "http-status-codes"; -import { GithubInstance } from '../Github/GithubInstance'; +import { GithubInstance } from '../github/GithubInstance'; import { AllowedTokenTypes, TokenType, UserTokenStore } from '../UserTokenStore'; const log = new Logger("BridgeWidgetApi"); diff --git a/src/Widgets/SetupWidget.ts b/src/Widgets/SetupWidget.ts index 64b00d29..d7ef4776 100644 --- a/src/Widgets/SetupWidget.ts +++ b/src/Widgets/SetupWidget.ts @@ -1,6 +1,6 @@ import { Intent } from "matrix-bot-sdk"; -import { BridgeWidgetConfig } from "../Config/Config"; +import { BridgeWidgetConfig } from "../config/Config"; import { Logger } from "matrix-appservice-bridge"; import { CommandError } from "../errors"; import { HookshotWidgetKind } from "./WidgetKind"; diff --git a/src/appservice.ts b/src/appservice.ts index 98cbfd6d..ba290ef7 100644 --- a/src/appservice.ts +++ b/src/appservice.ts @@ -1,6 +1,6 @@ import { Logger } from "matrix-appservice-bridge"; import { Appservice, IAppserviceCryptoStorageProvider, IAppserviceRegistration, RustSdkAppserviceCryptoStorageProvider, RustSdkCryptoStoreType } from "matrix-bot-sdk"; -import { BridgeConfig } from "./Config/Config"; +import { BridgeConfig } from "./config/Config"; import Metrics from "./Metrics"; import { MemoryStorageProvider } from "./Stores/MemoryStorageProvider"; import { RedisStorageProvider } from "./Stores/RedisStorageProvider"; diff --git a/src/Config/Config.ts b/src/config/Config.ts similarity index 99% rename from src/Config/Config.ts rename to src/config/Config.ts index 4a56e9ba..c2510997 100644 --- a/src/Config/Config.ts +++ b/src/config/Config.ts @@ -8,7 +8,7 @@ import { GitHubRepoConnectionOptions } from "../Connections/GithubRepo"; import { BridgeConfigActorPermission, BridgePermissions } from "../libRs"; import { ConfigError } from "../errors"; import { ApiError, ErrCode } from "../api"; -import { GithubInstance, GITHUB_CLOUD_URL } from "../Github/GithubInstance"; +import { GithubInstance, GITHUB_CLOUD_URL } from "../github/GithubInstance"; import { Logger } from "matrix-appservice-bridge"; const log = new Logger("Config"); diff --git a/src/Config/Decorators.ts b/src/config/Decorators.ts similarity index 100% rename from src/Config/Decorators.ts rename to src/config/Decorators.ts diff --git a/src/Config/Defaults.ts b/src/config/Defaults.ts similarity index 100% rename from src/Config/Defaults.ts rename to src/config/Defaults.ts diff --git a/src/Config/mod.rs b/src/config/mod.rs similarity index 100% rename from src/Config/mod.rs rename to src/config/mod.rs diff --git a/src/Config/permissions.rs b/src/config/permissions.rs similarity index 80% rename from src/Config/permissions.rs rename to src/config/permissions.rs index 21fe0c20..94cfa987 100644 --- a/src/Config/permissions.rs +++ b/src/config/permissions.rs @@ -42,13 +42,13 @@ impl BridgePermissions { pub fn new(config: Vec) -> Self { let mut room_membership = HashMap::new(); for entry in config.iter() { - if entry.actor.starts_with("!") { + if entry.actor.starts_with('!') { room_membership.insert(entry.actor.clone(), HashSet::new()); } } BridgePermissions { - config: config, - room_membership: room_membership, + config, + room_membership, } } @@ -58,7 +58,7 @@ impl BridgePermissions { domain: &String, mxid: &String, ) -> bool { - if actor_permission.actor.starts_with("!") { + if actor_permission.actor.starts_with('!') { match self.room_membership.get(&actor_permission.actor) { Some(set) => { return set.contains(mxid); @@ -69,9 +69,9 @@ impl BridgePermissions { } } } - return actor_permission.actor.eq(domain) + actor_permission.actor.eq(domain) || actor_permission.actor.eq(mxid) - || actor_permission.actor == "*"; + || actor_permission.actor == "*" } #[napi] @@ -81,21 +81,15 @@ impl BridgePermissions { #[napi] pub fn add_member_to_cache(&mut self, room_id: String, mxid: String) { - match self.room_membership.get_mut(&room_id) { - Some(set) => { - set.insert(mxid); - } - None => { /* Do nothing, not interested in this one. */ } + if let Some(set) = self.room_membership.get_mut(&room_id) { + set.insert(mxid); } } #[napi] pub fn remove_member_from_cache(&mut self, room_id: String, mxid: String) { - match self.room_membership.get_mut(&room_id) { - Some(set) => { - set.remove(&mxid); - } - None => { /* Do nothing, not interested in this one. */ } + if let Some(set) = self.room_membership.get_mut(&room_id) { + set.remove(&mxid); } } @@ -107,13 +101,12 @@ impl BridgePermissions { permission: String, ) -> napi::Result { let parts: Vec<&str> = mxid.split(':').collect(); - let domain: String; let permission_int = permission_level_to_int(permission)?; - if parts.len() > 1 { - domain = parts[1].to_string(); + let domain = if parts.len() > 1 { + parts[1].to_string() } else { - domain = parts[0].to_string(); - } + parts[0].to_string() + }; for actor_permission in self.config.iter() { // Room_id if !self.match_actor(actor_permission, &domain, &mxid) { @@ -139,13 +132,12 @@ impl BridgePermissions { #[napi] pub fn check_action_any(&self, mxid: String, permission: String) -> napi::Result { let parts: Vec<&str> = mxid.split(':').collect(); - let domain: String; let permission_int = permission_level_to_int(permission)?; - if parts.len() > 1 { - domain = parts[1].to_string(); + let domain = if parts.len() > 1 { + parts[1].to_string() } else { - domain = parts[0].to_string(); - } + parts[0].to_string() + }; for actor_permission in self.config.iter() { if !self.match_actor(actor_permission, &domain, &mxid) { continue; diff --git a/src/feeds/FeedReader.ts b/src/feeds/FeedReader.ts index cc671112..c0d3d4d2 100644 --- a/src/feeds/FeedReader.ts +++ b/src/feeds/FeedReader.ts @@ -1,5 +1,5 @@ import { MatrixError } from "matrix-bot-sdk"; -import { BridgeConfigFeeds } from "../Config/Config"; +import { BridgeConfigFeeds } from "../config/Config"; import { ConnectionManager } from "../ConnectionManager"; import { FeedConnection } from "../Connections"; import { Logger } from "matrix-appservice-bridge"; diff --git a/src/figma/index.ts b/src/figma/index.ts index 02de42df..6302f8f3 100644 --- a/src/figma/index.ts +++ b/src/figma/index.ts @@ -1,4 +1,4 @@ -import { BridgeConfigFigma } from "../Config/Config"; +import { BridgeConfigFigma } from "../config/Config"; import * as Figma from 'figma-js'; import { MatrixClient } from "matrix-bot-sdk"; export * from "./router"; diff --git a/src/figma/router.ts b/src/figma/router.ts index 12ec8497..00be44cc 100644 --- a/src/figma/router.ts +++ b/src/figma/router.ts @@ -1,4 +1,4 @@ -import { BridgeConfigFigma } from "../Config/Config"; +import { BridgeConfigFigma } from "../config/Config"; import { MessageQueue } from "../MessageQueue"; import { Request, Response, Router, json } from "express"; import { FigmaPayload } from "./types"; diff --git a/src/format_util.rs b/src/format_util.rs index 5b53ddbc..0e137ad1 100644 --- a/src/format_util.rs +++ b/src/format_util.rs @@ -1,6 +1,6 @@ -use crate::Github::types::*; -use crate::Jira; -use crate::Jira::types::{JiraIssue, JiraIssueLight, JiraIssueMessageBody, JiraIssueSimpleItem}; +use crate::github::types::*; +use crate::jira; +use crate::jira::types::{JiraIssue, JiraIssueLight, JiraIssueMessageBody, JiraIssueSimpleItem}; use contrast; use md5::{Digest, Md5}; use napi::bindgen_prelude::*; @@ -23,29 +23,23 @@ pub struct MatrixMessageFormatResult { } fn parse_rgb(input_color: String) -> Result { - let chunk_size; - let color; - if input_color.starts_with('#') { + let color = if input_color.starts_with('#') { let mut chars = input_color.chars(); chars.next(); - color = String::from_iter(chars); + String::from_iter(chars) } else { - color = input_color; - } - match color.len() { - 6 => { - chunk_size = 2; - } - 3 => { - chunk_size = 1; - } + input_color + }; + let chunk_size = match color.len() { + 6 => 2, + 3 => 1, _ => { return Err(Error::new( Status::InvalidArg, format!("color '{}' is invalid", color), )); } - } + }; let mut rgb = RGB::default(); let i = 0; for color_byte in color.as_bytes().chunks(chunk_size) { @@ -82,7 +76,7 @@ pub fn format_labels(array: Vec) -> Result) -> Result(color_rgb, RGB::new(0, 0, 0)) > 4.5 { - contrast_color = "#000000"; - } else { - contrast_color = "#FFFFFF"; - } + let contrast_color = + if contrast::contrast::(color_rgb, RGB::new(0, 0, 0)) > 4.5 { + "#000000" + } else { + "#FFFFFF" + }; write!(html, " data-mx-color=\"{}\"", contrast_color).unwrap(); } if let Some(description) = label.description { write!(html, " title=\"{}\"", description).unwrap(); } - html.push_str(">"); + html.push('>'); html.push_str(&label.name); html.push_str(""); } - Ok(MatrixMessageFormatResult { - html: html, - plain: plain, - }) + Ok(MatrixMessageFormatResult { html, plain }) } /// Generate extra message content for GitHub repo related events @@ -156,7 +147,7 @@ pub fn get_partial_body_for_jira_issue(jira_issue: JiraIssue) -> Result Result Result { - return generate_jira_web_link_from_issue(&jira_issue); + generate_jira_web_link_from_issue(&jira_issue) } pub fn generate_jira_web_link_from_issue(jira_issue: &JiraIssueLight) -> Result { @@ -27,7 +27,7 @@ pub fn generate_jira_web_link_from_issue(jira_issue: &JiraIssueLight) -> Result< /// Generate a URL for a given Jira Version object. #[napi(js_name = "generateJiraWeblinkFromVersion")] pub fn js_generate_jira_web_link_from_version(jira_version: JiraVersion) -> Result { - return generate_jira_web_link_from_version(&jira_version); + generate_jira_web_link_from_version(&jira_version) } pub fn generate_jira_web_link_from_version(jira_version: &JiraVersion) -> Result { @@ -39,7 +39,7 @@ pub fn generate_jira_web_link_from_version(jira_version: &JiraVersion) -> Result url.host_str().unwrap(), url.port() .map_or(String::new(), |port| format!(":{}", port)), - jira_version.projectId, + jira_version.project_id, jira_version.id )), Err(err) => Err(Error::new(Status::Unknown, err.to_string())), diff --git a/src/lib.rs b/src/lib.rs index a0a5002e..1d03f680 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,8 +1,8 @@ -pub mod Config; -pub mod Github; -pub mod Jira; +pub mod config; pub mod feeds; pub mod format_util; +pub mod github; +pub mod jira; #[macro_use] extern crate napi_derive; diff --git a/src/provisioning/provisioner.ts b/src/provisioning/provisioner.ts index eac23c88..73417123 100644 --- a/src/provisioning/provisioner.ts +++ b/src/provisioning/provisioner.ts @@ -1,4 +1,4 @@ -import { BridgeConfigProvisioning } from "../Config/Config"; +import { BridgeConfigProvisioning } from "../config/Config"; import { Router, default as express, NextFunction, Request, Response } from "express"; import { ConnectionManager } from "../ConnectionManager"; import { Logger } from "matrix-appservice-bridge"; diff --git a/tests/AdminRoomTest.ts b/tests/AdminRoomTest.ts index 56698c3d..ee171e17 100644 --- a/tests/AdminRoomTest.ts +++ b/tests/AdminRoomTest.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { expect } from "chai"; import { AdminRoom } from "../src/AdminRoom"; -import { DefaultConfig } from "../src/Config/Defaults"; +import { DefaultConfig } from "../src/config/Defaults"; import { ConnectionManager } from "../src/ConnectionManager"; import { NotifFilter } from "../src/NotificationFilters"; import { UserTokenStore } from "../src/UserTokenStore"; diff --git a/tests/FeedReader.spec.ts b/tests/FeedReader.spec.ts index 2cd323ce..d1a37590 100644 --- a/tests/FeedReader.spec.ts +++ b/tests/FeedReader.spec.ts @@ -1,7 +1,7 @@ import { AxiosResponse, AxiosStatic } from "axios"; import { expect } from "chai"; import EventEmitter from "events"; -import { BridgeConfigFeeds } from "../src/Config/Config"; +import { BridgeConfigFeeds } from "../src/config/Config"; import { ConnectionManager } from "../src/ConnectionManager"; import { IConnection } from "../src/Connections"; import { FeedEntry, FeedReader } from "../src/feeds/FeedReader"; diff --git a/tests/FormatUtilTest.ts b/tests/FormatUtilTest.ts index b27b410c..b8c35dc2 100644 --- a/tests/FormatUtilTest.ts +++ b/tests/FormatUtilTest.ts @@ -1,6 +1,6 @@ import { FormatUtil } from "../src/FormatUtil"; import { expect } from "chai"; -import { JiraIssue, JiraProject } from "../src/Jira/Types"; +import { JiraIssue, JiraProject } from "../src/jira/Types"; const SIMPLE_ISSUE = { id: 123, diff --git a/tests/connections/GenericHookTest.ts b/tests/connections/GenericHookTest.ts index 9b85ef88..0e22ee8f 100644 --- a/tests/connections/GenericHookTest.ts +++ b/tests/connections/GenericHookTest.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ import { expect } from "chai"; import { MatrixError } from "matrix-bot-sdk"; -import { BridgeConfigGenericWebhooks, BridgeGenericWebhooksConfigYAML } from "../../src/Config/Config"; +import { BridgeConfigGenericWebhooks, BridgeGenericWebhooksConfigYAML } from "../../src/config/Config"; import { GenericHookConnection, GenericHookConnectionState } from "../../src/Connections/GenericHook"; import { MessageSenderClient, IMatrixSendMessage } from "../../src/MatrixSender"; import { LocalMQ } from "../../src/MessageQueue/LocalMQ"; diff --git a/tests/connections/GithubRepoTest.ts b/tests/connections/GithubRepoTest.ts index 5213b796..9674a36c 100644 --- a/tests/connections/GithubRepoTest.ts +++ b/tests/connections/GithubRepoTest.ts @@ -1,8 +1,8 @@ import { GitHubRepoConnection, GitHubRepoConnectionState } from "../../src/Connections/GithubRepo" -import { GithubInstance } from "../../src/Github/GithubInstance"; +import { GithubInstance } from "../../src/github/GithubInstance"; import { createMessageQueue } from "../../src/MessageQueue"; import { UserTokenStore } from "../../src/UserTokenStore"; -import { DefaultConfig } from "../../src/Config/Defaults"; +import { DefaultConfig } from "../../src/config/Defaults"; import { AppserviceMock } from "../utils/AppserviceMock"; import { ApiError, ErrCode, ValidatorApiError } from "../../src/api"; import { expect } from "chai"; diff --git a/tests/connections/GitlabRepoTest.ts b/tests/connections/GitlabRepoTest.ts index f310a884..39e17b58 100644 --- a/tests/connections/GitlabRepoTest.ts +++ b/tests/connections/GitlabRepoTest.ts @@ -4,7 +4,7 @@ import { AppserviceMock } from "../utils/AppserviceMock"; import { ApiError, ErrCode, ValidatorApiError } from "../../src/api"; import { GitLabRepoConnection, GitLabRepoConnectionState } from "../../src/Connections"; import { expect } from "chai"; -import { BridgeConfigGitLab } from "../../src/Config/Config"; +import { BridgeConfigGitLab } from "../../src/config/Config"; const ROOM_ID = "!foo:bar"; diff --git a/tests/github/AdminCommands.ts b/tests/github/AdminCommands.ts index 1528469a..5bc0aa5e 100644 --- a/tests/github/AdminCommands.ts +++ b/tests/github/AdminCommands.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; -import { GithubInstance } from "../../src/Github/GithubInstance"; -import { GITHUB_CLOUD_URL } from "../../src/Github/GithubInstance"; +import { GithubInstance } from "../../src/github/GithubInstance"; +import { GITHUB_CLOUD_URL } from "../../src/github/GithubInstance"; describe("GitHub", () => { describe("AdminCommands", () => { diff --git a/tests/grants/GrantChecker.spec.ts b/tests/grants/GrantChecker.spec.ts index 94c96f53..caa6e59d 100644 --- a/tests/grants/GrantChecker.spec.ts +++ b/tests/grants/GrantChecker.spec.ts @@ -1,6 +1,6 @@ import { expect } from "chai"; -import { BridgeConfig } from "../../src/Config/Config"; -import { DefaultConfigRoot } from "../../src/Config/Defaults"; +import { BridgeConfig } from "../../src/config/Config"; +import { DefaultConfigRoot } from "../../src/config/Defaults"; import { FormatUtil } from "../../src/FormatUtil"; import { ConfigGrantChecker, GrantChecker, GrantRejectedError } from '../../src/grants/GrantCheck'; import { AppserviceMock } from "../utils/AppserviceMock"; diff --git a/tests/jira/Utils.ts b/tests/jira/Utils.ts index 5e343f99..3f9050ed 100644 --- a/tests/jira/Utils.ts +++ b/tests/jira/Utils.ts @@ -1,5 +1,5 @@ import { expect } from "chai"; -import { generateJiraWebLinkFromIssue } from "../../src/Jira"; +import { generateJiraWebLinkFromIssue, generateJiraWebLinkFromVersion } from "../../src/jira"; describe("Jira", () => { describe("Utils", () => { @@ -15,5 +15,14 @@ describe("Jira", () => { key: "TEST-111", })).to.equal("https://my-test-jira:9995/browse/TEST-111"); }); + it("processes a jira issue into a URL with a port", () => { + expect(generateJiraWebLinkFromVersion({ + self: "https://my-test-jira:9995/", + description: "foo", + name: "bar", + projectId: "TEST-111", + id: "v1.0.0", + })).to.equal("https://my-test-jira:9995/projects/TEST-111/versions/v1.0.0"); + }); }); }); \ No newline at end of file