diff --git a/.cspell.json b/.cspell.json index c4ca3cbace9..08613228f55 100644 --- a/.cspell.json +++ b/.cspell.json @@ -320,6 +320,9 @@ "signin", "ibase", "iwindow", + "Probot", + "Smee", + "badal", "MAINSTRSERVER", "MAINLOADURL", "MAINDB", @@ -369,7 +372,8 @@ "USERTRX", "MAINUNEXCEPTION", "Harbir", - "Chahal" + "Chahal", + "pino" ], "useGitignore": true, "ignorePaths": [ diff --git a/.deploy/api/Dockerfile b/.deploy/api/Dockerfile index 6c2d943a488..fac9063068c 100644 --- a/.deploy/api/Dockerfile +++ b/.deploy/api/Dockerfile @@ -47,6 +47,9 @@ ARG FACEBOOK_GRAPH_VERSION ARG FACEBOOK_CALLBACK_URL ARG INTEGRATED_USER_DEFAULT_PASS ARG UPWORK_REDIRECT_URL +ARG HUBSTAFF_CLIENT_ID +ARG HUBSTAFF_CLIENT_SECRET +ARG HUBSTAFF_PERSONAL_ACCESS_TOKEN ARG FILE_PROVIDER ARG GAUZY_AI_GRAPHQL_ENDPOINT ARG GAUZY_AI_REST_ENDPOINT @@ -104,6 +107,8 @@ COPY --chown=node:node packages/plugin/package.json ./packages/plugin/ COPY --chown=node:node packages/plugins/integration-ai/package.json ./packages/plugins/integration-ai/ COPY --chown=node:node packages/plugins/integration-hubstaff/package.json ./packages/plugins/integration-hubstaff/ COPY --chown=node:node packages/plugins/integration-upwork/package.json ./packages/plugins/integration-upwork/ +COPY --chown=node:node packages/plugins/integration-github/package.json ./packages/plugins/integration-github/ +COPY --chown=node:node packages/plugins/integration-jira/package.json ./packages/plugins/integration-jira/ COPY --chown=node:node packages/plugins/product-reviews/package.json ./packages/plugins/product-reviews/ COPY --chown=node:node packages/plugins/knowledge-base/package.json ./packages/plugins/knowledge-base/ COPY --chown=node:node packages/plugins/changelog/package.json ./packages/plugins/changelog/ @@ -147,6 +152,8 @@ COPY --chown=node:node packages/plugin/package.json ./packages/plugin/ COPY --chown=node:node packages/plugins/integration-ai/package.json ./packages/plugins/integration-ai/ COPY --chown=node:node packages/plugins/integration-hubstaff/package.json ./packages/plugins/integration-hubstaff/ COPY --chown=node:node packages/plugins/integration-upwork/package.json ./packages/plugins/integration-upwork/ +COPY --chown=node:node packages/plugins/integration-github/package.json ./packages/plugins/integration-github/ +COPY --chown=node:node packages/plugins/integration-jira/package.json ./packages/plugins/integration-jira/ COPY --chown=node:node packages/plugins/product-reviews/package.json ./packages/plugins/product-reviews/ COPY --chown=node:node packages/plugins/knowledge-base/package.json ./packages/plugins/knowledge-base/ COPY --chown=node:node packages/plugins/changelog/package.json ./packages/plugins/changelog/ @@ -185,6 +192,9 @@ ENV DEMO=${DEMO:-false} ENV IS_DOCKER=true +# Temporary disable caching in NX Cloud for builds +ENV NX_NO_CLOUD=true + RUN yarn build:package:api RUN yarn build:api:prod:docker @@ -263,6 +273,9 @@ ENV FACEBOOK_GRAPH_VERSION=${FACEBOOK_GRAPH_VERSION} ENV FACEBOOK_CALLBACK_URL=${FACEBOOK_CALLBACK_URL} ENV INTEGRATED_USER_DEFAULT_PASS=${INTEGRATED_USER_DEFAULT_PASS} ENV UPWORK_REDIRECT_URL=${UPWORK_REDIRECT_URL} +ENV HUBSTAFF_CLIENT_ID=${HUBSTAFF_CLIENT_ID} +ENV HUBSTAFF_CLIENT_SECRET=${HUBSTAFF_CLIENT_SECRET} +ENV HUBSTAFF_PERSONAL_ACCESS_TOKEN=${HUBSTAFF_PERSONAL_ACCESS_TOKEN} ENV FILE_PROVIDER=${FILE_PROVIDER} ENV GAUZY_AI_GRAPHQL_ENDPOINT=${GAUZY_AI_GRAPHQL_ENDPOINT} ENV GAUZY_AI_REST_ENDPOINT=${GAUZY_AI_REST_ENDPOINT} diff --git a/.deploy/webapp/Dockerfile b/.deploy/webapp/Dockerfile index 637a6f5718d..f050805535b 100644 --- a/.deploy/webapp/Dockerfile +++ b/.deploy/webapp/Dockerfile @@ -55,6 +55,8 @@ COPY --chown=node:node packages/plugin/package.json ./packages/plugin/ COPY --chown=node:node packages/plugins/integration-ai/package.json ./packages/plugins/integration-ai/ COPY --chown=node:node packages/plugins/integration-hubstaff/package.json ./packages/plugins/integration-hubstaff/ COPY --chown=node:node packages/plugins/integration-upwork/package.json ./packages/plugins/integration-upwork/ +COPY --chown=node:node packages/plugins/integration-github/package.json ./packages/plugins/integration-github/ +COPY --chown=node:node packages/plugins/integration-jira/package.json ./packages/plugins/integration-jira/ COPY --chown=node:node packages/plugins/product-reviews/package.json ./packages/plugins/product-reviews/ COPY --chown=node:node packages/plugins/knowledge-base/package.json ./packages/plugins/knowledge-base/ COPY --chown=node:node packages/plugins/changelog/package.json ./packages/plugins/changelog/ @@ -90,6 +92,9 @@ ENV NODE_ENV=${NODE_ENV:-production} ENV IS_DOCKER=true +# Temporary disable caching in NX Cloud for builds +ENV NX_NO_CLOUD=true + RUN yarn build:package:gauzy RUN yarn build:gauzy:prod:docker diff --git a/.env.compose b/.env.compose index 45c896a3829..82e3b28711e 100644 --- a/.env.compose +++ b/.env.compose @@ -75,10 +75,25 @@ FACEBOOK_CLIENT_SECRET=XXXXXXX FACEBOOK_CALLBACK_URL=http://localhost:3000/api/auth/facebook/callback FACEBOOK_GRAPH_VERSION=v3.0 +# Github OAuth Integration GITHUB_CLIENT_ID=XXXXXXX GITHUB_CLIENT_SECRET=XXXXXXX GITHUB_CALLBACK_URL=http://localhost:3000/api/auth/github/callback +# Github App Install Integration +GAUZY_GITHUB_APP_NAME= +GAUZY_GITHUB_APP_ID=XXXXXXX +GAUZY_GITHUB_APP_PRIVATE_KEY= + +# Github Webhook Configuration +GAUZY_GITHUB_WEBHOOK_URL=http://localhost:3000/api/auth/github/webhook +GAUZY_GITHUB_WEBHOOK_SECRET=XXXXXXX + +# Github Redirect URL +GAUZY_GITHUB_REDIRECT_URL=http://localhost:3000/api/integration/github/callback +GAUZY_GITHUB_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/github/setup/installation" +GAUZY_GITHUB_API_VERSION="2022-11-28" + LINKEDIN_CLIENT_ID=XXXXXXX LINKEDIN_CLIENT_SECRET=XXXXXXX LINKEDIN_CALLBACK_URL=http://localhost:3000/api/auth/linked/callback @@ -103,7 +118,18 @@ KEYCLOAK_AUTH_SERVER_URL=XXXXXXX KEYCLOAK_COOKIE_KEY=XXXXXXX INTEGRATED_HUBSTAFF_USER_PASS=hubstaffPassword -UPWORK_REDIRECT_URL=http://localhost:3000/api/integrations/upwork + +# Upwork Integration Config +UPWORK_API_KEY=XXXXXXX +UPWORK_API_SECRET=XXXXXXX +UPWORK_REDIRECT_URL="http://localhost:3000/api/integrations/upwork/callback" +UPWORK_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/upwork" + +# Hubstaff Integration Configuration +HUBSTAFF_CLIENT_ID=XXXXXXX +HUBSTAFF_CLIENT_SECRET=XXXXXXX +HUBSTAFF_REDIRECT_URL="http://localhost:3000/api/integration/hubstaff/callback" +HUBSTAFF_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/hubstaff" # File System: LOCAL | S3 | WASABI | CLOUDINARY FILE_PROVIDER=LOCAL @@ -270,3 +296,15 @@ FEATURE_ROLES_PERMISSION=true # Email Verification FEATURE_EMAIL_VERIFICATION=false + +# GitHub App Integration +GITHUB_INTEGRATION_APP_ID= +GITHUB_INTEGRATION_CLIENT_ID= +GITHUB_INTEGRATION_CLIENT_SECRET= +GITHUB_INTEGRATION_PRIVATE_KEY= +GITHUB_INTEGRATION_WEBHOOK_SECRET= + +# HubStaff Integration +HUBSTAFF_CLIENT_ID= +HUBSTAFF_CLIENT_SECRET= +HUBSTAFF_PERSONAL_ACCESS_TOKEN= diff --git a/.env.docker b/.env.docker index d1fc94ed882..b5c51d679d9 100644 --- a/.env.docker +++ b/.env.docker @@ -76,11 +76,39 @@ FACEBOOK_CLIENT_SECRET= FACEBOOK_GRAPH_VERSION=v3.0 FACEBOOK_CALLBACK_URL=http://localhost:3000/api/auth/facebook/callback +# Github OAuth Integration +GITHUB_CLIENT_ID=XXXXXXX +GITHUB_CLIENT_SECRET=XXXXXXX +GITHUB_CALLBACK_URL=http://localhost:3000/api/auth/github/callback + +# Github App Install Integration +GAUZY_GITHUB_APP_NAME= +GAUZY_GITHUB_APP_ID=XXXXXXX +GAUZY_GITHUB_APP_PRIVATE_KEY= + +# Github Webhook Configuration +GAUZY_GITHUB_WEBHOOK_URL=http://localhost:3000/api/auth/github/webhook +GAUZY_GITHUB_WEBHOOK_SECRET=XXXXXXX + +# Github Redirect URL +GAUZY_GITHUB_REDIRECT_URL=http://localhost:3000/api/integration/github/callback +GAUZY_GITHUB_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/github/setup/installation" +GAUZY_GITHUB_API_VERSION="2022-11-28" + # Third Party Integration Config INTEGRATED_USER_DEFAULT_PASS= # Upwork Integration Config -UPWORK_REDIRECT_URL=http://localhost:3000/api/integrations/upwork/callback +UPWORK_API_KEY=XXXXXXX +UPWORK_API_SECRET=XXXXXXX +UPWORK_REDIRECT_URL="http://localhost:3000/api/integrations/upwork/callback" +UPWORK_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/upwork" + +# Hubstaff Integration Configuration +HUBSTAFF_CLIENT_ID=XXXXXXX +HUBSTAFF_CLIENT_SECRET=XXXXXXX +HUBSTAFF_REDIRECT_URL="http://localhost:3000/api/integration/hubstaff/callback" +HUBSTAFF_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/hubstaff" # File System: LOCAL | S3 | WASABI | CLOUDINARY FILE_PROVIDER=LOCAL @@ -241,3 +269,15 @@ FEATURE_ROLES_PERMISSION=true # Email Verification FEATURE_EMAIL_VERIFICATION=false + +# GitHub App Integration +GITHUB_INTEGRATION_APP_ID= +GITHUB_INTEGRATION_CLIENT_ID= +GITHUB_INTEGRATION_CLIENT_SECRET= +GITHUB_INTEGRATION_PRIVATE_KEY= +GITHUB_INTEGRATION_WEBHOOK_SECRET= + +# HubStaff Integration +HUBSTAFF_CLIENT_ID= +HUBSTAFF_CLIENT_SECRET= +HUBSTAFF_PERSONAL_ACCESS_TOKEN= diff --git a/.env.local b/.env.local index eaadee80415..dffb5862a64 100644 --- a/.env.local +++ b/.env.local @@ -76,11 +76,39 @@ FACEBOOK_CLIENT_SECRET= FACEBOOK_GRAPH_VERSION=v3.0 FACEBOOK_CALLBACK_URL=http://localhost:3000/api/auth/facebook/callback +# Github OAuth Integration +GITHUB_CLIENT_ID=XXXXXXX +GITHUB_CLIENT_SECRET=XXXXXXX +GITHUB_CALLBACK_URL=http://localhost:3000/api/auth/github/callback + +# Github App Install Integration +GAUZY_GITHUB_APP_NAME= +GAUZY_GITHUB_APP_ID=XXXXXXX +GAUZY_GITHUB_APP_PRIVATE_KEY= + +# Github Webhook Configuration +GAUZY_GITHUB_WEBHOOK_URL=http://localhost:3000/api/auth/github/webhook +GAUZY_GITHUB_WEBHOOK_SECRET=XXXXXXX + +# Github Redirect URL +GAUZY_GITHUB_REDIRECT_URL=http://localhost:3000/api/integration/github/callback +GAUZY_GITHUB_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/github/setup/installation" +GAUZY_GITHUB_API_VERSION="2022-11-28" + # Third Party Integration Config INTEGRATED_USER_DEFAULT_PASS= # Upwork Integration Config -UPWORK_REDIRECT_URL=http://localhost:3000/api/integrations/upwork/callback +UPWORK_API_KEY=XXXXXXX +UPWORK_API_SECRET=XXXXXXX +UPWORK_REDIRECT_URL="http://localhost:3000/api/integrations/upwork/callback" +UPWORK_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/upwork" + +# Hubstaff Integration Configuration +HUBSTAFF_CLIENT_ID=XXXXXXX +HUBSTAFF_CLIENT_SECRET=XXXXXXX +HUBSTAFF_REDIRECT_URL="http://localhost:3000/api/integration/hubstaff/callback" +HUBSTAFF_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/hubstaff" # File System: LOCAL | S3 | WASABI | CLOUDINARY FILE_PROVIDER=LOCAL @@ -228,3 +256,15 @@ UNLEASH_INSTANCE_ID= UNLEASH_REFRESH_INTERVAL=15000 UNLEASH_METRICS_INTERVAL=60000 UNLEASH_API_KEY= + +# GitHub App Integration +GITHUB_INTEGRATION_APP_ID= +GITHUB_INTEGRATION_CLIENT_ID= +GITHUB_INTEGRATION_CLIENT_SECRET= +GITHUB_INTEGRATION_PRIVATE_KEY= +GITHUB_INTEGRATION_WEBHOOK_SECRET= + +# HubStaff Integration +HUBSTAFF_CLIENT_ID= +HUBSTAFF_CLIENT_SECRET= +HUBSTAFF_PERSONAL_ACCESS_TOKEN= diff --git a/.env.sample b/.env.sample index a21db48d762..a1437450581 100644 --- a/.env.sample +++ b/.env.sample @@ -62,10 +62,25 @@ FACEBOOK_CLIENT_SECRET=XXXXXXX FACEBOOK_CALLBACK_URL=http://localhost:3000/api/auth/facebook/callback FACEBOOK_GRAPH_VERSION=v3.0 +# Github OAuth Integration GITHUB_CLIENT_ID=XXXXXXX GITHUB_CLIENT_SECRET=XXXXXXX GITHUB_CALLBACK_URL=http://localhost:3000/api/auth/github/callback +# Github App Install Integration +GAUZY_GITHUB_APP_NAME= +GAUZY_GITHUB_APP_ID=XXXXXXX +GAUZY_GITHUB_APP_PRIVATE_KEY= + +# Github Webhook Configuration +GAUZY_GITHUB_WEBHOOK_URL=http://localhost:3000/api/auth/github/webhook +GAUZY_GITHUB_WEBHOOK_SECRET=XXXXXXX + +# Github Redirect URL +GAUZY_GITHUB_REDIRECT_URL=http://localhost:3000/api/integration/github/callback +GAUZY_GITHUB_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/github/setup/installation" +GAUZY_GITHUB_API_VERSION="2022-11-28" + LINKEDIN_CLIENT_ID=XXXXXXX LINKEDIN_CLIENT_SECRET=XXXXXXX LINKEDIN_CALLBACK_URL=http://localhost:3000/api/auth/linked/callback @@ -90,7 +105,18 @@ KEYCLOAK_AUTH_SERVER_URL=XXXXXXX KEYCLOAK_COOKIE_KEY=XXXXXXX INTEGRATED_HUBSTAFF_USER_PASS=hubstaffPassword -UPWORK_REDIRECT_URL=http://localhost:3000/api/integrations/upwork + +# Upwork Integration Config +UPWORK_API_KEY=XXXXXXX +UPWORK_API_SECRET=XXXXXXX +UPWORK_REDIRECT_URL="http://localhost:3000/api/integrations/upwork/callback" +UPWORK_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/upwork" + +# Hubstaff Integration Configuration +HUBSTAFF_CLIENT_ID=XXXXXXX +HUBSTAFF_CLIENT_SECRET=XXXXXXX +HUBSTAFF_REDIRECT_URL="http://localhost:3000/api/integration/hubstaff/callback" +HUBSTAFF_POST_INSTALL_URL="http://localhost:4200/#/pages/integrations/hubstaff" # File System: LOCAL | S3 | WASABI | CLOUDINARY FILE_PROVIDER=LOCAL @@ -263,3 +289,15 @@ FEATURE_EMAIL_VERIFICATION=false APPLE_ID= APPLE_ID_APP_PASSWORD= CSC_LINK= + +# GitHub App Integration +GITHUB_INTEGRATION_APP_ID= +GITHUB_INTEGRATION_CLIENT_ID= +GITHUB_INTEGRATION_CLIENT_SECRET= +GITHUB_INTEGRATION_PRIVATE_KEY= +GITHUB_INTEGRATION_WEBHOOK_SECRET= + +# HubStaff Integration +HUBSTAFF_CLIENT_ID= +HUBSTAFF_CLIENT_SECRET= +HUBSTAFF_PERSONAL_ACCESS_TOKEN= diff --git a/.github/workflows/desktop-app-prod.yml b/.github/workflows/desktop-app-prod.yml index 1c8856ef0f9..45f68f15a0a 100644 --- a/.github/workflows/desktop-app-prod.yml +++ b/.github/workflows/desktop-app-prod.yml @@ -66,6 +66,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-mac: runs-on: ${{ matrix.os }} @@ -115,6 +116,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-windows: runs-on: ${{ matrix.os }} @@ -164,3 +166,4 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true diff --git a/.github/workflows/desktop-app-stage.yml b/.github/workflows/desktop-app-stage.yml index c4e91bca88c..db2f33480eb 100644 --- a/.github/workflows/desktop-app-stage.yml +++ b/.github/workflows/desktop-app-stage.yml @@ -66,6 +66,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-mac: runs-on: ${{ matrix.os }} @@ -115,6 +116,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-windows: runs-on: ${{ matrix.os }} @@ -164,3 +166,4 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true diff --git a/.github/workflows/desktop-timer-app-prod.yml b/.github/workflows/desktop-timer-app-prod.yml index 8a1dfe7caee..79783176c1e 100644 --- a/.github/workflows/desktop-timer-app-prod.yml +++ b/.github/workflows/desktop-timer-app-prod.yml @@ -66,6 +66,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-mac: runs-on: ${{ matrix.os }} @@ -115,6 +116,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-windows: runs-on: ${{ matrix.os }} @@ -164,3 +166,4 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true diff --git a/.github/workflows/desktop-timer-app-stage.yml b/.github/workflows/desktop-timer-app-stage.yml index fa18e0a5d38..66f4d4c0ead 100644 --- a/.github/workflows/desktop-timer-app-stage.yml +++ b/.github/workflows/desktop-timer-app-stage.yml @@ -66,6 +66,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-mac: runs-on: ${{ matrix.os }} @@ -115,6 +116,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-windows: runs-on: ${{ matrix.os }} @@ -164,3 +166,4 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true diff --git a/.github/workflows/server-prod.yml b/.github/workflows/server-prod.yml index f1b72b827b7..24d5aa043ee 100644 --- a/.github/workflows/server-prod.yml +++ b/.github/workflows/server-prod.yml @@ -66,6 +66,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-mac: runs-on: ${{ matrix.os }} @@ -115,6 +116,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-windows: runs-on: ${{ matrix.os }} @@ -164,3 +166,4 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true diff --git a/.github/workflows/server-stage.yml b/.github/workflows/server-stage.yml index 33b09705672..ce461c9edc7 100644 --- a/.github/workflows/server-stage.yml +++ b/.github/workflows/server-stage.yml @@ -66,6 +66,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-mac: runs-on: ${{ matrix.os }} @@ -115,6 +116,7 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true release-windows: runs-on: ${{ matrix.os }} @@ -164,3 +166,4 @@ jobs: SENTRY_POSTGRES_TRACKING_ENABLED: '${{ secrets.SENTRY_POSTGRES_TRACKING_ENABLED }}' DO_KEY_ID: ${{ secrets.DO_KEY_ID }} DO_SECRET_KEY: ${{ secrets.DO_SECRET_KEY }} + NX_NO_CLOUD: true diff --git a/.scripts/configure.ts b/.scripts/configure.ts index 09a1833909c..c95889e8c11 100644 --- a/.scripts/configure.ts +++ b/.scripts/configure.ts @@ -142,6 +142,11 @@ if (!env.IS_DOCKER) { GAUZY_CLOUD_APP: '${env.GAUZY_CLOUD_APP}', FILE_PROVIDER: '${env.FILE_PROVIDER}', + + GAUZY_GITHUB_APP_NAME: '${env.GAUZY_GITHUB_APP_NAME}', + GAUZY_GITHUB_APP_ID: '${env.GAUZY_GITHUB_APP_ID}', + GAUZY_GITHUB_CLIENT_ID: '${env.GAUZY_GITHUB_CLIENT_ID}', + GAUZY_GITHUB_REDIRECT_URL: '${env.GAUZY_GITHUB_REDIRECT_URL}', }; `; } else { @@ -240,6 +245,11 @@ if (!env.IS_DOCKER) { GAUZY_CLOUD_APP: 'DOCKER_GAUZY_CLOUD_APP', FILE_PROVIDER: '${env.FILE_PROVIDER}', + + GAUZY_GITHUB_APP_NAME: '${env.GAUZY_GITHUB_APP_NAME}', + GAUZY_GITHUB_APP_ID: '${env.GAUZY_GITHUB_APP_ID}', + GAUZY_GITHUB_CLIENT_ID: '${env.GAUZY_GITHUB_CLIENT_ID}', + GAUZY_GITHUB_REDIRECT_URL: '${env.GAUZY_GITHUB_REDIRECT_URL}', }; `; } @@ -266,10 +276,10 @@ if (!isProd) { // we always want first to remove old generated files (one of them is not needed for current build) try { unlinkSync(`./apps/gauzy/src/environments/environment.ts`); -} catch {} +} catch { } try { unlinkSync(`./apps/gauzy/src/environments/environment.prod.ts`); -} catch {} +} catch { } const envFileDest: string = isProd ? 'environment.prod.ts' : 'environment.ts'; const envFileDestOther: string = !isProd diff --git a/.scripts/env.ts b/.scripts/env.ts index 6d4a1e190dd..fdc1240e1ce 100644 --- a/.scripts/env.ts +++ b/.scripts/env.ts @@ -65,6 +65,11 @@ export type Env = Readonly<{ GAUZY_CLOUD_APP: string; FILE_PROVIDER: string; + + GAUZY_GITHUB_APP_NAME: string; + GAUZY_GITHUB_APP_ID: string; + GAUZY_GITHUB_CLIENT_ID: string; + GAUZY_GITHUB_REDIRECT_URL: string; }>; export const env: Env = cleanEnv( @@ -118,6 +123,11 @@ export const env: Env = cleanEnv( GAUZY_CLOUD_APP: str({ default: 'https://app.gauzy.co/#' }), FILE_PROVIDER: str({ default: 'LOCAL' }), + + GAUZY_GITHUB_APP_NAME: str({ default: '' }), + GAUZY_GITHUB_APP_ID: str({ default: '' }), + GAUZY_GITHUB_CLIENT_ID: str({ default: '' }), + GAUZY_GITHUB_REDIRECT_URL: str({ default: '' }), }, { strict: true, dotEnvPath: __dirname + '/../.env' } ); diff --git a/README.md b/README.md index 32d9b0c845a..464518d667d 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ It's built with React / ReactNative (Expo) stack and connects to headless Ever G ## 🌟 What is it -[Ever® Gauzy™][uri_gauzy] - **Open-Source Business Management Platform** for On-Demand and Sharing Economies. +[Ever® Gauzy™][uri_gauzy] - **Open Business Management Platform** for Collaborative, On-Demand and Sharing Economies. - **Enterprise Resource Planning** (ERP) software. - **Customer Relationship Management** (CRM) software. @@ -25,7 +25,7 @@ It's built with React / ReactNative (Expo) stack and connects to headless Ever G ![overview](https://docs.gauzy.co/docs/assets/overview.png) -Ever® Gauzy™ Platform is a part of our larger Open Platform for **On-Demand and Sharing Economies** - [Ever® Platform™](https://ever.co). +Ever® Gauzy™ Platform is a part of our larger Open Platform for **Collaborative, On-Demand and Sharing Economies** - [Ever® Platform™](https://ever.co). ## ✨ Features @@ -305,6 +305,10 @@ You can also view a full list of our [contributors tracked by Github](https://gi +## ⭐ Star History + +[![Star History Chart](https://api.star-history.com/svg?repos=ever-co/ever-gauzy&type=Date)](https://star-history.com/#ever-co/ever-gauzy&Date) + ## ❤️ Powered By
diff --git a/apps/api/src/assets/seed/integrations/github.svg b/apps/api/src/assets/seed/integrations/github.svg
new file mode 100644
index 00000000000..dae0903d050
--- /dev/null
+++ b/apps/api/src/assets/seed/integrations/github.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/apps/api/src/assets/seed/integrations/jira.svg b/apps/api/src/assets/seed/integrations/jira.svg
new file mode 100644
index 00000000000..20eb4f1b918
--- /dev/null
+++ b/apps/api/src/assets/seed/integrations/jira.svg
@@ -0,0 +1,18 @@
+
+
diff --git a/apps/desktop/src/package.json b/apps/desktop/src/package.json
index a5a41a298da..2db04e9ee4d 100644
--- a/apps/desktop/src/package.json
+++ b/apps/desktop/src/package.json
@@ -28,11 +28,13 @@
"../../../packages/plugins/knowledge-base",
"../../../packages/plugins/changelog",
"../../../packages/common",
- "../../../packages/plugins/integration-ai",
"../../../packages/config",
"../../../packages/contracts",
+ "../../../packages/plugins/integration-ai",
"../../../packages/plugins/integration-hubstaff",
"../../../packages/plugins/integration-upwork",
+ "../../../packages/plugins/integration-github",
+ "../../../packages/plugins/integration-jira",
"../../../packages/plugin"
]
},
diff --git a/apps/gauzy-e2e/package.json b/apps/gauzy-e2e/package.json
index 2bddf0d5397..55fb9017f2b 100644
--- a/apps/gauzy-e2e/package.json
+++ b/apps/gauzy-e2e/package.json
@@ -38,15 +38,17 @@
"build:package:plugin:knowledge-base": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/knowledge-base build",
"build:package:core": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/core build",
"build:package:auth": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/auth build",
- "build:package:plugins": "yarn run build:package:plugin:integration-ai && yarn run build:package:plugin:integration-hubstaff && yarn run build:package:plugin:integration-upwork && yarn run build:package:plugin:product-reviews",
+ "build:package:plugins": "yarn run build:package:plugin:integration-ai && yarn run build:package:plugin:integration-hubstaff && yarn run build:package:plugin:integration-upwork && yarn run build:package:plugin:integration-github && yarn run build:package:plugin:integration-jira && yarn run build:package:plugin:product-reviews",
"build": "yarn build:package:all && concurrently --raw \"yarn build:api\" \"yarn build:gauzy\"",
"build:api": "yarn ng build api",
"build:gauzy": "yarn run postinstall.web && yarn run config:dev && yarn ng build gauzy",
"build:package:plugin:integration-ai": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/integration-ai build",
"build:package:plugin:integration-hubstaff": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/integration-hubstaff build",
- "build:package:desktop-window": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/desktop-window build",
- "build:package:plugin:product-reviews": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/product-reviews build",
"build:package:plugin:integration-upwork": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/integration-upwork build",
+ "build:package:plugin:integration-github": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/integration-github build",
+ "build:package:plugin:integration-jira": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/integration-jira build",
+ "build:package:plugin:product-reviews": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/plugins/product-reviews build",
+ "build:package:desktop-window": "cross-env NODE_ENV=development NODE_OPTIONS=--max-old-space-size=7000 yarn --cwd ./packages/desktop-window build",
"postinstall.web": "yarn node ./decorate-angular-cli.js && yarn npx ngcc --properties es2016 browser module main --first-only --create-ivy-entry-points && yarn node tools/web/postinstall"
},
"resolutions": {
diff --git a/apps/gauzy/src/app/@core/services/gauzy-ai/gauzy-ai.service.ts b/apps/gauzy/src/app/@core/services/gauzy-ai/gauzy-ai.service.ts
index b4d81c85bee..72c65f3b884 100644
--- a/apps/gauzy/src/app/@core/services/gauzy-ai/gauzy-ai.service.ts
+++ b/apps/gauzy/src/app/@core/services/gauzy-ai/gauzy-ai.service.ts
@@ -19,6 +19,6 @@ export class GauzyAIService {
* @returns
*/
addIntegration(input: IIntegrationKeySecretPairInput): Observable
[selected]="selectedTeams"
(selectedChange)="onTeamsSelected($event)"
fullWidth
- [placeholder]="'FORM.PLACEHOLDERS.CHOOSE_TEAMS' | translate"
+ [placeholder]="
+ 'FORM.PLACEHOLDERS.CHOOSE_TEAMS' | translate
+ "
>
-
Installing. Please wait...
+ {{ 'INTEGRATIONS.GITHUB_PAGE.NAME' | translate }}
+ Installing. Please wait...
+ {{ 'INTEGRATIONS.AVAILABLE_INTEGRATIONS' | translate }}
{{
@@ -18,10 +18,10 @@
'CONTEXT_MENU.PROJECT' | translate
}}
'TASKS_PAGE.TASKS_STATUS' | translate
}}
{{ 'TASKS_PAGE.TASK_PRIORITY' | translate }}
{{ 'TASKS_PAGE.TASK_SIZE' | translate }}
}}
{{
@@ -18,10 +18,10 @@
'CONTEXT_MENU.PROJECT' | translate
}}
'TASKS_PAGE.TASKS_STATUS' | translate
}}
'TASKS_PAGE.TASK_TEAMS' | translate
}}
{{ 'TASKS_PAGE.TASK_PRIORITY' | translate }}
{{ 'TASKS_PAGE.TASK_SIZE' | translate }}
}}