From 7f4049c3bf6945e81d8e56813c18047906985c5b Mon Sep 17 00:00:00 2001 From: Felix Becker Date: Wed, 10 Jul 2019 17:02:38 +0200 Subject: [PATCH 1/7] Add Sourcegraph integration - Initial draft --- app/assets/javascripts/main.js | 5 +++ app/assets/javascripts/sourcegraph.js | 17 ++++++++ app/helpers/application_settings_helper.rb | 2 + app/models/application_setting.rb | 4 ++ .../application_setting_implementation.rb | 2 + .../_sourcegraph.html.haml | 25 +++++++++++ .../integrations.html.haml | 1 + config/webpack.config.js | 5 +++ ...h_configuration_to_application_settings.rb | 21 +++++++++ db/schema.rb | 2 + doc/api/settings.md | 2 + doc/integration/README.md | 1 + doc/integration/sourcegraph.md | 43 +++++++++++++++++++ lib/api/settings.rb | 4 ++ lib/gitlab/gon_helper.rb | 3 ++ locale/gitlab.pot | 15 +++++++ package.json | 1 + spec/requests/api/settings_spec.rb | 14 ++++++ yarn.lock | 5 +++ 19 files changed, 172 insertions(+) create mode 100644 app/assets/javascripts/sourcegraph.js create mode 100644 app/views/admin/application_settings/_sourcegraph.html.haml create mode 100644 db/migrate/20190827222124_add_sourcegraph_configuration_to_application_settings.rb create mode 100644 doc/integration/sourcegraph.md diff --git a/app/assets/javascripts/main.js b/app/assets/javascripts/main.js index 465c9a362ba4c4..d7c88911079689 100644 --- a/app/assets/javascripts/main.js +++ b/app/assets/javascripts/main.js @@ -33,6 +33,7 @@ import initBreadcrumbs from './breadcrumb'; import initUsagePingConsent from './usage_ping_consent'; import initPerformanceBar from './performance_bar'; import initSearchAutocomplete from './search_autocomplete'; +import initSourcegraph from './sourcegraph'; import GlFieldErrors from './gl_field_errors'; import initUserPopovers from './user_popovers'; import { initUserTracking } from './tracking'; @@ -160,6 +161,10 @@ function deferredInitialisation() { }); loadAwardsHandler(); + + if (gon.sourcegraph_enabled) { + initSourcegraph(); + } } document.addEventListener('DOMContentLoaded', () => { diff --git a/app/assets/javascripts/sourcegraph.js b/app/assets/javascripts/sourcegraph.js new file mode 100644 index 00000000000000..a9d7966e114edd --- /dev/null +++ b/app/assets/javascripts/sourcegraph.js @@ -0,0 +1,17 @@ +/** + * Loads the Sourcegraph integration for support for Sourcegraph extensions and + * code intelligence. + */ +export default function initSourcegraph() { + const sourcegraphUrl = gon.sourcegraph_url; + const assetsUrl = new URL('/assets/webpack/sourcegraph/', window.location.href); + window.SOURCEGRAPH_ASSETS_URL = assetsUrl.href; + window.SOURCEGRAPH_URL = sourcegraphUrl; + window.SOURCEGRAPH_INTEGRATION = 'gitlab-integration'; + // inject a