diff --git a/assets/images/help/repository/code-scanning-alert-close-drop-down.png b/assets/images/help/repository/code-scanning-alert-close-drop-down.png index fcbb07709603..a8356bb7e282 100644 Binary files a/assets/images/help/repository/code-scanning-alert-close-drop-down.png and b/assets/images/help/repository/code-scanning-alert-close-drop-down.png differ diff --git a/assets/images/help/repository/code-scanning-alert.png b/assets/images/help/repository/code-scanning-alert.png index 066e91ac684c..07c156777d4a 100644 Binary files a/assets/images/help/repository/code-scanning-alert.png and b/assets/images/help/repository/code-scanning-alert.png differ diff --git a/assets/images/help/repository/code-scanning-click-alert.png b/assets/images/help/repository/code-scanning-click-alert.png index 5bcecf39cce9..fc9f29a2c686 100644 Binary files a/assets/images/help/repository/code-scanning-click-alert.png and b/assets/images/help/repository/code-scanning-click-alert.png differ diff --git a/assets/images/help/repository/code-scanning-pr-alert.png b/assets/images/help/repository/code-scanning-pr-alert.png index a62a85215fc2..e7057845ce8f 100644 Binary files a/assets/images/help/repository/code-scanning-pr-alert.png and b/assets/images/help/repository/code-scanning-pr-alert.png differ diff --git a/assets/images/help/repository/code-scanning-set-up-this-workflow.png b/assets/images/help/repository/code-scanning-set-up-this-workflow.png index 8875fdbae3aa..f2b0af3b1190 100644 Binary files a/assets/images/help/repository/code-scanning-set-up-this-workflow.png and b/assets/images/help/repository/code-scanning-set-up-this-workflow.png differ diff --git a/assets/images/help/repository/code-scanning-show-paths.png b/assets/images/help/repository/code-scanning-show-paths.png index 4d79a7b785f4..67a0cd5db690 100644 Binary files a/assets/images/help/repository/code-scanning-show-paths.png and b/assets/images/help/repository/code-scanning-show-paths.png differ diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/automatically-scanning-your-code-for-vulnerabilities-and-errors.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/automatically-scanning-your-code-for-vulnerabilities-and-errors.md index 7793de95ddd7..2f126e4f1c23 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/automatically-scanning-your-code-for-vulnerabilities-and-errors.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/automatically-scanning-your-code-for-vulnerabilities-and-errors.md @@ -3,6 +3,7 @@ title: Automatically scanning your code for vulnerabilities and errors shortTitle: Scanning automatically intro: 'You can find vulnerabilities and errors in your project''s code on {% data variables.product.prodname_dotcom %}, as well as view, triage, understand, and resolve the related {% data variables.product.prodname_code_scanning %} alerts.' mapTopic: true +product: '{% data reusables.gated-features.code-scanning %}' versions: free-pro-team: '*' enterprise-server: '>=2.22' diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning-in-your-ci-system.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning-in-your-ci-system.md index b4b106a5d58e..1565e21ed03b 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning-in-your-ci-system.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning-in-your-ci-system.md @@ -9,6 +9,7 @@ versions: enterprise-server: '>=2.22' --- +{% data reusables.code-scanning.beta-codeql-runner %} {% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %} diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/index.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/index.md index 034c29697731..55e494070e08 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/index.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/index.md @@ -1,5 +1,6 @@ --- title: Finding security vulnerabilities and errors in your code +product: '{% data reusables.gated-features.code-scanning %}' redirect_from: - /github/managing-security-vulnerabilities/finding-security-vulnerabilities-in-your-projects-code versions: diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/integrating-with-code-scanning.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/integrating-with-code-scanning.md index 9caa80f45c73..b352f573e26b 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/integrating-with-code-scanning.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/integrating-with-code-scanning.md @@ -3,6 +3,7 @@ title: Integrating with code scanning shortTitle: Integration intro: 'You can integrate {% data variables.product.prodname_codeql %} {% data variables.product.prodname_code_scanning %} with your existing CI systems or upload results from other tools.' mapTopic: true +product: '{% data reusables.gated-features.code-scanning %}' redirect_from: - /github/finding-security-vulnerabilities-and-errors-in-your-code/managing-results-from-code-scanning versions: diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/managing-code-scanning-alerts-for-your-repository.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/managing-code-scanning-alerts-for-your-repository.md index 306101df8401..79c5b6ee9c8c 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/managing-code-scanning-alerts-for-your-repository.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/managing-code-scanning-alerts-for-your-repository.md @@ -13,7 +13,6 @@ redirect_from: --- {% data reusables.code-scanning.beta %} -{% data reusables.code-scanning.enterprise-enable-code-scanning %} ### About alerts from {% data variables.product.prodname_code_scanning %} diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/running-code-scanning-in-your-ci-system.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/running-code-scanning-in-your-ci-system.md index 675acd5aa2f8..7f75a79ad252 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/running-code-scanning-in-your-ci-system.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/running-code-scanning-in-your-ci-system.md @@ -8,6 +8,7 @@ versions: enterprise-server: '>=2.22' --- +{% data reusables.code-scanning.beta-codeql-runner %} {% data reusables.code-scanning.beta %} {% data reusables.code-scanning.enterprise-enable-code-scanning %} diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/sarif-support-for-code-scanning.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/sarif-support-for-code-scanning.md index 3cee1c093a37..18165bcbed72 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/sarif-support-for-code-scanning.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/sarif-support-for-code-scanning.md @@ -11,7 +11,6 @@ versions: --- {% data reusables.code-scanning.beta %} -{% data reusables.code-scanning.enterprise-enable-code-scanning %} ### About SARIF support diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests.md index a617fd8a2122..931419d50117 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/triaging-code-scanning-alerts-in-pull-requests.md @@ -10,7 +10,6 @@ versions: --- {% data reusables.code-scanning.beta %} -{% data reusables.code-scanning.enterprise-enable-code-scanning-actions %} ### About {% data variables.product.prodname_code_scanning %} results on pull requests diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-code-scanning-in-your-ci-system.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-code-scanning-in-your-ci-system.md index bc1b7d699edc..70157b029eb8 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-code-scanning-in-your-ci-system.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-code-scanning-in-your-ci-system.md @@ -8,8 +8,8 @@ versions: enterprise-server: '>=2.22' --- +{% data reusables.code-scanning.beta-codeql-runner %} {% data reusables.code-scanning.beta %} -{% data reusables.code-scanning.enterprise-enable-code-scanning %} ### The `init` command takes too long diff --git a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-the-codeql-workflow.md b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-the-codeql-workflow.md index db8de940983f..baadd06ebb14 100644 --- a/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-the-codeql-workflow.md +++ b/content/github/finding-security-vulnerabilities-and-errors-in-your-code/troubleshooting-the-codeql-workflow.md @@ -11,7 +11,6 @@ versions: --- {% data reusables.code-scanning.beta %} -{% data reusables.code-scanning.enterprise-enable-code-scanning-actions %} ### Automatic build for a compiled language fails diff --git a/content/github/getting-started-with-github/githubs-products.md b/content/github/getting-started-with-github/githubs-products.md index 9f6b44680caf..409403613d4b 100644 --- a/content/github/getting-started-with-github/githubs-products.md +++ b/content/github/getting-started-with-github/githubs-products.md @@ -96,7 +96,7 @@ For more information about hosting your own instance of [{% data variables.produ - {% data variables.contact.github_support %} {% data variables.product.premium_plus_support_plan %} - {% data variables.product.prodname_insights %} -- {% data variables.product.prodname_advanced_security %} +- {% data variables.product.prodname_advanced_security %}{% if currentVersion == "free-pro-team@latest" %}. For more information, see "[About {% data variables.product.prodname_code_scanning %}](/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning)" and "[About {% data variables.product.prodname_secret_scanning %}](/github/administering-a-repository/about-secret-scanning) (beta)."{% elsif currentVersion ver_gt "enterprise-server@2.21" %}. For more information, see "[About {% data variables.product.prodname_code_scanning %}](/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning) (beta)."{% endif %} - [{% data variables.product.prodname_learning %} for organizations](https://lab.github.com/organizations) For more information about signing up for {% data variables.product.prodname_ghe_one %}, contact [{% data variables.product.product_name %}'s Sales team](https://enterprise.github.com/contact). diff --git a/data/reusables/code-scanning/beta-codeql-runner.md b/data/reusables/code-scanning/beta-codeql-runner.md new file mode 100644 index 000000000000..f83682fcfaca --- /dev/null +++ b/data/reusables/code-scanning/beta-codeql-runner.md @@ -0,0 +1,9 @@ +{% if currentVersion == "free-pro-team@latest" %} + +{% note %} + +**Note:** The {% data variables.product.prodname_codeql_runner %} is currently in beta and subject to change. + +{% endnote %} + +{% endif %} diff --git a/data/reusables/code-scanning/beta.md b/data/reusables/code-scanning/beta.md index 2c4184ce1d2e..f3ecf073dd26 100644 --- a/data/reusables/code-scanning/beta.md +++ b/data/reusables/code-scanning/beta.md @@ -1,5 +1,9 @@ +{% if currentVersion == "enterprise-server@2.22" %} + {% note %} -**Note:** {% data variables.product.prodname_code_scanning_capc %} is currently in beta and subject to change. {% if currentVersion == "free-pro-team@latest" %}To request access to the beta, [join the waitlist](https://github.com/features/security/advanced-security/signup).{% else %}If your organization has an {% data variables.product.prodname_advanced_security %} license, you can [join the beta program](https://resources.github.com/beta-signup/).{% endif %} +**Note:** {% data variables.product.prodname_code_scanning_capc %} is currently in beta and subject to change. For more information about taking part in the beta, [sign up here](https://resources.github.com/beta-signup/). {% endnote %} + +{% endif %} diff --git a/data/reusables/gated-features/code-scanning.md b/data/reusables/gated-features/code-scanning.md new file mode 100644 index 000000000000..a1aca3e675eb --- /dev/null +++ b/data/reusables/gated-features/code-scanning.md @@ -0,0 +1 @@ +{% data variables.product.prodname_code_scanning_capc %} is available in public repositories, and in public and private repositories owned by organizations with a license for {% data variables.product.prodname_advanced_security %}. {% if currentVersion == "free-pro-team@latest" %}{% data reusables.gated-features.more-info %}{% endif %} diff --git a/javascripts/search.js b/javascripts/search.js index 3e62b6cbad49..155082ee5c0a 100644 --- a/javascripts/search.js +++ b/javascripts/search.js @@ -1,5 +1,5 @@ const instantsearch = require('instantsearch.js').default -const { searchBox, hits } = require('instantsearch.js/es/widgets') +const { searchBox, hits, configure } = require('instantsearch.js/es/widgets') const algoliasearch = require('algoliasearch') const searchWithYourKeyboard = require('search-with-your-keyboard') const querystring = require('querystring') @@ -131,34 +131,39 @@ export default function () { const search = instantsearch(opts) - search.addWidget( - hits({ - container: '#search-results-container', - templates: { - empty: 'No results', - item: resultTemplate - }, - // useful for debugging template context, if needed - transformItems: items => { - // console.log(`transformItems`, items) - return items - } - }) - ) - // Find search placeholder text in a tag, falling back to a default const placeholderMeta = document.querySelector('meta[name="site.data.ui.search.placeholder"]') const placeholder = placeholderMeta ? placeholderMeta.content : 'Search topics, products...' - search.addWidget( - searchBox({ - container: '#search-input-container', - placeholder, - // only autofocus on the homepage, and only if no #hash is present in the URL - autofocus: (hasStandaloneSearch()) && !window.location.hash.length, - showReset: false, - showSubmit: false - }) + search.addWidgets( + [ + hits({ + container: '#search-results-container', + templates: { + empty: 'No results', + item: resultTemplate + }, + // useful for debugging template context, if needed + transformItems: items => { + // console.log(`transformItems`, items) + return items + } + }), + configure({ + analyticsTags: [ + 'site:docs.github.com', + `env:${process.env.NODE_ENV}` + ] + }), + searchBox({ + container: '#search-input-container', + placeholder, + // only autofocus on the homepage, and only if no #hash is present in the URL + autofocus: (hasStandaloneSearch()) && !window.location.hash.length, + showReset: false, + showSubmit: false + }) + ] ) // enable for debugging diff --git a/package-lock.json b/package-lock.json index d04ee0f82ec4..62bea5f12f9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2727,6 +2727,11 @@ "@types/node": "*" } }, + "@types/googlemaps": { + "version": "3.39.13", + "resolved": "https://registry.npmjs.org/@types/googlemaps/-/googlemaps-3.39.13.tgz", + "integrity": "sha512-R/k5WKe8zQHo9oFRINuX/1haKYRkKEfItnBGrSjspbXXITakRdsj6daQIdL1+Pt84lnzduWurxNA5k0fgPMQUg==" + }, "@types/graceful-fs": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz", @@ -3247,13 +3252,11 @@ } }, "algoliasearch-helper": { - "version": "2.28.0", - "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-2.28.0.tgz", - "integrity": "sha512-ZWczpkns2tw9sAtFL+1Cn3XAGkaunYS+ckldBrHHHQZj1/vw9n8SOGUO7lwpjuKXG9+TWgzx6XP3ZsG3iM+6hw==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.2.2.tgz", + "integrity": "sha512-/3XvE33R+gQKaiPdy3nmHYqhF8hqIu8xnlOicVxb1fD6uMFmxW8rGLzzrRfsPfxgAfm+c1NslLb3TzQVIB8aVA==", "requires": { - "events": "^1.1.1", - "lodash": "^4.17.5", - "qs": "^6.5.1" + "events": "^1.1.1" } }, "ansi-align": { @@ -10276,14 +10279,6 @@ "integrity": "sha512-Hiyv+mXHfFEP7LzUL/llg9RwFxxY+o9N3JVLIeG5E7iFIFAalxvRU9UZthBdYDEVnzHMgjnKJPPpay5BWf1g9g==", "dev": true }, - "immutability-helper": { - "version": "2.9.1", - "resolved": "https://registry.npmjs.org/immutability-helper/-/immutability-helper-2.9.1.tgz", - "integrity": "sha512-r/RmRG8xO06s/k+PIaif2r5rGc3j4Yhc01jSBfwPCXDLYZwp/yxralI37Df1mwmuzcCsen/E/ITKcTEvc1PQmQ==", - "requires": { - "invariant": "^2.2.0" - } - }, "import-fresh": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", @@ -10457,17 +10452,16 @@ } }, "instantsearch.js": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/instantsearch.js/-/instantsearch.js-3.7.0.tgz", - "integrity": "sha512-Hkj72CP/Du7uR6R8N2IXo/JHiGU9Z/DwDbQcvRaLKWGd3fc4WjQpl1QPB2OUsoM0Ym0Zv1xjyYTmuU1VvGdySw==", + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/instantsearch.js/-/instantsearch.js-4.8.2.tgz", + "integrity": "sha512-DG2IUMfiZeGfJjgZrwBY1KGWUllyHUpG2khvhuPdHx8wopDC/713n6JDZ02oBdceBQJ91cn6Ph14igXSAjWJJA==", "requires": { - "algoliasearch-helper": "^2.26.0", + "@types/googlemaps": "^3.39.6", + "algoliasearch-helper": "^3.2.2", "classnames": "^2.2.5", "events": "^1.1.0", "hogan.js": "^3.0.2", - "preact": "^8.3.0", - "preact-compat": "^3.18.0", - "preact-rheostat": "^2.1.1", + "preact": "^10.0.0", "prop-types": "^15.5.10", "qs": "^6.5.1" } @@ -17543,51 +17537,9 @@ "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" }, "preact": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/preact/-/preact-8.5.2.tgz", - "integrity": "sha512-37tlDJGq5IQKqGUbqPZ7qPtsTOWFyxe+ojAOFfzKo0dEPreenqrqgJuS83zGpeGAqD9h9L9Yr7QuxH2W4ZrKxg==" - }, - "preact-compat": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/preact-compat/-/preact-compat-3.19.0.tgz", - "integrity": "sha512-f83A4hIhH8Uzhb9GbIcGk8SM19ffWlwP9mDaYwQdRnMdekZwcCA7eIAbeV4EMQaV9C0Yuy8iKgBAtyTKPZQt/Q==", - "requires": { - "immutability-helper": "^2.7.1", - "preact-context": "^1.1.3", - "preact-render-to-string": "^3.8.2", - "preact-transition-group": "^1.1.1", - "prop-types": "^15.6.2", - "standalone-react-addons-pure-render-mixin": "^0.1.1" - } - }, - "preact-context": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/preact-context/-/preact-context-1.1.4.tgz", - "integrity": "sha512-gcCjPJ65R0MiW9hDu8W/3WAmyTElIvwLyEO6oLQiM6/TbLKLxCpBCWV8GJjx52TTEyUr60HLDcmoCXZlslelzQ==" - }, - "preact-render-to-string": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-3.8.2.tgz", - "integrity": "sha512-przuZPajiurStGgxMoJP0EJeC4xj5CgHv+M7GfF3YxAdhGgEWAkhOSE0xympAFN20uMayntBZpttIZqqLl77fw==", - "requires": { - "pretty-format": "^3.5.1" - } - }, - "preact-rheostat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/preact-rheostat/-/preact-rheostat-2.1.1.tgz", - "integrity": "sha512-d03JgkpbjknALYl+zfNiJQ60sFd4A0YjnLCe/DB+rqKQck7jXpsW9RqSN0R50/lV8fEezhVCjq2WMPDDOKmwaA==", - "requires": { - "object.assign": "^4.0.4", - "preact": "^8.2.5", - "preact-compat": "^3.17.0", - "prop-types": "^15.5.10" - } - }, - "preact-transition-group": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/preact-transition-group/-/preact-transition-group-1.1.1.tgz", - "integrity": "sha1-8KSTJ+pRXs406ivoZMSn0p5dbhA=" + "version": "10.4.8", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.8.tgz", + "integrity": "sha512-uVLeEAyRsCkUEFhVHlOu17OxcrwC7+hTGZ08kBoLBiGHiZooUZuibQnphgMKftw/rqYntNMyhVCPqQhcyAGHag==" }, "prelude-ls": { "version": "1.1.2", @@ -17599,11 +17551,6 @@ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, - "pretty-format": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz", - "integrity": "sha1-v77VbV6ad2ZF9LH/eqGjrE+jw4U=" - }, "private": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", @@ -19426,11 +19373,6 @@ "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", "dev": true }, - "standalone-react-addons-pure-render-mixin": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/standalone-react-addons-pure-render-mixin/-/standalone-react-addons-pure-render-mixin-0.1.1.tgz", - "integrity": "sha1-PHQJ9MecQN6axyxhbPZ5qZTzdVE=" - }, "standard": { "version": "14.3.1", "resolved": "https://registry.npmjs.org/standard/-/standard-14.3.1.tgz", diff --git a/package.json b/package.json index 2a7b4b534c3d..84b690382d86 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "html-entities": "^1.2.1", "html-truncate": "^1.2.2", "imurmurhash": "^0.1.4", - "instantsearch.js": "^3.6.0", + "instantsearch.js": "^4.8.2", "is-url": "^1.2.4", "js-cookie": "^2.2.1", "js-yaml": "^3.14.0", diff --git a/tests/browser/browser.js b/tests/browser/browser.js index 3bd4023e5af0..4429471e1dda 100644 --- a/tests/browser/browser.js +++ b/tests/browser/browser.js @@ -1,5 +1,6 @@ -/* global page */ +/* global page, browser */ const sleep = require('await-sleep') +const querystring = require('querystring') describe('homepage', () => { test('should be titled "GitHub Documentation"', async () => { @@ -36,6 +37,29 @@ describe('algolia browser search', () => { expect(hits.length).toBeGreaterThan(5) }) + it('sends the correct data to algolia', async () => { + const newPage = await browser.newPage() + await newPage.goto('http://localhost:4001/ja/enterprise/2.22/admin/installation') + + await newPage.setRequestInterception(true) + newPage.on('request', interceptedRequest => { + if (interceptedRequest.method() === 'POST' && /algolia/i.test(interceptedRequest.url())) { + const data = JSON.parse(interceptedRequest.postData()) + const { indexName, params } = data.requests[0] + const parsedParams = querystring.parse(params) + const analyticsTags = JSON.parse(parsedParams.analyticsTags) + expect(indexName).toBe('github-docs-2.22-ja') + expect(analyticsTags).toHaveLength(2) + // browser tests are run against production build, so we are expecting env:production + expect(analyticsTags).toEqual(expect.arrayContaining(['site:docs.github.com', 'env:production'])) + } + interceptedRequest.continue() + }) + + await newPage.click('#search-input-container input[type="search"]') + await newPage.type('#search-input-container input[type="search"]', 'test') + }) + it('removes `algolia-query` query param after page load', async () => { await page.goto('http://localhost:4001/en?algolia-query=helpme') diff --git a/webpack.config.js b/webpack.config.js index 39356fcc047d..32a63459a960 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,6 +1,7 @@ const path = require('path') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const CopyWebpackPlugin = require('copy-webpack-plugin') +const { EnvironmentPlugin } = require('webpack') module.exports = { entry: './javascripts/index.js', @@ -67,6 +68,7 @@ module.exports = { patterns: [ { from: 'node_modules/@primer/css/fonts', to: 'fonts' } ] - }) + }), + new EnvironmentPlugin(['NODE_ENV']) ] }