From 9fd3d29216461b4c911afec05892fe8efc7c33ac Mon Sep 17 00:00:00 2001
From: nscuro <nscuro@protonmail.com>
Date: Tue, 28 Nov 2023 22:18:37 +0100
Subject: [PATCH] Add GitHub to repositories menu

Signed-off-by: nscuro <nscuro@protonmail.com>
---
 src/i18n/locales/en.json                         |  1 +
 src/router/index.js                              | 11 +++++++++++
 src/views/administration/AdminMenu.vue           |  5 +++++
 src/views/administration/Administration.vue      |  3 ++-
 src/views/administration/repositories/GitHub.vue | 15 +++++++++++++++
 5 files changed, 34 insertions(+), 1 deletion(-)
 create mode 100644 src/views/administration/repositories/GitHub.vue

diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json
index 0c208edde..1f1e3a951 100644
--- a/src/i18n/locales/en.json
+++ b/src/i18n/locales/en.json
@@ -548,6 +548,7 @@
     "nvd_api_last_modification_help": "After mirroring the NVD database once completely, all following mirror operations will only request data that was modified since its last successful execution.",
     "nvd_api_last_modification_warning": "Changing the last modification datetime manually is generally not recommended, but may be used to force re-ingestion of NVD data. Note that due to a limitation in the NVD's REST API, only data for 120 consecutive days can be requested when a last modification datetime is configured. Resetting the last modification datetime will cause the entire NVD database to be re-mirrored.",
     "national_vulnerability_database": "National Vulnerability Database",
+    "github": "GitHub",
     "github_advisories": "GitHub Advisories",
     "osv_advisories": "Google OSV Advisories (Beta)",
     "repositories": "Repositories",
diff --git a/src/router/index.js b/src/router/index.js
index 6a4c65c34..d1eacd339 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -39,6 +39,7 @@ const Cargo = () => import('@/views/administration/repositories/Cargo')
 const Composer = () => import('@/views/administration/repositories/Composer')
 const Cpan = () => import('@/views/administration/repositories/Cpan')
 const Gem = () => import('@/views/administration/repositories/Gem')
+const GitHub = () => import('@/views/administration/repositories/GitHub.vue')
 const GoModules = () => import('@/views/administration/repositories/GoModules')
 const Hex = () => import('@/views/administration/repositories/Hex')
 const Maven = () => import('@/views/administration/repositories/Maven')
@@ -419,6 +420,16 @@ function configRoutes() {
                 permission: 'SYSTEM_CONFIGURATION'
               },
             },
+            {
+              path: 'repositories/github',
+              component: GitHub,
+              meta: {
+                title: i18n.t('message.administration'),
+                i18n: 'message.administration',
+                sectionPath: '/admin',
+                permission: 'SYSTEM_CONFIGURATION'
+              },
+            },
             {
               path: 'repositories/goModules',
               component: GoModules,
diff --git a/src/views/administration/AdminMenu.vue b/src/views/administration/AdminMenu.vue
index 4e783fe55..b99733959 100644
--- a/src/views/administration/AdminMenu.vue
+++ b/src/views/administration/AdminMenu.vue
@@ -159,6 +159,11 @@ import { ACCESS_MANAGEMENT, SYSTEM_CONFIGURATION } from "../../shared/permission
                 name: this.$t('admin.gem'),
                 route: "repositories/gem"
               },
+              {
+                component: "GitHub",
+                name: this.$t('admin.github'),
+                route: "repositories/github"
+              },
               {
                 component: "GoModules",
                 name: this.$t('admin.go_modules'),
diff --git a/src/views/administration/Administration.vue b/src/views/administration/Administration.vue
index f20ee33f3..52403f873 100644
--- a/src/views/administration/Administration.vue
+++ b/src/views/administration/Administration.vue
@@ -40,6 +40,7 @@ import Cargo from "./repositories/Cargo";
 import Composer from "./repositories/Composer";
 import Cpan from "./repositories/Cpan";
 import Gem from "./repositories/Gem";
+import GitHub from './repositories/GitHub.vue';
 import GoModules from "./repositories/GoModules";
 import Hex from "./repositories/Hex";
 import Maven from "./repositories/Maven";
@@ -69,7 +70,7 @@ export default {
     General, BomFormats, Email, Jira, InternalComponents, TaskScheduler, Search,
     InternalAnalyzer, OssIndexAnalyzer, VulnDbAnalyzer, SnykAnalyzer,
     VulnSourceNvd, VulnSourceGitHubAdvisories, VulnSourceOSVAdvisories,
-    Cargo, Composer, Gem, GoModules, Hex, Maven, Npm, Cpan, Nuget, Python,
+    Cargo, Composer, Gem, GitHub, GoModules, Hex, Maven, Npm, Cpan, Nuget, Python,
     Alerts, Templates,
     FortifySsc, DefectDojo, KennaSecurity,
     LdapUsers, ManagedUsers, OidcUsers, OidcGroups, Teams, Permissions, PortfolioAccessControl
diff --git a/src/views/administration/repositories/GitHub.vue b/src/views/administration/repositories/GitHub.vue
new file mode 100644
index 000000000..1e2f1c35c
--- /dev/null
+++ b/src/views/administration/repositories/GitHub.vue
@@ -0,0 +1,15 @@
+<template>
+  <repositories type="GITHUB" :header="header" />
+</template>
+
+<script>
+  import Repositories from "./Repositories";
+  export default {
+    props: {
+      header: String
+    },
+    components: {
+      Repositories
+    }
+  }
+</script>