Run Clippy in CI (#753)

* Clippy fixes

* Refactor to make rust linter happy

* Enable warnings since we have none

* Tidy up tests

* changelog
This commit is contained in:
Will Hunt 2023-05-18 11:38:59 +01:00 committed by GitHub
parent 1c692bea8f
commit d772a4050c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
88 changed files with 177 additions and 183 deletions

View File

@ -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

1
changelog.d/753.misc Normal file
View File

@ -0,0 +1 @@
Apply more Rust clippy suggestions, and run clippy in CI.

View File

@ -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",

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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();

View File

@ -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";

View File

@ -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;

View File

@ -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";

View File

@ -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";

View File

@ -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';

View File

@ -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 {

View File

@ -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");

View File

@ -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;

View File

@ -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

View File

@ -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();

View File

@ -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");

View File

@ -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";

View File

@ -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";

View File

@ -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;

View File

@ -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" |

View File

@ -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";

View File

@ -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 {

View File

@ -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";

View File

@ -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";

View File

@ -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");

View File

@ -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";

View File

@ -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";

View File

@ -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';

View File

@ -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";

View File

@ -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;

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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<void>;

View File

@ -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";

View File

@ -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");

View File

@ -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");

View File

@ -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";

View File

@ -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";

View File

@ -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");

View File

@ -42,13 +42,13 @@ impl BridgePermissions {
pub fn new(config: Vec<BridgeConfigActorPermission>) -> 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,22 +81,16 @@ 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) => {
if let Some(set) = self.room_membership.get_mut(&room_id) {
set.insert(mxid);
}
None => { /* Do nothing, not interested in this one. */ }
}
}
#[napi]
pub fn remove_member_from_cache(&mut self, room_id: String, mxid: String) {
match self.room_membership.get_mut(&room_id) {
Some(set) => {
if let Some(set) = self.room_membership.get_mut(&room_id) {
set.remove(&mxid);
}
None => { /* Do nothing, not interested in this one. */ }
}
}
#[napi]
@ -107,13 +101,12 @@ impl BridgePermissions {
permission: String,
) -> napi::Result<bool> {
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<bool> {
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;

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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<rgb::RGB8> {
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<IssueLabelDetail>) -> Result<MatrixMessageFormat
for (i, label) in array.into_iter().enumerate() {
if i != 0 {
plain.push_str(", ");
html.push_str(" ");
html.push(' ');
}
plain.push_str(&label.name);
@ -92,26 +86,23 @@ pub fn format_labels(array: Vec<IssueLabelDetail>) -> Result<MatrixMessageFormat
write!(html, " data-mx-bg-color=\"#{}\"", color).unwrap();
// Determine the constrast
let color_rgb = parse_rgb(color)?;
let contrast_color;
let contrast_color =
if contrast::contrast::<u8, f32>(color_rgb, RGB::new(0, 0, 0)) > 4.5 {
contrast_color = "#000000";
"#000000"
} else {
contrast_color = "#FFFFFF";
}
"#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("</span>");
}
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<JiraIssu
_self: jira_issue._self,
key: jira_issue.key,
};
let external_url = Jira::utils::generate_jira_web_link_from_issue(&light_issue)?;
let external_url = jira::utils::generate_jira_web_link_from_issue(&light_issue)?;
Ok(JiraIssueMessageBody {
jira_issue: JiraIssueSimpleItem {
@ -169,7 +160,7 @@ pub fn get_partial_body_for_jira_issue(jira_issue: JiraIssue) -> Result<JiraIssu
key: jira_issue.fields.project.key,
api_url: jira_issue.fields.project._self,
},
external_url: external_url,
external_url,
})
}

View File

@ -4,7 +4,7 @@ import { CommandError, TokenError, TokenErrorCode } from "../errors";
import { GithubInstance } from "./GithubInstance";
import { GitHubOAuthToken } from "./Types";
import { Logger } from "matrix-appservice-bridge";
import { BridgePermissionLevel } from "../Config/Config";
import { BridgePermissionLevel } from "../config/Config";
const log = new Logger('GitHubBotCommands');
export class GitHubBotCommands extends AdminRoomCommandHandler {

View File

@ -1,5 +1,5 @@
import { Router, Request, Response, NextFunction } from "express";
import { BridgeConfigGitHub } from "../Config/Config";
import { BridgeConfigGitHub } from "../config/Config";
import { ApiError, ErrCode } from "../api";
import { UserTokenStore } from "../UserTokenStore";
import { Logger } from "matrix-appservice-bridge";

View File

@ -1,6 +1,6 @@
import { Logger } from "matrix-appservice-bridge";
import { Appservice, Intent, MatrixError } from "matrix-bot-sdk";
import { BridgeConfig, BridgePermissionLevel } from "../Config/Config";
import { BridgeConfig, BridgePermissionLevel } from "../config/Config";
import { FormatUtil } from "../FormatUtil";
const GRANT_ACCOUNT_DATA_KEY = "uk.half-shot.matrix-hookshot.grant";

View File

@ -2,7 +2,7 @@ import { AdminRoomCommandHandler, Category } from "../AdminRoomCommandHandler";
import { botCommand } from "../BotCommands";
import { JiraAPIAccessibleResource } from "./Types";
import { Logger } from "matrix-appservice-bridge";
import { BridgePermissionLevel } from "../Config/Config";
import { BridgePermissionLevel } from "../config/Config";
const log = new Logger('JiraBotCommands');

View File

@ -1,4 +1,4 @@
import { BridgeConfigJira } from "../Config/Config";
import { BridgeConfigJira } from "../config/Config";
import { MessageQueue } from "../MessageQueue";
import { Router, Request, Response, NextFunction, json } from "express";
import { UserTokenStore } from "../UserTokenStore";

View File

@ -2,7 +2,7 @@
import axios from 'axios';
import QuickLRU from "@alloc/quick-lru";
import { JiraAPIAccessibleResource, JiraIssue, JiraOAuthResult, JiraProject, JiraCloudProjectSearchResponse, JiraStoredToken } from '../Types';
import { BridgeConfigJira, BridgeConfigJiraCloudOAuth } from '../../Config/Config';
import { BridgeConfigJira, BridgeConfigJiraCloudOAuth } from '../../config/Config';
import { Logger } from "matrix-appservice-bridge";
import { HookshotJiraApi, JiraClient } from '../Client';
import JiraApi from 'jira-client';

View File

@ -1,6 +1,6 @@
import { JiraAPIAccessibleResource, JiraProject, JiraStoredToken, JiraOnPremProjectSearchResponse } from '../Types';
import { BridgeConfigJiraOnPremOAuth } from '../../Config/Config';
import { BridgeConfigJiraOnPremOAuth } from '../../config/Config';
import { decodeJiraToken } from '../OAuth';
import { KeyObject } from 'crypto';
import { HookshotJiraApi, JiraClient } from '../Client';

View File

@ -1,4 +1,4 @@
import { BridgeConfigJiraCloudOAuth } from "../../Config/Config";
import { BridgeConfigJiraCloudOAuth } from "../../config/Config";
import { JiraOAuth } from "../OAuth";
import qs from "querystring";
import axios from "axios";

View File

@ -1,4 +1,4 @@
import { BridgeConfigJiraOnPremOAuth } from "../../Config/Config";
import { BridgeConfigJiraOnPremOAuth } from "../../config/Config";
import Axios, { Method } from "axios"
import qs from "querystring";
import { createPrivateKey, createSign, KeyObject } from "crypto";

View File

@ -61,5 +61,6 @@ pub struct JiraVersion {
pub id: String,
pub description: String,
pub name: String,
pub projectId: String,
#[serde(rename = "projectId")]
pub project_id: String,
}

View File

@ -6,7 +6,7 @@ use url::Url;
/// Generate a URL for a given Jira Issue object.
#[napi(js_name = "generateJiraWeblinkFromIssue")]
pub fn js_generate_jira_web_link_from_issue(jira_issue: JiraIssueLight) -> Result<String> {
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<String> {
@ -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<String> {
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<String> {
@ -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())),

View File

@ -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;

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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,

View File

@ -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";

View File

@ -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";

View File

@ -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";

View File

@ -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", () => {

View File

@ -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";

View File

@ -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");
});
});
});