diff --git a/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md b/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md index c308124b18a5..c8d20b4a6ed2 100644 --- a/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md +++ b/content/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security.md @@ -56,7 +56,9 @@ You can determine how many licenses you'll need for {% data variables.product.pr {% endif %} {% ifversion ghec %} -If you use {% data variables.product.prodname_ghe_cloud %} with an enterprise account and pay with a credit card, you can purchase a {% data variables.product.prodname_GH_advanced_security %} license from your enterprise account settings. For more information, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)." +If you use {% data variables.product.prodname_ghe_cloud %} with an enterprise account and pay with a credit card, you can purchase a {% data variables.product.prodname_GH_advanced_security %} license or start a free trial from your enterprise account settings. For more information, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)" and "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/setting-up-a-trial-of-github-advanced-security)." + +You can not purchase {% data variables.product.prodname_GH_advanced_security %} or start a {% data variables.product.prodname_GH_advanced_security %} trial if you are currently on a {% data variables.product.prodname_ghe_cloud %} trial. If you pay by invoice, contact {% data variables.contact.contact_enterprise_sales %} to discuss licensing {% data variables.product.prodname_GH_advanced_security %} for your enterprise. diff --git a/content/billing/managing-billing-for-github-advanced-security/index.md b/content/billing/managing-billing-for-github-advanced-security/index.md index d1d9db34a2dc..51aba2fca898 100644 --- a/content/billing/managing-billing-for-github-advanced-security/index.md +++ b/content/billing/managing-billing-for-github-advanced-security/index.md @@ -11,6 +11,7 @@ versions: ghes: '*' ghec: '*' children: + - /setting-up-a-trial-of-github-advanced-security - /about-billing-for-github-advanced-security - /signing-up-for-github-advanced-security - /viewing-committer-information-for-github-advanced-security diff --git a/content/billing/managing-billing-for-github-advanced-security/setting-up-a-trial-of-github-advanced-security.md b/content/billing/managing-billing-for-github-advanced-security/setting-up-a-trial-of-github-advanced-security.md new file mode 100644 index 000000000000..074cdb2dde0d --- /dev/null +++ b/content/billing/managing-billing-for-github-advanced-security/setting-up-a-trial-of-github-advanced-security.md @@ -0,0 +1,41 @@ +--- +title: Setting up a trial of GitHub Advanced Security +intro: 'You can evaluate the extra security features that {% data variables.product.prodname_dotcom %} makes available to customers with a {% data variables.product.prodname_GH_advanced_security %} license by setting up a free trial of {% data variables.product.prodname_GH_advanced_security %}.' +product: '{% data reusables.gated-features.ghas %}' +versions: + ghec: '*' +type: how_to +topics: + - Advanced Security + - Enterprise +shortTitle: Set up an Advanced Security trial +--- + +## About trials of {% data variables.product.prodname_GH_advanced_security %} +{% data variables.product.prodname_GH_advanced_security %} provides features that help you improve and maintain the security and quality of code. For more information, see "[AUTOTITLE](/get-started/learning-about-github/about-github-advanced-security)." + + If you use {% data variables.product.prodname_ghe_cloud %} with an enterprise account and pay with a credit card, you can set up a 14-day trial to evaluate the features that come with {% data variables.product.prodname_GH_advanced_security %}, such as code scanning, secret scanning, and dependency review. During the trial, you can add any number of committers and enable {% data variables.product.prodname_GH_advanced_security %} for any number of organizations. + +## Setting up your trial of {% data variables.product.prodname_GH_advanced_security %} + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.settings-tab %} +{% data reusables.enterprise-accounts.license-tab %} +1. To the right of "{% data variables.product.prodname_GH_advanced_security %}", click **Start free trial**. +2. Click **Start trial**. + +## Finishing your trial + +You can finish your trial at any time by purchasing {% data variables.product.prodname_GH_advanced_security %}. If you haven't purchased {% data variables.product.prodname_GH_advanced_security %} by the end of the 14 days, your trial will expire. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.settings-tab %} +{% data reusables.enterprise-accounts.license-tab %} +1. To the right of "{% data variables.product.prodname_GH_advanced_security %} trial", select the **Manage** dropdown menu and click **Purchase**. +{% data reusables.advanced-security.purchase-ghas %} + +## Further reading + +- "[AUTOTITLE](/get-started/learning-about-github/about-github-advanced-security)" +- "[AUTOTITLE](/code-security/adopting-github-advanced-security-at-scale)" +- "[AUTOTITLE](/code-security/getting-started/securing-your-organization)" diff --git a/content/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security.md b/content/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security.md index d2012385a378..3326cd8d4f59 100644 --- a/content/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security.md +++ b/content/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security.md @@ -1,6 +1,6 @@ --- title: Signing up for GitHub Advanced Security -intro: 'You can sign up for {% data variables.product.prodname_GH_advanced_security %} from your enterprise account''s settings to take advantage of extra security features that {% data variables.product.prodname_dotcom %} makes available to customers under a {% data variables.product.prodname_GH_advanced_security %} license.' +intro: "You can sign up for {% data variables.product.prodname_GH_advanced_security %} from your enterprise account's settings to take advantage of extra security features that {% data variables.product.prodname_dotcom %} makes available to customers under a {% data variables.product.prodname_GH_advanced_security %} license." permissions: 'Enterprise owners can sign up for {% data variables.product.prodname_GH_advanced_security %}.' product: '{% data reusables.gated-features.ghas-ghec %}' versions: @@ -18,9 +18,7 @@ shortTitle: Sign up for Advanced Security 1. To the right of "GitHub Advanced Security", click **Buy Advanced Security**. ![Screenshot of the {% data variables.product.prodname_GH_advanced_security %} section of the enterprise licensing screen. The "Buy Advanced Security" button is highlighted with an orange outline.](/assets/images/help/enterprises/ghas-buy-advanced-security-button.png) -2. Under "How many committers do you want to include?", enter the number of committers for which you want to purchase licenses. For more information about committer numbers, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)." -3. Confirm your billing information and payment method. -4. Click **Purchase Advanced Security**. +1. {% data reusables.advanced-security.purchase-ghas %} ## Further reading * [Introduction to adopting {% data variables.product.prodname_GH_advanced_security %} at scale](/code-security/adopting-github-advanced-security-at-scale/introduction-to-adopting-github-advanced-security-at-scale) diff --git a/content/code-security/getting-started/github-security-features.md b/content/code-security/getting-started/github-security-features.md index 45973c333e25..28ba57620fea 100644 --- a/content/code-security/getting-started/github-security-features.md +++ b/content/code-security/getting-started/github-security-features.md @@ -87,6 +87,8 @@ The following {% data variables.product.prodname_GH_advanced_security %} feature {% elsif ghec %} Many {% data variables.product.prodname_GH_advanced_security %} features are available and free of charge for public repositories on {% data variables.product.prodname_dotcom_the_website %}. Organizations within an enterprise that have a {% data variables.product.prodname_GH_advanced_security %} license can use the following features on all their repositories. {% data reusables.advanced-security.more-info-ghas %} +{% data reusables.advanced-security.ghas-trial %} + {% elsif ghes %} {% data variables.product.prodname_GH_advanced_security %} features are available for enterprises with a license for {% data variables.product.prodname_GH_advanced_security %}. The features are restricted to repositories owned by an organization. {% data reusables.advanced-security.more-info-ghas %} diff --git a/content/get-started/learning-about-github/about-github-advanced-security.md b/content/get-started/learning-about-github/about-github-advanced-security.md index 9b1d0d59b2ec..49046dedce33 100644 --- a/content/get-started/learning-about-github/about-github-advanced-security.md +++ b/content/get-started/learning-about-github/about-github-advanced-security.md @@ -20,6 +20,9 @@ shortTitle: GitHub Advanced Security {% ifversion ghes %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% elsif ghec %}For information about buying a license for {% data variables.product.prodname_GH_advanced_security %}, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)."{% elsif ghae %}There is no charge for {% data variables.product.prodname_GH_advanced_security %} on {% data variables.product.prodname_ghe_managed %} during the beta release.{% elsif fpt %}To purchase a {% data variables.product.prodname_GH_advanced_security %} license, you must be using {% data variables.product.prodname_enterprise %}. For information about upgrading to {% data variables.product.prodname_enterprise %} with {% data variables.product.prodname_GH_advanced_security %}, see "[AUTOTITLE](/get-started/learning-about-github/githubs-products)" and "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)."{% endif %} + +{% ifversion ghec %}{% data reusables.advanced-security.ghas-trial %}{% endif %} + {% ifversion ghas-for-azure-devops %} {% note %} diff --git a/data/reusables/advanced-security/ghas-trial.md b/data/reusables/advanced-security/ghas-trial.md new file mode 100644 index 000000000000..9eaea6bc4b82 --- /dev/null +++ b/data/reusables/advanced-security/ghas-trial.md @@ -0,0 +1 @@ +For information about how you can try {% data variables.product.prodname_GH_advanced_security %} for free, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/setting-up-a-trial-of-github-advanced-security)." \ No newline at end of file diff --git a/data/reusables/advanced-security/purchase-ghas.md b/data/reusables/advanced-security/purchase-ghas.md new file mode 100644 index 000000000000..a9cc179698b0 --- /dev/null +++ b/data/reusables/advanced-security/purchase-ghas.md @@ -0,0 +1,3 @@ +1. Under "How many committers do you want to include?", enter the number of committers you want to purchase licenses for. For more information about committer numbers, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)." +1. Confirm your billing information and payment method. +1. Click **Purchase Advanced Security**. \ No newline at end of file diff --git a/data/reusables/gated-features/secret-scanning.md b/data/reusables/gated-features/secret-scanning.md index b1141fe5c989..997b7fe033f5 100644 --- a/data/reusables/gated-features/secret-scanning.md +++ b/data/reusables/gated-features/secret-scanning.md @@ -10,3 +10,5 @@ {% data variables.product.prodname_secret_scanning_caps %} is available for organization-owned repositories in {% data variables.product.product_name %}. This is a {% data variables.product.prodname_GH_advanced_security %} feature (free during the beta release). {%- endif %} {% ifversion not ghae %}{% data reusables.advanced-security.more-info-ghas-secret-scanning %}{% endif %} + +{% ifversion ghec %}{% data reusables.advanced-security.ghas-trial %}{% endif %} diff --git a/data/reusables/repositories/git-lfs.md b/data/reusables/repositories/git-lfs.md index b6cc85c329e2..7341761a5975 100644 --- a/data/reusables/repositories/git-lfs.md +++ b/data/reusables/repositories/git-lfs.md @@ -1 +1 @@ -If you exceed the limit of {% ifversion ghae %}200 MiB{% else %}5 GB{% endif %}, any new files added to the repository will be rejected silently by Git LFS. +If you exceed the per file limit of {% ifversion ghae %}200 MiB{% else %}5 GB{% endif %}, the file will be rejected silently by Git LFS. diff --git a/src/rest/scripts/utils/get-body-params.js b/src/rest/scripts/utils/get-body-params.js index 5050de2ee2d2..1fadfb4f87d6 100644 --- a/src/rest/scripts/utils/get-body-params.js +++ b/src/rest/scripts/utils/get-body-params.js @@ -106,18 +106,7 @@ export async function getBodyParams(schema, topLevel = false) { if (param.items.oneOf.every((object) => object.type === 'object')) { paramType.splice(paramType.indexOf('array'), 1, `array of objects`) param.oneOfObject = true - - for (const oneOfParam of param.items.oneOf) { - const objParam = { - type: 'object', - name: oneOfParam.title, - description: await renderContent(oneOfParam.description), - isRequired: oneOfParam.required, - childParamsGroups: [], - } - objParam.childParamsGroups.push(...(await getBodyParams(oneOfParam, false))) - childParamsGroups.push(objParam) - } + childParamsGroups.push(...(await getOneOfChildParams(param.items))) } } else { const arrayType = param.items.type @@ -129,7 +118,14 @@ export async function getBodyParams(schema, topLevel = false) { } } } else if (paramType && paramType.includes('object')) { - childParamsGroups.push(...(await getBodyParams(param, false))) + if (param && param.oneOf) { + if (param.oneOf.every((object) => object.type === 'object')) { + param.oneOfObject = true + childParamsGroups.push(...(await getOneOfChildParams(param))) + } + } else { + childParamsGroups.push(...(await getBodyParams(param, false))) + } } else if (param && param.oneOf) { // get concatenated description and type const descriptions = [] @@ -150,6 +146,8 @@ export async function getBodyParams(schema, topLevel = false) { descriptions.push({ type: childParam.type, description: childParam.description }) } } + } else { + descriptions.push({ type: param.type, description: param.description }) } } // Occasionally, there is no parent description and the description @@ -205,7 +203,7 @@ async function getTransformedParam(param, paramType, props) { if (required && required.includes(paramKey)) { paramDecorated.isRequired = true } - if (childParamsGroups && childParamsGroups.length > 0) { + if (childParamsGroups && childParamsGroups.length > 0 && !param.oneOfObject) { // Since the allOf properties can have multiple duplicate properties we want to get rid of the duplicates with the same name, but keep the // the one that has isRequired set to true. const mergedChildParamsGroups = Array.from( @@ -221,6 +219,8 @@ async function getTransformedParam(param, paramType, props) { ) paramDecorated.childParamsGroups = mergedChildParamsGroups + } else if (childParamsGroups.length > 0) { + paramDecorated.childParamsGroups = childParamsGroups } if (param.enum) { paramDecorated.enum = param.enum @@ -236,3 +236,19 @@ async function getTransformedParam(param, paramType, props) { } return paramDecorated } + +async function getOneOfChildParams(param) { + const childParamsGroups = [] + for (const oneOfParam of param.oneOf) { + const objParam = { + type: 'object', + name: oneOfParam.title, + description: await renderContent(oneOfParam.description), + isRequired: oneOfParam.required, + childParamsGroups: [], + } + objParam.childParamsGroups.push(...(await getBodyParams(oneOfParam, false))) + childParamsGroups.push(objParam) + } + return childParamsGroups +}