diff --git a/frontend/.gitignore b/frontend/.gitignore index 4ae1a69f..87a7be31 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -30,4 +30,8 @@ docs/.vitepress/cache docs/.vitepress/dist # Robots -robots.txt \ No newline at end of file +robots.txt + +# SSL +certs/ +certs/* \ No newline at end of file diff --git a/frontend/app/components/modules/auth/components/login.vue b/frontend/app/components/modules/auth/components/login.vue new file mode 100644 index 00000000..0f9ff18c --- /dev/null +++ b/frontend/app/components/modules/auth/components/login.vue @@ -0,0 +1,72 @@ + + + + + + + + \ No newline at end of file diff --git a/frontend/app/components/modules/project/components/shared/header.vue b/frontend/app/components/modules/project/components/shared/header.vue index 228fd855..cac84b61 100644 --- a/frontend/app/components/modules/project/components/shared/header.vue +++ b/frontend/app/components/modules/project/components/shared/header.vue @@ -71,6 +71,17 @@ SPDX-License-Identifier: MIT @@ -179,8 +172,6 @@ import useResponsive from "~/components/shared/utils/responsive"; import {useProjectStore} from "~/components/modules/project/store/project.store"; import LfxOrganizationLogo from "~/components/uikit/organization-logo/organization-logo.vue"; import LfxProjectMenu from "~/components/modules/project/components/shared/header/project-menu.vue"; -import LfxDropdown from "~/components/uikit/dropdown/dropdown.vue"; -import LfxDropdownItem from "~/components/uikit/dropdown/dropdown-item.vue"; import {useReportStore} from "~/components/shared/modules/report/store/report.store"; import {useShareStore} from "~/components/shared/modules/share/store/share.store"; import { LfxRoutes } from '~/components/shared/types/routes'; diff --git a/frontend/app/components/modules/widget/components/shared/widget-menu.vue b/frontend/app/components/modules/widget/components/shared/widget-menu.vue index ac49c3c3..8faec66b 100644 --- a/frontend/app/components/modules/widget/components/shared/widget-menu.vue +++ b/frontend/app/components/modules/widget/components/shared/widget-menu.vue @@ -89,7 +89,7 @@ SPDX-License-Identifier: MIT diff --git a/frontend/app/components/modules/widget/config/contributor/active-contributors/active-contributors.config.ts b/frontend/app/components/modules/widget/config/contributor/active-contributors/active-contributors.config.ts index 0eab3db2..f9d01c95 100644 --- a/frontend/app/components/modules/widget/config/contributor/active-contributors/active-contributors.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/active-contributors/active-contributors.config.ts @@ -62,7 +62,11 @@ const activeContributors: WidgetConfig = { continuous improvement and a vibrant development community`, } } - } + }, + copilot: { + icon: 'people-group', + suggestions: 'How many active contributors are there?' + }, }; export default activeContributors; diff --git a/frontend/app/components/modules/widget/config/contributor/active-organizations/active-organizations.config.ts b/frontend/app/components/modules/widget/config/contributor/active-organizations/active-organizations.config.ts index 0042c967..7e36a688 100644 --- a/frontend/app/components/modules/widget/config/contributor/active-organizations/active-organizations.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/active-organizations/active-organizations.config.ts @@ -16,6 +16,10 @@ const activeOrganizations: WidgetConfig = { share: true, embed: true, snapshot: true, + copilot: { + icon: 'people-group', + suggestions: 'How many active organizations are there?' + }, } export default activeOrganizations; diff --git a/frontend/app/components/modules/widget/config/contributor/contributor-dependency/contributor-dependency.config.ts b/frontend/app/components/modules/widget/config/contributor/contributor-dependency/contributor-dependency.config.ts index 7b5f8338..5de87ca3 100644 --- a/frontend/app/components/modules/widget/config/contributor/contributor-dependency/contributor-dependency.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/contributor-dependency/contributor-dependency.config.ts @@ -57,6 +57,10 @@ const contributorDependency: WidgetConfig = { ensuring robust support and a highly resilient development process.`, } } + }, + copilot: { + icon: 'people-group', + suggestions: 'Show me the contributor dependency' } } diff --git a/frontend/app/components/modules/widget/config/contributor/contributors-leaderboard/contributors-leaderboard.config.ts b/frontend/app/components/modules/widget/config/contributor/contributors-leaderboard/contributors-leaderboard.config.ts index 6eed814d..2c6f94e5 100644 --- a/frontend/app/components/modules/widget/config/contributor/contributors-leaderboard/contributors-leaderboard.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/contributors-leaderboard/contributors-leaderboard.config.ts @@ -16,6 +16,10 @@ const contributorsLeaderboard: WidgetConfig = { share: true, embed: true, snapshot: true, + copilot: { + icon: 'people-group', + suggestions: 'How many contributors are there in the leaderboard?' + }, } export default contributorsLeaderboard; diff --git a/frontend/app/components/modules/widget/config/contributor/geographical-distribution/geographical-distribution.config.ts b/frontend/app/components/modules/widget/config/contributor/geographical-distribution/geographical-distribution.config.ts index f608f004..5d940203 100644 --- a/frontend/app/components/modules/widget/config/contributor/geographical-distribution/geographical-distribution.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/geographical-distribution/geographical-distribution.config.ts @@ -17,6 +17,10 @@ const geographicalDistribution: WidgetConfig = { share: true, embed: true, snapshot: true, + copilot: { + icon: 'people-group', + suggestions: 'Show me the geographical distribution of contributors' + } } export default geographicalDistribution; diff --git a/frontend/app/components/modules/widget/config/contributor/organization-dependency/organization-dependency.config.ts b/frontend/app/components/modules/widget/config/contributor/organization-dependency/organization-dependency.config.ts index 2a35eab1..baf74abc 100644 --- a/frontend/app/components/modules/widget/config/contributor/organization-dependency/organization-dependency.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/organization-dependency/organization-dependency.config.ts @@ -57,6 +57,10 @@ const organizationDependency: WidgetConfig = { ensuring robust support and resilience through a wide range of contributing organizations.`, } } + }, + copilot: { + icon: 'people-group', + suggestions: 'Show me the organization dependency' } } diff --git a/frontend/app/components/modules/widget/config/contributor/organizations-leaderboard/organizations-leaderboard.config.ts b/frontend/app/components/modules/widget/config/contributor/organizations-leaderboard/organizations-leaderboard.config.ts index 02cf5969..ee2328cf 100644 --- a/frontend/app/components/modules/widget/config/contributor/organizations-leaderboard/organizations-leaderboard.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/organizations-leaderboard/organizations-leaderboard.config.ts @@ -16,6 +16,10 @@ const organizationsLeaderboard: WidgetConfig = { share: true, embed: true, snapshot: true, + copilot: { + icon: 'people-group', + suggestions: 'How many organizations are there in the leaderboard?' + }, } export default organizationsLeaderboard; diff --git a/frontend/app/components/modules/widget/config/contributor/retention/retention.config.ts b/frontend/app/components/modules/widget/config/contributor/retention/retention.config.ts index 30e8a8be..48df52b4 100644 --- a/frontend/app/components/modules/widget/config/contributor/retention/retention.config.ts +++ b/frontend/app/components/modules/widget/config/contributor/retention/retention.config.ts @@ -70,6 +70,10 @@ const retention: WidgetConfig = { indicating a highly engaged and stable community.`, } } + }, + copilot: { + icon: 'people-group', + suggestions: 'Show me the retention rate for the last 3 quarters' } }; diff --git a/frontend/app/components/modules/widget/config/development/active-days/active-days.config.ts b/frontend/app/components/modules/widget/config/development/active-days/active-days.config.ts index f2e69d8d..4720e081 100644 --- a/frontend/app/components/modules/widget/config/development/active-days/active-days.config.ts +++ b/frontend/app/components/modules/widget/config/development/active-days/active-days.config.ts @@ -72,6 +72,10 @@ const activeDays: WidgetConfig = { }, }, }, + copilot: { + icon: 'people-group', + suggestions: 'Show me the active days' + } } export default activeDays diff --git a/frontend/app/components/modules/widget/config/development/average-time-to-merge/average-time-to-merge.config.ts b/frontend/app/components/modules/widget/config/development/average-time-to-merge/average-time-to-merge.config.ts index 387d26c1..c2f97438 100644 --- a/frontend/app/components/modules/widget/config/development/average-time-to-merge/average-time-to-merge.config.ts +++ b/frontend/app/components/modules/widget/config/development/average-time-to-merge/average-time-to-merge.config.ts @@ -12,6 +12,10 @@ const averateTimeToMerge: WidgetConfig = { share: true, embed: true, snapshot: true, + copilot: { + icon: 'people-group', + suggestions: 'Show me the average time to merge' + } } export default averateTimeToMerge; diff --git a/frontend/app/components/modules/widget/config/development/code-review-engagement/code-review-engagement.config.ts b/frontend/app/components/modules/widget/config/development/code-review-engagement/code-review-engagement.config.ts index 65118b8c..964027ca 100644 --- a/frontend/app/components/modules/widget/config/development/code-review-engagement/code-review-engagement.config.ts +++ b/frontend/app/components/modules/widget/config/development/code-review-engagement/code-review-engagement.config.ts @@ -17,6 +17,10 @@ const codeReviewEngagement: WidgetConfig = { share: true, embed: true, snapshot: true, + copilot: { + icon: 'people-group', + suggestions: 'Show me the code review engagement' + } } export default codeReviewEngagement; diff --git a/frontend/app/components/modules/widget/config/development/commit-activities/commit-activities.config.ts b/frontend/app/components/modules/widget/config/development/commit-activities/commit-activities.config.ts index e2d9fa68..e1506984 100644 --- a/frontend/app/components/modules/widget/config/development/commit-activities/commit-activities.config.ts +++ b/frontend/app/components/modules/widget/config/development/commit-activities/commit-activities.config.ts @@ -14,7 +14,11 @@ const commitActivities: WidgetConfig = { }, share: true, embed: true, - snapshot: true + snapshot: true, + copilot: { + icon: 'people-group', + suggestions: 'Show me the commit activities' + } }; export default commitActivities; diff --git a/frontend/app/components/modules/widget/config/development/contributions-outside-work-hours/contributions-outside-work-hours.config.ts b/frontend/app/components/modules/widget/config/development/contributions-outside-work-hours/contributions-outside-work-hours.config.ts index 0aa8a145..84262724 100644 --- a/frontend/app/components/modules/widget/config/development/contributions-outside-work-hours/contributions-outside-work-hours.config.ts +++ b/frontend/app/components/modules/widget/config/development/contributions-outside-work-hours/contributions-outside-work-hours.config.ts @@ -53,6 +53,10 @@ const contributionsOutsideWorkHours: WidgetConfig = { }, }, }, + copilot: { + icon: 'people-group', + suggestions: 'Show me the contributions outside work hours' + } } export default contributionsOutsideWorkHours diff --git a/frontend/app/components/modules/widget/config/development/issues-resolution/issues-resolution.config.ts b/frontend/app/components/modules/widget/config/development/issues-resolution/issues-resolution.config.ts index ee9bebbb..cf82f377 100644 --- a/frontend/app/components/modules/widget/config/development/issues-resolution/issues-resolution.config.ts +++ b/frontend/app/components/modules/widget/config/development/issues-resolution/issues-resolution.config.ts @@ -68,6 +68,10 @@ const issuesResolution: WidgetConfig = { }, }, }, + copilot: { + icon: 'people-group', + suggestions: 'Show me the issues resolution' + } } export default issuesResolution diff --git a/frontend/app/components/modules/widget/config/development/merge-lead-time/merge-lead-time.config.ts b/frontend/app/components/modules/widget/config/development/merge-lead-time/merge-lead-time.config.ts index f91c86a4..1b568700 100644 --- a/frontend/app/components/modules/widget/config/development/merge-lead-time/merge-lead-time.config.ts +++ b/frontend/app/components/modules/widget/config/development/merge-lead-time/merge-lead-time.config.ts @@ -68,6 +68,10 @@ const mergeLeadTime: WidgetConfig = { }, }, }, + copilot: { + icon: 'people-group', + suggestions: 'Show me the merge lead time' + } } export default mergeLeadTime diff --git a/frontend/app/components/modules/widget/config/widget.config.ts b/frontend/app/components/modules/widget/config/widget.config.ts index 8872ce35..42ade270 100644 --- a/frontend/app/components/modules/widget/config/widget.config.ts +++ b/frontend/app/components/modules/widget/config/widget.config.ts @@ -54,6 +54,11 @@ export interface WidgetBenchmarkConfig { > } +export interface WidgetCopilotConfig { + icon: string + suggestions: string +} + export interface WidgetConfig { key: string name: string @@ -63,6 +68,7 @@ export interface WidgetConfig { share: boolean embed: boolean snapshot: boolean + copilot?: WidgetCopilotConfig defaultValue?: Record additionalShare?: Component hideOnRepoFilter?: boolean diff --git a/frontend/app/components/shared/layout/menu.vue b/frontend/app/components/shared/layout/menu.vue index 2094c4f7..689ac95e 100644 --- a/frontend/app/components/shared/layout/menu.vue +++ b/frontend/app/components/shared/layout/menu.vue @@ -14,6 +14,9 @@ SPDX-License-Identifier: MIT
+ + +
@@ -22,6 +25,7 @@ SPDX-License-Identifier: MIT import LfxMenuMobile from "~/components/shared/layout/menu/menu-mobile.vue"; import LfxMenuTablet from "~/components/shared/layout/menu/menu-tablet.vue"; import LfxMenuStaticLinks from "~/components/shared/layout/menu/static-links.vue"; + import LfxLogin from "~/components/modules/auth/components/login.vue"; + + \ No newline at end of file diff --git a/frontend/app/components/shared/modules/copilot/components/chat-history/chat-result.vue b/frontend/app/components/shared/modules/copilot/components/chat-history/chat-result.vue new file mode 100644 index 00000000..d953a797 --- /dev/null +++ b/frontend/app/components/shared/modules/copilot/components/chat-history/chat-result.vue @@ -0,0 +1,82 @@ + + + + + \ No newline at end of file diff --git a/frontend/app/components/shared/modules/copilot/components/chat-history/copilot-chat-history.vue b/frontend/app/components/shared/modules/copilot/components/chat-history/copilot-chat-history.vue new file mode 100644 index 00000000..b6c85109 --- /dev/null +++ b/frontend/app/components/shared/modules/copilot/components/chat-history/copilot-chat-history.vue @@ -0,0 +1,50 @@ + + + + + \ No newline at end of file diff --git a/frontend/app/components/shared/modules/copilot/components/chat-history/copilot-chat-item.vue b/frontend/app/components/shared/modules/copilot/components/chat-history/copilot-chat-item.vue new file mode 100644 index 00000000..c1581ceb --- /dev/null +++ b/frontend/app/components/shared/modules/copilot/components/chat-history/copilot-chat-item.vue @@ -0,0 +1,82 @@ + + + + + \ No newline at end of file diff --git a/frontend/app/components/shared/modules/copilot/components/chat-history/result-label.vue b/frontend/app/components/shared/modules/copilot/components/chat-history/result-label.vue new file mode 100644 index 00000000..944916c7 --- /dev/null +++ b/frontend/app/components/shared/modules/copilot/components/chat-history/result-label.vue @@ -0,0 +1,27 @@ + + + + + \ No newline at end of file diff --git a/frontend/app/components/shared/modules/copilot/components/copilot-global.vue b/frontend/app/components/shared/modules/copilot/components/copilot-global.vue new file mode 100644 index 00000000..123b73dc --- /dev/null +++ b/frontend/app/components/shared/modules/copilot/components/copilot-global.vue @@ -0,0 +1,42 @@ + + + + + + \ No newline at end of file diff --git a/frontend/app/components/shared/modules/copilot/components/copilot-modal.vue b/frontend/app/components/shared/modules/copilot/components/copilot-modal.vue new file mode 100644 index 00000000..9a880869 --- /dev/null +++ b/frontend/app/components/shared/modules/copilot/components/copilot-modal.vue @@ -0,0 +1,91 @@ + + + + + + diff --git a/frontend/app/components/shared/modules/copilot/components/copilot-sidebar.vue b/frontend/app/components/shared/modules/copilot/components/copilot-sidebar.vue new file mode 100644 index 00000000..3b55652f --- /dev/null +++ b/frontend/app/components/shared/modules/copilot/components/copilot-sidebar.vue @@ -0,0 +1,229 @@ + +