Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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)"
Original file line number Diff line number Diff line change
@@ -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:
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}

Expand Down
1 change: 1 addition & 0 deletions data/reusables/advanced-security/ghas-trial.md
Original file line number Diff line number Diff line change
@@ -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)."
3 changes: 3 additions & 0 deletions data/reusables/advanced-security/purchase-ghas.md
Original file line number Diff line number Diff line change
@@ -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**.
2 changes: 2 additions & 0 deletions data/reusables/gated-features/secret-scanning.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
2 changes: 1 addition & 1 deletion data/reusables/repositories/git-lfs.md
Original file line number Diff line number Diff line change
@@ -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.
44 changes: 30 additions & 14 deletions src/rest/scripts/utils/get-body-params.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 = []
Expand All @@ -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
Expand Down Expand Up @@ -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(
Expand All @@ -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
Expand All @@ -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
}