From 6474c854be775be9b9452c77b17c0ac333ba73a5 Mon Sep 17 00:00:00 2001 From: Bob <144845785+justb0b@users.noreply.github.com> Date: Thu, 1 Aug 2024 00:11:37 -0700 Subject: [PATCH 01/24] Update github-marketplace-terms-of-service.md (#51870) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../github-terms/github-marketplace-terms-of-service.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/site-policy/github-terms/github-marketplace-terms-of-service.md b/content/site-policy/github-terms/github-marketplace-terms-of-service.md index cebeede003..2a2675cbf6 100644 --- a/content/site-policy/github-terms/github-marketplace-terms-of-service.md +++ b/content/site-policy/github-terms/github-marketplace-terms-of-service.md @@ -10,11 +10,11 @@ topics: - Legal --- -Welcome to GitHub Marketplace ("Marketplace")! We're happy you're here. Please read these Terms of Service ("Marketplace Terms") carefully before accessing or using GitHub Marketplace. GitHub Marketplace is a platform that allows you to select developer apps or actions (for free or for a charge) that can be used with your GitHub.com account ("Developer Products"). Although offered by GitHub, Inc. ("GitHub", "we", "us"), Developer Products may be developed and maintained by either GitHub or by third-party software providers. Your selection or use of Developer Products is subject to these Marketplace Terms and any applicable fees, and may require you to agree to additional terms as provided by the third party licensor of that Developer Product (the "Product Provider"). +Welcome to GitHub Marketplace ("Marketplace")! We're happy you're here. Please read these Terms of Service ("Marketplace Terms") carefully before accessing or using GitHub Marketplace. GitHub Marketplace is a platform that allows you to select developer apps or actions (for free or for a charge) that can be used with your GitHub.com account ("Developer Products"). Although offered by GitHub, Inc. ("GitHub", "we", "us"), Developer Products may be developed and maintained by either GitHub or by third-party software providers. Your selection or use of Developer Products is subject to these Marketplace Terms and any applicable fees, and may require you to agree to additional terms as provided by the third party licensor of that Developer Product (the "Product Provider"). Your use of GitHub Models is subject to the [GitHub Terms for Additional Products and Features](/site-policy/github-terms/github-terms-for-additional-products-and-features). By using Marketplace, you are agreeing to be bound by these Marketplace Terms. -Effective Date: November 20, 2020 +Effective Date: August 1, 2024 ## A. GitHub.com's Terms of Service From 193aea28645998137120a182003e442a3b5e4222 Mon Sep 17 00:00:00 2001 From: mc <42146119+mchammer01@users.noreply.github.com> Date: Thu, 1 Aug 2024 08:25:56 +0100 Subject: [PATCH 02/24] Revert "Update github-marketplace-terms-of-service.md" (#51872) --- .../github-terms/github-marketplace-terms-of-service.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/site-policy/github-terms/github-marketplace-terms-of-service.md b/content/site-policy/github-terms/github-marketplace-terms-of-service.md index 2a2675cbf6..cebeede003 100644 --- a/content/site-policy/github-terms/github-marketplace-terms-of-service.md +++ b/content/site-policy/github-terms/github-marketplace-terms-of-service.md @@ -10,11 +10,11 @@ topics: - Legal --- -Welcome to GitHub Marketplace ("Marketplace")! We're happy you're here. Please read these Terms of Service ("Marketplace Terms") carefully before accessing or using GitHub Marketplace. GitHub Marketplace is a platform that allows you to select developer apps or actions (for free or for a charge) that can be used with your GitHub.com account ("Developer Products"). Although offered by GitHub, Inc. ("GitHub", "we", "us"), Developer Products may be developed and maintained by either GitHub or by third-party software providers. Your selection or use of Developer Products is subject to these Marketplace Terms and any applicable fees, and may require you to agree to additional terms as provided by the third party licensor of that Developer Product (the "Product Provider"). Your use of GitHub Models is subject to the [GitHub Terms for Additional Products and Features](/site-policy/github-terms/github-terms-for-additional-products-and-features). +Welcome to GitHub Marketplace ("Marketplace")! We're happy you're here. Please read these Terms of Service ("Marketplace Terms") carefully before accessing or using GitHub Marketplace. GitHub Marketplace is a platform that allows you to select developer apps or actions (for free or for a charge) that can be used with your GitHub.com account ("Developer Products"). Although offered by GitHub, Inc. ("GitHub", "we", "us"), Developer Products may be developed and maintained by either GitHub or by third-party software providers. Your selection or use of Developer Products is subject to these Marketplace Terms and any applicable fees, and may require you to agree to additional terms as provided by the third party licensor of that Developer Product (the "Product Provider"). By using Marketplace, you are agreeing to be bound by these Marketplace Terms. -Effective Date: August 1, 2024 +Effective Date: November 20, 2020 ## A. GitHub.com's Terms of Service From 4ec0754ad1625d9ab678ad8bdb5b1610cbd5c0a4 Mon Sep 17 00:00:00 2001 From: Andre Kolodochka <59625655+andrekolodochka@users.noreply.github.com> Date: Thu, 1 Aug 2024 18:11:18 +1000 Subject: [PATCH 03/24] Repository notifications bypass verified domain restrictions (#51853) Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- ...out-email-notifications-for-pushes-to-your-repository.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository.md b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository.md index 574a371cc1..cbda019b92 100644 --- a/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository.md +++ b/content/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/about-email-notifications-for-pushes-to-your-repository.md @@ -31,6 +31,12 @@ Each email notification for a push to a repository lists the new commits and lin You can filter email notifications you receive for pushes to a repository. For more information, see "[AUTOTITLE](/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications#filtering-email-notifications)." +{% ifversion ghec %} + +>[!NOTE] Notifications for pushes to your repository will bypass restrictions for email notifications to verified domains configured in your enterprise account or organisation. + +{% endif %} + ## Enabling email notifications for pushes to your repository {% data reusables.repositories.navigate-to-repo %} From 9a56d7ff66f82a24a6030830a2ddee2ae30e6826 Mon Sep 17 00:00:00 2001 From: vaindil Date: Thu, 1 Aug 2024 06:59:10 -0400 Subject: [PATCH 04/24] Clarify wiki file limit (#51858) Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../documenting-your-project-with-wikis/about-wikis.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/communities/documenting-your-project-with-wikis/about-wikis.md b/content/communities/documenting-your-project-with-wikis/about-wikis.md index 59a1766da1..75ce6c1c1d 100644 --- a/content/communities/documenting-your-project-with-wikis/about-wikis.md +++ b/content/communities/documenting-your-project-with-wikis/about-wikis.md @@ -29,14 +29,14 @@ You can edit wikis directly on {% data variables.product.product_name %}, or you **Note:** Search engines will only index wikis with 500 or more stars that you configure to prevent public editing. For more information, see "[AUTOTITLE](/communities/documenting-your-project-with-wikis/changing-access-permissions-for-wikis)." -If you need search engines to index your content, you can use [{% data variables.product.prodname_pages %}](/pages) in a public repository. +If you need search engines to index your content, you can use {% data variables.product.prodname_pages %} in a public repository. For more information, see "[{% data variables.product.prodname_pages %}](/pages)." {% endnote %} {% endif %} {% note %} -**Note:** For performance reasons, wikis have a soft limit of 5,000 pages. If you exceed this limit, some pages may be inaccessible to users. +**Note:** For performance reasons, wikis have a soft limit of 5,000 total files, regardless of file type. If you exceed this limit, some pages may be inaccessible to users. If you need a larger wiki, we recommend using {% data variables.product.prodname_pages %}. For more information, see "[{% data variables.product.prodname_pages %}](/pages)." {% endnote %} From 4c046d1c2345f704d17af636ae0b3fcd25c2c19c Mon Sep 17 00:00:00 2001 From: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Date: Thu, 1 Aug 2024 11:59:40 +0100 Subject: [PATCH 05/24] Update some versioning for 3.14 (#51833) --- .../events-that-trigger-workflows.md | 2 +- data/reusables/apps/generate-installation-access-token.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md b/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md index 0b6e8c8277..43aabbe28f 100644 --- a/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md +++ b/content/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows.md @@ -935,7 +935,7 @@ jobs: {% note %} -**Note**: Events will not be created if more than 5000 branches are pushed at once. Events will not be created for tags when more than three tags are pushed at once. +**Note**: {% ifversion fpt or ghec or ghes > 3.13 %}Events will not be created if more than 5,000 branches are pushed at once. {% endif %}Events will not be created for tags when more than three tags are pushed at once. {% endnote %} diff --git a/data/reusables/apps/generate-installation-access-token.md b/data/reusables/apps/generate-installation-access-token.md index 9c0ebdde1a..5f0780b920 100644 --- a/data/reusables/apps/generate-installation-access-token.md +++ b/data/reusables/apps/generate-installation-access-token.md @@ -19,11 +19,11 @@ --header "X-GitHub-Api-Version: {{ allVersions[currentVersion].latestApiVersion }}" ``` - Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to. You can list up to 500 repositories. + Optionally, you can use the `repositories` or `repository_ids` body parameters to specify individual repositories that the installation access token can access. If you don't use `repositories` or `repository_ids` to grant access to specific repositories, the installation access token will have access to all repositories that the installation was granted access to. The installation access token cannot be granted access to repositories that the installation was not granted access to.{% ifversion fpt or ghec or ghes > 3.13 %} You can list up to 500 repositories.{% endif %} Optionally, use the `permissions` body parameter to specify the permissions that the installation access token should have. If `permissions` is not specified, the installation access token will have all of the permissions that were granted to the app. The installation access token cannot be granted permissions that the app was not granted. - When using the `permissions` parameters to reduce the access of the token, the complexity of the token is increased due to the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, you will get an error message that indicates the maximum number of repositories that can be supported. In this case, you should request fewer permissions with the `permissions` parameter, use the `repositories` or `repository_ids` parameter to request fewer repositories, or install the app on `all` repositories in your organization. + {% ifversion fpt or ghec or ghes > 3.13 %}When using the `permissions` parameters to reduce the access of the token, the complexity of the token is increased due to the number of permissions in the request and the number of repositories the token will have access to. If the complexity is too large, you will get an error message that indicates the maximum number of repositories that can be supported. In this case, you should request fewer permissions with the `permissions` parameter, use the `repositories` or `repository_ids` parameter to request fewer repositories, or install the app on `all` repositories in your organization.{% endif %} The response will include an installation access token, the time that the token expires, the permissions that the token has, and the repositories that the token can access. The installation access token will expire after 1 hour. From 657676ab30d993beb4391ae21f3f6c7d3cbf97a3 Mon Sep 17 00:00:00 2001 From: Laura Coursen Date: Thu, 1 Aug 2024 14:03:07 +0100 Subject: [PATCH 06/24] Update GHES versioning for a few audit log features (#51770) --- data/features/audit-log-streaming-health-check.yml | 2 +- data/features/oauth_account_picker.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/features/audit-log-streaming-health-check.yml b/data/features/audit-log-streaming-health-check.yml index 615aefafbc..fae55c1bae 100644 --- a/data/features/audit-log-streaming-health-check.yml +++ b/data/features/audit-log-streaming-health-check.yml @@ -2,4 +2,4 @@ # Documentation for audit log streaming health check versions: ghec: '*' - ghes: '>= 3.13' + ghes: '>= 3.14' diff --git a/data/features/oauth_account_picker.yml b/data/features/oauth_account_picker.yml index cad25e78fc..c3aa552212 100644 --- a/data/features/oauth_account_picker.yml +++ b/data/features/oauth_account_picker.yml @@ -3,4 +3,4 @@ versions: fpt: '*' ghec: '*' - ghes: '>=3.15' + ghes: '>=3.14' From aa834059d203755776d22ca51b7fdbd85c37430c Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Thu, 1 Aug 2024 15:10:27 +0200 Subject: [PATCH 07/24] GA organization- and enterprise-level security overview dashboard and enablement trends (#51652) Co-authored-by: Felicity Chapman Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> --- ...ickstart-for-securing-your-organization.md | 2 +- .../about-security-overview.md | 4 +-- .../assessing-adoption-code-security.md | 36 ++++++++----------- .../viewing-security-insights.md | 30 +++++----------- .../security-overview/alert-differences.md | 6 +--- .../beta-overview-dashboard.md | 10 +----- 6 files changed, 27 insertions(+), 61 deletions(-) diff --git a/content/code-security/getting-started/quickstart-for-securing-your-organization.md b/content/code-security/getting-started/quickstart-for-securing-your-organization.md index 2ae6b80fff..9d88cc6c1e 100644 --- a/content/code-security/getting-started/quickstart-for-securing-your-organization.md +++ b/content/code-security/getting-started/quickstart-for-securing-your-organization.md @@ -123,7 +123,7 @@ When you have enabled a feature, you should communicate with repository administ You can use security overview to see which teams and repositories are affected by security alerts, with a breakdown of alerts by severity. For more information, see "[AUTOTITLE](/code-security/security-overview/assessing-code-security-risk)." {% ifversion security-overview-dashboard %} -Security overview also has a dashboard (beta) where you can explore high-level trends and metrics to gain insight into your organization's security landscape. For more information, see "[AUTOTITLE](/code-security/security-overview/viewing-security-insights)." +Security overview also has a dashboard where you can explore high-level trends and metrics to gain insight into your organization's security landscape. For more information, see "[AUTOTITLE](/code-security/security-overview/viewing-security-insights)." {% endif %} You can use various tools to monitor the actions that your organization's members are taking in response to security alerts. For more information, see "[AUTOTITLE](/code-security/getting-started/auditing-security-alerts)". diff --git a/content/code-security/security-overview/about-security-overview.md b/content/code-security/security-overview/about-security-overview.md index 12b3aeb236..d4665a415b 100644 --- a/content/code-security/security-overview/about-security-overview.md +++ b/content/code-security/security-overview/about-security-overview.md @@ -60,7 +60,7 @@ There are also dedicated views for each type of security alert that you can use ## About security overview for organizations -The application security team at your company can use the different views for both broad and specific analyses of your organization's security status. {% ifversion security-overview-org-risk-coverage %} For example, {% ifversion security-overview-dashboard %}the team can use the "Overview" dashboard view (beta) to track your organization's security landscape and progression{% else %}the team can use the "Coverage" view to monitor the adoption of features across your organization or by a specific team as you roll out {% data variables.product.prodname_GH_advanced_security %}, or use the "Risk" view to identify repositories with more than five open {% data variables.secret-scanning.alerts %}{% endif %}. {% else %}For example, they can use the overview page to monitor adoption of features by your organization or by a specific team as you roll out {% data variables.product.prodname_GH_advanced_security %} to your enterprise, or to review all alerts of a specific type and severity level across all repositories in your organization.{% endif %} {% ifversion code-security-multi-repo-enablement %}{% ifversion security-configurations-beta-and-pre-beta %}You can also use security overview to find a set of repositories and enable or disable security features for them all at the same time. For more information, see "[AUTOTITLE](/code-security/security-overview/enabling-security-features-for-multiple-repositories)."{% endif %}{% endif %} +The application security team at your company can use the different views for both broad and specific analyses of your organization's security status. {% ifversion security-overview-org-risk-coverage %} For example, {% ifversion security-overview-dashboard %}the team can use the "Overview" dashboard view to track your organization's security landscape and progression{% else %}the team can use the "Coverage" view to monitor the adoption of features across your organization or by a specific team as you roll out {% data variables.product.prodname_GH_advanced_security %}, or use the "Risk" view to identify repositories with more than five open {% data variables.secret-scanning.alerts %}{% endif %}. {% else %}For example, they can use the overview page to monitor adoption of features by your organization or by a specific team as you roll out {% data variables.product.prodname_GH_advanced_security %} to your enterprise, or to review all alerts of a specific type and severity level across all repositories in your organization.{% endif %} {% ifversion code-security-multi-repo-enablement %}{% ifversion security-configurations-beta-and-pre-beta %}You can also use security overview to find a set of repositories and enable or disable security features for them all at the same time. For more information, see "[AUTOTITLE](/code-security/security-overview/enabling-security-features-for-multiple-repositories)."{% endif %}{% endif %} You can find security overview on the **Security** tab for any organization that's owned by an enterprise. Each view shows a summary of the data that you have access to. As you add filters, all data and metrics across the view change to reflect the repositories or alerts that you've selected. For information about permissions, see "[Permission to view data in security overview](#permission-to-view-data-in-security-overview)." @@ -133,7 +133,7 @@ If you are an organization or team member, you can view security overview for th {% ifversion security-overview-dashboard %} {% rowheaders %} -| Organization or team member with | Overview dashboard (beta) view | Risk and alerts views | Coverage view | +| Organization or team member with | Overview dashboard view | Risk and alerts views | Coverage view | |--------------------|-------------|---------------------|---------| | `admin` access for one or more repositories | View data for those repositories | View data for those repositories | View data for those repositories{% ifversion security-configurations-beta-and-pre-beta %}, and enable and disable security features{% endif %} | | `write` access for one or more repositories | View {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} data for those repositories | View {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_dependabot %} data for those repositories | No access | diff --git a/content/code-security/security-overview/assessing-adoption-code-security.md b/content/code-security/security-overview/assessing-adoption-code-security.md index c60bc24903..61891c2ccf 100644 --- a/content/code-security/security-overview/assessing-adoption-code-security.md +++ b/content/code-security/security-overview/assessing-adoption-code-security.md @@ -24,11 +24,7 @@ You can use security overview to see which repositories and teams have already e ![Screenshot of the header section of the "Security coverage" view on the "Security" tab for an organization. The options for filtering are outlined in dark orange, including "enabled" and "not enabled" links, "Teams" selector, and search field.](/assets/images/help/security-overview/security-coverage-view-summary.png) -{% note %} - -**Note:** "Pull request alerts" are reported as enabled only when {% data variables.product.prodname_code_scanning %} has analyzed at least one pull request since alerts were enabled for the repository. - -{% endnote %} +>[!NOTE] "Pull request alerts" are reported as enabled only when {% data variables.product.prodname_code_scanning %} has analyzed at least one pull request since alerts were enabled for the repository. {% ifversion security-overview-export-data %} You can download a CSV file of the data displayed on the "Security coverage" page. This data file can be used for efforts like security research and in-depth data analysis, and can integrate easily with external datasets. For more information, see "[AUTOTITLE](/code-security/security-overview/exporting-data-from-the-risk-and-coverage-pages)." @@ -36,7 +32,7 @@ You can download a CSV file of the data displayed on the "Security coverage" pag {% ifversion security-overview-tool-adoption %} -You can use the "Enablement trends" (beta) view to see enablement status and enablement status trends over time for {% data variables.product.prodname_dependabot %}, {% data variables.product.prodname_code_scanning %}, or {% data variables.product.prodname_secret_scanning %} for repositories in an organization{% ifversion security-overview-enterprise-enablement-report %}, or across organizations in an enterprise{% endif %}. For each of these features, you can view a graph visualizing the percentage of repositories that have the feature enabled, as well as a detailed table with enablement percentages for different points in time. For more information, see "[Viewing enablement trends for an organization (beta)](#viewing-enablement-trends-for-an-organization-beta){% ifversion security-overview-enterprise-enablement-report %}" and "[Viewing enablement trends for an enterprise (beta)](#viewing-enablement-trends-for-an-enterprise-beta){% endif %}." +You can use the "Enablement trends" view to see enablement status and enablement status trends over time for {% data variables.product.prodname_dependabot %}, {% data variables.product.prodname_code_scanning %}, or {% data variables.product.prodname_secret_scanning %} for repositories in an organization{% ifversion security-overview-enterprise-enablement-report %}, or across organizations in an enterprise{% endif %}. For each of these features, you can view a graph visualizing the percentage of repositories that have the feature enabled, as well as a detailed table with enablement percentages for different points in time. For more information, see "[Viewing enablement trends for an organization](#viewing-enablement-trends-for-an-organization){% ifversion security-overview-enterprise-enablement-report %}" and "[Viewing enablement trends for an enterprise](#viewing-enablement-trends-for-an-enterprise){% endif %}." {% endif %} @@ -88,13 +84,13 @@ In the enterprise-level view, you can view data about the enablement of features {% ifversion security-overview-tool-adoption %} -## Viewing enablement trends for an organization (beta) +## Viewing enablement trends for an organization -{% note %} +{% ifversion ghes < 3.15 %} -**Note:** The "Enablement trends" view is currently in beta and is subject to change. +> [!NOTE] The "Enablement trends" view is currently in beta and is subject to change. -{% endnote %} +{% endif %} You can view data to assess the enablement status and enablement status trends of code security features for an organization. @@ -104,29 +100,25 @@ You can view data to assess the enablement status and enablement status trends o 1. Click on one of the tabs for "{% data variables.product.prodname_dependabot %}", "{% data variables.product.prodname_code_scanning_caps %}", or "{% data variables.product.prodname_secret_scanning_caps %}" to view enablement trends and the percentage of repositories in your organization with that feature enabled. This data is displayed as a graph and a detailed table. 1. Optionally, use the options at the top of the "Enablement trends" view page to filter the group of repositories you want to see enablement trends for. * Use the date picker to set the time range that you want to view enablement trends for. - * Click in the search box to add further filters on the enablement trends displayed. The filters you can apply are the same as those for the "Overview" dashboard (beta) view. For more information, see "[AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview)." + * Click in the search box to add further filters on the enablement trends displayed. The filters you can apply are the same as those for the "Overview" dashboard view. For more information, see "[AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview)." + + ![Screenshot of the "Enablement trends" view for an organization, showing Dependabot status and trends over 30 days, with a filter applied.](/assets/images/help/security-overview/security-overview-enablement-trends.png) - ![Screenshot of the beta "Enablement trends" view for an organization, showing Dependabot status and trends over 30 days, with a filter applied.](/assets/images/help/security-overview/security-overview-enablement-trends.png) - {% endif %} {% ifversion security-overview-enterprise-enablement-report %} -## Viewing enablement trends for an enterprise (beta) +## Viewing enablement trends for an enterprise -{% note %} +{% ifversion ghes < 3.15 %} -**Note:** The "Enablement trends" view is currently in beta and is subject to change. +> [!NOTE] The "Enablement trends" view is currently in beta and is subject to change. -{% endnote %} +{% endif %} You can view data to assess the enablement status and enablement status trends of code security features across organizations in an enterprise. -{% tip %} - -**Tip:** You can use the `owner:` filter in the search field to filter the data by organization. For more information, see "[AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview)." - -{% endtip %} +>[!TIP] You can use the `owner:` filter in the search field to filter the data by organization. For more information, see "[AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview)." {% data reusables.enterprise-accounts.access-enterprise-on-dotcom %} {% data reusables.code-scanning.click-code-security-enterprise %} diff --git a/content/code-security/security-overview/viewing-security-insights.md b/content/code-security/security-overview/viewing-security-insights.md index 4ba4777e0a..e957a3e3e7 100644 --- a/content/code-security/security-overview/viewing-security-insights.md +++ b/content/code-security/security-overview/viewing-security-insights.md @@ -17,8 +17,12 @@ redirect_from: allowTitleToDifferFromFilename: true --- +{% ifversion ghes < 3.14 %} + {% data reusables.security-overview.beta-overview-dashboard %} +{% endif %} + ## {% ifversion security-overview-dashboard-enterprise %}About security insights{% else %} About organization-level security insights{% endif %} The overview page in security overview is a consolidated dashboard of insights about your organization{% ifversion security-overview-dashboard-enterprise %} or enterprise{% endif %}'s security landscape and progress. You can use the dashboard to monitor the health of your application security program, collaborate with engineering teams, and gather data for benchmarking purposes. @@ -33,7 +37,7 @@ You can view a variety of metrics about the security alerts in your organization * The "Remediation" section shows information about how alerts are resolved and alert activity over time. * The "Impact analysis" section shows the repositories that pose the highest potential security risk in your organization{% ifversion security-overview-dashboard-enterprise %} or enterprise{% endif %}. -You can filter the overview dashboard by selecting a specific time period, and apply additional filters to focus on narrower areas of interest. All data and metrics across the dashboard will change as you apply filters. {% ifversion security-overview-additional-tools %}By default, the dashboard displays all alerts from {% data variables.product.prodname_dotcom %} tools, but you can use the tool filter to show alerts from a specific tool ({% data variables.product.prodname_secret_scanning %}, {% data variables.product.prodname_dependabot %}, {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_codeql %}, a specific third-party tool) or all third-party {% data variables.product.prodname_code_scanning %} tools. This feature is in beta, and is subject to change.{% endif %} For more information, see "[AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview)." +You can filter the overview dashboard by selecting a specific time period, and apply additional filters to focus on narrower areas of interest. All data and metrics across the dashboard will change as you apply filters. {% ifversion security-overview-additional-tools %}By default, the dashboard displays all alerts from {% data variables.product.prodname_dotcom %} tools, but you can use the tool filter to show alerts from a specific tool ({% data variables.product.prodname_secret_scanning %}, {% data variables.product.prodname_dependabot %}, {% data variables.product.prodname_code_scanning %} using {% data variables.product.prodname_codeql %}, a specific third-party tool) or all third-party {% data variables.product.prodname_code_scanning %} tools.{% endif %} For more information, see "[AUTOTITLE](/code-security/security-overview/filtering-alerts-in-security-overview)." {% ifversion security-overview-dashboard-enterprise %}Enterprise members can access the overview page for organizations in their enterprise. {% endif %}The metrics you see will depend on your role and repository permissions. For more information, see "[AUTOTITLE](/code-security/security-overview/about-security-overview#permission-to-view-data-in-security-overview)." @@ -78,9 +82,7 @@ Keep in mind that the overview page tracks changes over time for security alert {% endif %} {% ifversion security-overview-additional-tools %} - -Some metrics in the security overview dashboard include a trend indicator, which shows the percentage gain or loss for the chosen time period relative to previous period. For example, when you select a week with 10 alerts, if the previous week had 20 alerts, the trend indicator reports that the metric has dropped by 50%. If the average age of the open alerts is 15 days, and for the previous period it was 5 days, the trend indicator reports that the metric has risen by 200%. This feature is in beta, and is subject to change. - +Some metrics in the security overview dashboard include a trend indicator, which shows the percentage gain or loss for the chosen time period relative to previous period. For example, when you select a week with 10 alerts, if the previous week had 20 alerts, the trend indicator reports that the metric has dropped by 50%. If the average age of the open alerts is 15 days, and for the previous period it was 5 days, the trend indicator reports that the metric has risen by 200%. {% endif %} >[!NOTE] @@ -104,12 +106,6 @@ The age of each open alert is calculated by subtracting the date the alert was c ### Reopened alerts -{% note %} - -**Note:** The "Reopened alerts" metric is in beta, and is subject to change. - -{% endnote %} - The "Reopened alerts" metric is the total open alerts that were reopened during the chosen time period. Only alerts that are open at the end of the reporting period are reported. This includes: * Alerts that were closed as of the day before the chosen time period, and that remain open at the end of the period. @@ -124,7 +120,7 @@ The "Secrets bypassed / blocked" metric shows the ratio of secrets bypassed to t You can also see how many secrets were successfully blocked, which is calculated by subtracting the number of secrets bypassed from the total number of secrets blocked by push protection. A secret is considered to have been successfully blocked when it has been corrected, and not committed to the repository. -{% ifversion security-overview-additional-tools %}You can click **View details** to view the {% data variables.product.prodname_secret_scanning %} report with the same filters and time period selected. This feature is in beta, and is subject to change.{% endif %} +{% ifversion security-overview-additional-tools %}You can click **View details** to view the {% data variables.product.prodname_secret_scanning %} report with the same filters and time period selected.{% endif %} For more information on secret scanning push protection metrics, see "[AUTOTITLE](/code-security/security-overview/viewing-metrics-for-secret-scanning-push-protection)." @@ -140,11 +136,7 @@ The "Net resolve rate" metric is the rate at which alerts are being closed. This The rate is calculated by dividing the number of alerts that were closed and remained closed during the chosen time period, by the number of alerts created during the time period. -{% note %} - -**Note:** The net resolve rate takes into account any new and any closed alerts during the chosen time period. This means that the set of new alerts and set of closed alerts used for the calculation do not necessarily correspond, since they may represent different populations of alerts. - -{% endnote %} +>[!NOTE] The net resolve rate takes into account any new and any closed alerts during the chosen time period. This means that the set of new alerts and set of closed alerts used for the calculation do not necessarily correspond, since they may represent different populations of alerts. Alerts that are reopened and re-closed during the chosen time period are ignored. @@ -170,12 +162,6 @@ Green bars represent the number of new alerts created during the segmented time ### Impact analysis table -{% note %} - -**Note:** The "Impact analysis" table is in beta, and is subject to change. - -{% endnote %} - The impact analysis table has separate tabs showing data for: "Repositories" and "Advisories". * The "Repositories" tab shows the top 10 repositories with the most open alerts at the end of the chosen time period, ranked by the total number of open alerts. For each repository, the total number of open alerts is shown alongside a breakdown by severity. diff --git a/data/reusables/security-overview/alert-differences.md b/data/reusables/security-overview/alert-differences.md index 6598761935..97d4b2ce75 100644 --- a/data/reusables/security-overview/alert-differences.md +++ b/data/reusables/security-overview/alert-differences.md @@ -1,9 +1,5 @@ {% ifversion secret-scanning-non-provider-patterns %} -{% note %} - -**Note:** The summary views ({% ifversion security-overview-dashboard %}"Overview", {% endif %}"Coverage" and "Risk") show data only for high confidence alerts. {% ifversion security-overview-additional-tools %}{% data variables.product.prodname_secret_scanning_caps %} {% else %}{% data variables.product.prodname_code_scanning_caps %} alerts from third-party tools, and {% data variables.product.prodname_secret_scanning %}{% endif %} alerts for ignored directories and non-provider alerts are all omitted from these views. Consequently, the individual alert views may include a larger number of open and closed alerts. - -{% endnote %} +>[!NOTE] The summary views ({% ifversion security-overview-dashboard %}"Overview", {% endif %}"Coverage" and "Risk") show data only for high confidence alerts. {% ifversion security-overview-additional-tools %}{% data variables.product.prodname_secret_scanning_caps %} {% else %}{% data variables.product.prodname_code_scanning_caps %} alerts from third-party tools, and {% data variables.product.prodname_secret_scanning %}{% endif %} alerts for ignored directories and non-provider alerts are all omitted from these views. Consequently, the individual alert views may include a larger number of open and closed alerts. {% endif %} diff --git a/data/reusables/security-overview/beta-overview-dashboard.md b/data/reusables/security-overview/beta-overview-dashboard.md index 7d29a2dd10..0083ec4703 100644 --- a/data/reusables/security-overview/beta-overview-dashboard.md +++ b/data/reusables/security-overview/beta-overview-dashboard.md @@ -1,9 +1 @@ -{% note %} - -{% ifversion security-overview-dashboard-enterprise %} -**Note:** The security overview dashboard is currently in beta and subject to change. -{% else %} -**Note:** The security overview dashboard is available at the organization level. The dashboard is currently in beta and subject to change. -{% endif %} - -{% endnote %} +> [!NOTE] The security overview dashboard is currently in beta and subject to change. From 89f5ce817f123e7d8a8925f248e615ecbe16e568 Mon Sep 17 00:00:00 2001 From: Laura Coursen Date: Thu, 1 Aug 2024 15:02:40 +0100 Subject: [PATCH 08/24] Enterprise bug fix hour for the week of July 29, 2024 (#51873) --- ...ic-to-your-enterprise-with-an-ip-allow-list.md | 4 ++-- ...ting-audit-log-activity-for-your-enterprise.md | 9 +++++---- ...streaming-the-audit-log-for-your-enterprise.md | 7 +++++-- ...-allowed-ip-addresses-for-your-organization.md | 2 ++ .../ip-allow-list-copilot-exception.md | 1 - .../ip-allow-lists-example-and-restrictions.md | 14 ++------------ ...p-allow-lists-which-resources-are-protected.md | 15 +++++++++++++++ 7 files changed, 31 insertions(+), 21 deletions(-) delete mode 100644 data/reusables/identity-and-permissions/ip-allow-list-copilot-exception.md create mode 100644 data/reusables/identity-and-permissions/ip-allow-lists-which-resources-are-protected.md diff --git a/content/admin/configuring-settings/hardening-security-for-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list.md b/content/admin/configuring-settings/hardening-security-for-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list.md index e136a84c8f..a08607b8dc 100644 --- a/content/admin/configuring-settings/hardening-security-for-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list.md +++ b/content/admin/configuring-settings/hardening-security-for-your-enterprise/restricting-network-traffic-to-your-enterprise-with-an-ip-allow-list.md @@ -25,12 +25,12 @@ By default, authorized users can access your enterprise's resources from any IP {% ifversion ghec %} -{% data reusables.identity-and-permissions.ip-allow-list-copilot-exception %} - If your enterprise uses {% data variables.product.prodname_emus %} with Microsoft Entra ID (previously known as Azure AD) and OIDC, you can choose whether to use {% data variables.product.company_short %}'s IP allow list feature or to use the allow list restrictions for your identity provider (IdP). If your enterprise does not use {% data variables.product.prodname_emus %} with Azure and OIDC, you can use {% data variables.product.company_short %}'s allow list feature. {% endif %} +{% data reusables.identity-and-permissions.ip-allow-lists-which-resources-are-protected %} + {% ifversion ghec %} ## About {% data variables.product.company_short %}'s IP allow list diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise.md index 5e1e2583d0..4f74b7337c 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/exporting-audit-log-activity-for-your-enterprise.md @@ -2,7 +2,7 @@ title: Exporting audit log activity for your enterprise intro: You can export audit and Git events data to a file for offline analysis. shortTitle: Export audit logs -permissions: Enterprise owners can export the audit log. +permissions: Enterprise owners versions: ghec: '*' type: tutorial @@ -11,9 +11,10 @@ topics: - Enterprise - Logging --- + ## About exports of audit log and Git events data -You can export the audit log by downloading a JSON or CSV file from your enterprise on {% data variables.product.product_name %}. When you export audit log events, you can query by one or more of these supported qualifiers to filter for specific log events to export. For more information about search qualifiers, see "[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise#search-based-on-the-action-performed)." +You can export the audit log by downloading a JSON or CSV file from your enterprise on {% data variables.product.product_name %}. When you export audit log events, you can query by one or more of these supported qualifiers to filter for specific log events to export. See "[AUTOTITLE](/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/searching-the-audit-log-for-your-enterprise#search-based-on-the-action-performed)." The audit log lists events triggered by activities that affect your enterprise within the last 180 days. {% data reusables.audit_log.git-events-retention-period %} @@ -35,14 +36,14 @@ As an alternative to exporting log events, you can use the API to retrieve audit ## Exporting Git events data -You can also export Git events data by date range. +You can also export Git events data by date range. The data is exported as a compressed, newline-delimited JSON file. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.audit-log-tab %} 1. Select the {% octicon "download" aria-hidden="true" %} **Export Git Events** dropdown menu and choose a date range to export log events for. 1. Click {% octicon "file-zip" aria-hidden="true" %} **Download Results**. -1. The data is exported as a compressed JSON file. To extract the JSON data, uncompress the file using an archive utility client or command. For example: +1. To extract the JSON data, uncompress the file using an archive utility client or command. For example: ```shell gunzip export-avocado-corp-1642896556.json.gz diff --git a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md index 106db4485c..d726f84517 100644 --- a/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md +++ b/content/admin/monitoring-activity-in-your-enterprise/reviewing-audit-logs-for-your-enterprise/streaming-the-audit-log-for-your-enterprise.md @@ -194,9 +194,12 @@ From {% data variables.product.prodname_dotcom %}: ### Setting up streaming to Azure Event Hubs -Before setting up a stream in {% data variables.product.prodname_dotcom %}, you must first have an event hub namespace in Microsoft Azure. Next, create an event hub instance within the namespace. You'll need the details of this event hub instance when you set up the stream. See [Quickstart: Create an event hub using Azure portal](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-create) in the Microsoft documentation. +> [!NOTE] Event Hubs instances in Azure Government are not supported. -You will also need your event hub's instance name and the connection string. +Before setting up a stream in {% data variables.product.prodname_dotcom %}, you need: + +* An event hub namespace in Microsoft Azure +* An event hub instance within the namespace (see [Quickstart: Create an event hub using Azure portal](https://docs.microsoft.com/en-us/azure/event-hubs/event-hubs-create) in the Microsoft documentation) From the Microsoft Azure portal: 1. At the top of the page, use the search box to search for "Event Hubs". diff --git a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization.md b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization.md index 730b2dde2a..64c0f0a4ac 100644 --- a/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization.md +++ b/content/organizations/keeping-your-organization-secure/managing-security-settings-for-your-organization/managing-allowed-ip-addresses-for-your-organization.md @@ -30,6 +30,8 @@ By default, authorized users can access your organization's resources from any I {% endnote %} {% endif %} +{% data reusables.identity-and-permissions.ip-allow-lists-which-resources-are-protected %} + ## About IP allow list management {% data reusables.identity-and-permissions.ip-allow-lists-enable %} diff --git a/data/reusables/identity-and-permissions/ip-allow-list-copilot-exception.md b/data/reusables/identity-and-permissions/ip-allow-list-copilot-exception.md deleted file mode 100644 index aaa72dfa68..0000000000 --- a/data/reusables/identity-and-permissions/ip-allow-list-copilot-exception.md +++ /dev/null @@ -1 +0,0 @@ -{% data variables.product.prodname_copilot %} features that do not require directly fetching private or organizational data from {% data variables.product.prodname_dotcom %} are not restricted by IP allow lists, as the only risk from incorrect use is to {% data variables.product.prodname_dotcom %}'s own compute resources. diff --git a/data/reusables/identity-and-permissions/ip-allow-lists-example-and-restrictions.md b/data/reusables/identity-and-permissions/ip-allow-lists-example-and-restrictions.md index 626f7f26b7..7b2af07944 100644 --- a/data/reusables/identity-and-permissions/ip-allow-lists-example-and-restrictions.md +++ b/data/reusables/identity-and-permissions/ip-allow-lists-example-and-restrictions.md @@ -1,19 +1,9 @@ For example, you can allow access to the private resources exclusively from the IP address of your office network. -If the list allows an IP address, an authenticated user connecting to {% data variables.location.product_location %} from that address can access private resources. If the user's IP address is not allowed, that user cannot access private resources until they connect from an allowed address. +After you configure an IP allow list, the list determines whether users can access protected resources through the web UI, APIs, or Git, using any of the following authentication methods: -After you configure an IP allow list, the list determines whether users can access protected resources through the web UI, APIs, or Git, using any of the following authentication methods. - -* Username and password, using {% data variables.product.prodname_dotcom %} authentication or SAML SSO +* Username and password, using {% data variables.product.prodname_dotcom %} authentication or SAML SSO * {% data variables.product.pat_generic_caps %} * SSH key The IP allow list applies to users with any role or access, including enterprise and organization owners, repository administrators, and external collaborators. - -{% ifversion ghec %} - -If a user is signed into {% data variables.location.product_location %}, the IP allow list determines whether the user can access the organization's public resources. The list does not apply to anonymous access to public resources. - -Only access to organization-owned repositories is determined by an IP allow list. The list does not control access to repositories or forks of repositories owned by a {% data variables.enterprise.prodname_managed_user %}. - -{% endif %} diff --git a/data/reusables/identity-and-permissions/ip-allow-lists-which-resources-are-protected.md b/data/reusables/identity-and-permissions/ip-allow-lists-which-resources-are-protected.md new file mode 100644 index 0000000000..938e4deed3 --- /dev/null +++ b/data/reusables/identity-and-permissions/ip-allow-lists-which-resources-are-protected.md @@ -0,0 +1,15 @@ +## Which resources are protected? + +IP allow lists **do** restrict access to: + +* Organization-owned repositories +* Private and internal repositories +* Public resources, when a user is signed into {% data variables.location.product_location %} +* Raw URLs for files in repositories, such as `https://raw.githubusercontent.com/octo-org/octo-repo/main/README.md?token=ABC10001` + +IP allow lists do **not** restrict access to: + +* Repositories, including forks, owned by {% data variables.enterprise.prodname_managed_users %} +* Public resources, when accessed anonymously +* {% data variables.product.prodname_copilot %} features that do not require directly fetching private or organizational data from {% data variables.product.prodname_dotcom %} +* Anonymized URLs for images and videos uploaded to issues or pull requests, such as `https://private-user-images.githubusercontent.com/10001/20002.png?jwt=ABC10001` From 95877647d1d29126876a60069f852240b5d7b38e Mon Sep 17 00:00:00 2001 From: Gagan Bhullar Date: Thu, 1 Aug 2024 08:58:07 -0600 Subject: [PATCH 09/24] fix: dependabot commit config (#34149) Co-authored-by: Jan Brasna <1784648+janbrasna@users.noreply.github.com> Co-authored-by: mc <42146119+mchammer01@users.noreply.github.com> --- .../configuration-options-for-the-dependabot.yml-file.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md b/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md index 465969e5ac..6dac2d6611 100644 --- a/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md +++ b/content/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file.md @@ -304,8 +304,8 @@ Use the `allow` option to customize which dependencies are updated. This applies | `direct` | All | All explicitly defined dependencies. | | `indirect` | `bundler`, `pip`, `composer`, `cargo`{% ifversion dependabot-updates-gomod-indirect %}, `gomod`{% endif %} | Dependencies of direct dependencies (also known as sub-dependencies, or transient dependencies).| | `all` | All | All explicitly defined dependencies. For `bundler`, `pip`, `composer`, `cargo`,{% ifversion dependabot-updates-gomod-indirect %} `gomod`,{% endif %} also the dependencies of direct dependencies.| - | `production` | `bundler`, `composer`, `mix`, `maven`, `npm`, `pip` | Only dependencies in the "Production dependency group". | - | `development`| `bundler`, `composer`, `mix`, `maven`, `npm`, `pip` | Only dependencies in the "Development dependency group". | + | `production` | `bundler`, `composer`, `mix`, `maven`, `npm`, `pip` (not all managers) | Only dependencies in the "Production dependency group". | + | `development`| `bundler`, `composer`, `mix`, `maven`, `npm`, `pip` (not all managers) | Only dependencies in the "Development dependency group". | ```yaml # Use `allow` to specify which dependencies to maintain @@ -381,7 +381,7 @@ Supported options The code snippet below provides examples of both in the same configuration file. * `prefix-development` specifies a separate prefix for all commit messages that update dependencies in the Development dependency group. When you specify a value for this option, the `prefix` is used only for updates to dependencies in the Production dependency group. This is supported by: `bundler`, `composer`, `mix`, `maven`, `npm`, and `pip`. -* `include: "scope"` specifies that any prefix is followed by a list of the dependencies updated in the commit. +* `include: "scope"` specifies that any prefix is followed by the type of the dependencies (`deps` or `deps-dev`) updated in the commit. {% data reusables.dependabot.option-affects-security-updates %} @@ -425,7 +425,6 @@ updates: commit-message: prefix: "pip prod" prefix-development: "pip dev" - include: "scope" ``` If you use the same configuration as in the example above, bumping the `requests` library in the `pip` development dependency group will generate a commit message of: From 42986261730dfa4e82df79902eae70e899c3f86d Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Thu, 1 Aug 2024 17:25:23 +0200 Subject: [PATCH 10/24] metered GHE/GHAS Offering - [GA] (#51647) Co-authored-by: erikaxu <58748846+erikaxu@users.noreply.github.com> Co-authored-by: Laura Coursen Co-authored-by: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> --- ...g-started-with-enterprise-managed-users.md | 7 +--- .../creating-an-enterprise-account.md | 1 - .../overview/about-github-enterprise-cloud.md | 9 +---- ...g-up-a-trial-of-github-enterprise-cloud.md | 27 ++++++-------- ...ut-billing-for-github-advanced-security.md | 36 ++++++++++++------- ...your-github-advanced-security-licensing.md | 6 ++-- ...-up-a-trial-of-github-advanced-security.md | 12 +++++++ ...signing-up-for-github-advanced-security.md | 6 ++++ ...io-subscriptions-with-github-enterprise.md | 14 ++------ .../about-per-user-pricing.md | 35 ++++++++++-------- .../connecting-an-azure-subscription.md | 15 ++++++-- ...n-and-usage-for-your-enterprise-account.md | 6 ++++ .../about-billing-for-your-enterprise.md | 2 +- .../about-billing-on-github.md | 12 +++++-- .../about-licenses-for-github-enterprise.md | 6 ++++ ...ding-your-license-for-github-enterprise.md | 6 ++++ ...nced-billing-for-git-large-file-storage.md | 6 ++-- ...hanced-billing-platform-for-enterprises.md | 6 ++++ .../about-usage-based-billing-for-licenses.md | 33 +++++++++++++++++ .../charging-business-units.md | 15 +++++++- ...estimating-spending-for-your-enterprise.md | 6 +++- ...rted-with-the-enhanced-billing-platform.md | 17 +++++++++ .../index.md | 2 ++ ...ng-your-payment-and-billing-information.md | 32 ++++++++++++++++- data/features/enhanced-billing-platform.yml | 1 + data/features/metered-ghe-ghas.yml | 6 ++++ .../advanced-security/purchase-ghas.md | 2 ++ .../ghas-metered-billing-note-with-link.md | 1 + data/reusables/billing/usage-based-billing.md | 3 ++ .../dotcom_billing/payment-methods.md | 12 +++++++ data/reusables/enterprise/enterprise-types.md | 8 +++++ 31 files changed, 267 insertions(+), 83 deletions(-) create mode 100644 content/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses.md create mode 100644 content/billing/using-the-enhanced-billing-platform-for-enterprises/getting-started-with-the-enhanced-billing-platform.md create mode 100644 data/features/metered-ghe-ghas.yml create mode 100644 data/reusables/billing/ghas-metered-billing-note-with-link.md create mode 100644 data/reusables/billing/usage-based-billing.md create mode 100644 data/reusables/enterprise/enterprise-types.md diff --git a/content/admin/managing-iam/understanding-iam-for-enterprises/getting-started-with-enterprise-managed-users.md b/content/admin/managing-iam/understanding-iam-for-enterprises/getting-started-with-enterprise-managed-users.md index 40dea2a1f2..9475f5501d 100644 --- a/content/admin/managing-iam/understanding-iam-for-enterprises/getting-started-with-enterprise-managed-users.md +++ b/content/admin/managing-iam/understanding-iam-for-enterprises/getting-started-with-enterprise-managed-users.md @@ -21,12 +21,7 @@ Before your developers can use {% data variables.product.prodname_ghe_cloud %} w To use {% data variables.product.prodname_emus %}, you need a **separate type of enterprise account** with {% data variables.product.prodname_emus %} enabled. -To request a new enterprise account, contact [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact). You'll discuss options for trialing {% data variables.product.prodname_emus %} or migrating from an existing enterprise. - -When you're ready, your contact on the {% data variables.product.prodname_dotcom %} Sales team will create your new {% data variables.enterprise.prodname_emu_enterprise %}. You'll be asked to provide the following information: - -* The **email address** for the user who will set up your enterprise. -* A **short code** that will be used as the suffix for your enterprise members' usernames. {% data reusables.enterprise-accounts.emu-shortcode %} +Start a free 30-day trial of {% data variables.product.prodname_ghe_cloud %}, and choose **Enterprise with managed users**. See "[AUTOTITLE](/admin/overview/setting-up-a-trial-of-github-enterprise-cloud)." ## Create the setup user diff --git a/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md b/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md index 0ba625a22c..1a50cc5e16 100644 --- a/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md +++ b/content/admin/managing-your-enterprise-account/creating-an-enterprise-account.md @@ -30,7 +30,6 @@ In most cases, you can create an enterprise account **yourself**. You'll **need help** creating an enterprise account for: -* {% data variables.product.prodname_emus %} * {% data variables.product.prodname_ghe_server %} * Invoicing diff --git a/content/admin/overview/about-github-enterprise-cloud.md b/content/admin/overview/about-github-enterprise-cloud.md index 9612335f66..2dfdd1b9e9 100644 --- a/content/admin/overview/about-github-enterprise-cloud.md +++ b/content/admin/overview/about-github-enterprise-cloud.md @@ -27,14 +27,7 @@ A key difference between {% data variables.product.product_name %} and other {% {% data reusables.enterprise.ghe-includes-ghec-and-ghes %} For more information about {% data variables.product.prodname_ghe_server %} and how it differs from {% data variables.product.prodname_ghe_cloud %}, see "[AUTOTITLE](/admin/overview/about-github-for-enterprises#about-deployment-options)." -## About enterprise types - -**Before** starting with {% data variables.product.prodname_ghe_cloud %}, you must choose an enterprise type. - -* Enterprise with personal accounts -* Enterprise with managed users - -To help you decide which choice is best for your enterprise, see "[AUTOTITLE](/admin/identity-and-access-management/understanding-iam-for-enterprises/choosing-an-enterprise-type-for-github-enterprise-cloud)." +{% data reusables.enterprise.enterprise-types %} ## About documentation diff --git a/content/admin/overview/setting-up-a-trial-of-github-enterprise-cloud.md b/content/admin/overview/setting-up-a-trial-of-github-enterprise-cloud.md index ab1a9f2ded..7648d67974 100644 --- a/content/admin/overview/setting-up-a-trial-of-github-enterprise-cloud.md +++ b/content/admin/overview/setting-up-a-trial-of-github-enterprise-cloud.md @@ -24,36 +24,28 @@ To set up a trial, you must be signed in to a personal account. If you don't hav You do not need to provide a payment method during the trial. -## Is the trial right for me? - -The self-serve trial **is not** right for you if your company: - -* Wants to try {% data variables.product.prodname_emus %} -* Wants to try {% data variables.product.prodname_ghe_server %} alongside {% data variables.product.prodname_ghe_cloud %} -* Has a Microsoft Enterprise Agreement -* Needs to connect an Azure subscription to the enterprise during the trial - -If any of these apply and you want to set up a trial, **contact [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact)**. +{% data reusables.enterprise.enterprise-types %} ## What is included in the trial? The trial lasts for **{% data reusables.enterprise.ghec-trial-length %} days** and includes the following features. -* Access to **most** {% data variables.product.prodname_ghe_cloud %} features. +* Access to **most** {% data variables.product.prodname_ghe_cloud %} features.{% ifversion metered-ghe-ghas%} +* Access to the **enhanced billing platform**. See "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises)."{% endif %} * An **enterprise account**, which allows you to manage multiple organizations. See "[AUTOTITLE](/enterprise-cloud@latest/get-started/learning-about-github/types-of-github-accounts)." * Up to **50 seats** to grant access to users. * The option to set up a free trial of **{% data variables.product.prodname_GH_advanced_security %}** to test features such as {% data variables.product.prodname_code_scanning %} and {% data variables.product.prodname_secret_scanning %}. See "[AUTOTITLE](/enterprise-cloud@latest/billing/managing-billing-for-github-advanced-security/setting-up-a-trial-of-github-advanced-security)." ## Features not included in the trial -* {% data variables.product.prodname_emus %} +* {% data variables.product.prodname_ghe_server %} * {% data variables.product.prodname_github_codespaces %} * {% data variables.product.prodname_copilot_for_business %} or {% data variables.product.prodname_copilot_enterprise %} * {% data variables.product.prodname_sponsors %} * Paid {% data variables.product.prodname_marketplace %} apps * {% data variables.product.prodname_github_connect %} * {% data variables.large_files.product_name_long %} -* For {% data variables.product.prodname_actions %}, increased minutes, job concurrency, and {% data variables.actions.hosted_runner %}s +* For {% data variables.product.prodname_actions %}, increased minutes, job concurrency, and {% data variables.actions.hosted_runners %} If you invite an existing organization into your trial enterprise, **all of these features will be disabled**. If you remove the organization from the enterprise, the features will be re-enabled. @@ -73,8 +65,12 @@ You can end your trial at any time by purchasing {% data variables.product.prodn If you **purchase {% data variables.product.prodname_enterprise %}**: -* You'll now be charged for each unique user in your enterprise. -* You can add more seats to your subscription, up to 1,000. +{% ifversion metered-ghe-ghas%} +* You can use usage-based billing for {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_GH_advanced_security %}, which means you pay monthly for the number of licenses you use. You will not need to buy a predefined number of licenses in advance. See, "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses)." + + If you did not set up a free trial and you want to use usage-based billing to pay for {% data variables.product.prodname_GH_advanced_security %} after the {% data variables.product.prodname_ghe_cloud %} trial ends, contact [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact).{% endif %} + +* You can generate a {% data variables.product.prodname_ghe_server %} license file for the same quantity of users who are consuming a {% data variables.product.prodname_ghe_cloud %} license. If you **cancel your trial**: @@ -100,6 +96,5 @@ You can end a trial by purchasing {% data variables.product.prodname_enterprise ## Further reading -* "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/about-per-user-pricing)" * "[AUTOTITLE](/admin/overview/best-practices-for-enterprises)" * [{% data variables.product.prodname_roadmap %}]({% data variables.product.prodname_roadmap_link %}) 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 bde94e402d..3b0f5abd56 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 @@ -19,6 +19,18 @@ topics: shortTitle: Advanced Security billing --- +{% ifversion metered-ghe-ghas %} + +## Usage-based billing for {% data variables.product.prodname_GH_advanced_security %} + +If you started a free trial of {% data variables.product.prodname_GH_advanced_security %} during your {% data variables.product.prodname_ghe_cloud %} trial on or after August 1, 2024, your billing for {% data variables.product.prodname_GH_advanced_security %} will be usage-based. + +This means that you can use usage-based billing to pay for your licenses for both {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_GH_advanced_security %}. With usage-based billing, you pay for the number of licenses you use each month. You cannot access a trial of {% data variables.product.prodname_GH_advanced_security %} usage-based billing outside of a {% data variables.product.prodname_ghe_cloud %} trial. + +If you have further questions about using {% data variables.product.prodname_GH_advanced_security %}, you can contact your account manager in {% data variables.contact.contact_enterprise_sales %}. + +{% endif %} + ## About licenses for {% data variables.product.prodname_GH_advanced_security %} {% ifversion billing-auth-and-capture %} @@ -73,19 +85,25 @@ You can make extra features for code security available to users by buying and u ## License size +{% ifversion metered-ghe-ghas %} + +> [!IMPORTANT] If you have access to usage-based billing for {% data variables.product.prodname_GH_advanced_security %}, you will pay for the licenses you use each month and will not have a license limit. See "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses)." + +{% endif %} + Each license for {% data variables.product.prodname_GH_advanced_security %} specifies a maximum number of accounts that can use these features. Each active committer to at least one repository with the feature enabled uses one {% ifversion ghas-billing-UI-update %}license{% else %}seat{% endif %}. A committer is considered active if one of their commits has been pushed to the repository within the last 90 days, regardless of when it was originally authored. When you remove a user from your enterprise account, the user's license is freed within 24 hours. {% ifversion ghes %} -You can determine how many licenses you'll need for {% data variables.product.prodname_GH_advanced_security %} by generating a count of your instance's active committers in the site admin dashboard. For more information, see "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/site-admin-dashboard#advanced-security-committers)." +You can determine how many licenses you'll need for {% data variables.product.prodname_GH_advanced_security %} by generating a count of your instance's active committers in the site admin dashboard. See "[AUTOTITLE](/admin/configuration/configuring-your-enterprise/site-admin-dashboard#advanced-security-committers)." {% endif %} If you are over your license limit, {% data variables.product.prodname_GH_advanced_security %} continues to work on all repositories where it is already enabled. However, in organizations where {% data variables.product.prodname_GH_advanced_security %} is enabled for new repositories, repositories will be created with the feature deactivated. In addition, the option to enable {% data variables.product.prodname_GH_advanced_security %} for existing repositories will not be available. As soon as you free up some {% ifversion ghas-billing-UI-update %}licenses{% else %}seats{% endif %}, by deactivating {% data variables.product.prodname_GH_advanced_security %} for some repositories or by increasing your license size, the options for activating {% data variables.product.prodname_GH_advanced_security %} will work again as normal. -You can enforce policies to allow or disallow the use of {% data variables.product.prodname_advanced_security %} by organizations owned by your enterprise account. For more information, see "[AUTOTITLE](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-advanced-security-in-your-enterprise)." +You can enforce policies to allow or disallow the use of {% data variables.product.prodname_advanced_security %} by organizations owned by your enterprise account. See "[AUTOTITLE](/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-advanced-security-in-your-enterprise)." For more information on viewing license usage, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/viewing-your-github-advanced-security-usage)." @@ -98,11 +116,7 @@ We record and display two numbers of {% ifversion ghas-billing-UI-update %}activ If there are no unique {% ifversion ghas-billing-UI-update %}active {% endif %}committers, all active committers also contribute to other repositories or organizations that use {% data variables.product.prodname_GH_advanced_security %}. Deactivating the feature for that repository or organization would not free any {% ifversion ghas-billing-UI-update %}licenses{% else %}seats{% endif %} for {% data variables.product.prodname_GH_advanced_security %}. -{% note %} - -**Note:** Users can contribute to multiple repositories or organizations. Usage is measured across the whole enterprise account to ensure that each member uses one {% ifversion ghas-billing-UI-update %}license {% else %}seat {% endif %}regardless of how many repositories or organizations the user contributes to. - -{% endnote %} +> [!NOTE] Users can contribute to multiple repositories or organizations. Usage is measured across the whole enterprise account to ensure that each member uses one {% ifversion ghas-billing-UI-update %}license {% else %}seat {% endif %}regardless of how many repositories or organizations the user contributes to. When you activate or deactivate {% data variables.product.prodname_advanced_security %} for repositories, {% data variables.product.prodname_dotcom %} displays an overview of changes to the use of your license. If you deactivate access to {% data variables.product.prodname_GH_advanced_security %}, any {% ifversion ghas-billing-UI-update %}licenses{% else %}seats{% endif %} used by unique active committers are freed up. @@ -122,11 +136,7 @@ The following example timeline demonstrates how active committer count for {% da | August 15 | A member of your enterprise enables {% data variables.product.prodname_GH_advanced_security %} for a second repository, repository **Y**. In the last 90 days, a total of 20 developers contributed to that repository. Of those 20 developers, 10 also recently worked on repo **X** and do not require additional licenses. | 49 + 10 =
**59** | | August 16 | A member of your enterprise disables {% data variables.product.prodname_GH_advanced_security %} for repository **X**. Of the 49 developers who were working on repository **X**, 10 still also work on repository **Y**, which has a total of 20 developers contributing in the last 90 days. | 49 - 29 =
**20** | -{% note %} - -**Note:** A user will be flagged as active when their commits are pushed to any branch of a repository, even if the commits were authored more than 90 days ago. - -{% endnote %} +> [!NOTE] A user will be flagged as active when their commits are pushed to any branch of a repository, even if the commits were authored more than 90 days ago. ## Getting the most out of {% data variables.product.prodname_GH_advanced_security %} @@ -138,7 +148,7 @@ When you decide which repositories and organizations to prioritize for {% data v When you have enabled {% data variables.product.prodname_GH_advanced_security %} for these organizations or repositories, assess which other codebases you could add without incurring billing for unique {% ifversion ghas-billing-UI-update %}active {% endif %}committers. Finally, review the remaining important and busy codebases. If you want to increase the number of {% ifversion ghas-billing-UI-update %}licensed active committers, {% else %}seats in your license, {% endif %}contact {% data variables.contact.contact_enterprise_sales %}. {% ifversion ghas-in-license-sync %} -If your enterprise uses {% data variables.product.prodname_GH_advanced_security %} on both {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}, you can ensure users aren't consuming multiple licenses unnecessarily by synchronizing license usage between environments.{% ifversion ghec %} {% data variables.product.prodname_GH_advanced_security %} is included in license sync in {% data variables.product.prodname_ghe_server %} version 3.12 and later.{% endif %} For more information, see "[AUTOTITLE](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)." +If your enterprise uses {% data variables.product.prodname_GH_advanced_security %} on both {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %}, you can ensure users aren't consuming multiple licenses unnecessarily by synchronizing license usage between environments.{% ifversion ghec %} {% data variables.product.prodname_GH_advanced_security %} is included in license sync in {% data variables.product.prodname_ghe_server %} version 3.12 and later.{% endif %} See "[AUTOTITLE](/billing/managing-your-license-for-github-enterprise/syncing-license-usage-between-github-enterprise-server-and-github-enterprise-cloud)." {% endif %} {% endif %} diff --git a/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md b/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md index 3d3346d75a..d3ced521f7 100644 --- a/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md +++ b/content/billing/managing-billing-for-github-advanced-security/managing-your-github-advanced-security-licensing.md @@ -11,7 +11,7 @@ topics: - Enterprise shortTitle: Manage Advanced Security licensing --- -## About licensing for GitHub Advanced Security +## About licensing for {% data variables.product.prodname_GH_advanced_security %} Each license for {% data variables.product.prodname_GH_advanced_security %} specifies a maximum number of accounts that can use these features. Each active committer to at least one repository with the feature enabled uses one {% ifversion ghas-billing-UI-update %}license{% else %}seat{% endif %}. A committer is considered active if one of their commits has been pushed to the repository within the last 90 days, regardless of when it was originally authored. For more information about committer numbers, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security)." For information about purchasing a license, see "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/signing-up-for-github-advanced-security)." @@ -27,7 +27,7 @@ Each license for {% data variables.product.prodname_GH_advanced_security %} spec {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. Under "{% data variables.product.prodname_GH_advanced_security %} GitHub Advanced Security", click **Committers**. +1. Under "{% data variables.product.prodname_GH_advanced_security %}", click **Committers**. ![Screenshot of the {% data variables.product.prodname_GH_advanced_security %} licensing screen. The "Committers" dropdown is highlighted with an orange line.](/assets/images/help/enterprises/ghas-committers-dropdown.png) 1. Under "Committers", click **Manage committers**. @@ -41,7 +41,7 @@ Each license for {% data variables.product.prodname_GH_advanced_security %} spec {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} -1. To the right of "GitHub Advanced Security", click **Manage**, then click **Cancel Subscription**. +1. To the right of "{% data variables.product.prodname_GH_advanced_security %}", click **Manage**, then click **Cancel Subscription**. ![Screenshot of the "Manage" dropdown in the {% data variables.product.prodname_GH_advanced_security %} licensing screen. The "Cancel Subscription" button is highlighted with an orange outline.](/assets/images/help/enterprises/ghas-cancel-subscription.png) 1. To confirm your cancellation, click **I understand, cancel 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 index 49e471316a..3223c29e57 100644 --- 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 @@ -11,6 +11,12 @@ topics: shortTitle: Set up an Advanced Security trial --- +{% ifversion metered-ghe-ghas %} + +{% data reusables.billing.ghas-metered-billing-note-with-link %} + +{% endif %} + ## About {% 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, such as {% data variables.product.prodname_code_scanning %}, {% data variables.product.prodname_secret_scanning %}, and dependency review. For more information, see "[AUTOTITLE](/get-started/learning-about-github/about-github-advanced-security)." @@ -39,6 +45,12 @@ To set up a trial of {% data variables.product.prodname_GH_advanced_security %}, 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 30 days, your trial will expire. +{% ifversion metered-ghe-ghas%} + +If you pay for {% data variables.product.prodname_ghe_cloud %} with usage-based billing, but did not set up a free trial of {% data variables.product.prodname_GH_advanced_security %}, you can still use usage-based billing to pay for {% data variables.product.prodname_GH_advanced_security %} after the {% data variables.product.prodname_ghe_cloud %} trial ends. For more information, contact [{% data variables.product.prodname_dotcom %}'s Sales team](https://enterprise.github.com/contact). + +{% endif %} + {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} {% data reusables.enterprise-accounts.license-tab %} 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 7c35cfa6dc..13dd1f7ddb 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 @@ -11,6 +11,12 @@ topics: - Enterprise shortTitle: Sign up for Advanced Security --- +{% ifversion metered-ghe-ghas %} + +{% data reusables.billing.ghas-metered-billing-note-with-link %} + +{% endif %} + ## Purchasing {% data variables.product.prodname_GH_advanced_security %} {% data reusables.enterprise-accounts.access-enterprise %} diff --git a/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md b/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md index 8f856d8b3a..0bd2890500 100644 --- a/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md +++ b/content/billing/managing-licenses-for-visual-studio-subscriptions-with-github-enterprise/about-visual-studio-subscriptions-with-github-enterprise.md @@ -19,7 +19,7 @@ topics: shortTitle: About --- -## About {% data variables.visual_studio.prodname_vss_ghe %} +> [!NOTE] Usage-based billing is not currently supported for {% data variables.visual_studio.prodname_vss_ghe %}. {% data reusables.enterprise-accounts.vss-ghe-description %} {% data variables.visual_studio.prodname_vss_ghe %} is available from Microsoft under the terms of the Microsoft Enterprise Agreement. For more information, see [{% data variables.visual_studio.prodname_vss_ghe %}](https://visualstudio.microsoft.com/subscriptions/visual-studio-github/) on the {% data variables.product.prodname_vs %} website. @@ -31,11 +31,7 @@ For more information about the setup of {% data variables.visual_studio.prodname After you assign a license for {% data variables.visual_studio.prodname_vss_ghec %} to a subscriber, the subscriber will use the {% data variables.product.prodname_enterprise %} portion of the license by joining an organization in your enterprise with a personal account on {% data variables.product.prodname_dotcom_the_website %}. If the verified email address for the personal account of an enterprise member on {% data variables.product.prodname_dotcom_the_website %} matches the User Principal Name (UPN) for a subscriber to your {% data variables.product.prodname_vs %} account, the {% data variables.product.prodname_vs %} subscriber will automatically consume one license for {% data variables.visual_studio.prodname_vss_ghec %}. -{% note %} - -**Note:** For {% data variables.product.prodname_emu %} only, to make sure a user account consumes a {% data variables.product.prodname_vs %} license, ensure the {% data variables.product.prodname_vs %} UPN matches the SCIM `userName` attribute or the email address from the linked identity on the {% data variables.product.prodname_dotcom %} account. - -{% endnote %} +> [!NOTE] For {% data variables.product.prodname_emu %} only, to make sure a user account consumes a {% data variables.product.prodname_vs %} license, ensure the {% data variables.product.prodname_vs %} UPN matches the SCIM `userName` attribute or the email address from the linked identity on the {% data variables.product.prodname_dotcom %} account. The total quantity of your licenses for your enterprise on {% data variables.product.prodname_dotcom %} is the sum of any standard {% data variables.product.prodname_enterprise %} licenses and the number of {% data variables.product.prodname_vs %} subscription licenses that include access to {% data variables.product.prodname_dotcom %}. If the personal account for an enterprise member does not correspond with the email address for a {% data variables.product.prodname_vs %} subscriber, the license that the personal account consumes is unavailable for a {% data variables.product.prodname_vs %} subscriber. @@ -43,11 +39,7 @@ For more information about {% data variables.product.prodname_enterprise %}, see You can view the number of {% data variables.product.prodname_enterprise %} licenses available to your enterprise on {% data variables.location.product_location %}. The list of pending invitations includes subscribers who are not yet members of at least one organization in your enterprise. For more information, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account)" and "[AUTOTITLE](/admin/user-management/managing-users-in-your-enterprise/viewing-people-in-your-enterprise#viewing-members-and-outside-collaborators)." -{% tip %} - -**Tip**: If you download a CSV file with your enterprise's license usage in step 6 of "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account#viewing-the-subscription-and-usage-for-your-enterprise-account)," any members with a missing value for the "Name" or "Profile" columns have not yet accepted an invitation to join an organization within the enterprise. - -{% endtip %} +> [!TIP] If you download a CSV file with your enterprise's license usage in step 6 of "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account#viewing-the-subscription-and-usage-for-your-enterprise-account)," any members with a missing value for the "Name" or "Profile" columns have not yet accepted an invitation to join an organization within the enterprise. You can also see pending {% data variables.product.prodname_enterprise %} invitations to subscribers in {% data variables.visual_studio.prodname_vss_admin_portal_with_url %}. diff --git a/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md b/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md index 7322f5d317..2819003eb2 100644 --- a/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md +++ b/content/billing/managing-the-plan-for-your-github-account/about-per-user-pricing.md @@ -1,6 +1,6 @@ --- title: About per-user pricing -intro: '{% ifversion fpt or ghec %}For organizations{% ifversion ghec %} and enterprises{% endif %}, your {% else %}Your {% endif %}bill begins with the number of licensed seats you choose.' +intro: 'Learn about per-user pricing for organizations{% ifversion ghec or ghes %} and enterprises{% endif %}.' redirect_from: - /github/setting-up-and-managing-billing-and-payments-on-github/about-per-user-pricing - /articles/about-per-user-pricing @@ -18,29 +18,33 @@ topics: - Organizations --- -## About per-user pricing - {% ifversion fpt %} {% data reusables.billing.about-billing %} For organizations, the "plan" component of the bill is based on the number of licensed seats you choose to purchase. -New organizations on {% data variables.product.prodname_dotcom_the_website %} can build public and open-source projects with {% data variables.product.prodname_free_team %}, or upgrade to a paid plan. For more information, see "[AUTOTITLE](/get-started/learning-about-github/githubs-plans)" and "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)." +New organizations on {% data variables.product.prodname_dotcom_the_website %} can build public and open-source projects with {% data variables.product.prodname_free_team %}, or upgrade to a paid plan. See "[AUTOTITLE](/get-started/learning-about-github/githubs-plans)" and "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)." -{% note %} - -**Note:** Organizations who upgraded to a paid plan before May 11, 2016 can choose to stay on their existing per-repository plan or switch to per-user pricing. {% data variables.product.company_short %} will notify you twelve months before any mandated change to your subscription. For more information on switching your subscription, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)." - -{% endnote %} +>[!NOTE] Organizations who upgraded to a paid plan before May 11, 2016 can choose to stay on their existing per-repository plan or switch to per-user pricing. {% data variables.product.company_short %} will notify you twelve months before any mandated change to your subscription. For more information on switching your subscription, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)." {% else %} -The foundation of your bill is the number of standard licensed seats that you choose for your{% ifversion ghec %} organization or{% endif %} enterprise. +The foundation of your bill is the number of user accounts using your{% ifversion ghec %} organization or{% endif %} enterprise. {% data reusables.enterprise-licensing.unique-user-licensing-model %} -To ensure the same user isn't consuming more than one license for multiple enterprise deployments, you can synchronize license usage between your {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %} environments. For more information, see "[AUTOTITLE](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)." +To ensure the same user isn't consuming more than one license for multiple enterprise deployments, you can synchronize license usage between your {% data variables.product.prodname_ghe_server %} and {% data variables.product.prodname_ghe_cloud %} environments. See "[AUTOTITLE](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)." + +In addition to licensed seats, your bill may include other charges, such as {% data variables.product.prodname_GH_advanced_security %}. See "[AUTOTITLE](/billing/managing-your-github-billing-settings/about-billing-for-your-enterprise)." +{% endif %} + +{% ifversion metered-ghe-ghas %} + +## Two billing models for {% data variables.product.prodname_enterprise %} licenses + +If you created a trial of {% data variables.product.prodname_ghe_cloud %} on or after August 1, 2024, you use usage-based billing to pay for your licenses. With usage-based billing, you pay for the number of licenses you use each month. You do not need to buy a predefined number of licenses in advance. See, "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses)." + +If you currently pay for your {% data variables.product.prodname_enterprise %} licenses by invoice with a volume, subscription, or prepaid agreement, you will continue to be billed in this way until your agreement expires. At renewal, you have the option to switch to the metered billing model. -In addition to licensed seats, your bill may include other charges, such as {% data variables.product.prodname_GH_advanced_security %}. For more information, see "[AUTOTITLE](/billing/managing-your-github-billing-settings/about-billing-for-your-enterprise)." {% endif %} ## People that consume a license @@ -130,7 +134,9 @@ You can change your {% data variables.product.prodname_dotcom %} subscription at {% endif %} -You can add more licensed seats to your {% ifversion fpt or ghec %} organization{% endif %}{% ifversion ghec %} or{% endif %}{% ifversion ghec or ghes %} enterprise{% endif %} at any time. If you pay for more seats than are being used, you can also reduce the number of seats.{% ifversion fpt %} For more information, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)" and "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/downgrading-your-accounts-plan)." +{% ifversion ghec %}If you use usage-based billing, you can reduce the number of licenses you use, by removing users from your enterprise account. See, "[AUTOTITLE](/admin/managing-accounts-and-repositories/managing-users-in-your-enterprise/removing-a-member-from-your-enterprise)." + +{% else %}You can add more licensed seats to your {% ifversion fpt or ghec %} organization{% endif %}{% ifversion ghec %} or{% endif %}{% ifversion ghec or ghes %} enterprise{% endif %} at any time. If you pay for more seats than are being used, you can also reduce the number of seats. This only applies if you currently pay for your {% data variables.product.prodname_enterprise %} licenses through a volume, subscription, or prepaid agreement.{% endif %}{% ifversion fpt %} See "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)" and "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/downgrading-your-accounts-plan)." If you have questions about your subscription, you can contact {% data variables.contact.contact_support %}. @@ -143,9 +149,10 @@ For more information about per-user pricing for {% data variables.product.prodna If you use an enterprise account on {% data variables.product.prodname_dotcom_the_website %} and have questions about changes to your subscription, contact {% data variables.contact.contact_enterprise_sales %}. {% endif %} + {% ifversion ghec %} -If you use an individual organization on {% data variables.product.prodname_ghe_cloud %}, you can upgrade or downgrade your subscription. For more information, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)" or "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/downgrading-your-accounts-plan)." If you have questions about your subscription, you can contact {% data variables.contact.contact_support %}. +If you use an individual organization on {% data variables.product.prodname_ghe_cloud %}, you can upgrade or downgrade your subscription. See "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/upgrading-your-accounts-plan)" or "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/downgrading-your-accounts-plan)." If you have questions about your subscription, you can contact {% data variables.contact.contact_support %}. {% endif %} diff --git a/content/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription.md b/content/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription.md index 03d903d1e9..9187e638b5 100644 --- a/content/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription.md +++ b/content/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription.md @@ -8,11 +8,18 @@ redirect_from: - /billing/managing-billing-for-your-github-account/connecting-an-azure-subscription-to-your-enterprise - /billing/managing-billing-for-your-github-account/connecting-an-azure-subscription versions: - fpt: "*" - ghec: "*" + fpt: '*' + ghec: '*' + ghes: '>= 3.12' shortTitle: Connect an Azure subscription --- +{% ifversion metered-ghe-ghas %} + +{% data reusables.billing.usage-based-billing %} + +{% endif %} + ## About connection of an Azure subscription You can pay for usage of {% data variables.product.product_name %} features through Azure by connecting an Azure Subscription ID to your organization {% ifversion ghec %}or enterprise{% endif%} account on {% data variables.location.product_location %}. {% ifversion fpt %}For more information about organization accounts, see "[AUTOTITLE](/organizations/collaborating-with-groups-in-organizations/about-organizations)."{% elsif ghec %} @@ -25,6 +32,8 @@ If you use {% data variables.product.product_name %} through a Microsoft Enterpr {% endif %} +{% ifversion fpt or ghec %} + ## About usage-based billing on {% data variables.product.prodname_dotcom_the_website %} {% data variables.product.company_short %} provides usage-based billing for the following features and situations. You can learn more about billing and spending limits. @@ -36,6 +45,8 @@ If you use {% data variables.product.product_name %} through a Microsoft Enterpr | {% data variables.product.prodname_registry %} usage beyond the amounts included with your plan | "[AUTOTITLE](/billing/managing-billing-for-github-packages/about-billing-for-github-packages)" | "[AUTOTITLE](/billing/managing-billing-for-github-packages/about-billing-for-github-packages#about-spending-limits)" | | {% data variables.product.prodname_copilot_business_short %} usage | "[AUTOTITLE](/billing/managing-billing-for-github-copilot/about-billing-for-github-copilot#about-billing-for-github-copilot-business-and-github-copilot-enterprise)" | N/A | +{% endif %} + ## About billing through Azure If you link your {% data variables.product.company_short %} account to Azure, any usage-based costs starting from that point will be billed through Azure and charged on the 1st of each month. However, remaining {% data variables.product.company_short %} charges, for example charges for your {% data variables.product.prodname_dotcom %} plan, will still be billed on your usual billing date. diff --git a/content/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md b/content/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md index 5c4d369ebe..c0bc38c599 100644 --- a/content/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md +++ b/content/billing/managing-the-plan-for-your-github-account/viewing-the-subscription-and-usage-for-your-enterprise-account.md @@ -42,6 +42,12 @@ If you want to view an overview of your subscription and usage for {% data varia {% endif %} +{% ifversion metered-ghe-ghas %} + +{% data reusables.billing.usage-based-billing %} + +{% endif %} + ## Viewing the subscription and usage for your enterprise account You can view the subscription and usage for your enterprise and download a file with license details. diff --git a/content/billing/managing-your-github-billing-settings/about-billing-for-your-enterprise.md b/content/billing/managing-your-github-billing-settings/about-billing-for-your-enterprise.md index 1ce12a1b3d..c0100ed32b 100644 --- a/content/billing/managing-your-github-billing-settings/about-billing-for-your-enterprise.md +++ b/content/billing/managing-your-github-billing-settings/about-billing-for-your-enterprise.md @@ -26,7 +26,7 @@ When you use an enterprise account on {% data variables.location.product_locatio If you use {% data variables.product.product_name %} with an individual organization and do not yet have an enterprise account, you create an enterprise account and add your organization. For more information, see "[AUTOTITLE](/admin/managing-your-enterprise-account/creating-an-enterprise-account)." -{% data variables.product.company_short %} bills monthly for the total number of licensed seats for your enterprise account, as well as any additional services you use with {% data variables.product.prodname_ghe_cloud %}, such as {% data variables.product.prodname_actions %} minutes. If you use a standalone organization on {% data variables.product.product_name %}, you'll be billed at the organization level for all usage. For more information your bill's license seats, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/about-per-user-pricing)." +{% data reusables.billing.usage-based-billing %} {% elsif ghes %} diff --git a/content/billing/managing-your-github-billing-settings/about-billing-on-github.md b/content/billing/managing-your-github-billing-settings/about-billing-on-github.md index db202ccd25..41d7bdb276 100644 --- a/content/billing/managing-your-github-billing-settings/about-billing-on-github.md +++ b/content/billing/managing-your-github-billing-settings/about-billing-on-github.md @@ -115,9 +115,17 @@ Your plan may come with included amounts of usage-based products. For example, w You must manage billing settings, payment method, and paid features and products for each of your accounts separately. You can choose to pay monthly or yearly for each account. All subscriptions and usage-based billing associated with an account shares a billing date, payment method, and receipt. -{% data reusables.dotcom_billing.payment-methods %} {% data reusables.dotcom_billing.same-payment-method %} +{% ifversion fpt %}{% data reusables.dotcom_billing.payment-methods %} {% data reusables.dotcom_billing.same-payment-method %} -{% ifversion fpt or ghec %}For qualifying usage-based services, you may choose to pay for the services from your {% data variables.product.prodname_dotcom %} account or from an Azure subscription. The terms of the billing method you choose will apply to services billed in this manner.{% endif %} +For qualifying usage-based services, you may choose to pay for the services from your {% data variables.product.prodname_dotcom %} account or from an Azure subscription. The terms of the billing method you choose will apply to services billed in this manner.{% endif %} + +{% ifversion ghec %} + +{% data reusables.billing.usage-based-billing %} + +Payments can be made via credit card, PayPal, or Azure subscription. When you update the payment method for your account's plan, your new payment method is automatically added to your other subscriptions and usage-based billing. + +{% endif %} For more information, see "[AUTOTITLE](/billing/managing-your-github-billing-settings)." diff --git a/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md b/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md index 84486633b2..872b574be6 100644 --- a/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md +++ b/content/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise.md @@ -11,6 +11,12 @@ topics: shortTitle: About licenses --- +{% ifversion metered-ghe-ghas %} + +{% data reusables.billing.usage-based-billing %} + +{% endif %} + ## About licensing for {% data variables.product.prodname_enterprise %} {% data reusables.enterprise.about-deployment-methods %} diff --git a/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md b/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md index 612f9a970f..18779b1a8c 100644 --- a/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md +++ b/content/billing/managing-your-license-for-github-enterprise/downloading-your-license-for-github-enterprise.md @@ -12,6 +12,12 @@ topics: shortTitle: Download your license --- +{% ifversion metered-ghe-ghas %} + +{% data reusables.billing.usage-based-billing %} + +{% endif %} + ## About license files for {% data variables.product.prodname_enterprise %} After you purchase or upgrade a license for {% data variables.product.prodname_enterprise %} from {% data variables.contact.contact_enterprise_sales %}, you must download your new license file. For more information about licenses for {% data variables.product.prodname_enterprise %}, see "[AUTOTITLE](/billing/managing-your-license-for-github-enterprise/about-licenses-for-github-enterprise)." diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-enhanced-billing-for-git-large-file-storage.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-enhanced-billing-for-git-large-file-storage.md index 8ce872fde6..61437fda03 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-enhanced-billing-for-git-large-file-storage.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-enhanced-billing-for-git-large-file-storage.md @@ -14,11 +14,11 @@ permissions: The enhanced billing platform is available to all enterprise accoun ## About billing for {% data variables.large_files.product_name_long %} -{% note %} +{% ifversion ghec %} -**Note:** {% data reusables.user-settings.context_switcher %} +> [!NOTE] {% data reusables.user-settings.context_switcher %} -{% endnote %} +{% endif %} Each {% data variables.product.prodname_dotcom %} account receives a certain amount of free bandwidth and storage for {% data variables.large_files.product_name_short %}, depending on the account's plan. Bandwidth is billed for each GiB of data downloaded. Storage is billed by calculating an hourly usage rate. To estimate costs for paid {% data variables.large_files.product_name_short %} usage, you can use the {% data variables.product.prodname_dotcom %} [pricing calculator](https://github.com/pricing/calculator?feature=lfs). diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md index c93f76ead6..6b6c7ebed6 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md @@ -17,8 +17,10 @@ The enhanced billing platform provides better spending control and detailed usag The following products are available in the enhanced billing platform: * {% data variables.product.prodname_actions %} +* {% data variables.product.prodname_GH_advanced_security %} (only available with a trial of {% data variables.product.prodname_ghe_cloud %}) * {% data variables.product.prodname_github_codespaces %} * {% data variables.product.prodname_copilot %} +* {% data variables.product.prodname_enterprise %} * {% data variables.product.prodname_registry %} * {% data variables.large_files.product_name_long %} @@ -39,3 +41,7 @@ You have access to the enhanced billing platform if you have an enterprise accou {% data reusables.enterprise-accounts.access-enterprise %} If you have access, there will be a {% octicon "credit-card" aria-hidden="true" %} **Billing & Licensing** option in the enterprise account sidebar. + +## Next steps + +* To **get started with the enhanced billing plaform**, see "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/getting-started-with-the-enhanced-billing-platform)." diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses.md new file mode 100644 index 0000000000..85d37f56f5 --- /dev/null +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses.md @@ -0,0 +1,33 @@ +--- +title: About usage-based billing for licenses +intro: Learn about usage-based billing for your enterprise licenses, whether you pay through {% data variables.product.company_short %} or Azure. +redirect_from: + - /early-access/billing/managing-usage-based-billing-for-github-licenses-through-github + - /early-access/billing/managing-usage-based-billing-for-github-licenses-through-azure + - /early-access/billing/managing-usage-based-billing-for-githubs-products-on-azure + - /early-access/billing/managing-billing-for-githubs-products-through-azure + - /early-access/billing/managing-usage-based-billing-for-github-licenses +versions: + feature: enhanced-billing-platform +type: overview +topics: + - Enterprise +permissions: Enterprise administrators +shortTitle: Usage-based billing for licenses +--- + +With the enhanced billing platform, you pay monthly for the number of {% data variables.product.prodname_enterprise %} and {% data variables.product.prodname_GH_advanced_security %} licenses you use. You will not need to buy a predefined number of licenses in advance. + +If a user starts consuming a license seat during the month, you will pay pro rata for the user's license usage that month. If a user stops consuming a license seat during the month, your bill for the following month will reflect the change. + +Pending invitations to join an organization that belongs to your enterprise on {% data variables.product.prodname_dotcom_the_website %} do not consume a license. + +{% data variables.visual_studio.prodname_vss_ghe %} is currently not supported for usage-based billing. + +## Which payment methods can I use? + +You can use the following payment methods for usage-based billing for licenses: + +* Invoiced and self-serve {% data variables.product.prodname_enterprise %} customers can pay using a **credit card** or **PayPal** +* You can connect an **Azure** subscription to your enterprise +* For **purchase orders**, you can contact your account manager in {% data variables.contact.contact_enterprise_sales %} diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/charging-business-units.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/charging-business-units.md index 5b1ad86672..8d7fb9a8ef 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/charging-business-units.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/charging-business-units.md @@ -14,6 +14,19 @@ To drive accountability and control costs, the enhanced billing platform lets yo If your account is billed to Azure, you will have the option to add an Azure subscription ID. Cost centers allows for multiple Azure subscription IDs so that different business units, within an enterprise, can directly pay for their usage. +{% ifversion metered-ghe-ghas %} + +## Cost center billing for seat-based products + +For seat-based products like {% data variables.product.prodname_enterprise %}, {% data variables.product.prodname_GH_advanced_security %}, and {% data variables.product.prodname_copilot %}, cost centers are based on **users**. Changes to users (additions or deletions) will affect billing as follows: + +* Any new usage after the change will be billed to the cost center immediately. +* Seats added before a user is added to a cost center are only reflected at the start of the next month. +* Deletion of a user from a cost center is reflected at the start of the next month. + +For example, if you add a user to a cost center, any new usage for that user will be billed to the cost center right away. However, if the usage (seat) for the user was added _before_ the user was added to the cost center, then the user’s seat will only start being billed to the cost center at the start of the next billing cycle. +{% endif %} + ## Creating a cost center Create cost centers to monitor and manage expenses for specific organizations or repositories. Multiple organizations and repositories can be assigned to one cost center. @@ -25,7 +38,7 @@ This method can be used to track only non-seat based products usage such as: * {% data variables.product.prodname_registry %} * {% data variables.large_files.product_name_short %} -For seat-based products like {% data variables.product.prodname_copilot %}, assign users to the cost center via the API. +For seat-based products like usage-based billing for {% data variables.product.prodname_enterprise %} and {% data variables.product.prodname_GH_advanced_security %}, and {% data variables.product.prodname_copilot %}, assign users to the cost center via the API. {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.billing.enterprise-billing-menu %} diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md index 13c4c1ce13..395eeccdc7 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md @@ -29,7 +29,11 @@ On this page, you can view your usage in the following categories: * **By organization** and **by repository:** The two cards under the graph show the top five organizations and repositories that generate the most usage. You can click {% octicon "kebab-horizontal" aria-label="Open column options" %} in the upper-right corner of each card to view all usage. * **By products:** You can use the product tabs to view usage and discounts for different products. Only products with usage are shown. - ![Screenshot of the product tabs section of the overview page.](/assets/images/help/billing/enhanced-billing-platform-products-tabs.png) + ![Screenshot of the product tabs section of the overview page.](/assets/images/help/billing/enhanced-billing-platform-products-tabs.png){% ifversion metered-ghe-ghas%} + + > [!NOTE] There is a delay of up to 2 hours in the {% data variables.product.prodname_GH_advanced_security %} usage data after enabling the feature. + + {% endif %} ## Viewing promotion and discounts diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/getting-started-with-the-enhanced-billing-platform.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/getting-started-with-the-enhanced-billing-platform.md new file mode 100644 index 0000000000..7969b1c9c0 --- /dev/null +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/getting-started-with-the-enhanced-billing-platform.md @@ -0,0 +1,17 @@ +--- +title: Getting started with the enhanced billing platform +intro: 'Learn how to start using the enhanced billing platform for your enterprise account.' +versions: + feature: enhanced-billing-platform +type: overview +topics: + - Enterprise +permissions: Enterprise administrators +shortTitle: Get started +--- + +If you don't already have access to the enhanced billing platform, there are three ways to get started. + +* If you are **new** to {% data variables.product.prodname_ghe_cloud %}, set up a trial of {% data variables.product.prodname_ghe_cloud %}. See "[AUTOTITLE](/admin/overview/setting-up-a-trial-of-github-enterprise-cloud)." +* If you have an **existing** enterprise account and pay by **invoice**, contact your account manager in {% data variables.contact.contact_enterprise_sales %} to discuss switching when your contract renews. +* If you have an **existing** enterprise account and pay via **credit card or PayPal**, wait for an in-product prompt to transition. diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/index.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/index.md index 84717a4079..f153e83deb 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/index.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/index.md @@ -9,6 +9,8 @@ versions: feature: enhanced-billing-platform children: - /about-the-enhanced-billing-platform-for-enterprises + - /getting-started-with-the-enhanced-billing-platform + - /about-usage-based-billing-for-licenses - /adding-seats-to-your-enterprise-account - /roles-for-the-enhanced-billing-platform - /estimating-spending-for-your-enterprise diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/managing-your-payment-and-billing-information.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/managing-your-payment-and-billing-information.md index 91e5e268b9..6181bb3e98 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/managing-your-payment-and-billing-information.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/managing-your-payment-and-billing-information.md @@ -1,6 +1,6 @@ --- title: Managing your payment and billing information -intro: 'You can view your payment information and history, and update your billing contacts.' +intro: 'Learn how to manage your payment information and history, and update your billing contacts.' versions: feature: enhanced-billing-platform type: how_to @@ -16,6 +16,36 @@ You can view your payment information and history, and update your billing conta * PayPal * Azure Subscription ID +## Prerequisites for paying through Azure + +* You must be new to {% data variables.product.prodname_ghe_cloud %} to begin with usage-based billing through an Azure subscription. If your company already uses {% data variables.product.prodname_dotcom %}, you can use {% data variables.product.prodname_importer_proper_name %} to migrate your resources to a new subscription that bills through Azure. For more information, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/understanding-github-enterprise-importer/about-github-enterprise-importer)." +* Prepaid usage is not currently available for usage-based billing through Azure. +* You must know your Azure subscription ID. For more information, see the following documentation or [contact Azure support](https://azure.microsoft.com/support/). + + * "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription)" + * [Get subscription and tenant IDs in the Azure portal](https://learn.microsoft.com/en-us/azure/azure-portal/get-subscription-tenant-id) in the Microsoft Docs + +## Connecting your Azure subscription + +After creation of your new enterprise on {% data variables.product.prodname_dotcom_the_website %}, to begin usage-based billing through Azure, you must connect your Azure subscription. + +> [!IMPORTANT] If you don't use {% data variables.product.prodname_emus %}, connection of an Azure subscription will immediately end your trial and begin paid usage. + +For more information, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription#connecting-your-azure-subscription-to-your-enterprise-account)." + +## What does my Azure invoice look like? + +After you connect your Azure subscription, usage for {% data variables.product.company_short %}'s products will appear on your Azure invoice, summarized by product family. For example, if you use this billing arrangement for {% data variables.product.prodname_ghe_cloud %} and {% data variables.product.prodname_GH_advanced_security %}, usage and price excluding tax for each line item will appear as follows. + +| Product Family Usage Charges | Total (excluding Tax) | +| :- | :- | +| GH ENTERPRISE | AMOUNT | +| GH ADVANCED SECURITY | AMOUNT | + +For more information about your Azure invoice, see [Understand terms on your Microsoft Azure invoice](https://learn.microsoft.com/azure/cost-management-billing/understand/understand-invoice) in the Microsoft Docs. + +The {% data variables.product.company_short %} products on your Azure invoice are also MACC-eligible. For more information, see [Track your Microsoft Azure Consumption Commitment (MACC)](https://learn.microsoft.com/azure/cost-management-billing/manage/track-consumption-commitment) in the Microsoft Docs. + ## Viewing payment information You can view and edit your billing information, update your payment method, and view active coupons. diff --git a/data/features/enhanced-billing-platform.yml b/data/features/enhanced-billing-platform.yml index 2f0275b59d..67e2a6d2d2 100644 --- a/data/features/enhanced-billing-platform.yml +++ b/data/features/enhanced-billing-platform.yml @@ -1,3 +1,4 @@ # Versions for which the enhanced billing platform is available versions: ghec: '*' + ghes: '>=3.12' diff --git a/data/features/metered-ghe-ghas.yml b/data/features/metered-ghe-ghas.yml new file mode 100644 index 0000000000..d67632d73e --- /dev/null +++ b/data/features/metered-ghe-ghas.yml @@ -0,0 +1,6 @@ +# Reference: 13369 +# Documentation for metered GHE/GHAS. + +versions: + ghec: '*' + ghes: '>=3.14' diff --git a/data/reusables/advanced-security/purchase-ghas.md b/data/reusables/advanced-security/purchase-ghas.md index d4552b84e2..74a42eb5d8 100644 --- a/data/reusables/advanced-security/purchase-ghas.md +++ b/data/reusables/advanced-security/purchase-ghas.md @@ -1,3 +1,5 @@ 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)." + + You won't see this option if you're enrolled in usage-based billing for {% data variables.product.prodname_GH_advanced_security %} licenses. 1. Confirm your billing information and payment method. 1. Click **Purchase Advanced Security**. diff --git a/data/reusables/billing/ghas-metered-billing-note-with-link.md b/data/reusables/billing/ghas-metered-billing-note-with-link.md new file mode 100644 index 0000000000..815bf2d9ae --- /dev/null +++ b/data/reusables/billing/ghas-metered-billing-note-with-link.md @@ -0,0 +1 @@ +If you started a free trial of {% data variables.product.prodname_GH_advanced_security %} during your {% data variables.product.prodname_ghe_cloud %} trial on or after August 1, 2024, your billing for {% data variables.product.prodname_GH_advanced_security %} will be usage-based. See, "[AUTOTITLE](/billing/managing-billing-for-github-advanced-security/about-billing-for-github-advanced-security#usage-based-billing-for-github-advanced-security)." diff --git a/data/reusables/billing/usage-based-billing.md b/data/reusables/billing/usage-based-billing.md new file mode 100644 index 0000000000..24b3b4f38d --- /dev/null +++ b/data/reusables/billing/usage-based-billing.md @@ -0,0 +1,3 @@ +If you created a trial of {% data variables.product.prodname_ghe_cloud %} on or after August 1, 2024, you use usage-based billing to pay for your licenses. With usage-based billing, you pay for the number of licenses you use each month. You do not need to buy a predefined number of licenses in advance. See, "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/about-usage-based-billing-for-licenses)." + +> [!IMPORTANT] If you currently pay for your {% data variables.product.prodname_enterprise %} licenses through a volume, subscription, or prepaid agreement, you will continue to be billed in this way until your agreement expires. At renewal, you have the option to switch to the metered billing model. See "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/getting-started-with-the-enhanced-billing-platform)." diff --git a/data/reusables/dotcom_billing/payment-methods.md b/data/reusables/dotcom_billing/payment-methods.md index 77dd030dea..792afc5556 100644 --- a/data/reusables/dotcom_billing/payment-methods.md +++ b/data/reusables/dotcom_billing/payment-methods.md @@ -1 +1,13 @@ +{% ifversion metered-ghe-ghas %} + +If your {% data variables.product.prodname_ghe_cloud %} account uses metered billing, you can pay for your licenses with a credit card, PayPal, or through an Azure subscription. For purchase orders, contact your account manager in {% data variables.contact.contact_enterprise_sales %}. + +> [!IMPORTANT] If you currently pay for your {% data variables.product.prodname_enterprise %} licenses through a volume, subscription, or prepaid agreement, you will continue to be billed in this way until your agreement expires. At renewal, you have the option to switch to the metered billing model. See, "[AUTOTITLE](/billing/using-the-enhanced-billing-platform-for-enterprises/getting-started-with-the-enhanced-billing-platform)." +> +> If you do not have an account manager and pay for {% data variables.product.prodname_enterprise %} via credit card or PayPal, the transition to usage-based billing will be prompted by the product in the future, but this is not currently supported. + +{% else %} + You can pay for {% data variables.product.product_name %} with a credit card or with a PayPal account. + +{% endif %} diff --git a/data/reusables/enterprise/enterprise-types.md b/data/reusables/enterprise/enterprise-types.md new file mode 100644 index 0000000000..794f9364e2 --- /dev/null +++ b/data/reusables/enterprise/enterprise-types.md @@ -0,0 +1,8 @@ +## About enterprise types + +While setting up your trial of {% data variables.product.prodname_ghe_cloud %}, you'll choose an enterprise type. + +* Enterprise with personal accounts +* Enterprise with managed users + +To help you decide which choice is best for your enterprise, see "[AUTOTITLE]({% ifversion not ghec%}/enterprise-cloud@latest{% endif %}/admin/identity-and-access-management/understanding-iam-for-enterprises/choosing-an-enterprise-type-for-github-enterprise-cloud){% ifversion not ghec %}" in the {% data variables.product.prodname_ghe_cloud %} documentation.{% else %}."{% endif %} From e4bb1336b7f25b2775fff9c4d314401bf638483c Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Thu, 1 Aug 2024 17:29:56 +0200 Subject: [PATCH 11/24] 8/1: GHE metered launch - Establishing CSP guidance (#51687) --- ...rise-account-as-a-microsoft-csp-partner.md | 67 +++++++++++++++++++ ...nterprise-account-on-behalf-of-a-client.md | 12 ++-- .../index.md | 2 +- .../change-role-to-billing-manager.md | 5 ++ .../tenant-app-permissions.md | 2 +- 5 files changed, 79 insertions(+), 9 deletions(-) create mode 100644 content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-an-enterprise-account-as-a-microsoft-csp-partner.md create mode 100644 data/reusables/enterprise-accounts/change-role-to-billing-manager.md diff --git a/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-an-enterprise-account-as-a-microsoft-csp-partner.md b/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-an-enterprise-account-as-a-microsoft-csp-partner.md new file mode 100644 index 0000000000..1b441c435a --- /dev/null +++ b/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-an-enterprise-account-as-a-microsoft-csp-partner.md @@ -0,0 +1,67 @@ +--- +title: Creating an enterprise account as a Microsoft CSP partner +intro: 'Learn how to set up an enterprise account for your customer as a Microsoft Cloud Solution Provider partner.' +versions: + fpt: '*' + ghec: '*' +type: quick_start +topics: + - User account + - Enterprise + - Upgrades +shortTitle: As a Microsoft CSP partner +--- + +As a Microsoft Cloud Solution Provider (CSP) partner, you can create an enterprise account on {% data variables.product.prodname_dotcom %} on behalf of your customer. You can also invite your customer to become an enterprise owner. + +## Requirements + +Before you start, make sure you know: +* The {% data variables.product.prodname_dotcom %} username of the client who will become the owner of the enterprise account you create +* The name your client would like to use for the enterprise account +* The email address where you would like receipts to be sent + +## Step 1: Create the enterprise account + +As a Microsoft CSP partner, you can get started with {% data variables.product.prodname_enterprise %} from the Microsoft Azure portal. + +1. Sign in to the Microsoft Azure portal. +1. In the search bar, type "{% data variables.product.prodname_dotcom %}" and select **{% data variables.product.prodname_dotcom %}** to go the landing page. +1. Select **Get started with {% data variables.product.prodname_enterprise %}**. +1. Choose an enterprise type. To help you decide which choice is best for the enterprise, see "[AUTOTITLE](/admin/identity-and-access-management/understanding-iam-for-enterprises/choosing-an-enterprise-type-for-github-enterprise-cloud)." +1. Complete the form with your client's information. +1. Click **Create your enterprise**. + +## Step 2: Purchase {% data variables.product.prodname_enterprise %} + +At any time during the trial, you can purchase {% data variables.product.prodname_enterprise %} for your client by adding your Azure subscription. If you ever hand over the enterprise account to your customer, you will need to remove your Azure subscription. + +{% data reusables.enterprise-accounts.access-enterprise %} +1. At the top of the page, in the blue banner, click **Activate Enterprise**. +1. Click **Add Azure subscription**. +1. To sign in to your Microsoft account, follow the prompts. +1. Review the "Permissions requested" prompt. If you agree with the terms, click **Accept**. + + If you don't see a "Permissions requested" prompt, and instead see a message indicating that you need admin approval, see "[AUTOTITLE](/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription#message-need-admin-approval)." + +1. Under "Select a subscription", select the Azure Subscription ID that you want to connect to your organization. {% data reusables.enterprise-accounts.tenant-app-permissions %} + {% data reusables.enterprise-accounts.connect-azure %} + +1. Click **Activate Enterprise**. + +## Step 3: Invite your client as an enterprise owner + +Invite your client to become an enterprise owner. See "[AUTOTITLE](/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/inviting-people-to-manage-your-enterprise#inviting-an-enterprise-administrator-to-your-enterprise-account)." + +## Step 4: Change your role to billing manager + +Optionally, you can change your role to billing manager to manage the billing for the enterprise account, without having full administrative access. + +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.people-tab %} +{% data reusables.enterprise-accounts.administrators-tab %} +{% data reusables.enterprise-accounts.change-role-to-billing-manager %} + +## Contacting support + +As a Microsoft CSP partner, you can use the [{% data variables.contact.github_support %} for Microsoft CSP](https://support.github.com/contact?tags=partner-microsoft-csp) landing page to speak to {% data variables.contact.github_support %}. For more information about creating a support ticket, see "[AUTOTITLE](/support/contacting-github-support/creating-a-support-ticket)." diff --git a/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-and-paying-for-an-enterprise-account-on-behalf-of-a-client.md b/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-and-paying-for-an-enterprise-account-on-behalf-of-a-client.md index ef72feb480..e4019439c0 100644 --- a/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-and-paying-for-an-enterprise-account-on-behalf-of-a-client.md +++ b/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-and-paying-for-an-enterprise-account-on-behalf-of-a-client.md @@ -12,6 +12,8 @@ topics: shortTitle: On behalf of a client --- +>[!NOTE] If you are a Microsoft Cloud Solution Provider (CSP) partner and want to create an enterprise account for your customer, see "[AUTOTITLE](/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/creating-an-enterprise-account-as-a-microsoft-csp-partner)." + ## Requirements Before you start, make sure you know: @@ -54,13 +56,9 @@ Invite your client to become an enterprise owner. For more information, see "[AU {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.people-tab %} {% data reusables.enterprise-accounts.administrators-tab %} -1. Confirm that your client is listed as an enterprise owner. -1. To the right of your username, select the {% octicon "kebab-horizontal" aria-label="Administrator settings" %} dropdown menu, then click **Change role**. - - ![Screenshot of a user in the administrators list. A dropdown menu, labeled with a kebab icon, is highlighted with an orange outline.](/assets/images/help/business-accounts/administrator-settings.png) -1. Select **Billing manager**, then click **Change role**. +{% data reusables.enterprise-accounts.change-role-to-billing-manager %} ## Next steps -1. If you would like your credit card to be removed from the enterprise account so that it's not charged again, contact {% data variables.contact.contact_support %}. -1. When it's time to renew your client's paid subscription, see "[AUTOTITLE](/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/renewing-your-clients-enterprise-account)." +{% ifversion fpt %}1. If you would like your credit card to be removed from the enterprise account so that it's not charged again, contact {% data variables.contact.contact_support %}. +1. {% endif %}When it's time to renew your client's paid subscription, see "[AUTOTITLE](/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/renewing-your-clients-enterprise-account)." diff --git a/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/index.md b/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/index.md index bdf28d7ef2..c755ae27d2 100644 --- a/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/index.md +++ b/content/billing/setting-up-paid-accounts-for-procurement-companies/setting-up-enterprise-accounts-for-procurement-companies/index.md @@ -9,5 +9,5 @@ children: - /about-enterprise-accounts-for-procurement-companies - /creating-and-paying-for-an-enterprise-account-on-behalf-of-a-client - /renewing-your-clients-enterprise-account + - /creating-an-enterprise-account-as-a-microsoft-csp-partner --- - diff --git a/data/reusables/enterprise-accounts/change-role-to-billing-manager.md b/data/reusables/enterprise-accounts/change-role-to-billing-manager.md new file mode 100644 index 0000000000..8fc6da17ce --- /dev/null +++ b/data/reusables/enterprise-accounts/change-role-to-billing-manager.md @@ -0,0 +1,5 @@ +1. Confirm that your client is listed as an enterprise owner. +1. To the right of your username, select the {% octicon "kebab-horizontal" aria-label="Administrator settings" %} dropdown menu, then click **Change role**. + + ![Screenshot of a user in the administrators list. A dropdown menu, labeled with a kebab icon, is highlighted with an orange outline.](/assets/images/help/business-accounts/administrator-settings.png) +1. Select **Billing manager**, then click **Change role**. diff --git a/data/reusables/enterprise-accounts/tenant-app-permissions.md b/data/reusables/enterprise-accounts/tenant-app-permissions.md index 334177b2d5..0218bba525 100644 --- a/data/reusables/enterprise-accounts/tenant-app-permissions.md +++ b/data/reusables/enterprise-accounts/tenant-app-permissions.md @@ -1 +1 @@ -To select an Azure subscription, you must have owner permissions to the subscription. If the default tenant does not have the right permissions, you may need to specify a different tenant ID. For more information, see "[Prerequisites](#prerequisites)" and [Microsoft identity platform and OAuth 2.0 authorization code flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#request-an-authorization-code) in Microsoft Docs. +To select an Azure subscription, you must have owner permissions to the subscription. If the default tenant does not have the right permissions, you may need to specify a different tenant ID. For more information, see "[Prerequisites](/billing/managing-the-plan-for-your-github-account/connecting-an-azure-subscription#prerequisites)" and [Microsoft identity platform and OAuth 2.0 authorization code flow](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow#request-an-authorization-code) in Microsoft Docs. From 2ac36e32ce9d53128563363671267c83240d00a4 Mon Sep 17 00:00:00 2001 From: Sarah Edwards Date: Thu, 1 Aug 2024 08:39:17 -0700 Subject: [PATCH 12/24] Document GitHub Models (#51698) Co-authored-by: SiaraMist Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- .../about-building-integrations.md | 2 + content/github-models/index.md | 11 ++ .../prototyping-with-ai-models.md | 153 ++++++++++++++++++ .../responsible-use-of-github-models.md | 12 ++ content/index.md | 3 +- data/features/github-models.yml | 5 + .../copilot/differences-cfi-cfb-table.md | 2 + data/variables/product.yml | 1 + 8 files changed, 188 insertions(+), 1 deletion(-) create mode 100644 content/github-models/index.md create mode 100644 content/github-models/prototyping-with-ai-models.md create mode 100644 content/github-models/responsible-use-of-github-models.md create mode 100644 data/features/github-models.yml diff --git a/content/get-started/exploring-integrations/about-building-integrations.md b/content/get-started/exploring-integrations/about-building-integrations.md index 05a1e9ce37..5be98d820f 100644 --- a/content/get-started/exploring-integrations/about-building-integrations.md +++ b/content/get-started/exploring-integrations/about-building-integrations.md @@ -24,3 +24,5 @@ Your integration can use {% data variables.product.company_short %}'s API to fet Your integration can use webhooks to learn when specific events happen on {% data variables.product.company_short %}. For more information, see "[AUTOTITLE](/webhooks/about-webhooks)." {% ifversion fpt or ghec %} If your integration is a {% data variables.product.prodname_github_app %} or custom action, you can publish your integration on {% data variables.product.prodname_marketplace %}. For more information, see "[AUTOTITLE](/apps/github-marketplace/github-marketplace-overview/about-github-marketplace-for-apps)" and "[AUTOTITLE](/actions/creating-actions/publishing-actions-in-github-marketplace)."{% endif %} + +If your integration uses generative AI, you can find and experiment with AI models for free on {% data variables.product.company_short %}. See "[AUTOTITLE](/github-models/prototyping-with-ai-models)." diff --git a/content/github-models/index.md b/content/github-models/index.md new file mode 100644 index 0000000000..6d6e9ce837 --- /dev/null +++ b/content/github-models/index.md @@ -0,0 +1,11 @@ +--- +title: GitHub Models +intro: 'Find and experiment with AI models for free.' +versions: + fpt: '*' + ghes: '*' + ghec: '*' +children: + - /prototyping-with-ai-models + - /responsible-use-of-github-models +--- diff --git a/content/github-models/prototyping-with-ai-models.md b/content/github-models/prototyping-with-ai-models.md new file mode 100644 index 0000000000..d706a86b58 --- /dev/null +++ b/content/github-models/prototyping-with-ai-models.md @@ -0,0 +1,153 @@ +--- +title: Prototyping with AI models +intro: 'Find and experiment with AI models for free.' +versions: + feature: github-models +--- + +If you want to develop a generative AI application, you can use {% data variables.product.prodname_github_models %} to find and experiment with AI models for free. Once you are ready to bring your application to production, you can switch to a token from a paid Azure account. See the [Azure AI](https://ai.azure.com/github/model/docs) documentation. + +See also "[AUTOTITLE](/github-models/responsible-use-of-github-models)." + +## Finding AI models + +To find AI models, go to [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace/models), then click {% octicon "ai-model" aria-hidden="true" %} **Models** in the sidebar. + +To view details about a model, click on the model's name. + +## Experimenting with AI models in the playground + +>[!NOTE] +> +> The playground is in limited public beta and subject to change. To request access, [join the waitlist](https://github.com/marketplace/models/waitlist). + +{% data variables.product.prodname_marketplace %} provides a free playground where you can adjust model parameters and submit prompts to see how the model responds. + +To open the playground, go to [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace/models), then click {% octicon "ai-model" aria-hidden="true" %} **Models** in the sidebar. Click on a model's name, then click {% octicon "command-palette" aria-hidden="true" %} **Playground**. + +To adjust parameters for the model, select the **Parameters** tab in the sidebar. To see code that corresponds to the parameters that you selected, switch from the **Chat** tab to the **Code** tab. + +The playground is rate limited. See [Rate limits](#rate-limits) below. + +## Experimenting with AI models using the API + +>[!NOTE] +> +> The free API usage is in limited public beta and subject to change. To request access, [join the waitlist](https://github.com/marketplace/models/waitlist). + +{% data variables.product.company_short %} provides free API usage so that you can experiment with AI models in your own application. + +To learn how to use a model in your application, go to [{% data variables.product.prodname_marketplace %}](https://github.com/marketplace/models), then click {% octicon "ai-model" aria-hidden="true" %} **Models** in the sidebar. Click on a model's name, then click {% octicon "code" aria-hidden="true" %} **Code**. + +The steps to use each model are similar. In general, you will need to: + +1. Optionally, use the language dropdown to select the programming language. +1. Optionally, use the SDK dropdown to select which SDK to use. + + All models can be used with the Azure AI Inference SDK, and some models support additional SDKs. If you want to easily switch between models, you should select "Azure AI Inference SDK". If you selected "REST" as the language, you won't use an SDK. Instead, you will use the API endpoint directly. +1. Either open a codespace, or set up your local environment: + * To run in a codespace, click {% octicon "codespaces" aria-hidden="true" %} **Run codespace**, then click **Create new codespace**. + * To run locally: + * Create a {% data variables.product.company_short %} {% data variables.product.pat_generic %}. The token should not have any scopes or permissions. See "[AUTOTITLE](/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)." + * Save your token as an environment variable. + * Install the dependencies for the SDK, if required. +1. Use the example code to make a request to the model. + +The free API usage is rate limited. See [Rate limits](#rate-limits) below. + +## Going to production + +The rate limits for the playground and free API usage are intended to help you experiment with models and develop your AI application. Once you are ready to bring your application to production, you can use a token from a paid Azure account instead of your {% data variables.product.company_short %} {% data variables.product.pat_generic %}. You don't need to change anything else in your code. For more information, see the [Azure AI](https://ai.azure.com/github/model/docs) documentation. + +## Rate limits + +The playground and free API usage are rate limited by requests per minute, requests per day, tokens per request, and concurrent requests. If you get rate limited, you will need to wait for the rate limit that you hit to reset before you can make more requests. + +Low, high, and embedding models have different rate limits. To see which type of model you are using, refer to the model's information in {% data variables.product.prodname_marketplace %}. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Rate limit tierRate limitsFree and Copilot IndividualCopilot BusinessCopilot Enterprise
LowRequests per minute151520
Requests per day150300450
Tokens per request8000 in, 4000 out8000 in, 4000 out8000 in, 8000 out
Concurrent requests558
HighRequests per minute101015
Requests per day50100150
Tokens per request8000 in, 4000 out8000 in, 4000 out16000 in, 8000 out
Concurrent requests224
EmbeddingRequests per minute151520
Requests per day150300450
Tokens per request640006400064000
Concurrent requests558
+ +These limits are subject to change without notice. diff --git a/content/github-models/responsible-use-of-github-models.md b/content/github-models/responsible-use-of-github-models.md new file mode 100644 index 0000000000..0ab3b65fe1 --- /dev/null +++ b/content/github-models/responsible-use-of-github-models.md @@ -0,0 +1,12 @@ +--- +title: Responsible use of GitHub Models +shortTitle: Responsible use +intro: 'Learn how to use {% data variables.product.prodname_github_models %} responsibly by understanding its purposes, capabilities, and limitations.' +versions: + feature: github-models +type: rai +--- + +With {% data variables.product.prodname_github_models %}, you build your understanding of AI model capabilities by experimenting with model settings and sending prompts through a chat interface. Additionally, you can directly interact with models through an SDK. Refer to a model's "Getting Started" tab for more information about how to use the SDK. Refer to a model’s "README" tab for more information on the model. Remember when interacting with a model you are experimenting with AI, so content mistakes are possible. + +{% data variables.product.prodname_github_models %} is designed to allow for learning, experimentation and proof-of-concept activities. The feature is subject to various limits (including requests per minute, requests per day, tokens per request, and concurrent requests) and is not designed for production use cases. {% data variables.product.prodname_github_models %} employs a number of [content filters](https://azure.microsoft.com/en-us/products/ai-services/ai-content-safety). These filters cannot be turned off as part of the {% data variables.product.prodname_github_models %} experience. If you decide to employ models through [Azure AI](https://ai.azure.com/github/model/docs) or a paid service, please configure your content filters to meet your requirements. diff --git a/content/index.md b/content/index.md index 106dfefd5f..f07db6050e 100644 --- a/content/index.md +++ b/content/index.md @@ -82,6 +82,7 @@ children: - support - video-transcripts - contributing + - github-models childGroups: - name: Get started octicon: RocketIcon @@ -133,6 +134,7 @@ childGroups: - rest - graphql - webhooks + - github-models - name: Enterprise and Teams octicon: OrganizationIcon children: @@ -169,4 +171,3 @@ externalProducts: href: 'https://docs.npmjs.com/' external: true --- - diff --git a/data/features/github-models.yml b/data/features/github-models.yml new file mode 100644 index 0000000000..1dff13223b --- /dev/null +++ b/data/features/github-models.yml @@ -0,0 +1,5 @@ +# GitHub Models (AI models on GitHub Marketplace) +versions: + fpt: '*' + ghec: '*' + ghes: '*' diff --git a/data/reusables/copilot/differences-cfi-cfb-table.md b/data/reusables/copilot/differences-cfi-cfb-table.md index fcb287ba02..e2c2dac1f8 100644 --- a/data/reusables/copilot/differences-cfi-cfb-table.md +++ b/data/reusables/copilot/differences-cfi-cfb-table.md @@ -15,9 +15,11 @@ | {% data variables.product.prodname_copilot_chat_short %} skills in IDEs[^3] | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_copilot_for_prs %} | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | | {% data variables.product.prodname_copilot_short %} knowledge bases | {% octicon "x" aria-label="Not included" %} | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | +| Increased {% data variables.product.prodname_github_models %} rate limits[^4] | {% octicon "x" aria-label="Not included" %} | {% octicon "check" aria-label="Included" %} | {% octicon "check" aria-label="Included" %} | {% endrowheaders %} [^1]: Code completion in IDEs is available in {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, JetBrains IDEs, Azure Data Studio, and Vim/Neovim. [^2]: {% data variables.product.prodname_copilot_chat_short %} in IDEs is available in {% data variables.product.prodname_vscode %}, {% data variables.product.prodname_vs %}, and JetBrains IDEs. [^3]: {% data variables.product.prodname_copilot_chat_short %} skills in IDEs is available in {% data variables.product.prodname_vscode %} and {% data variables.product.prodname_vs %}. +[^4]: For details about the increased rate limits, see "[AUTOTITLE](/github-models/prototyping-with-ai-models)." diff --git a/data/variables/product.yml b/data/variables/product.yml index 08dbf4b0b5..3fa593b24c 100644 --- a/data/variables/product.yml +++ b/data/variables/product.yml @@ -127,6 +127,7 @@ prodname_github_app: 'GitHub App' prodname_github_apps: 'GitHub Apps' prodname_oauth_app: 'OAuth app' prodname_oauth_apps: 'OAuth apps' +prodname_github_models: 'GitHub Models' # API and developer docs prodname_enterprise_api: 'GitHub Enterprise Server APIs' From 37b7474147464b349031d9e86af3451bb9e5ada6 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Thu, 1 Aug 2024 09:34:23 -0700 Subject: [PATCH 13/24] Update audit log event data (#51880) --- src/audit-logs/data/ghes-3.14/enterprise.json | 35 +++++++++++++++++++ src/audit-logs/lib/config.json | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/audit-logs/data/ghes-3.14/enterprise.json b/src/audit-logs/data/ghes-3.14/enterprise.json index c7aa5beda4..06f490b243 100644 --- a/src/audit-logs/data/ghes-3.14/enterprise.json +++ b/src/audit-logs/data/ghes-3.14/enterprise.json @@ -739,6 +739,41 @@ "description": "The GitHub Actions runner application was updated. This event is not included in the JSON/CSV export.", "docs_reference_links": "/actions/hosting-your-own-runners/managing-self-hosted-runners/about-self-hosted-runners#about-self-hosted-runners" }, + { + "action": "enterprise_team.add_member", + "description": "A new member was added to the enterprise team or an IdP group linked to an enterprise team, or an IdP group was linked to an enterprise team.", + "docs_reference_links": "N/A" + }, + { + "action": "enterprise_team.copilot_assignment", + "description": "A license for GitHub Copilot was assigned to an enterprise team.", + "docs_reference_links": "N/A" + }, + { + "action": "enterprise_team.copilot_unassignment", + "description": "A license for GitHub Copilot was unassigned from an enterprise team.", + "docs_reference_links": "N/A" + }, + { + "action": "enterprise_team.create", + "description": "A new enterprise team was created.", + "docs_reference_links": "N/A" + }, + { + "action": "enterprise_team.destroy", + "description": "An enterprise team was deleted.", + "docs_reference_links": "N/A" + }, + { + "action": "enterprise_team.remove_member", + "description": "A member was removed from the enterprise team or an IdP group linked to an enterprise team, or an IdP group was unlinked from an enterprise team.", + "docs_reference_links": "N/A" + }, + { + "action": "enterprise_team.rename", + "description": "The name of an enterprise team was changed.", + "docs_reference_links": "N/A" + }, { "action": "environment.add_protection_rule", "description": "A GitHub Actions deployment protection rule was created via the API.", diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index fb37ba8a11..6a0d9545bb 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -3,5 +3,5 @@ "apiOnlyEvents": "This event is not available in the web interface, only via the REST API, audit log streaming, or JSON/CSV exports.", "apiRequestEvent": "This event is only available via audit log streaming." }, - "sha": "30217ac43ec0656893545fab667dc2a45a6e1704" + "sha": "88f2c92a3b6448739b534544bd096c4acb7c6515" } \ No newline at end of file From d0987c9d98b558b2a3e364a00bfc714c53a922ec Mon Sep 17 00:00:00 2001 From: Jess Hosman <1183847+jhosman@users.noreply.github.com> Date: Thu, 1 Aug 2024 10:46:24 -0600 Subject: [PATCH 14/24] Reconcile articles about copilot usage (#51866) --- .../index.md | 4 ++-- ...g-copilot-license-usage-in-your-enterprise.md} | 15 +++++++-------- .../index.md | 3 ++- ...vity-data-for-copilot-in-your-organization.md} | 10 ++++++---- 4 files changed, 17 insertions(+), 15 deletions(-) rename content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/{viewing-copilot-usage-for-your-enterprise.md => viewing-copilot-license-usage-in-your-enterprise.md} (89%) rename content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/{reviewing-usage-data-for-github-copilot-in-your-organization.md => reviewing-user-activity-data-for-copilot-in-your-organization.md} (88%) diff --git a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/index.md b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/index.md index f2f989a051..13fd5caab2 100644 --- a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/index.md +++ b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/index.md @@ -9,7 +9,7 @@ topics: children: - /enabling-copilot-for-organizations-in-your-enterprise - /disabling-copilot-for-organizations-in-your-enterprise - - /viewing-copilot-usage-for-your-enterprise + - /viewing-copilot-license-usage-in-your-enterprise - /managing-github-copilot-access-to-your-enterprises-network - --- + diff --git a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/viewing-copilot-usage-for-your-enterprise.md b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/viewing-copilot-license-usage-in-your-enterprise.md similarity index 89% rename from content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/viewing-copilot-usage-for-your-enterprise.md rename to content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/viewing-copilot-license-usage-in-your-enterprise.md index c28791bd24..3288bb0363 100644 --- a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/viewing-copilot-usage-for-your-enterprise.md +++ b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/viewing-copilot-license-usage-in-your-enterprise.md @@ -1,17 +1,18 @@ --- -title: Viewing Copilot usage for your enterprise +title: Viewing Copilot license usage in your enterprise +shortTitle: View license usage intro: 'View how many users have access to {% data variables.product.prodname_copilot %} across {% ifversion fpt %}your organization{% else %} all the organizations in your enterprise{% endif %}.' -product: '{% data reusables.gated-features.copilot-billing %}' -permissions: '{% ifversion fpt %}Organization admins{% else %}Enterprise owners{% endif %} can view usage for {% data variables.product.prodname_copilot %} in their {% ifversion fpt %}organization{% else %}enterprise{% endif %}.' +product: 'Enterprises with a subscription to {% data variables.product.prodname_copilot_enterprise_short %} or {% data variables.product.prodname_copilot_business_short %}' +permissions: Enterprise owners versions: feature: copilot-enterprise type: how_to topics: - Copilot -shortTitle: View usage redirect_from: - /copilot/managing-copilot/managing-copilot-for-your-enterprise/viewing-your-github-copilot-usage - /copilot/managing-copilot/managing-copilot-for-your-enterprise/viewing-copilot-usage-for-your-enterprise + - /copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-access-to-copilot-in-your-enterprise/viewing-copilot-usage-for-your-enterprise --- {% ifversion enhanced-billing-platform %} @@ -26,9 +27,7 @@ If you have a subscription to {% data variables.product.prodname_copilot_for_bus {% ifversion ghec %} -## Viewing usage of {% data variables.product.prodname_copilot %} - -### At the enterprise-level +## Viewing {% data variables.product.prodname_copilot_short %} license usage at the enterprise-level {% data reusables.enterprise-accounts.access-enterprise %} {% data reusables.enterprise-accounts.settings-tab %} @@ -45,7 +44,7 @@ If you have a subscription to {% data variables.product.prodname_copilot_for_bus ![Screenshot of the header of the billing settings page on GitHub. A button, labeled "Get usage report", is highlighted with an orange outline.](/assets/images/help/billing/actions-packages-report-download-enterprise.png) -### At the organization-level +## Viewing {% data variables.product.prodname_copilot_short %} license usage at the organization-level {% else %} diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md index 34ebdcfbf0..e7412e60dd 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/index.md @@ -11,9 +11,10 @@ children: - /managing-requests-for-copilot-business-in-your-organization - /revoking-access-to-copilot-for-members-of-your-organization - /managing-github-copilot-access-to-your-organizations-network - - /reviewing-usage-data-for-github-copilot-in-your-organization + - /reviewing-user-activity-data-for-copilot-in-your-organization - /reviewing-changes-to-content-exclusions-for-github-copilot - /reviewing-audit-logs-for-copilot-business redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-github-copilot-activity-in-your-organization --- + diff --git a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization.md b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md similarity index 88% rename from content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization.md rename to content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md index f00947a89c..2274a31a06 100644 --- a/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization.md +++ b/content/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-user-activity-data-for-copilot-in-your-organization.md @@ -1,8 +1,9 @@ --- -title: Reviewing usage data for GitHub Copilot in your organization -shortTitle: Usage data +title: Reviewing user activity data for Copilot in your organization +shortTitle: User activity data intro: 'Review {% data variables.product.prodname_copilot %} usage in your organization to make informed decisions about seat assignment.' -permissions: 'Organization owners for organizations with a subscription to {% ifversion ghec %}{% data variables.product.prodname_copilot_enterprise_short %} or{% endif %} {% data variables.product.prodname_copilot_business_short %}.' +permissions: Organization owners +product: 'Organizations with a subscription to {% ifversion ghec %}{% data variables.product.prodname_copilot_enterprise_short %} or{% endif %} {% data variables.product.prodname_copilot_business_short %}' versions: feature: copilot topics: @@ -12,9 +13,10 @@ redirect_from: - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization - /billing/managing-billing-for-github-copilot/viewing-your-github-copilot-usage - /copilot/managing-copilot/managing-github-copilot-in-your-organization/reviewing-github-copilot-activity-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization + - /copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-access-to-github-copilot-in-your-organization/reviewing-usage-data-for-github-copilot-in-your-organization --- -## Reviewing usage data for {% data variables.product.prodname_copilot %} in your organization +## Reviewing user activity data for {% data variables.product.prodname_copilot_short %} {% data reusables.profile.access_org %} {% data reusables.profile.org_settings %} From 27752c4ab07baa2b7e3889994cb8a813f443d503 Mon Sep 17 00:00:00 2001 From: Isaac Brown <101839405+isaacmbrown@users.noreply.github.com> Date: Thu, 1 Aug 2024 20:45:37 +0100 Subject: [PATCH 15/24] Document email verification for EMUs (#51813) Co-authored-by: Ben Ahmady <32935794+subatoi@users.noreply.github.com> Co-authored-by: Siara <108543037+SiaraMist@users.noreply.github.com> --- .../changing-your-primary-email-address.md | 11 +++++---- .../verifying-your-email-address.md | 23 ++++++++++++++++++- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md index 94829c8086..9d1ef6e1af 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md @@ -1,6 +1,6 @@ --- title: Changing your primary email address -intro: You can change the email address associated with your personal account at any time. +intro: To change your primary email address, you'll add a new email, then delete the old one. redirect_from: - /articles/changing-your-primary-email-address - /github/setting-up-and-managing-your-github-user-account/changing-your-primary-email-address @@ -15,11 +15,14 @@ topics: - Notifications shortTitle: Primary email address --- -{% note %} -**Note:** You cannot change your primary email address to an email that is already set to be your backup email address. +You can change the email address associated with your personal account at any time. You cannot change your primary email address to an email that is already set to be your backup email address. -{% endnote %} +{% ifversion ghec %} + +[!NOTE] This article **does not apply** to {% data variables.enterprise.prodname_managed_users %}. To change your email address as a {% data variables.enterprise.prodname_managed_user %}, contact the administrator for your company's identity provider (IdP). Your primary email address is the first one assigned to you in the IdP. + +{% endif %} {% data reusables.user-settings.access_settings %} {% data reusables.user-settings.emails %} diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address.md index e55dc4e971..e5b2cf292a 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/verifying-your-email-address.md @@ -15,7 +15,8 @@ topics: - Accounts shortTitle: Verify your email address --- -## About email verification + +## About email verification{% ifversion ghec %} for personal accounts{% endif %} You can verify your email address after signing up for a new account, or when you add a new email address. If an email address is undeliverable or bouncing, it will be unverified. @@ -42,6 +43,16 @@ If you do not verify your email address, you will not be able to: {% endwarning %} +{% ifversion ghec %} + +## About email verification{% ifversion ghec %} for {% data variables.enterprise.prodname_managed_users %}{% endif %} + +If you are a member of an {% data variables.enterprise.prodname_emu_enterprise %}, your email address is considered unverified if it is used as a verified email by another account on {% data variables.product.prodname_dotcom %}. To verify the email, you will need to unverify the email address for the other account, then verify it for your {% data variables.enterprise.prodname_managed_user %}. See "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address)." + +Having an unverified email address does not affect most actions you can take on {% data variables.product.prodname_dotcom %}. However, it may prevent you from accessing some third-party {% data variables.product.prodname_github_apps %} and {% data variables.product.prodname_oauth_apps %}. + +{% endif %} + ## Verifying your email address {% data reusables.user-settings.access_settings %} @@ -68,6 +79,16 @@ If you click on the link in the confirmation email within 24 hours and you are d 1. Sign in to your personal account on {% data variables.location.product_location %}. 1. Click on the verification link in the email we sent you. +{% ifversion ghec %} + +### Email is already verified by another user + +If you see the error message `Error adding EMAIL: Email is already verified by another user`, you must either unverify the email for the other account before proceeding, or choose a different email address to verify. + +To unverify an email address, delete it in your email settings, then optionally re-add it without verifying to keep any commits linked to your account. See "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address)." + +{% endif %} + ## Further reading * "[AUTOTITLE](/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address)" From df9b28335bb03166f492a1e9bafbbf6cfa36ebd4 Mon Sep 17 00:00:00 2001 From: Siara <108543037+SiaraMist@users.noreply.github.com> Date: Thu, 1 Aug 2024 13:12:09 -0700 Subject: [PATCH 16/24] Fix note syntax (#51884) --- .../changing-your-primary-email-address.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md index 9d1ef6e1af..4b9f780b2c 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-email-preferences/changing-your-primary-email-address.md @@ -20,7 +20,7 @@ You can change the email address associated with your personal account at any ti {% ifversion ghec %} -[!NOTE] This article **does not apply** to {% data variables.enterprise.prodname_managed_users %}. To change your email address as a {% data variables.enterprise.prodname_managed_user %}, contact the administrator for your company's identity provider (IdP). Your primary email address is the first one assigned to you in the IdP. +>[!NOTE] This article **does not apply** to {% data variables.enterprise.prodname_managed_users %}. To change your email address as a {% data variables.enterprise.prodname_managed_user %}, contact the administrator for your company's identity provider (IdP). Your primary email address is the first one assigned to you in the IdP. {% endif %} From 7656b283a642cb9bda8ea25c8ef5fc4c761e2e5f Mon Sep 17 00:00:00 2001 From: Jess Hosman <1183847+jhosman@users.noreply.github.com> Date: Thu, 1 Aug 2024 16:11:35 -0600 Subject: [PATCH 17/24] Add instructions for downgrading from Copilot Enterprise to Copilot Business (#51863) Co-authored-by: Sam Browning <106113886+sabrowning1@users.noreply.github.com> --- .../copilot/copilot-downgrade-to-business.png | Bin 0 -> 228254 bytes .../downgrading-copilot-for-your-enterprise.md | 16 ++++++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 assets/images/help/copilot/copilot-downgrade-to-business.png diff --git a/assets/images/help/copilot/copilot-downgrade-to-business.png b/assets/images/help/copilot/copilot-downgrade-to-business.png new file mode 100644 index 0000000000000000000000000000000000000000..e7044faccbf847a189df1372d5d77416f6c444f3 GIT binary patch literal 228254 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

om5$7-uru^yDq z&@b|V*Cxs4bW<_tgIXLdhWki{G%LGV5b8GqYX z*{Ey4yWMQwx}>R1RQeSP{pnjD&-CM65wD#lxq_GtpvW(fOSe?o+1IZ+Wa7?feMlda z3u>zO^Yhx7k3w8KajjIAjLFqrw3;tXN&D#xz5jgBb#lH-P&xDz%2;|Gx1e3=>lp>p8*j6_h8oH}(+DO*nfqN=j$ivqYdP5# z>%5ou(7lo3V9=FAQ)Y`CvLD{RBG|D~>hEbo0cL`oI?SoYg^(l%zbY=&L z9334US~p9=jz6;=+r~E5jt%Q4CE<5#iWd+RveDdCrGJ#jqNjqr-j_B-QM4EBLQHJX zO<1xJMpm-JX6Va3khG4l_oE(SP=wX9jgT(KU_2zT%*0f^PoKnRX^{@kx)Wq&2f%l% zqc}c3fUVp1MWs&VE|g=L@pP*jWLu8-eCXq7rz_8W*l>~W*3=F5?KJhQC~{A3c=Ns9o*pq5 zk`T&9cprNNV49PnBQu%k0>Rjy*N%*mPz9E9twdhn8hynr|Jc*j`%%x z!)^z1%;!jSd+lc9xe?pDD`Gt9THIbSr?X<$29Gio5NjL!0>ANDv|5U2aUWKAWY9e@pnlrTKtM_M!Krq3Yrt#+g<2=1QqZdlfvKU5({_`F8uZ^pC@aKO{XaoXm!h z`yt3g0Bm9cLfthB5V!#)P3WXjsRAqFu-fiQ=EA26BmOmp`~--3L6!yFVw~5?)No`K3#)dmf9A1|buP{ZVtFCXe>r8~r|IMO!09Le$#i(3jcWf*3==Z6%vZ>6_94cdH!o@4x8K~)ZL6{g?4OQZ6u}k;2W5Q4 zmsPCEJm8KHAj;PLlaASD8J+fd5Mj{lK>j4E1h%?NZ&=p#V0ks4$e^-;lB`g;|86{- zPI4n@Ve|7^-|O(4p0tG-5q3;LV%0A)$LMH7Dg;(DNA5w?^L0`}P>xI{%{XSZ9cpJk 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�yh; zau^+9cV}N8!CFB&I;-|J@iQiNk{+Bfi?NM{KXc{(aa{gCUkv#8qAg*wmNi<2C6ex} z*jzA26{4pF$o^0sUD0+tbu9k>$~gbduvoF;OibUKJVc~xr1N4kdX~jS{%3OjU!Ugh z#fMg0+VEMkH^6Ngz7+pSg0!fLG#Ou&)$x}CZfOx3=`Rd8)g?22aOUJ`3Ndv-rihczD#7qDF>wigy$+cl6r|=_VnLfy!FFg>4deoXdR?m=P z%hUdHY5N79K>jF|N3nzbqS4+h=Uh8W#iDhlTnH=Ev-DtJ<(kKZOWa~qV{6%DUmMFP zu>O~A`=3)Lf39O`e(T`jtx?qXgsp_EZ3csb9CQ0qX)w}x<@uENYAfzBaG*x z;s=fXBZ>d(mj1E8xgYDlY>h8MUi%N(x&L;G{rRl9zGE+e<|o#}{QtSH{_|eRnPXL+ zn#yNi4*xHIHW~YUg=&k(TVs`eD{sZ!x2vBk1*#6wPaJdq zb7y^%qxe>C%IbI*|DSGP{|bWt`YFyC`}s4Ef|*|@HlV!II&&LO72k{G`$wX(_=w^) z*J0I-^rV02;{BgDs!s+>KbW@ePWkhn{oiZrfEx;N8F-t}2miq6|J-w{cmWpJ3@9#J z84uvVsgeE}i)@^ap%PDGOj4m90oXxfmV-gmA&wwH8R|8` zqg|kl_iXcIXJ)+wVFllPAnx-kUl=|>NX3!)1}|fXyb%1o@a#n#yEa=(njX#UWa+{K zK%GO9i?daZUPNy4IYAHTiTl7G)+1b9zjx4b>R`eDwu1si0)F?La<2t>?*=O4lUEHo zV*7S(yKVu#kxZcrE4m1?JXq}Uv0I(1SST+*sT4V(HtYnK7;D(M_e$^bjeWTc+=OGU zY-f9lWEq{U(fm5SQ+R=1@TpGo`1n)s^$N`Ds)HkWICJrHghZbj{3L#V|8egTSK1S& zIG>X_jmqn`_E+wO4|G3YU7o98>7h^36>hpD?M*kqB+$clovW#Py@O`1>j?M3#4z`} zwVwomO|H9tKPEYXJAGF!-4q`?3jVZ;{`(ETWe@Wy#7dxY z?)n2%)T=o1(l%}SsWN8Q09{55awYeATW_Gn(EM!5-)$e;b$?fBv0)a&Ag~vG-la9J z^a&LvY4xkf$p|tV%|sg{tNv?3ZCpg%sHvT{%sS%_sj>h~Hn|v-X2V$8|KcYcE7x~t zGYgu4O$qP!>S(WaYP42vT(`~DO=H}V_1^3;`X>~h0e~o5z3+-uJvgv6Jv;c|N5yNR z4yVrCD-j)A{j!Hl!%js-8(Y-CwV6Q)c6NEkhL)r?qo@NuK!u85`f1*pFBzNP_TG~m zYxLk;555M<%rD(BNl(*!5>adWa6*^%s0Jy@qp=&5$Vx_jN&^I|Dv>Ze!m6^CBfWPo zWGrg+0yRoF$gdpb#IpIEy64%{;l38ABR=Q(}W_=tcDfCRh~xkKKPUG`JqRXX{otIZ&Epe`h+W63Y=w-nj z@j{wMz_&4|giH;hKpVq^frRhQ+2`6-O2Tw!?VS2_&mDE9WSp13N75e!xszRgqL9W; zY3Ua3uaTGB>~+SE^kHPnvV=HlmZ&@g(M7F;)I? zvdc%x&HEup1nbjEop2O8IyiFMgD6c4Aba7=))B#qpmyCnU6C;vQ|i39@Z{4XsuN%|cPyIkQd2+FAc1P!E}Vt;wMM}| z=kR`48+_ZS0Dv4f zWV-VeXc!`S}-v+qSwJ# zI4PfNVN^d{-}_2X>#CzVzNX7)p^gpx~KJ-IAIYYc*R#p1u_>)IaeUpjT#HIhhgE_IHA`$i`eHS(%)Mm=Ja-#bs9(x>m?ZL>S($mv z1*?68*JnIbsmSMQ$X_{gF-lUWG^mX<#h1h>s;|-BPJ$mH>UzJz5HimO{*vbV!%#73#hW<2D@t)I1veBtHL0poi%1=cU<) zg*^E!MdQc*(!KsO3HrSbNTUdi=3k$*$J+DiJKEOCue=_tMV)F*3kjaKv`TVnG~&9z zYI9$pz{66dTFr&CU?l0J9U9VH`DTrtD$6Ic*tlxGFcAXb?^K5JWzT~r9H|)q#;56o zynbku=*y5J#LR|^Hz()H5K6GZ|L;PxZx1(o9evZq=kLq?V_X00MX*BKvGIJPLkKLw zaekY!mNzj5Z3I8Ed~O+NYPnukOAOoDnN3(VieGaM`sLzs5QJLWdPY9*Eo8R>t3c#u z!s=!Bq!)@!u1wQ55IfPLF#I0kzeAav%zdn;OvW4qS;+rzktU90vEe^i!-gYgVzdb$8u6K?9znag+DvN2pNek2vK zv%;qWy7paPn6xXRkNF~O_w$8Hl1mVoXpoER57%}6;{n{ut0(?(uf9snd96Lo0DW5# z-taUI3j3qpk;}h>P1~>{XK7f!Fu4HM51MvQ-VRmt(3k0_)Y(tg%SEPs!tQ(m=9{3; zkr`ro9UUF3+q_LGCeuRgNazQ2;QKgYYO9M-<7_YC0<${(n;CaP{%ANiXt46|{6w*< zCYHn#3y8r>NbqSq?FDrFQ*9Dfyy4y~(Fq}YO`Rq46&Af~Yw!gsg4J@Y%hikQ+wODQ zmhPH5L1ggTaf~ZArO)4uu|B+ST`LM`HUAQMb^$;>bunl?{pm_+R$2^jCzub3VXPSB z(R<{yCu%pV8Lp^kB;K$zba^r8)HkS*Q9ZDuV!NSnf<6n$@Ux;3cdpVnpCWXFZqi5G zm}ijI|1A?WSGvjG>}|5O5-#;ejS&=q4V5?ctlcWO#37$~lw+86%$6hYrvUF$EFL|M zj8ejBc*ZI$tX854d6*YD(VngsDiF@!p55$!{p@T9$x=*ar&}a%E(v;fYnM>A_*Jru zg2%49cE)A@ySdJw+OqzeDY{*~~lgl7FggsnG&0CfI4|85!TO>ZsH&EVBFZ7xi&==6-G5D-1 zX~w1Fmuk)=U|6lYOZ)gm3RXIgO1J*N9Vt36lM*)*`ahpwwQ$BAQ80w zwR7N_s%YPsS8c-fTA8JO@UWcE{s?U?LlB0)bTD2pMoD*vU)WCfC{G*-VS63?Vz$MC zv*GW6@H;PU!}aoLogF%&CFVXT)ND!PvtMBsJ>Fu&CugZ`&bg!aBX#4rL=?!2RTYDc zPTiLEXr;_HtB}eaZBGM76emp^d9Ec$`Tcxa)i)m#85xh+-R9hjIv=O36C6&ix~>3v zC7SA?X=`=Jr3BZ=^S@12OU$bor zfb!j`?thX!f`a5mJA~q@gkyqF>;OrSrnUr~P5UTCGlLk#7_}rr7 z{szywH|*iY)7TAs@_1GL?ZwF?S^WK{e!B(AxLHr+!&3F7BxV|~tW5bUBRV^uU^aiV z4V|FpP>#}6|BNjq!@z|+Yf*TNEWo@9w9b+`S7(%cw52T6!3i$eaL#&X=}Z{Gv!u0+ z+1H(M7Eewo=1D&_9TiLUJN{4ziQ^sMBHNn7mSbS$pq`vK?5X?p8}ycl)10FQrbh9Ql z2}T1gXB8Dc`+B1Kk~`r(qMss*vFtt%>0K9zyxbhse#-8gv;hmI;=TNd!Uug6*hEuG zlG3vv-k)3lxmchY{PZlu32EBPx4k_s9a>l;X;b!`+i4eD!B#P86+LU7IXwP`k4NnO zW!xlA8T$O-9mh^DLcVgPTW<*|AdN)DTYy@Y%GiHzhj078 zA*w)cZ$)_YVRzkK%eC#3N^6*m4ZJaVyugSL=HhriPoyKJQ->i-#Kq3y)!CeS#;c@T zst^0yv&{WSYuqkRDZQipi3y@nhTQmxS3G$dkiM&$_IMOWHd8{*}}m|)}&tJ?NG zx&$>WLPe6H%scA!3OLgbD2iE#tH9#=e-cs%*l_lx__q{CPP=X_AyR*#j70N#X~_@0 z@ojTd6SN`IIWDuLU2j5BU@LJtfh)4^h(Gt2((ks-E=VyUWV1(R&hqDYa^l9RfX)?( ze3>{B2VBEuYw-%NT|MK)NoRJP_zdf zW(|Gn%!E}{l3vAD+C!;z_*Va-)RhZbJSGT)V`EpHPl5C zys3-wu@)4 zZr30=a^1L#$X%_(c`RfQ69Y#j+g^Qey*hO@J0QejV4D`cQ0dS#LDNyWB)#W!wJdGB zb~cF$tJL5NR4KjF}DB?pm|Tu26k60`~zyf4j48t z8$(d9%+%i3sx8=Pt@bLLEH#=t#68eos4{7d5p|r&n#U~h;G0unZJ6bAW5Xb*V?i0$ z5$Z>GdGz9K^>{HC&J+;#=U+!1|E&cOq6<{`D&Qyl2Co#W6epDd5qpO z(0UP{z@^o3SYAOkeBo3_ALA0EbvAN82RkHCbPr8xp_t*keQBz9*%taZZn`GTr^V~k zVVDqI)VRFHN0Ms|_`iVMdooyl+$T2;wg(G-IvPfm_BGgaxt+2;rikVHQO9B?sWY*7 z&5`e~1L%zoJKXdeU1@b!=!!X~h55NlO0k__phs*3%^MQ?Rb;2$i;V@#?PIz`x%^aC z_#~;XS6@z&TV=-=HH>d!+b0v^=tgFJ2`r=gChzQ5eypkv@}jD&B}x2<8Vsq#!E2WGpWPBYbuO&?nv)3H+6ky1aozTz~M2E!6d zlT5foxyrnqA|%U0*Dqsalg@~fHs3k|kWW?`A(YI!JAwhT$UR>%{b(L@#MnMF$Z&1D z2s`$;!A&P?Q|P5uHQ?0HQs;(B6Q>{4qLMho>d?{zwxO#FZQ1&<;+5=@o~YWf7p%{( z=C-R;8DyHUVz+omij0gssLZQ*uf6+5)t1SnZ=5RfZ|(uia6DNv%Fg8}x@E6+7?kG? zN#4U9M7IlP|1MMh$|V222&BM5vd>zkDH6H)@#%P)B$2qRPwkfI=3Rb+0PvotCv|i} z;BA)V^APl+wb}J+!hUZws;-+E7EYlDp*v*(pPg|sN@G~WfK0FA$Wf`O|55fm1dZ(QzRn_L>5Fb%Q~W5$Y{Aye7JS}pbR|o8Yeb!m=7Zg;gPe?ZKoz`iTq3Jf};nQqg7v0zVNi-SWQeQ+d zn;%N`yFuQS;Z_hmf>q2XyTi|JMbamDmjH2Z!hX< z91CEg)NGx9SlGsO^j)`XZrU(M!r-^?$@;50uPwmeQe8(e0KI!LY@KFbiuln29AS>I zzr54_{b>KrVddJfwl7UsEB5F#+{3^&8LAeK*_gX1yLJF9)garH`vVh*v*XhtJI4rQ ztQ@jtE^afx;^F87IEXqhK+pS|$gs)?)3 zk3v?zn>XZB67MAnYO$PF0YoaACEVpH9J!)NHLXV>M|Mg8A~ij6DT)04!xsQ78gD!C z>2W>iWiSl~HEtUN{U{YHnVRNN7wEM`E8_;%;5Ig!l>L3G{!o0rt~ND)|E3xGmI&$g zgce)$lMZsE2*KV(?P1&aZ6^R|M#NUr0822}$60UXsXkLj9yevnXw84MVro`)_eNEa zIgMbAH}c2v*GkHNoL|i1soF<#A^ofjY$l*#?)1x2)B<+mf*vM_W;yYFR@;+~%)Gi`^%YR0G`!{LV0U%n} z3HH<)C8IC2-Uq3K`~2E6IQ{WE`}Jm7ZmpHuD8d}ns>yh~YSF}+)d$Y?c94RU^9nYc zc0YDwb)MfKpGw8Y-EYnZ@0-uPa`G*RCZ{8p!5I*g!!m zEFLl^P>0C=aj)ji#Ny9kn!?AM99F2tsKbq7@zV{wp6P=%a5BgL>yqvh&8zlZyfHp9Iw|0)0t z7kSSHFZHVrB_g1AE3PeXffY>HB0mV}>d^UsmM z+SOH{ekW0A`#sxGX^K>c@1c2^CS>|?D1c(k478?(q-7^_*`n65!Sk7Bx-9j)J4c}n z+9-VhK5R(Z@qW5~epCji6Gk}iL9HJ9JB}~ujzmfVTyMM&PeRM z)NgHhD8gSg1U5fK8}HCbNXQI(MlT&6lpaCM51WBqVt2TjUeDU;;GU2GqB65cGPmFk zeV`b&@fI@km~K`Olfl_|O?edF0|?vTN&Kz!vfW+;b%e$~bKtXar3d)WIYxqC5cV-i z@8-SK9~I)bo!TMt^YJ6Y9islrff3FUKh1`4TX?;e@3Ux39E;DJnqKQjZhKgA-3U+b z^?r;0^B_jJK1b$f${1Jz=QxH2GEBQ+pOAf-6}^Gvk*V7RL>%UWOv@a%tMVh}ZfAsv zqER_Al4jLGV9fUzrqCGyGO!6>hcjR7GqcynV*;(ld>i@DBS?qGV;QrGe4J6nYV$j7 zL$+)IwMR3xpR?f{gK|_7b0+VzVA#U+KViFA7~wtAyW;LbW31R#bW+yRo#X+de*$@# z>Nge=m`E2&6vnyiLpGz()-#F;T$!ZiTCQUN1GBuxjzh7P563Q~;AaD0JSS34CMn`R zHE6(!Tzu>IV?`7lOenx+Femr`879i4rw<=xlVsu+z-JGTk0Tnh3#OWc^t|(I8X&h1 zpJ@~b)B_gbN~WuNPA<6SG!CRAE%yzve`377xf|!k6Z>Djp7U=aW*S*mzee){dZ=fX z)=0^1ojlsX4zswTre&WGZ?x_W`{^6Li(m3fW*0x)OR=Ck9KY|FB{H)pExmswSu(Pi z*jEZ=OX3Y61U9PQUV?GM%SxMUjzpSyg>}_|8lMb~5Ih=aY;Utf$BHUMj)Z;NwbRUV zFe8%U$5DLU_Ws80mto7@uCvYD_6qwE;VxlW>ghe*3GTcidqD_70sMe+;>l*__Xe^^ zx(*8I=IfJk0X^{o(~eVHz|`bMRTHUY%XGtS7jP$nCK#Q{ZHqijmvk==ayV-Kc!W7+ zsdnvB_}05jry*&urWaBl6-2URzH7!MYCjM<|3Rcr17*|KPkM)Li|VzNg@tqxNIJN# zu9jMjp($*pkukywq7z{os{kOrI8UqNJ2XheO3cD9!&P;^hZX3{ZW6-){gkC>ee4cd z5-cNyI&P<)Rnc5iOP_4spenr(Hcj|z+BpD6o)xNVB<}o9BX=~HarS=qAcrN7_04}Y zg##sS`WSc!`P7l=xpF6Fs(d&a{w!zs)$a1vA^4|@Qk$i<(2$W+!vYT$y;F)g``I$$ z>&fM;Pw3s?pcbE3@@1kJIK=O0xL|Z6_ygf60N`~_*lZV68#GlyD&HV#mnY9_2e{ZH zYEHEwc2eUk0+xiEMjo(|G<-=uS#;hR^r97akw&&NOs0uK)ob{)!2UJu7F6@q>cQT2 zMAHO=yF z0*8T>PmeYT=bO%(HKCyDU7HfdG|^Y10CuC5HI ziW+@R_!SX5+FmZVj@&zmDR3?`t{OIe7vLQRel5d=eoLVrr{FUTRn(_??$Sn_#Y6p( z^;+!E-TUrqfUpw}w(0Fu6Qqo`bMj|>fj?plj>~rV;<}9;jfI*n0M4+jpgE~>w&Qc5 zRbeyecuik7z%+D6P;g$>Y_O}xu;A9n{PB(7VSXO)7IZ-0gTt10z)l}{^}|)-Zz^BF zg)%GDGR^WzRc&<&g3_)9MqG%#jt>1t%pVr|>+6?Y&Q$0*9|P|Ea(5|>?Zdw)c8pyU+dz+u1sX&;vj)`z7zvym|js zjpM`*qG>X%$C|vr+3CA9m(=LxoYXnHlzHg8TM!B~ln&ZeV-9)CQ$3W2ZdfpB+ z+;V-e5k24E(zCbMAh(Wv_tLcYQF9FL(w6HRbpAUkigx!akK+I|J#fV@<(;Cc9MJyJ zH@SM(u~?o(Y@3MSaMF&Ab{X|!`r1%nT+#R=KaJHybU!_Zo zZTwqwYlo%dkAuKFWC+0Z+jMr7&BM1X>%PzDu#M?F?Gc^XKXOq-vYswFaJOG-ZCz#c6|f2 z=~O~#5NQxpkZwUxx>HIz1j!);DM3n7QW~UdkS<}6Mq;QLa%dQGhUP5Zy{)~s=XXAx zPycTZ3z#+QSHNZ_CEs^*Aq=o};^Yv8Pe=1I>y{8gm8^X!G+a$Da*bdsBqJ4}#ofDz2hx+P(5o0-Y+npuIv?~SRC2i) zAO}s|n&Z@^wF<{hx@=ry8b|jbx|p##@265Kp*yAfqvOS}VxdiE>ybSTj_#f0Qk;$k zh3C(mZdL)Ttenui6JSQL9p}!Q>Yai3=}t%L@uJA+!g2uUr5r)(o^nC|#zr7*P)OF=SfW+)B!Jm4FLiBSLl^V(pL%di@P;Mkwii&DEz;D{ zN!&rf*+b*lqqSL2n(&*#yxi>Djs@A;TIu%kucMyJC7>B?)-3R~_mhTp7c1h2`ZfEJ zB!aG+;GIkmMf4#urdojgcVP>GTC+(rWGtxFt|3j{-{0uG{8R@OuV&$Gbav;yjN}g= z^&fZCJnB*-!+c$NE(umd%$)P28);BaSsmzE=d+}n`|)CxI|D;>ovJD->?O87$Cx8W zTcbA~kdynF8S(Y-H)$U_zCuOf7f9b(G`@N)B?5n{HaqJz?lND0yR}-vUGq!R6lt|* zSjp@B58sQOaca&tbrHQpk}#^6G-WFK8OoBWshjBJZ1^9R?ZLat@f$I&u z!YGy!^Xg|NUYApICt4i7E zw4>Lh;RVvvwNYCieXxB?@Z>RRfKW+&K1BftOMI+yL(nBLXnX=9fr~lf)^|hrbp-4N zebvXcDG{S}+9|#r>uFCfE_ZYoS$hv-gOq!MIW+O1orR|K*!gR&C@R`|21O4$ol+4) zx)AHh@?L;>A^xMT+rY2b5u4OEBWjR%y0T&Zlcv|cfRDMu-8PBeq{dh2?xirZ5zP{Q z1>sr+`4-nTrK&BZl*daOqP__Uazd7w#r5cc{S5acewWcjkbtLAF(MF+oI9zSV_mX83?t* zEh{F4Ll`~|-sO@g;@-+Ci&gCQu=^8RiBBv{nci+Scx>EQQv+(;*)F}S3L~Czbd;wO zh`)J)qu&&zJ7G4rq3(<*TSR^NrBhZ@&6rIYo?q8j(Vfz*$ z_NM>zW5tpV^?Vd-O4}i;-y8Fg8(HpO);}m{h&UA#(I5kg$y`e_Xg=xB6~lHm^As0a zKz6Qm9r#r76Rve&NlujZ}W;$hR`5AMe=r z6S1rXD1Y4`VH-BFelQc5{ow#Dl|OaHT9I)4M?(kUhifh;r=gTnk=ufGOmB$81l&ji zhPeYaB5Ps3&q*a*uwtPP`1!TprREb;Q@;egl8Iwwih9n4vwo#!On|lc^Gq!ChJss5 zbDth=B-CVk$)gjLOhvK1c&=tJrmis}B3y^4+nP^xT6R>%I0OY`j909c_=5Z157mpwq;;>sP9xJ=YW1b!T^Q z74p58-2(`oqThEOL683SNI5ACmbv5IX1f-2tNwX&K;hI2a&x`!@4h(^ik89l_mBWU?{-7=s(#3Ff(}9A6bU6X}s5)BcXJ1h# z`r7B$UvxBl&~cR0NePyP-6HPdb9bs@jm`9?b9vN_{|o?cIbLDG_+Wa-)JAE3Tc1;0 zj<@dXwqD*Xl`;HSL8>fwATX|KwMtWax)vQBp$*SefUAku>iKToa93-=47}g?LPoIe z8fU|T#K*HG!*Xla503~JT+fV7Ono6{dgEH+vU5I*9Oc((gT(>m>*0c7t9QEeP8AXH z(J3o-$I9Q~i{87o$(#B{G2C!nH8&H*x{7JMovoXah3?{09*&*eR|r50;sl!1nV4)v z0rr(eTIuzbHj6uZsP%p*_rxfWq(%_JP1Pw5&&VxD_bAtNIxpi!%oyG~e+fD=>FGR8 zncj$719eA|8CC~km8=Kd>R%f+#t(*WJw9K=Ai>r_XayQ60I4v$jpN;>7o|9R1`N~u z9T7_l%Y&vh=Y!_i0ku9r5|zkJtW8xTG`n%}MuhE@eQYO^f zZLo(kG8ZCv16KvTPRUXLw=PhV-4CxWxt1aEW#T4L?qFY_~0@!O%oY| z&*jOGC-Zxim)2K_!GVXP{Yc?GvO^&d`8|k!N|i%kgssQy78qw2)*DbG{wYk;pt!Ej ztwQ2}S$VEo;^~(RbDrABH>bk`(hqP56X_s#tQ7Q>d#(`NjU60 z3fxQjHD*XTg>P4&+-iVxd}XHIK>m}727CNJzu|R9?}XeNs0;L zHAuaY?h>3>eOqp#LO}y^dc3bb8!;XGmi6SJKUkXeA-_Rt;8yPik64#r+PP1q-;4{A zim&@zRKJh#Y!_kUkgq`tc@5M+Q%2r(I1@ zqHww;cg{&-l&Leq%44+i(3;zClg!Jdarw%M*M4ldhyIh0%U+y(;FcrL_PO`KFubw! zjuy{w9S74pJ6Q~Jm?{qkeg;0+)V`moN}~2}KIxw2D0qN(Hgn`-)}l)wzZL|~`jYYv zALr+v0t@U10C4hv^F8vbf<~>!)fU$k$u-Hz?YFJqp`jL@v}+lenc1F)I~t9)YW{CP zb6=l|lTV3#y`M(LLCZv>LCRm{eDDgFqOiH}zK+)5eUOfkk@SX_k84kTg>)$CD;ql$ z(mLvmE-0vYM*660AlLLHE1$>g2zSy+%kY-5Qf~N?e7{}1Sr^uOfyJsewa4B}50vgaW4vj2PVf{pElbaPttPiaDJwsoD_k>atToK#a5Rn}KdY?Iq{pBwd`zli z(dOg^Q0IL&Ks25yOWWP=UlACiC%G(Ty(PBn)9_dd+F~5pm%2dGgU~lU)O#zDl~h#C9afxkvXFqf3!h|7%vhkLjG3!DO6cbgliDw29=7 zjQ(FJxX5$NTguZ6iBqWL9%>H;#|qOsGkrBpU4=`<(N1aPy`>8umrH-^s0Og?!~=t& z_3tKDgJjkOA2!Md)siTS3Yed<(bFhtU!WI5F3^i_2OTgKu0_%~_op`al`h;5CTR~L zsql{B4Zz6-2NdDjXU4>+u|2EvmKTqFlj~wcQiand{I$VPtj2ZvGKt2Q;271}xfG$) z-AO$H%Eti8aiikeGB#qqNSg8NJrRyF>N5)H4^~g_Y*Uk6cB>ZZI@^m)sU@7eAXWOT zp^&Hb>8nldVT#J!axGrcNU}>85uzr{vx87cc$ZJGYQLIY$;B7Gws(`sw62TJOTw#9 z^Rt#XFwuGwd8_cqt;C4vR-;3VieEV&&g(|_ku-nDo29KU#O`!YB>j8e(OI=_W;GCJ z*Vk+dCCxc$oX$?m`xisVx8Pwc`m6=_4Eo=WY@6Knb2e4;??-Q$8+vhFG#~DdoQ815 zRaZd6-@c|NPb<-~DbP?l(M|l6D(?C62NH`m25V+|tguIysv`er7k1=riZTNa z9go$b9$2lJjJ#FLj)b>Gfg)Q2F8}( zV=$u6apDY)8>Z02Gmt0ORp}DMdo-r*k~5GOugsR2vNV13D7j|DEB#r-&Z#gsZ)9W%HsgMXCe#Wb!havf=2RPzh&&~w(GPT+)xK5^NU`@ob2`i7GAS#CW0 zo?})~Si9u@(`WXS6AOhj1}+taFA*rG?)R89L=;(z&VN37tYk#dz;Wj=!RBsf9pa!&xTc1>ZX%{y)H!CnXxc&|f z0al;?KY0;aKCDW+!C`DZd;-S>LLZy0`zyn3n?*WOlI?}UymNNLJ{FPsxY-An6;F*+W z;L9Lp(WLorq1KX9Tn6=D7+*eEcQYVddi1Z;CH4ZS z+G?C_tq+I+7~nKF*}3j^vs{6-pC$JN)hnF#mdLAn8cd=dHYTLG--k@UVZ5!_n?i}0 zr2f%B@7pSKDRqLdD)fm|?elQzNxR2xVpn{L-jpWMZFY>))heb6(RDu6O(?V&%wYZM z@nt!3Ex^()8RwtUhgb{k0FWcd7Z4JMQy!+@1xVza2Y^`a1IA`eFSl9^^vUm=;x2Vb zbeOKvINxgDwB4MGfyI?t|6}~0-^No`jImi{X)!m;4qdl1JJWX-Ngi^tKK)ig@XEqi z$FC;0NWp8wtQwJ;L3nXl4acU(;VGkQ7LMg=YL*gKBYF4K3)JGa92PTrsE*cSf2PS2 zu5GpH+Z1(_+w|Z#x^=If2RMrj*$0Ym zmOl^69}55)`i2Je*|o9HBSn_~-c$LPov8??yJpjz{N69Bfs_0p<}GMp@7v7)v#w-} zACG;}rA&8M=`OooNPCC8+Q%JY{T#nrp#^yoVQEZ=Btz!e_7Jkx+e@1<09cmO5T)?P zX8a1WKVjO8N5wedtLr{3^!TBp|Fs97KHZenyg62e%sUb_c<6(9U#U*CQtL0ssQq*=*9QHv;c5x+Td$(MKH>*aBKt3y)jNV^m~TC z1BU*11+>1A^Z+O$%Z`ufXNmduJN~cr^$4JG!Oyk-vGJcD^>%Z@!v~_```M(GG@16NySN`vf{NK^~oAmkG5IuI^$zs<9>j4d=I17cq%!B>2R~`-|Gaw?dxwWZfWD^Jl%_ zXNKzMqSN-u*68!+&wIDc=ouIoSy@>j8{_wpSk0=SgV2($Mz7<-P$nj(Zk#s5I6F;! zmchaH9dEIE`d=CxFp{k2fKV8SDs8 zrOa5`9ks%grNtdc*Plpj{nJb?$N(C5cV2%s;n#itYp-N!#jb2jrZK7BQ;Y;ia^*ce z>-_@)u8%P!{o?g&9tS{s$LnQFv42>c-#=@nkcj;FThRABqqjEtq5=W}y8Buz=R|Lo zc?pJ+fnPqA@+5hEqDnrkygF}p8Y&|@?{sI}Z0v9~32EB7+cwqJ z^LFxR+LpR2t?7B$HKS??=Szc!nGqeGeA8Y?_bvfWkZandY#)olBN53KL`$A@s@XyxUwZ*d&Di1v7y&dQahnyPm3-o!@>zQBaO zh=Mw-`ht`m-6k6ElXvw8-wW)X7uU}@-abV66qQrhH9n8y)PI>4w1i4-Ix7X>o^3%9 zo$_2wtV2HMs;G@g^VD+mtLaqtqoq<^u*kJuWs?OX;iJ!6s3$apfj9{$+E>KF_zQ!r5m>g*^{k~ubD{(xkJbpzg zlS{R#c;+1Px?!EQB!josA7fX>L?l+8vq6rOQ)k_cB)4&P|75FK{G*gD1pmFneP2R& z{%$saKmTl}LOper1|*Ss=cKS%S4c3>`#hQZL3G~6I4VZQCnu;u+jV@0WYnw0?~;86 z?<$vJnaUB|A+-Lq4j?L<)|eNt!2_V%77Hkb!L(-h%TTO$zvyVD0ajNJmxID zEbIZw*mC(g*{dUHM?}>6E#qS%1dH$)1bOYS#p|QFmU9o60wOh#oRXAuu`2)Dwb=VP zR;<%s%pW_!TJi>Io|ae_gC&#J9CM3a7WD(e$<-r6g$inxk35cjP<>Y$LyU3eF)%q| z{7F5Kw9+BLei^dL>kY0pd0M4pV(SgGtn|zwT3hdE{ft{eF#Uq%kc6_!4Q)yGZR;tp zI*`1hy`yB~E`ZM7T<=+5_c141NOJ0XLEw9bZXQ`%Q4&kxwLQnUv&+@gmC!E&eO|cH zNgxsc9lV>!lxc`Bpq{*nAxsy` zdgH6HC}-#K$@&9DS;uc5ywxcYZ*PdO#v3?B-Qr9pVRy8B5;*0yYa6cDZ?T0=_E~r7 z953AE70s=W3##WI770qJ+x+rer}A-^at;CfjsUytV;Ron2$?3XZ{NPvCfZEYYxjvP zNd%em2!W%}N0q9eiG7I;AqPXzmBEIj;m_(rT|r?3v+4e}FtU!_J=F;Lik#<#E}iDW zE>mv(^>dOzc=1bVUUGbRHPTHHA}607T91C!dG@9&D)0f6ih-%tl5hhOM#XTE779t? zvt~6<9hC24qoZl9<7HQPGZQ9_G2ytYy=?u9zD~*EB6@h-pXmBG3mXZ!Ml3yiBXDKt z{Cz@)$yMrb*|EmM9Ju45S^VRpB9)qQ+&f#r$_gj!(!XaJU8|`ILnVqKXmfHZI2i=p{$zn@jLOW*Nk%8wCQ5m1l0q!@quR;#kwt0 z_j={~Y;Ew-Nv-pm&}2RD0bajjQ!9W&_rC?E;C=1!=y-o#-Js5eqr|wb@YVbi@m5qv zSkn5gfgtezQ6Cs99AAJ^B68LztcxpK(@ON~c=N{XRei`#DpNeazq?X$Qq1Ivg}tAu z+bIHG%>$QjU=!w$0ZD6$=_o$HL4T8@^ z16q^OB4PLEXB`bROEezkZG$%^-*(NZznPj&^W1CHbAE2GUHe+Qv)l8$Ey9mxb1hRD z`Hp2`30{H8FO~W;QT5ml@CrrzXgKYERwjR{yMHZckFU|nHSMgfX<&HSBN-qrkMDi% zBi0@cUwuOSrQFcM#*OrNJVRRE6xrzYz0lI6PR=TL0O68tv)+v30nD0EDb(Vg9%a)g z#1_y5Kl}Kp+>KOh>I}7p#pATdemFh$ipTEc8XL5F`q3-HC4IMi&$DqEm$NM?A5w30 ztK*OD@ja2Godx(V3fh*Uzlna~SNZXaKjW@WYG279`~cf!O^A&SW_a#PUuW{=<4Dtu z%#ck*O(4iW=Ym4Xg+=OtyFsB96XxpQR_C`Giygi^y0d&vEf#hB`cq2>W=ng6{Pfa)p5dc8aVheP@p0NbT(R&mmpcCTkatul=VLAl z%$H{yzytZ&y}AC=Pd*G0YX#Xri&NuD-Z+;2y!^+4kl@N?d&_h9>FO6@_Njl00=6$i z*AkDkKsIXvwL;bf!r%&_M$MNtdo&JyX}+!~whtsBdIThMF3kP5ArpyeHq}07{HhaR zeu2CpQkh5b*d(l&^+8o(r^fYqp#9j37(jnv%=`TG*5T6h`TC*$lYrC4#Z|T#w6bUY z`y&GKyAWo@<$KSsr1$T?p6@ag49$mq2G7BrqV!d5*25mt0= z7hN^t10D21aIY;pH5+fPnV@|X-DV$5_G*{*6v%~l6B~^6ZBv#176bobH7*l(-nfi8 zNmxerGHH>?Zi!DB1QhL5Soz26A5EX~n91p0DYp+GPu=PoIjJEo0KG=utFneV>S3j} zFQtIMxL(Ipb)FC)RO@x->q<}*!Nra^9r^n7`x01iqjt=4ygYzPVe%DyAO;`YGf7A! zuc^{{QUeI{=(EFDcVfwp(?GQ9=5SvHgW; z)3E_MB540pX)eVz_uWPL_+sJ0tuYoBmYpMOE_odt#x)*3RHMcduY)KCjJ=RpHbg>r z3IZ?`tg}bV1@QN`AD9L1oVZLr=hH)Sh8%KtI3Y%~p}sP_UtLA(($UV|xyAqGxWXNpcIMZ)6_4~f5jJ7x6`CZ=qsS0Tg0naa`gqjTF zZ)sY^8kC zs^PhT2jY`INS zSm@-Yyu?6G-bT)c3KKVDQFKqVva{pPH+|EEy0*fT;V54Jywl}20x2C~-Tf}WgR;kW z=g4@a@3S%T9Ss&4uT@aEBmT^1`_MdNbuN6;zRHb^lk%j$n<*_hp`ZRUg{j$(x9{tJ zm+*uy!k_XU#@|z2?()rwQ!Wv#M8Z{}q#Uc%FV!GVpSJL)MeDhL3MJ#BF7LP4d6MP> z=jTDxl^{k%_&|#&PQAMaX^#Y51q|*f9(}iZ>oDzogJ7eCDLmfylm^vfmJ)NT=d;D& zI!2?E#lE5UNgrQ?YaQ5j0dV&^B?;h61`^zx3_7Dna9BT#EBA=sJdH(E@lc~rVE1)* zsBSf1^_GZ??9qj{4H&=qZwk02XZ6`jMA^kn5X<7U@+D$N zMfS9v+NWCcyd==8Q=sFZqU#ktqO`C`WVF3DRb7%S16)?pUvmz+g0Ooqx$>&^oT9mK z-j3$mD^&cQC*K8s6(#>8Ul7?$^h69~S0@>%IvhUzHn7?ih@glJX<1mFT0x7=PU-Dp za7bR!R9WZ0$~UB^(BiWnRl_4{O4iO02~CEP=>E*30R)^g3BvB&*ap!*3VlCi`^RF3 z=rV_$iS_1ErtXZ=AMx{r^g~=4J@hEq|K?<75SB`9C`0acIXuSyap?bXO&(_eHKpTV z@A`WFKd%3WuK)eV&T}9Yx^!;d36L-SfBPR_hD0Fnrx}ch=ac!Xz~7D3z4inbB<})f zB12Ao{&D!y?+p85eL&FGcU$!TomDneY-6HI_K(Re3IJcPkiv`cKcQ3q`6hq&%EfGe zTZQAvpd|kOWq%6IzZQf{Ktgr?S{&@J+2P-B@Xz{dAYg;W989_Xw=n+44gUG@)kQJx z{~qQ4-pXIZ{LeG?|JMP#+nz)5|1K)mL&Z93_j&AE`BbuGiTDdNUGtS1^%}1`+=awhaNxpImnG z2Snx-5LgRxYK{LbuD*nIm-8an`nJx0{>@d@JND7-kL5=5_r|O3(_%RFFjjxjHKF;#;CH7y32knH1ux#%9cm0!R;c?RM;jld5fE?HkWoRxj@@dt_wAaNKkj})0xXiKVdd_6Zf!Sx4!cH19aL1iWD%8egZLZ4pOI&c#R`U! zM#sS(t@XEwgOdSnRGGezM}HWeAExQT-qIT0JUD|GBEBtQV7!}<#wG*TSHbxBT+irh zmS!Q0Ue5!MZ$*&!?)Gn*Io(HZv|bxKoa-(z8+gE_+mz;=vM5OJbh6lJe>GJW^NM-0 zN60M>o#8w3OY`CHLOT-)`E;6Za4$8vqd0Z@s?alfPAzBX)(mt`0jBq!SShI29oQ7<64^9NPCxIus&( zmN-khW?F=2zL6nDmT01h+e67-zYjk~ju(Z#=1}b_=I#E$> zj-+OZP4@Jkw%wdEu#(eWacUbO(k}$yDnuhD*~vuA${AnkkETq@&DMB1;hneT!1sJT z6@fHMqmO_6-|Z;o^B3q;VII?EkPBmQX@rP_xe_x}A^;o9zZ_$;QT?96nfMd0lbVs2 zOU3#-XUqLr=#lsdF9)VjF>kWU-X*uYuuykHnImr%6{4qd8F^F%OL{raEZOiR3y(}h z%NUwH7t2h(rON)h)SE^L`MXC>M0~KihP*yk2?kj97-WY>fr(MWc1+(Edv#6ytZ+#(1W`lX8X|LXM=U{K7Nzla@DY?^0JOlW?~Ly_T1upllZO z1W4QbroeSB8*!^6pXE|?9%Y$+Bi4XDU!4GJ_V?= zg(VA;HXf+yKf+|us7#1qi$|1s&&-HxXLMBB9LnW?>d>$7P3JFMwa@}9cP>zm zOZ-3&yvB-tNfm+}FOc+1EZvB8rq|1p>97(*SVZiR0Y z4$L3O+Ds2rQ+Hw>e(*qWEN7F-b~|;J-&Znk%@zjk^{5`ifHO4JgiOr<%%N2n{JGDM|Xp(t{Y_XOUJx2k_?50_{;9tS()9D~Z7 zmN>^<4(j~ugYg3*%>9t9z#++2$=+E784QKr$bi_{Wj1Wq?o%LUTCQ3V$$U^_Htbtx zwV-h(MLo0_ye)z+-=cmzT7=lK@ANb$&Z;G*EQDQ~pL^f6F;wKu@vKE?Zf`nsz{1v&$uXJ45PWb&v#vTTh=fO%J;TMx2Zh8}vA?GsUyBK=s|rUR(H79>=JkZ(>kabPXb{xo|&d2G%n? zI8VH(Mn-?Q!DqO};t+AXN^u)KVp`A}8=qVvQJ40j8Y1x~DibmWiCV`6oz~D^#-5v@ zXoJV|pZD#qXSfeNaWqeZ`zbX{&`PZw51Ea5pTZ(W368h=I`%6AYRU95CJl%6juv*g zZ0WuWVfe09ZZdtVF;7`!i90K5oo(7Xx?gZ%N25dg1?5vcj7qag@cL%GjdM*9A@Y4V zb4CVSQ)fUcgnE`QH_v{=M{#v-=$%J}Ox19=FnbFV_JQUGg@iqQCD1Lg!VTBsFe~LJ zv7dGqA9Q}B#919vzi-Ha>9%tSE&L9UR(})rvUeOItlBayspmhrdVvWNUs7`DdYXdR z3GGw&Ga~BW^*Mi_8Hh`9d#^Err`2V8aLL0`sYF3(61W(DDAyB!=ecZ`UqX7zZJfqR zFJZnkdIY_qvk&*UojSj)2=VA^xMOA1-a2$CPY4e z`^M+^IaC&)wC*vE)jTE%3J!}V+(CLfMCv00m}rPFi*jZKee>>kJHb3U$kNtWdTOV; zQ*&QOnHzYwZP%B*nH@vf7Rq~PHEvIz9~4yi3{}O;rwBYUTi#MGHyy{mz*;w+0`EI& z2`xCW26sQdRG{c-{-l0eVxUTCtKHxJYbameBP*r;qd1ekquZp9!pQgEu^W^NAxx>-de5n--fEI{Fi9?K+|Y&_HdQgEiL@^aV+su5r;Hv0dM!t`?q&cvWftK?QHtl zgf4^W9G~d5s#wXs3_AO!B^Im9Q5DA5d#V}4LUgbjig33HKxJnk8?Jf+v@aAj14z)` zQ(vfu0{aJ$c(@B@)ckc~}y2f31{)6ZzJC>aB&)onBYbkL}#k=N3JW z_hD{O*Uch1Lxu=8WpabIcgBQ1qUtydQyIJ+LCERoeggbMI~fm}t;I%k6q971GrQGo z6x^bpvlmUwUzp}G>)c;6GvZcMi;}#Wx($GP&-=A~x=$lSI6R_0jLRq#Tch53Nuk{q zv*{Y^l`*D=1d%k%IAmPyMv6+U{GswN8rwL#$*9ojI-)&W1mewX`ZL=P~;R+nFPZJcB*j5 z{k^MPyOOIS_gF}EIxV3&*{^M;M?YsuHtJ#!olFCmw3i^u41s#;$!bf+=XdxBg`gKS zzO60ul#7&7Te=>G?<5u5u3(U-c5hQnvMEjql$!wr><`^Tu;Wu6^%ELUJ6(pu2FK1$ zG1wIy9-MfqKI%i+>c}Tz_u|q~q@oBZXSMN+P#Z1%0urGSnoG~Qi=*$D%m?ll4IB~n zLKF@rh-;f^LfPS-hb+@{9oFH81_O_|JGP1;60vNtWS(tD&P8a`z9uIQxCcH!cB<&O z`7w8*=+!wPxT@tCECaonZ8QG8{KYKs$DLg@-GQ&igW0=f_<^z^>%a_Bo(66h^U#_6o2LSH_=R#OMigt?@^FMEkG zdmVnf?2>?5E2)(V(3;L6m1qC(&8p=xZq#K?5#%##nsZG!W?L92P^_2?n~u0;uqfig zC`Y0$3;mgjGV$w540clS*S28Cs!eH)}O#Xd3M9(jDfzxgaEy}+R7S=s@)9F={@LfR7{pMCGuAcGTQFvlN*Di z;khks7f~L}z()B`eK7UUKHtgYl{#s5YD>c?7ZP#Tuz0X9UE!Kj zgy?$bAgCihw-YTVMkTVtP@z50Nc!F(WA_!LGmMq8*pgXN_65hX#6v6+5mNfTo2N+U z;4`WSOB45qh*QT8Bl~KIBI>YGyp~bLXEH&A^ObpcM2OT$dq;n)jxjp&Hd+l~l&mP^ zK&RS<(^jWSDLu5JK9LS?AxS-EG64qTpQi{;FJ7YSV0&0+w^S|7yyhC)S&ZjoJive+ zo9z&+6x1OEpEW3_O&C+QenmeL2EUgFA;7nxs1FSE;<@Q`o~8b;Yeb`^2~;}{qtDYMWRlJ{7@1>})R zJU?58dzqvOs(vl-c(cCU?&b!522BEb6H4vp^!QapKb|H|M;@Lr+qD<|ltFYymv>U3 zDxtnFzKCkg(g$p~vJ|OYpGK4R_vpRZeq%h8rR-HeaAHV6qCu(5R@#h#nq@M{t|2ar zVu1HM7+$5WXIpQjgi-rY*B|U;zqW-Riy{kEi#o4+ zL^Tg}6`U49Q_GrsYiTZKIn7{DObbYI5I=^&KXN)s3=B^_C7sHu+ol1)j95>d$W5(2C>}|rWXGzrqI;KWcZYPFz z{oJ@lZ5_Q}h-j*&PIibmgCyM4ZN4@7(bI;t91erpRuQRU_i8#OK2ra}>C!;~b&*FS z`iu}r#ra`>BS!tzQ#~9phs*Ue5%6ivBbHg>8{4nYc2$=kor3l$!CU8BoOJpUkK0<` z93xlfb@5u806w*lt&@`6gtg>h>tRZ0E4cXPiiXTLF|UPteA2csjPHunWPf!jNL|?vN7mNd&pW^BDj;S1u-SE`SQn(5-m|?#PU?1=xp^)^|-yHG^jZQoR`^qYuNc?jjhX={CD;?5x0+5Iz14Gc-6Nvs0F9Dw&~=? zF`5a6db-n@@p(lMBM&Tl_=gIi$y!CUOGn|ji!ub?_N^3+7jgewCAIH;2qp*895XZ` zEq+9UE~mynky2fz`OYhH)@X3tP6*yDb&>gj0ooslK?F|zm)i#OGb{S-=>e;K;1g|#8yLnK& zl1Gr|n(V=Mip#=S*_)UWdqa#SN!Q{1li^~3=9gpwzAlNB#1*N~3%!bpSfAOu;KD5@x>#Q|_pc7)2IFiBn+DN0~NB;p7%4w~^IHaeNQ!OWKnOjze(Yyzb5*@E=7g1aK-u^p=K`r^TN{J?G$XY^u;eMtu#Vz%xZj% zOFU5i>)V5A-m|)VUcEZUdU@^i&Y90Nm36Tu(|h!?{P_Lt^H^Bdz=H;w)kBjCR1swj z#dN6YX_-kL=?Nms}VRgBe1|BbPHtYrQKN^HR-WjmucFOR$)T_ zIjCMMI64PX$D#*%l>d3>rS;q30MOP>`Ev!%^a6J~I&U*`I^U0~jULYS{qp@d9=F0( z4Z6~N4y&lJCo|=wq-*#gQ&(%BA}}Bl!A<8_Zr#S**SvugW9e6)h4v?%ELP6Z6VY9FW8YpNjr}eU!l7GH9gLA; z!j0qDurw?evz0dQ9d$3GCg;!~LqE%=CqQm%c_|KpyWpLb{(5`0(lpC;(QC6x+OLDF79^Gyb*4 z*Xaz*v9Mcs9RN+fts^w`re~{dOQ^T_Qj{^~9Ghl#P(8a;rBVjU+|ZLTEh6pKFvey< z40aH1$#>_jireT!=D_+ULa-4z(~cE`Oj+9O8HULIhaD+bk5q|IEXApk-##$1+nc8J zPn4u-#UxQT026C5$FnCh!4ARg_;i9@i%+91^GXlXYazmoCr5%jYe=zRV|^OrB?-HD z6@GAAuLjO&eb(;@df__bP@4;3=y~Zws~sjL|!{) z`v%ne6Vx$oL0?F0fwQW0-HSou7NmVF4u$*I-kP~Q^31nNMu&7tbKc!~_IRxdWDjxL zZ?HFGIEQ?3%wO^!I=er8RVry9l-?m_{p^tF8+rfZs-zIVK?8spkI#BG;Lsei<4sM( zbQsitld$!a{g#YWx|m^}Dx*~5m8M2*08kj|1XK~7`XYt@uqD4&b;MeUErvfewwd6& zi%%9PwMI>p$PIiStu=FMpx7V1H3p>5sLQ>WTL`I}fll`Nx}{`zTUV$RHt&{f!2M** zz^ySZeD6tWxu!{b+@0_$MQZp(P{m;-`K)2J9H($=&@RG#%A~$6s%=dLXT4jq5d2jE z?Y6&dMZ%*`A=P0)s=VyNKc2&CuWP%q;=9#d%l?5wVlpWM#c#eB1GtwO2wSctLOX7P zvQBzYaz_Dlloq;<FIYw*~FZ#^VxW=c2kj@e`5`$Y`htn&Ry*(i=iz|63U4USqI3jsu$h;36(M#oaVD#P_)jxHJVp&+-1npME z#peTwmevf$?sX6MnhN`KZ+E!>$5HtFQW~tgOOev;Ar?BYSgQ{QhyP4w^;cK33$er9Mwk;Er6l{D@7C#2_< zS#(qyw}(sw<)91o-Q1YGYy;~$0V+=8n}`%JMm$8&l7wxHL98qIf@B0zQ&sU=+rnsa zZ%gKGm>Xy>2_1$s3v!X^24?wiaES^IL;-w>B;t~~K(g3_Z!^??9p@D=-HUb-=pZns zprZKeMvI-%I#{8j*L@{k9L>z1k3+l#w_HH`VY8@}@7eNCyBD8t%v-q9;*P2tWKP^@ z;%~){D2ylz7iSFN)(w-W z7BrCTIMq1tKer#r_}DzDIhk1Xag-C@PUCY3vpNpl=|Js#x$wP(6<0Enx)L8L_)gqv zAmiE&|Nf>Oqv@Qxd$X-!DBbG?{&Qf=rH%4zk z-6bGWLw9!#A&r!D4FgCFJ%lhc-?-1-@4NTD&iVd(;2PkX-@~(Jt$W>Z&;>{DcQD(bTVss7 zIQxzwxCUhW$vew9HroTBAEnrA)Cf6#=!6^lNWE6N&=`D-+US1yFk@mLrlH^=NKOC0 zZKmIJ6IjjW=lsFLlZ}akuD9Bc^#;m*us%Zh(t3| zTSC{=aKtCPlo|y~OOl(YY1=)-Rm72LqW2q2fq12`s@dwn;w<^MKj?F@6QezXC2!|hY~N&kFH+ho|2ig^^9uODFOGn z)fu7T_~JEOG1W)o5|_oBp7ybi1Dh_vIu&0mvS`na;cmspvTVLxGi=ly*54F6sTfhJ zn&iPM`m; z+vXFx02Brwj}io#N68;`2O|%TY2p&}`AXl_{OU8`o2_`|J!WVyJ>`zguu*Igb7s=m zboA7B1J-e}`nkwX4Is7cFoos`nYavrXK+c}36C;FZbvZ+u*nFAM*_$l+OG+O^f&K9 z1v|V(^)L4j{s$S5Rwdx46fOgXKbd14F6(d4K7Kg?oHt2LmRafqka3hBOmNznc>hN2 zP%QiMP*ExBhGHxmvTtKIJ;6?GlZ*UPhw$YU#qzS;+nSK(*p*H@2-(nx# zmIw1tq{SRNwW8l9RQ~PjKr_usH#=0UT)Y!eM-3iB^olcFnzU|LtE|}FEMg?>wrU;d z+9tCkwHoXg?HRc8=r-$%S(1F5>MuvAW@5xFqqlAq8`JGA!KrP6i zvU75ck47yIi*4=pHEzOV{W1h~?>cB)a0VDZy`Dt0X}~v!+FE)pGWq|$?^h!B_@(nA zi!FTe=$elAz~M1$lUHTW-Ys+8ccj9b)(;vv7$B>8A-+m8aXIJoFuFbB3ZuWLR8yH~ zgs+|av6MHvtC-ASS2wH7<%RPv_j3^(jKKmseMA{o!&Z@>&Y=$C2@LahLVm{(R!|kn zX0C^CsXj6evsH-ePn0h@5em~B31(iPf579767JLvTnyXtw+^K!(XTpal);YJE4A?p z^Ye8X-8&!@c*4engY)$&ZU`}}n08YIHCC-$#|{WSUK)BVI+{NxjFp${Fdj&wUf|r4 zE7#5G36qvYx$UQ0GW=aiH_XrqW^!-fU=Mk)I<2Mf^s769`yyk1d`}%Ru=m?uG^@c_ zysY4#!rK$xo9pBKtOU!ciDae^AyN#v((~u9!U+X{?k!I}z4Kiu0~hH0?>^p+T#;qE zhqm^6)V zVLJ!0_RL45b2+ID;`imGd|f#F>LyfkpDKcD*^|TW2Pe$R89p4+-?yd)8O0r3m@N%G zhJ!2dPtCo@X$062KjuDtCjyoM+Lkf6=P?m2qicP!(1Smq=bm?iY{v&Ei)aGTOgugn z4q@n1-*H0zEFuvb@L1ZDpSE`kqUe(#n5qWus+DUR8)%UyOjXP`^gUYk6 zrF0El5t#x@H@`h)2%GN@#ZUH!9TsU9{E$HoZ~gmt76-|$^#6>#s2(%qAmf<*sDfeF ze!g1G(;DGe{UT4hmxNRQeZ>vCd5D0NZW`0jQ5dNoO1-S^|MNgA_uOsooPOWZ!h+4D zElIOjReWHrCH9#GB;|sj`RG`-)>BS9IGDXnE2(W9r@S|IMQecWXt%?#V0|FzX!nZ;0ID}_^6Gn;%nOb8FK@yW1A>Q zo@LgA^e)v}aQp7}Qw^#+&KHD1VHc>?Z|&VO7VVO^W{0UqWVeV$`cy#o0ypGGBSeg_Nb2O?)f0 z8c4RIl>&C~{GLA7-Fa;Ux(q?Xw+rSGkao?ZMIRXE7S{1YWjQU6Km^KOz6FhRd>&U$ zV0;)WX{KriaHh=VgC(O9tOU0RT7%^=3GSmcRImwm>A~VI;|E{mg_V7|M_!&@9bvWB)^T}cDokZvF)4VOHpfi}?RO3ilSJGVxWNaJ+eQ}u<=);qg}sNqmLU4vgd1+(>K^?*9CX##!6C+}VTu2X5hKWCTBO&4!Ljd*$m-2jBn{d1I+@zHw;Lfr0Iugwo=lKh-XoM@`K zYW1P+&P#5BR>ZZUq#(wzu50((tC(6NS!WJld9kMEDTb*tBjus@)E1`=!@yfs?bq+( zaTZmeCzKN1MnzRa)xl63HsbmedH4($!7%-#rFo^!c=~1DGB5 zf^h4bX16O**vt&uYyL(dPaSuJ_L%Gsc2D@2k-7rsgA(!B@ry4F z-lGsEW0|;?*vD9V0-tI##@N{4WzHo5kgb{zL4EvK()evVi^BzpPdxFbP9LpYDv%79 z8HW^arOdpGzQbQBnqkWqeR?XIhNQ7OM@VFo+sC6YrZUwH*>a)K5R=!0^5|*2za zkTZ9tn`K~&X=x5k?R_QssKR}1e?|j6#>eU&DmfZou00=Zv9ek%y4Ec5C-wMA<_D?1 z+kbQQdBhr-a(aa&(E(o6;Gso&E2cU0yVc&R?9>jp=2=Sc?Jl>4{wlDIU-~xeEv0lK zSv~gmYm`CBi+J?aOuHvbxTTl(VHUX$uT0LhQ*Yqfwz|wwWMAdD%CaH_S(x9XuL-rO*Urf82^1Q>KfU#2A-o13h5$P$IEoXbW|3i2Y%Z zp%GLaRgC|5h|#DzsD(DlLDp@4_c9?-=u76FSHpKCt6@Dsm0K%^;)rscv-RGqKbtMW zpf|sVuL#Yc)UvdMpNkq3)kk20vu)Uz$f0X)yrG zCR+J-ir0tzZ4fJ zD2JH-kEr+!z6fd4lN@b$e5lSVSv&vI4|!ru-`__;?>Id||FN}Rm8Z`JO;ckd33q9q z{O}Dm?E?M%C*Pn=5WN9zvs|yRkbyy7gZ)@cONeu-&1j9bkn(}Ve}CcQus_t)vAVJ2 zOvbA7SQ?RXzjzI*h;5K5$_+4n**k^Z$;Vi8nOKR9TQ-qRcE;j9V6@i3xRBDx#f(c2 z((z+0DRFKi{xgZQeb90&O~Hw8$3a8-`MZeR5atG#gkrEHgbe`&sm|KLSXc`ZpEYQX z4Y;T(CA^<8{_=#`kcXLN9B7_GxpY-=UEmdxtFC*NLbL=~|NLpm^G#_<2VhH3yU}{d zZ=vxzTazvQ* zR&Tf5-3s!l`-kaFd^-9?m4C}Skt}0dR1ZH(Lm%d%uC5;2-hfZD$h0RAli+(T4L@-) zQ{nU*QgKnv&bMtd-SHI2H z_LKgL_m>WRTzUyDbA($j--N4;+N30Xbxqt%qa`W$RI8zRx1XZ)%G@W^mm9HSpb}Br zw{KRJSzwDCJmcnUP&pH8i_BQynGx^Dle)RPLhw^u9$-i+>xSzU@>QxyaUt~8l)6Iy|^F-8t;e8k+j*tn(oDy1ZOwg}qffUQwkI&@k9;xx#SiylCNhzjTHM zE0lbRm@lt4T&~EicQE`RN-}r50=G|DGp@q-0;eq;k18rw;f;B&3S@^wUdy{Wcwhj2 zzJJt&qx{0*R*Eyw!`Y?P2RWx*W}Wi&<7UEe>CpTN|B$V*`Jfkbzm4?eW#+I!n1@QG zpI?MHa}T1Fy@8!9B{j-z5R_G(d|Bou0%jOno-g~7R#ei$=sd97F694{Q4!J~^Xqnh zhCvp1WgP00yCt^uwXurU;n@tk@CuTT3OQ6Av1fjRNT+sHOyMxy%Db(pR7f2^gI;VQ6+>r9o7yXXP zs%S`CTfFzK&-sw?;@W;zdw`eS`1w0!E48$RfgF?wrKA@b!G87_$OP7@%k$H4D4!gR&H5-+$jf>{ksyLz6Lw#g_N*v0tpRA`IT&wtFL?TAf6615GWxI4NLSRtnfHU(+|QKx!+}Q@!*sUJ6 zn(vD48ld|3yHi?;3;TA+Y*8a~($47?zi$t)<#d$fmBXfe-8{@VCs^f%K7ZLud$XDY zsDn0-8c^K4L6~T;Q?uD0ZHaTk+nBrQMN)^-gB|A~1$f7>PoLp8!xBs7bm%!`_QlM7 zQT^i$(0;l^(_mfu?Lg4w)d@UuNMP^a{E)_xs=U{lW18IAz)q;q z+S;9D&m-bjK76e&tJe$sJ2|JJpdwa9dxoacdNJlz4x`|nO1*$>N;){f;7|hHp9;yAltOZbg zhR+^t)SI2xtKsYKAD9d_Fc=bZ3Zp&eP5kK6zF}|YVIWZ?^N3q*NsJJS9*$@D026*{9>?^=Q+21^;s@Tr>=m@WOrbyxmskw`o2gWrj77wp+)$dku z7~RC9X911*cLs8vQRVws6dn3~6j+y-Al-59To@lrCf+fqF?~)sp48bibQ#C_n_A+k z6OozBAZrJD>H!nzs2w>OJoKt`YUWUT}=}J}h zb^abi>yXAM<&h`H<#7zP={ccm?|h1$7@;&Go8{GAfQrHq7~8l{ZU6b}VAWZNZ3T+k z57j!nCsq;%@fTKmY&EP<5Kr9nD$<@sddy>HJbZ+GpGb4=^fkrHRKe&)qe!@v$SW=^^ zXF+E^B#~i0H41x#f9pnTo?mz&4V^ zWO@8R6S&C#zOlQ?j7v)_!|lNhtrh|C`=09nM_4g_rEYcr@*#o}w%|Wg_vE8Ts0EEj z+e+S+jP0hRk&YOV4^DjLDmIBa(3_?wh|HvET)fh-xbiWA?&(U~dK?>*(hL%><)Bk1 zX9qJzp=pHyO4gAu7ZxG4)-nH?y>wVQMH57ZNz+-O`#G!;lMBzDC<=ksU2mK{$UFK%GdA1!|A%+@nGOU zzC!s)<&x_Ex0dXoXwaE^gQqKxktnye&9MH#C{ow0_oM#qiSA6Z`|-9^?}-+~br?C& zpW6Z6FtjpcxqbOTg_Dri@}o*D*Vsss*4%FJo$ca+LjG%9+DSi*iJ^MlIHd-B0zAqV zO(pL#2cwpJ#m6FZoZU~E_VbopN@*dWO=~3=ApAMr zR)6nm=p^)sH&izU|2yGJ{{6hCjJD6tcgEAH8DBY5`WFi_7{8RUBR|10F6h5F8Ev38 z>c~Ua38slHV3>X#{C*0sMH5YL(?c({<{3-1Ju-6>Vd~)ZBk=w+G82awu-l%cpZ!3M zD)cf^bf;$q#FO{nLoAbzr(h3bBoa}^f^V#^HT(cARJvTcZ08-nJTMbwjwHdm>@j7~n10J;ZMage>+A05?dxT5)KTV3V)Qut*UG0A^r zzx}&RF5u=5iSy1s)TuM5-TM*aCpSprFYzuP=ZA@zL$3+K@DYvpT89=l{i2g^xP*q5 zdZ-ykg%ngLF>=VkON*20Q3_G50Y1OhrGl9Rq?4tqIg8NW*x5@`!%~5lc50oGgk$ty z(#}KJ@wr8X{l8^yszrGLyjCFXu~j;Z5K)F`8>%zuH%TG$Pmk44ul5r{8wJbu_Bhd% zHLQZto8rQN7poQAU>{N$^A<@nn2<#BaN6W8z#|12VA&O_X*H~?WNb&Ktf4ko!U zn+P)&cM6|MaX-78{Wj;f{iXE$n*TWBZO1sq1jFKsDo4AWN~BUsx`EGLE3MHiM=g?J z-Yh4gF*$V%sgnXXZ`0nq=};<=`>CxHaRv&KjlV~EI*r|rzdUqzTz%7JK*Z2sy}*7thDm+zpP2u&&(PtG1ZATEPRGfO^j_;Mrhsfr>N#aeF_o|1whh*`?|S~jGf zzrBv2a9;H7yrYKv+`$MZL~um|7I1;92AeDlNZ5MpmQ(H(!oh7iz0f#3^dzTGY0p4M8UN)F)RvAbtIB6Ozk7!xT+CiMrT z_*QqBX(=__wqv-&tvyLgB=`tTj`U|KWiL?>ZPLB3U`7WQ$YIThy26A3U1~6__FD59 z`V@o_=Nmk4Szw{}SG$ujok_N|X9ZKIm{gVRUJhiL08Juknb?9W+l~*#!|QaI$NzZr zYqoLu%x-dX>%95pczHoh*WE$Uf=T#Z@l zLEyBx&x6yvQGK~1wEHA_o?FV%@H6KBelz}YS6Za#R|!+uQ`Tiqm;!<@AN@*a9ori4 z9vbFJ-+y1|DO6}x)qdZ_AlYFRUI6%5gG&Z$@?NTC({y1lkPi*pcNJq7;yO6r6@9nK z#BX;N`eyp`l~!h8h~7BVLBB3v`lnIR$whZMRVZ|#FoeiUjco19aa2G3i2)=@?pT{S z&`!gEx2nF4yGe(kJ1?y6`L4LMUh8+fvv@k;42ISR=<-;JFPkjcPH@xL=6cTDm5>T} z+`6Zp{N=O&TIsV#4tm@MTZHAi`5~mj6LLf(-Se*<1;m_2K^_>whHZMZ_MLj)`W{)u zRc`>eU5gJlQ^!0h6vt{j9H2;QEw3b?CT^zo%e$?fqfE-z|MwP`d!(2(gSyv#XF`FhmQ5* zZ{BiLU{t)y_dp66jGqKDZY3>}|A~J6y-`82P*Hvwxf<3d_qQi_wUVEe7Z*Oe1;3WG z{}^t|OLmZ?7v&}hDP?Mx-LMoZP|~}+aul=;rgq0!T8~j(uq=iy7RHBHuNAsCED?=6 zP#=2j;hKnmKwVM92MJ|-q!@9w!HJ=A9xom)A@l(&O18w`n<1y5JuB?w6y%_*CqLDeZhx+mnEyQIVNxSB`8LDOXEQ3AnLsr=IerfA~$DTH!4f<<79 z*108&mqT!#LYDbx3O;G9 z#&xjvaFz-VZs|$Pnrq2eS2r-swV@#ii4+$wJx!ixBGj?IGu%oXDCh!np$WJ?tV z*($dZAe(=@eaXc^{Zfo*`O$p+D67I;B{dKrMQ1+-C^KD4eWId21yC1cv3M0#&)qa< z=LQMti4jsC!`iG0v2(Y&a-73*g>3|S9m03!_@}+s=lZLlnN%>tpR02in-(rOon8nf zAUC&P<1E6ZgYDk^l8fRs+cGWh$CHb17d#}7t#N5fts;RjV zS5Xffzj*4Nd-8s|JBEUdJf|Z;WubnOIfM4gjskI9FVrMn=~%cx^UYxBeCW^iHHgY> zWyHB9zApL3DBgESBq1VUiehf66Tf3=buKxHm7-bacbo0FBx_0cPUx%YsWrFu-Q;&} zjpM2}lqDIfYaG5oyet*0Hgr|ahKM-ES_ez!X=`2t!AJI2nR63ojLW8epG5bedwyGf zzU3g#8oAofT~*wjCk>IHGA}>NN1J81V~3WRL}SMu4rqC?pQ^sFyGS^c)l2)jD4H0$$BV z*4ly=^d`?z`)7gaa|IS$&>cX-8lUJ<Kdy~|MqZ67HCxGTqYOgN=#&<=xs=1rd?o=TX4jSFFEBi~Lt$zI zkzD}$&owuP!EM_0a3YgKSrLoBJ*@wmc#o=pbm$qCK9^=A)SCp-+3|$gk?+=C_=h}s z46$R9Rg;gD@ui7Yd}p2j{1sk;iCFPexS4j-YKnADBy7ADO}p2JXz1X!h>Zg(2x5H> z3VpxQmz)ab@$@=yv+F!R8c|~SSyssuvC6J+E%>b7=XbVGwBfoEc~ z(SC*!xCZ0RGM4Lf&ak8Rho1tVJ$lVGd+~_YEO|1FZ{X=eaTnu-9N_yjNHh+1$Ynl~`ra&T1czEp^N8 zS_zHy;DxTA`!A<9Pch^#CzbvG+ayY!9)XR1*C&J+=q4b3i3Vt3&j(kEa^&I28on+u zoz7Pvb)ZlFkyW+$(ew80qU2il!l^<`{k=@NfMtmW*6z=Imq8Q1s@_uha*G1fN!5_9 z+3r~#HtI{@rf*4wXXY1eaueTA_H7OC5+)?fLx@8GSlq{n`pJA{g69O3zUN=MeCtb7 z_6PBOeL!%rmv~y1;%1-+=4P@YBGqGPJkb3P;G~&`-!l-Kjlqw2*J_^8=|W>P z$@p|WcYDv5q-kZBmoDngZRjeWf=3XvC>a>$VUdJg5{@RVo5Z!j=ulafflb^_AC>L9 zxxBjm;1(Wxo31^&mJ~Wjewwk4wg*yW`mElBN6M}J%#{vkFoHAEb2W1V3hyl2%Cyee zs@LP5yhYtblpv$rJ(MuhH6MdRwE3>D;H0nX?H7IFYF*hmf6GZ>9wxzUXOM`mS=c7zOz;Xy;D%n{TNZGW`w!UrdhmNaqAeC zdB-iYjXrRGJ~=QWK+7h$)v3M+e3BdvD@pRpn_EZtlh zRkYVem7Kh9zurzd6#EOhZuHIO@?VKe0A@y^%UB_}RiC(rRcUuse2EvSNLm8Y$r(Br z-r}RsZXI{+g>1DQlhgFPU#S=p;aUPO#J!Q2q$J4s}Od+3(m~Erlc(dr>cIBZc z0}ZDVZDyr3{z~o&gVzySP5VWk35yN-c1(mXqMi=pP~;j2ZQkMp4IuukDMrR0j?c+E zW>!K3vZyodwL%2S_`{RM7O&t;_Q1A$W|{jdhpz*?GCj6nV@9myr9#OrGf)KK5Urnk z@+WAcvAdmTK$fqeWB92zS20`XUE9yfu#W3ELr!Beqmkz5X6XEA#9C zJX+J8pH;7DT0&iYs}2fSbgCg1uJg9R(w$lneQ}1`N~`axa7}F`P@!g?+{`xVt}e?N zpQtq18J1^G@3zK2KfsNlk9KjG5l2+UfF=WUZ+Howkv&T`N$%g-ww zw;kT7DYF@@QBuTN3`FGqUY>RDdS9|?l@x|~f$;%_KcMwU zeJL|QVj1IMCqgKBGkN?GFxSj~$vmPjd6*>m7uyYT7x((pLxrYJ6lPYU%YU>3F^uSE z(z>v<8x-=J0V#4MRG`?3JfQGAJQ*KOn;rfwQrMvV1ld}{@ziCc6Jn9xYdtl1muP%D zgvv%gx6K|C|MwJ~-iL@SEY}XZqSKaKTG2te)@h0IrbBj-CAs9{yL7_IhWS`KI_5^R z^1-m!<8L^`j<{GUfQx0fR4)u7P4oveMh`fuyB^|@#P5-fC~>1Kcvdd8Ot}{KI*uzp zJRIyCb{i6UM7o$E;IQH_Zem1+jIQbJF};PETSgy6`k$T)&z|B6sH}9D`rH!M=eAPVdU^aJqqv@7nWL#E5j8N%s(V7!Sss zrmA0NFWsJ2AX(nY#@??tY;EmSUq`$|cH@2dHziv3XM&5%CJA%+Smr-m%{KGLV%x@b zn}GdF7yZKS+Es_@IX*{dPI8ZE|D#Pu8Gd6G^LjcSGi`nWG|2hBf}Q-V)Xd4K7rA;- zVpNxwq~LbP~Y&QHxYryV% z>BB99@%NzM8NPAv1E!7UCEMAjYKJoz9|4X7cvdfT*m;(SL+MMsvG)LyVK6nFRiSOm zx%1-u-pTHheU>r6n#H}vl1P#Ok}tH0e@qgc&eh+yiwH#9-R*{3;Da5PUDP z(y-9fa$kR97&^cs>aE24*e*%B+818g`W4xlQtZ$eLch(-)!Jvaj4|%kyh{~D@XJIu z`ZL_K;sg?g*}^ZXn2B$gVq(y4%CiS#uxYJ`*Kc}>LUmibw-qiovp&o5%V-MlE}!2; zl|3P4?Hyh%i0-2oE`rcma?oD98KvW`ci|Wyjzd-Z^}S-LeihG-2%n2v4ED$0_0KrJ zpMIyVOx7OJA8|5Lfy8}}QXSb_)APT00Bb7HCI_8n2*s(!J{CrylV2w!E^sz2uA%cQ zA7m1L&fy>rcfGdwX;)}GK4s07WcZw;=3=7C2)GNqPc=5kW7aQsq&+*J=HDC(p1cfL zL-=!CpMSh{Z#S5y{fB9sD0{7DAz=%mvrOgT^FD*W0$WhkKwcB=SdD}5%zphfmxoP{ zZL4*j7fSnJsmM!0DB2`r2PLcwvHi73{-{5YXF{I74IR*NIb>^#6>Nz0!aj)Hb(q5X z5A#L+ZO9~Fh5WawC(Z^vQR=AlfJO&mESAdQ_Qn}D;<{c{4}Iy^$FH!={;=XYydX98 zm09~*eQFpED{-{t+$aop@5LM@IeT|zPvSJE&7QCvtI7a327m2tK+FWnZm*--rJ*kNGVc>Pnqb%ayM^cKRW?o{Q2rmcSG_{vQAD&3=Gd*kbr~8_ zgg19NTb4Mq>l`5GDO#?s@Fm)_K8KzIa{kuc7!%k`=FZBUg>#M(?1#zz5P}5*6EaT zt|xNS`_Z_Oovaum!!`(L5FFpR^ZWIgJ^z9k>vvmR0$>LamrH>xS z&$H=$b+XjJ_6 zUr_8%-Oh?7G@S3JE18bHf8%cPve`cwK1N`fjRk(3t^UJ)4DYEM2+mkE_7js`Ex|RR z5X33*ALPoN7W)M1aU6a0BU8cnx_!dz<8r8yvsWA!&rl1>kIZ5LA~XzY5|vil+)l99 zyqA2)uEV9JuAu>%*0JXgB|GpRcGm-YYb7@u=1HlAeM?I>o0#iPvAvzW{i^f2`%-GY zys%$O7Q0Tks)EGUbPM-u59%rnhS{~vSh(K15GM!K z_Gac2OSnEjZc1REWMj6!U0Z{8rCEX#Y*93hBFi>j=CY73XjR95k0y<8@yyyZ@lo~c z&{hM&`KCRfj3vv0u_CB3-&71*i5#sHJE#Fz4BEL$0ZoIh@Hq79P&A#9T2*!@~+ z*Z<Srn5X$&+Fsr&DvzonPdKV3-YYyx|2oqkiQOJOd09_=$k9_fJun!+x-<4 zb}H81NM`4JX~fa`MO;&^Y?Q*6ok>y?389KYF7|6AUG?3g$7ZP)2jhV?4fX_sL#b1? z)xO`EA5?9+5qN3ANtu06-26WE-atV-9;(g^a!B-XRPy(z#bJ;*%WaQYb0H;@UxaCm z5193btw2GNKlv53!;(Y3i@S=G7NJz^EroZDnk(u`KaBb2L*}WpkjUaJLEk7&n>+&2 z(BQf!D0#8p<7Ly^@MD%Fcj~{r(*LKD)BB;*TcKQ=>5R|+ z-ERw}z;$u@!63a+7g~_SSs_jPNOi`JM9gl0;x)}vvia6LuTa7Ry&<)x5qX& z>u%PotDsD?OC~`iV=P0Ci-}*iM%>|J%U>Xz0=cA&%Fjz)dj>phX*rJ8aLX?pOsY}O z^U|_LX`y=u!pJCa*J(sORPU*5_|D4F^z^+#^NWi1Z1QEJH9%PA-cyr&0uV*lX^^dI zXXP_(d8}z@74b<;t{1faJgm^QjUZd1`iF>PU z(K$G}C$nk=P4{0rtb*t_tDPiCuK;UYO@iTz7Px)ZTo%frDD4KS)k{)FQvs^!(0cg? zja;!H>6o8B4qv$NSYTCnO6TKg|C^x7>+8Q$8BsqX^R;XKnCRpF#XGN`?A$GHt}^{1 z;kbqOd^#P}x0!FcKn9PQp93!t{zKM9;EhV>N`_TG-g7w$fi*Igl_rf6W#L8#CIKKQ z)p=3AKI%-UxBHsbQz1*|{rjZ3Fx&*46(3`i@_J*g(W&Rk8O}L}LDG!eS4vdrAm`Lg zT%v!`WCfG4@7$prZ~1l(n3A~plvJ+YK1M7gchtNQ2-=uVjC211Wzo}HI6246`cW=) zx~z58s)7JJU&_KsUL53%4$-=Fk83=pBbQksaJU(-oQ0Q7V+15bM$CErT)j9n+W4W! z9UmFdqRi*_XhY*OJS+xl_4>H23jI?I{A3_{q4loPpepguNcgJ3sM(_gB4nDM&uX%0 zH&5?`w3|~zx%WY}#?HX)-ZQ87!mFoq``qH=AW(O=tm4L|z}xK_W#NwWjESNY$k7i2 zaZo@r9=@v-WBgB>aj^q6Ub@%0I;T+eGv_Y2x4t@_+& zGoT@KxtH=GsQepdn>?}Jxq|!hX{oEUhQ0RCc+|q$|I^?-T4dMiL(+i5hgG|nwBEwm z#WCs1;FENyz&0!0_i4~8f)~N@q8F(q59fjmM!xasfF5<`SQtIz z_@*XshNSqRA^dLac8;RiWq*BKZulg*EOYPcXu87O*n!sk_LEx2W5P?@b05wZ4q6Oj z#*}wpQ4b_17*mXF6gWbj?Nja zL5WyUt`eG38;(PRBQ8G-nm!dm0!7~8l7v!9@k8cN*#%Y73exnx4i~Dd8qc{!ug{Y- zJ(WD8sG_)yfnF|%a(In3s5Y$!jYQuksb|Ygm2F zn|;qYK5i2HRzI?<=!BtnSnv)YC*8eE*kw|0*E6`XGDt zU#lqM*f;gg3-*Rlm)X)eI;;$DTVE^w%u-$aZ&0&qf;m1jlanb4UQ?sbXFGVRBL0iX z20Wja{-zn6kFGm^fvvHTQFkTM{aZh|$7_*}cLd=4y~UDst*sNZeA>I7@1NDMI7}J> zAZ7T0x4pDvy)GUQe=)L(S)g2zraXf^;F>UD*3Vvbl;yJUI~8;jd_d=ymfvSKwG*3O zHNn{4a+u!>1+rw(yGy**#Tf=jG3;l-_RObbJWsYf3#6y-R(RtsgE=JbGafGH&12<{ zv&X^Qf&SlzQe)!x>)@Lqs{VIFVXi=XXg2r<0jyF$E`PZ z>OO59ij#XT#Ai@2LB+8%aQK4P)Dc|~${J#jE@rv|m^nXn+ z|I0;JR2TGdR6|#ka5y;Vuya{%n%|eJ{m4+#-i#dL6%)o?xh8A-6x`ETZ1;l!0(9T( z+fpxle>)|F6qe+&H<;$P!vHS~5X3WlDlD-4#^!s|M~RH?X!nt^o2phwR&X9AAxl-f z^xUNz6Y9VA-f@O|9WfyAy?hxm$Dn-l;bZtH4e)gXiLr`|>`MO*)m7jCh$p7=A*$mzu^e_p8}v)CGmA{USreK2labzVGpNX zLNC*tJpM9?8f1QBlJ0=^fA0l9vjpg|l{eN9#qRC0dgY39@oNKVuJWTj*8Q)7j#m2t z7Ep3gn@4&`E}G2JQG-M+tL;zlMc>J{A^6Bw!B15bN`Gk<c25~9V^ATKeR4kj2M73>Kj#Z^WBHO- zakt;2yoa(aDufdj?POTdCMo!BW-Gy}4wu^!Sy#j~V%gqregNzkFjTbtN z zXS)^O|GMuuwJ97%`GxOJKPEb&5_mesk#Q+Z^jGDJ|BM278-oH_{(XY^uWSB?9xar% zNpVNkiwgtM(eJO-;Wp>2Sk3`27mgy`s35gLdhes%<9`^noy@8?*;jm!MlY}P%$^wU zyrZqIFskuZfwimoou26^w3^mA9;+8EL~7Z(DDR^xowXWGOAY}S4R~7iBg#6;ITY`! z+~Vs}gSJ9?OW~2x?t0cAW(WFw8z|8-V1rX2ofL3ID+E=dMUsxD$*)W)6KohZjf$

3kxm4fvwi+fe(8NZ30SBRaP3q%s-i$&V$@n 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 z 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 C_5Gdz literal 0 HcmV?d00001 diff --git a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/downgrading-copilot-for-your-enterprise.md b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/downgrading-copilot-for-your-enterprise.md index 2ac4051aa4..2a2bde2c5c 100644 --- a/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/downgrading-copilot-for-your-enterprise.md +++ b/content/copilot/managing-copilot/managing-copilot-for-your-enterprise/managing-the-copilot-subscription-for-your-enterprise/downgrading-copilot-for-your-enterprise.md @@ -1,9 +1,9 @@ --- title: Downgrading Copilot for your enterprise shortTitle: Downgrade subscription -intro: 'Change from {% data variables.product.prodname_copilot_enterprise_short %} to {% data variables.product.prodname_copilot_business_short %} for your enterprise.' -permissions: Enterprise admins -product: '{% data variables.product.prodname_copilot_enterprise %}' +intro: 'You can downgrade organizations in your enterprise from {% data variables.product.prodname_copilot_enterprise_short %} to {% data variables.product.prodname_copilot_business_short %}.' +permissions: Enterprise owners +product: 'Enterprises with a subscription to {% data variables.product.prodname_copilot_enterprise_short %}' versions: feature: copilot-enterprise topics: @@ -12,4 +12,12 @@ redirect_from: - /copilot/managing-copilot/managing-copilot-for-your-enterprise/downgrading-copilot-for-your-enterprise --- -Enterprise admins can change their enterprise's {% data variables.product.prodname_copilot_short %} subscription from {% data variables.product.prodname_copilot_enterprise_short %} to {% data variables.product.prodname_copilot_business_short %}. To do so, you must contact [{% data variables.product.prodname_dotcom %} Billing Support](https://support.github.com). +{% data reusables.enterprise-accounts.access-enterprise %} +{% data reusables.enterprise-accounts.policies-tab %} +{% data reusables.enterprise-accounts.copilot-tab %} +1. Under "Access management", locate the organization for which you want to downgrade {% data variables.product.prodname_copilot_short %}. +1. To the right of the organization name, select the **Copilot** dropdown menu, and click **Business**. + + ![Screenshot of the Copilot "access management" page. A dropdown menu is selected, and a button labeled "Business" is highlighted with an orange outline.](/assets/images/help/copilot/copilot-downgrade-to-business.png) + +1. In the pop-up window that appears, review the effects of downgrading the organization, then click **Confirm and downgrade**. From b41294ca9f35b568ecdeaaeb5a1b9cb11ba06c35 Mon Sep 17 00:00:00 2001 From: Steve Guntrip Date: Fri, 2 Aug 2024 09:44:22 +0100 Subject: [PATCH 18/24] Add section on notification email replies (#51886) --- .../configuring-notifications.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md index a0a4401495..e82a2c69f0 100644 --- a/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md +++ b/content/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/configuring-notifications.md @@ -133,6 +133,20 @@ Email notifications from {% data variables.product.prodname_dotcom %} contain he | `List-Id` field | This field identifies the name of the repository and its owner. The format of this address is always `OWNER/REPOSITORY `, e.g. `List-Id: grain-lang/grain `. | | `X-GitHub-Severity` field | {% data reusables.repositories.security-alerts-x-github-severity %} The possible severity levels are:

  • `low`
  • `moderate`
  • `high`
  • `critical`
For more information, see "[AUTOTITLE](/code-security/dependabot/dependabot-alerts/about-dependabot-alerts)." | +## Replying to email notifications + +You can reply to email notifications from {% data variables.product.product_name %} and your reply will be posted to the issue, pull request, or discussion. + +The `reply-to` address on each email notification identifies the thread and the account that the comment will be posted from. This email address remains valid until you reset your password. + +{% data variables.product.product_name %} will not always include the full email contents and will attempt to strip some personally identifiable information from comments created via an email reply: + +* Email addresses in a standard format, such as `octocat@github.com`, are transformed to `***@***.***`. +* Signatures and quoted reply chains, when the email client has used a `>` to mark those sections, are stripped. +* While the unsubscribe link from your email notification is sometimes quoted, the link will only work when signed in to your account. +* Email attachments are not included in the resulting comment. +* The maximum length of a comment created via an email reply is 65530 characters. + ## Choosing your notification settings {% data reusables.notifications.access_notifications %} From 9ad62c10e21e010066313deb016c5e33c20d49ee Mon Sep 17 00:00:00 2001 From: Ikenna Omekam Date: Fri, 2 Aug 2024 03:51:01 -0500 Subject: [PATCH 19/24] Updating Azure url format (#51879) --- ...repositories-from-azure-devops-to-github-enterprise-cloud.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md index db3d07cbf3..8499e75d80 100644 --- a/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md +++ b/content/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/migrating-repositories-from-azure-devops-to-github-enterprise-cloud.md @@ -132,7 +132,7 @@ mutation startRepositoryMigration ( ``` {% data reusables.enterprise-migration-tool.startRepositoryMigration-table-ec %} -| `sourceRepositoryUrl` | The URL of your source repository, using the format `https://dev.azure.com/{organization}/_git/{repository}`. +| `sourceRepositoryUrl` | The URL of your source repository, using the format `https://dev.azure.com/{organization}/{project}/_git/{repository}`. For {% data variables.product.pat_generic %} requirements, see "[AUTOTITLE](/migrations/using-github-enterprise-importer/migrating-from-azure-devops-to-github-enterprise-cloud/managing-access-for-a-migration-from-azure-devops#required-scopes-for-personal-access-tokens)." From efe40fa5b72a920269ce768854a1aa0f380a58c9 Mon Sep 17 00:00:00 2001 From: Andy Barnes Date: Fri, 2 Aug 2024 10:08:31 +0100 Subject: [PATCH 20/24] add Exporting your project data to index (#51871) Co-authored-by: Steve Guntrip --- .../exporting-your-projects-data.md | 22 +++++++++++++++++++ .../managing-your-project/index.md | 1 + 2 files changed, 23 insertions(+) create mode 100644 content/issues/planning-and-tracking-with-projects/managing-your-project/exporting-your-projects-data.md diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/exporting-your-projects-data.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/exporting-your-projects-data.md new file mode 100644 index 0000000000..61f14a8dcd --- /dev/null +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/exporting-your-projects-data.md @@ -0,0 +1,22 @@ +--- +title: 'Exporting your {% data variables.projects.project_v2 %} data' +shortTitle: 'Exporting your {% data variables.projects.project_v2 %} data' +intro: 'Learn about exporting your {% data variables.projects.project_v2 %} data.' +permissions: 'People who can access a project can export a view. For more information, see "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-your-project/managing-visibility-of-your-projects)" and "[AUTOTITLE](/issues/planning-and-tracking-with-projects/managing-your-project/managing-access-to-your-projects)."' +versions: + feature: projects-v2 +type: tutorial +topics: + - Projects +allowTitleToDifferFromFilename: true +--- + +You can download a view as a _.tsv_ (tab-separated) file. + +1. On {% data variables.product.prodname_dotcom %}, navigate to the main page of your repository. +1. Click {% octicon "table" aria-hidden="true" %} **Projects**. + ![Screenshot showing a repository's tabs. The "Projects" tab is highlighted with an orange outline.](/assets/images/help/projects-v2/repo-tab.png) + +{% data reusables.projects.open-view-menu %} + +1. Click {% ifversion ghes < 3.11 %}**Download**{% else %}**Export view data**{% endif %}. diff --git a/content/issues/planning-and-tracking-with-projects/managing-your-project/index.md b/content/issues/planning-and-tracking-with-projects/managing-your-project/index.md index d604164fe2..d17708b29c 100644 --- a/content/issues/planning-and-tracking-with-projects/managing-your-project/index.md +++ b/content/issues/planning-and-tracking-with-projects/managing-your-project/index.md @@ -13,5 +13,6 @@ children: - /closing-and-deleting-your-projects - /adding-your-project-to-a-repository - /adding-your-project-to-a-team + - /exporting-your-projects-data allowTitleToDifferFromFilename: true --- From be0db3df15bccfc601cba2e330b1134ce366e290 Mon Sep 17 00:00:00 2001 From: Dan Hardej Date: Fri, 2 Aug 2024 17:32:17 +0800 Subject: [PATCH 21/24] Add warning on Actions after converting user to org account (#51885) Co-authored-by: Sophie <29382425+sophietheking@users.noreply.github.com> --- .../converting-a-user-into-an-organization.md | 1 + 1 file changed, 1 insertion(+) diff --git a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/converting-a-user-into-an-organization.md b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/converting-a-user-into-an-organization.md index da839531ca..d2570ed520 100644 --- a/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/converting-a-user-into-an-organization.md +++ b/content/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-personal-account/converting-a-user-into-an-organization.md @@ -33,6 +33,7 @@ shortTitle: User into an organization * You will no longer have access to the list of users you were following from your user account. * Any followers of your user account will not automatically follow the new organization. {% ifversion projects-v2 %}- Any existing collaborators on your projects will still have access to those projects in the new organization.{% endif %} +* {% data variables.product.prodname_actions %} is not automatically enabled on the account after converting it to an organization, and will have to be re-enabled. To re-enable {% data variables.product.prodname_actions %}, create a new workflow file in the `.github/workflows` directory of your repository. {% endwarning %} ## Keep your personal account and create a new organization manually From 14c86847b64950f43dd19b60688e70df95943f98 Mon Sep 17 00:00:00 2001 From: Sophie <29382425+sophietheking@users.noreply.github.com> Date: Fri, 2 Aug 2024 17:25:50 +0200 Subject: [PATCH 22/24] Adds note about GHAS usage data delay to two other articles (#51890) --- .../about-billing-for-github-advanced-security.md | 2 ++ .../about-the-enhanced-billing-platform-for-enterprises.md | 6 ++++++ .../estimating-spending-for-your-enterprise.md | 2 +- data/reusables/billing/actions-usage-delay.md | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 data/reusables/billing/actions-usage-delay.md 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 3b0f5abd56..d998bac725 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 @@ -29,6 +29,8 @@ This means that you can use usage-based billing to pay for your licenses for bot If you have further questions about using {% data variables.product.prodname_GH_advanced_security %}, you can contact your account manager in {% data variables.contact.contact_enterprise_sales %}. +{% data reusables.billing.actions-usage-delay %} + {% endif %} ## About licenses for {% data variables.product.prodname_GH_advanced_security %} diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md index 6b6c7ebed6..e34e5a2535 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/about-the-enhanced-billing-platform-for-enterprises.md @@ -24,6 +24,12 @@ The following products are available in the enhanced billing platform: * {% data variables.product.prodname_registry %} * {% data variables.large_files.product_name_long %} +{% ifversion metered-ghe-ghas%} + +{% data reusables.billing.actions-usage-delay %} + +{% endif %} + ## Key functionalities With the enhanced billing platform, you can: diff --git a/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md b/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md index 395eeccdc7..b3a9cd7472 100644 --- a/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md +++ b/content/billing/using-the-enhanced-billing-platform-for-enterprises/estimating-spending-for-your-enterprise.md @@ -31,7 +31,7 @@ On this page, you can view your usage in the following categories: ![Screenshot of the product tabs section of the overview page.](/assets/images/help/billing/enhanced-billing-platform-products-tabs.png){% ifversion metered-ghe-ghas%} - > [!NOTE] There is a delay of up to 2 hours in the {% data variables.product.prodname_GH_advanced_security %} usage data after enabling the feature. + {% data reusables.billing.actions-usage-delay %} {% endif %} diff --git a/data/reusables/billing/actions-usage-delay.md b/data/reusables/billing/actions-usage-delay.md new file mode 100644 index 0000000000..5133a2869d --- /dev/null +++ b/data/reusables/billing/actions-usage-delay.md @@ -0,0 +1 @@ +> [!NOTE] There is a delay of up to 2 hours in the {% data variables.product.prodname_GH_advanced_security %} usage data on the "Overview" page after enabling the feature. From 5e18be4f306882f5b08904ba99f328bde83b0f45 Mon Sep 17 00:00:00 2001 From: docs-bot <77750099+docs-bot@users.noreply.github.com> Date: Fri, 2 Aug 2024 09:35:05 -0700 Subject: [PATCH 23/24] Update audit log event data (#51892) --- src/audit-logs/data/fpt/user.json | 10 ++++++++++ src/audit-logs/data/ghec/enterprise.json | 10 ++++++++++ src/audit-logs/data/ghec/user.json | 10 ++++++++++ src/audit-logs/data/ghes-3.14/enterprise.json | 10 ++++++++++ src/audit-logs/data/ghes-3.14/user.json | 10 ++++++++++ src/audit-logs/lib/config.json | 2 +- 6 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/audit-logs/data/fpt/user.json b/src/audit-logs/data/fpt/user.json index e6ebdc40cf..991cbb0069 100644 --- a/src/audit-logs/data/fpt/user.json +++ b/src/audit-logs/data/fpt/user.json @@ -1679,6 +1679,16 @@ "description": "N/A", "docs_reference_links": "N/A" }, + { + "action": "user_email.confirm_claim", + "description": "An enterprise managed user claimed an email address.", + "docs_reference_links": "N/A" + }, + { + "action": "user_email.mark_as_unclaimed", + "description": "N/A", + "docs_reference_links": "An enterprise managed user unclaimed an email address." + }, { "action": "user.enable_collaborators_only", "description": "N/A", diff --git a/src/audit-logs/data/ghec/enterprise.json b/src/audit-logs/data/ghec/enterprise.json index 92285c4ee7..266e8b86be 100644 --- a/src/audit-logs/data/ghec/enterprise.json +++ b/src/audit-logs/data/ghec/enterprise.json @@ -3999,6 +3999,16 @@ "description": "A team's permission to a repository was changed.", "docs_reference_links": "N/A" }, + { + "action": "user_email.confirm_claim", + "description": "An enterprise managed user claimed an email address.", + "docs_reference_links": "N/A" + }, + { + "action": "user_email.mark_as_unclaimed", + "description": "N/A", + "docs_reference_links": "An enterprise managed user unclaimed an email address." + }, { "action": "user_license.create", "description": "A seat license for a user in an enterprise was created.", diff --git a/src/audit-logs/data/ghec/user.json b/src/audit-logs/data/ghec/user.json index e6ebdc40cf..991cbb0069 100644 --- a/src/audit-logs/data/ghec/user.json +++ b/src/audit-logs/data/ghec/user.json @@ -1679,6 +1679,16 @@ "description": "N/A", "docs_reference_links": "N/A" }, + { + "action": "user_email.confirm_claim", + "description": "An enterprise managed user claimed an email address.", + "docs_reference_links": "N/A" + }, + { + "action": "user_email.mark_as_unclaimed", + "description": "N/A", + "docs_reference_links": "An enterprise managed user unclaimed an email address." + }, { "action": "user.enable_collaborators_only", "description": "N/A", diff --git a/src/audit-logs/data/ghes-3.14/enterprise.json b/src/audit-logs/data/ghes-3.14/enterprise.json index 06f490b243..34904fb503 100644 --- a/src/audit-logs/data/ghes-3.14/enterprise.json +++ b/src/audit-logs/data/ghes-3.14/enterprise.json @@ -3369,6 +3369,16 @@ "description": "N/A", "docs_reference_links": "N/A" }, + { + "action": "user_email.confirm_claim", + "description": "An enterprise managed user claimed an email address.", + "docs_reference_links": "N/A" + }, + { + "action": "user_email.mark_as_unclaimed", + "description": "N/A", + "docs_reference_links": "An enterprise managed user unclaimed an email address." + }, { "action": "user.enable_collaborators_only", "description": "N/A", diff --git a/src/audit-logs/data/ghes-3.14/user.json b/src/audit-logs/data/ghes-3.14/user.json index 3bf3403769..0bb45c86df 100644 --- a/src/audit-logs/data/ghes-3.14/user.json +++ b/src/audit-logs/data/ghes-3.14/user.json @@ -1639,6 +1639,16 @@ "description": "N/A", "docs_reference_links": "N/A" }, + { + "action": "user_email.confirm_claim", + "description": "An enterprise managed user claimed an email address.", + "docs_reference_links": "N/A" + }, + { + "action": "user_email.mark_as_unclaimed", + "description": "N/A", + "docs_reference_links": "An enterprise managed user unclaimed an email address." + }, { "action": "user.enable_collaborators_only", "description": "N/A", diff --git a/src/audit-logs/lib/config.json b/src/audit-logs/lib/config.json index 6a0d9545bb..dda02bd38d 100644 --- a/src/audit-logs/lib/config.json +++ b/src/audit-logs/lib/config.json @@ -3,5 +3,5 @@ "apiOnlyEvents": "This event is not available in the web interface, only via the REST API, audit log streaming, or JSON/CSV exports.", "apiRequestEvent": "This event is only available via audit log streaming." }, - "sha": "88f2c92a3b6448739b534544bd096c4acb7c6515" + "sha": "50f6b82342b2475cd70257bb2900e2e0342fa39e" } \ No newline at end of file From 8660ee4350ca80fb90c7e2faeee80387fbff8797 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Aug 2024 10:04:03 -0700 Subject: [PATCH 24/24] Bump docker/setup-buildx-action from 3.5.0 to 3.6.1 (#51868) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/azure-preview-env-deploy-public.yml | 2 +- .github/workflows/azure-preview-env-deploy.yml | 2 +- .github/workflows/azure-prod-build-deploy.yml | 2 +- .github/workflows/azure-staging-build-deploy.yml | 2 +- .github/workflows/main-preview-docker-cache.yml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/azure-preview-env-deploy-public.yml b/.github/workflows/azure-preview-env-deploy-public.yml index 16320d0cdd..c3ddf272bc 100644 --- a/.github/workflows/azure-preview-env-deploy-public.yml +++ b/.github/workflows/azure-preview-env-deploy-public.yml @@ -66,7 +66,7 @@ jobs: password: ${{ secrets.NONPROD_REGISTRY_PASSWORD }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 + uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db - name: Check out main branch uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/.github/workflows/azure-preview-env-deploy.yml b/.github/workflows/azure-preview-env-deploy.yml index f89a48ecae..1948aebe61 100644 --- a/.github/workflows/azure-preview-env-deploy.yml +++ b/.github/workflows/azure-preview-env-deploy.yml @@ -79,7 +79,7 @@ jobs: password: ${{ secrets.NONPROD_REGISTRY_PASSWORD }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 + uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db - name: Check out PR code uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/.github/workflows/azure-prod-build-deploy.yml b/.github/workflows/azure-prod-build-deploy.yml index c6e0539d34..2aef0da75a 100644 --- a/.github/workflows/azure-prod-build-deploy.yml +++ b/.github/workflows/azure-prod-build-deploy.yml @@ -49,7 +49,7 @@ jobs: password: ${{ secrets.PROD_REGISTRY_PASSWORD }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 + uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db - name: Check out repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/.github/workflows/azure-staging-build-deploy.yml b/.github/workflows/azure-staging-build-deploy.yml index 33d9ed119c..f9dc84fbbe 100644 --- a/.github/workflows/azure-staging-build-deploy.yml +++ b/.github/workflows/azure-staging-build-deploy.yml @@ -57,7 +57,7 @@ jobs: password: ${{ secrets.NONPROD_REGISTRY_PASSWORD }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 + uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db - name: Check out repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/.github/workflows/main-preview-docker-cache.yml b/.github/workflows/main-preview-docker-cache.yml index daa8fb7f3e..87e149aea5 100644 --- a/.github/workflows/main-preview-docker-cache.yml +++ b/.github/workflows/main-preview-docker-cache.yml @@ -42,7 +42,7 @@ jobs: password: ${{ secrets.NONPROD_REGISTRY_PASSWORD }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@aa33708b10e362ff993539393ff100fa93ed6a27 + uses: docker/setup-buildx-action@988b5a0280414f521da01fcc63a27aeeb4b104db - name: Check out repo uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1