UBERF-11414: Integrations (#9610)

* UBERF-11414: Use common integration kind

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Allow multiple gmail

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Merge with develop

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Refactor integration kinds

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Add integrations package

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Integrations

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Integration state and config

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Add integration events

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Refresh integration states

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Rename to integration-client

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Add filter button

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Add translations for filters

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Synced channels count

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Actions

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Add isLoading for connect

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Create connection and integration

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Use social id from hulygram

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Remove old integrations

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Gmail state

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Gmail state and disconnect all handler

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Add tests

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Formatting

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Gmail sync state

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix rush check

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix gmail tests

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix calendar actions and config

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Calendar state

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Access config

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Github integration state

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix svelte errors

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix formatting

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix typos

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix validate

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Fix translations

Signed-off-by: Artem Savchenko <armisav@gmail.com>

* UBERF-11414: Retry on network issues

Signed-off-by: Artem Savchenko <armisav@gmail.com>

---------

Signed-off-by: Artem Savchenko <armisav@gmail.com>
This commit is contained in:
Artyom Savchenko
2025-08-04 15:14:06 +07:00
committed by GitHub
parent 39c40093e0
commit 7e92c12073
175 changed files with 6391 additions and 875 deletions
+9 -6
View File
@@ -11,7 +11,8 @@ import core, {
type Ref,
type Tx,
type TxCUD,
type WorkspaceUuid
type WorkspaceUuid,
type IntegrationKind
} from '@hcengineering/core'
import { getAccountsFromTxes, getSocialKeyByOldEmail } from '@hcengineering/model-core'
import { getAccountClient } from '@hcengineering/server-client'
@@ -149,13 +150,15 @@ export async function performGithubAccountMigrations (
}
const sid = socialKeyByAccount[it.accountId]
const kind: IntegrationKind = 'github' as any
const userKind: IntegrationKind = 'github-user' as any
const person = sid !== undefined ? await accountClient.findSocialIdBySocialKey(sid) : undefined
if (person !== undefined) {
// Check/create integeration in account
const existing = await githubAccountClient.getIntegration({
kind: 'github',
kind,
workspaceUuid: ws?.uuid,
socialId: person
})
@@ -163,7 +166,7 @@ export async function performGithubAccountMigrations (
if (existing == null) {
try {
await githubAccountClient.createIntegration({
kind: 'github',
kind,
workspaceUuid: ws?.uuid,
socialId: person,
data: {
@@ -191,7 +194,7 @@ export async function performGithubAccountMigrations (
const { _id, accounts, ...data } = u
const existing = await githubAccountClient.getIntegration({
kind: 'github-user',
kind: userKind,
workspaceUuid: null,
socialId: person
})
@@ -199,7 +202,7 @@ export async function performGithubAccountMigrations (
if (existing == null) {
try {
await githubAccountClient.createIntegration({
kind: 'github-user',
kind: userKind,
workspaceUuid: null,
socialId: person,
data: {
@@ -208,7 +211,7 @@ export async function performGithubAccountMigrations (
})
// Check/create integeration in account
await githubAccountClient.addIntegrationSecret({
kind: 'github-user',
kind: userKind,
workspaceUuid: null,
socialId: person,
key: u._id, // github login