diff --git a/.github/ISSUE_TEMPLATE/ms-learn-request.yml b/.github/ISSUE_TEMPLATE/ms-learn-request.yml
new file mode 100644
index 00000000..63c82784
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/ms-learn-request.yml
@@ -0,0 +1,65 @@
+name: MS Learn Module Update Request
+description: Use this form to submit a module update request
+title: "MS Learn Module Update Request: [REPLACE_WITH_MODULE_TITLE]"
+labels: [MS Learn Update]
+assignees: ["a-a-ron", "rmallorybpc", "camihmerhar"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ 
Thank you for taking the time to submit a module update request!
Please fill out the below form so that we can address this update appropriately.
+ - type: dropdown
+ id: select-module
+ attributes:
+ label: Which of the MS Learn modules from the dropdown are you submitting an update request?
+ multiple: false
+ options:
+ - "Introduction to GitHub"
+ - "Introduction to Git"
+ - "Maintain a secure repository by using GitHub best practices"
+ - "Build and deploy applications to Azure by using GitHub Actions"
+ - "Automate GitHub by using GitHub Script"
+ - "Build continuous integration (CI) workflows by using GitHub Actions"
+ - "Migrate your repository by using GitHub best practices"
+ - "Upload your project by using GitHub best practices"
+ - "Manage repository changes by using pull requests on GitHub"
+ - "Settle competing commits by using merge conflict resolution on GitHub"
+ - "Manage an InnerSource program by using GitHub"
+ - "Manage software delivery by using a release based workflow on GitHub"
+ - "Communicate effectively on GitHub by using Markdown"
+ - "Search and organize repository history by using GitHub"
+ - "Automate DevOps processes by using GitHub Apps"
+ - "Introduction to GitHub's Products"
+ - "Introduction to GitHub administration"
+ - "Automate development tasks by using GitHub Actions"
+ - "Leverage GitHub Actions to publish to GitHub Packages"
+ - "Contribute to an open-source project on GitHub"
+ - "Create and host web sites by using GitHub Pages"
+ - "Create an open-sourced program by using GitHub best practices"
+ - "Manage GitHub Actions in the enterprise"
+ - "Create and publish custom GitHub actions"
+ - "Manage sensitive data and security policies within GitHub"
+ - "Authenticate and authorize user identities on GitHub"
+ - "GitHub administration for enterprise support and adoption"
+ - "Configure and use secret scanning in your GitHub repository"
+ - "Introduction to GitHub Advanced Security"
+ - "Configure Dependabot security updates on your GitHub repo"
+ - "Configure code scanning on GitHub"
+ - "Identify security vulnerabilities in your codebase with CodeQL"
+ - "Code scanning with GitHub CodeQL"
+ - "GitHub administration for GitHub Advanced Security"
+ - type: checkboxes
+ id: tasks
+ attributes:
+ label: Additional information
+ description: Please select any that apply
+ options:
+ - label: Fix a broken user experience (broken links, exercise error, etc.)
+ - label: Update incorrect information
+ - label: Add new content to the module
+ - label: Some other request
+ - type: textarea
+ id: specific-request
+ attributes:
+ label: Information about the requested update
+ description: Please provide the necessary information to address the module update request (unit section, links, detailed description, etc.)
diff --git a/README.md b/README.md
index a76abe2e..a20225b8 100644
--- a/README.md
+++ b/README.md
@@ -2,80 +2,100 @@

-## Main resources
+## Where the world builds software
+
+Learn, develop, and master essential Git and GitHub skills. Start here to jump-start your career and demonstrate foundational GitHub learning objectives through fun, interactive learning paths and modules. This repo maintains the GitHub content published on MS Learn found [here](https://github.com/MicrosoftDocs/learn-pr).
- [GitHub product landing page](https://docs.microsoft.com/en-us/learn/github/): landing page for GitHub modules/learning paths on MS Learn
- [PowerBI](https://msit.powerbi.com/groups/me/reports/3ad7a43c-5334-4086-b762-8b4bdb2741ff/ReportSectionfb7e1b32d2783b56519d?ctid=72f988bf-86f1-41af-91ab-2d7cd011db47&refreshAccessToken=true): Dashboard data of current module content on MS Learn
-## MS Learn contacts
-
-- **Thomas Petchel**: SR. Content Developer
-- **Nick Walker**: Content Strategy (DevOps/GitHub)
-- **Judy McNeil**: PM and Sr. Content Developer
-- **Brian Turner**: Sr. Manager Learn Content
-- **Bob Tabor**: Sr. Program Manager and Sr. Content Developer
-- **Helen Miller**: Sr. Instructional Designer
-- **John Papa**: Lead Cloud Developer Advocate
-
## Learning Paths
-Below are the topic learning paths currently published on MS Learn. If you're looking for the complete module catalog, you can find it [here](https://docs.microsoft.com/en-us/users/githubtraining/collections/8p72c736z77gjp).
+Below are the GitHub learning paths currently published on MS Learn. If you're looking for the complete module catalog, you can find it [here](https://docs.microsoft.com/en-us/users/githubtraining/collections/8p72c736z77gjp).
### GitHub Actions
[Learning path landing page](https://docs.microsoft.com/en-us/users/githubtraining/collections/n5p4a5z7keznp5)
-Modules:
+Expand for the GitHub Actions modules:
+
+ - [Automate development tasks by using GitHub Actions](https://docs.microsoft.com/en-us/learn/modules/github-actions-automate-tasks/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
+ - [Build continuous integration (CI) workflows by using GitHub Actions](https://docs.microsoft.com/en-us/learn/modules/github-actions-ci/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
+ - [Leverage GitHub Actions to publish to GitHub Packages](https://docs.microsoft.com/en-us/learn/modules/github-actions-packages/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
+ - [Create and publish custom GitHub actions](https://docs.microsoft.com/en-us/learn/modules/create-custom-github-actions/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
+ - [Build and deploy applications to Azure by using GitHub Actions](https://docs.microsoft.com/en-us/learn/modules/github-actions-cd/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
+ - [Manage GitHub Actions in the enterprise](https://docs.microsoft.com/en-us/learn/modules/manage-github-actions-enterprise/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
-- [Automate development tasks by using GitHub Actions](https://docs.microsoft.com/en-us/learn/modules/github-actions-automate-tasks/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
-- [Build continuous integration (CI) workflows by using GitHub Actions](https://docs.microsoft.com/en-us/learn/modules/github-actions-ci/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
-- [Leverage GitHub Actions to publish to GitHub Packages](https://docs.microsoft.com/en-us/learn/modules/github-actions-packages/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
-- [Create and publish custom GitHub actions](https://docs.microsoft.com/en-us/learn/modules/create-custom-github-actions/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
-- [Build and deploy applications to Azure by using GitHub Actions](https://docs.microsoft.com/en-us/learn/modules/github-actions-cd/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
-- [Manage GitHub Actions in the enterprise](https://docs.microsoft.com/en-us/learn/modules/manage-github-actions-enterprise/?ns-enrollment-type=Collection&ns-enrollment-id=n5p4a5z7keznp5)
+
### GitHub Administration
[Learning path landing page](https://docs.microsoft.com/en-us/users/githubtraining/collections/mom7u1gzjdxw03)
-Modules:
+Expand for the GitHub Administration modules:
+
+ - [Introduction to GitHub administration](https://docs.microsoft.com/en-us/learn/modules/github-introduction-administration/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+ - [Introduction to GitHub's Products](https://docs.microsoft.com/en-us/learn/modules/github-introduction-products/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+ - [Maintain a secure repository by using GitHub best practices](https://docs.microsoft.com/en-us/learn/modules/maintain-secure-repository-github/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+ - [Manage sensitive data and security policies within GitHub](https://docs.microsoft.com/en-us/learn/modules/manage-sensitive-data-security-policies/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+ - [Authenticate and authorize user identities on GitHub](https://docs.microsoft.com/en-us/learn/modules/authenticate-authorize-user-identities-github/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+ - [GitHub administration for enterprise support and adoption](https://docs.microsoft.com/en-us/learn/modules/github-administration-for-enterprise-support-adoption/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+ - [Manage GitHub Actions in the enterprise](https://docs.microsoft.com/en-us/learn/modules/manage-github-actions-enterprise/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+ - [Leverage GitHub Actions to publish to GitHub Packages](https://docs.microsoft.com/en-us/learn/modules/github-actions-packages/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [Introduction to GitHub administration](https://docs.microsoft.com/en-us/learn/modules/github-introduction-administration/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [Introduction to GitHub's Products](https://docs.microsoft.com/en-us/learn/modules/github-introduction-products/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [Maintain a secure repository by using GitHub best practices](https://docs.microsoft.com/en-us/learn/modules/maintain-secure-repository-github/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [Manage sensitive data and security policies within GitHub](https://docs.microsoft.com/en-us/learn/modules/manage-sensitive-data-security-policies/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [Authenticate and authorize user identities on GitHub](https://docs.microsoft.com/en-us/learn/modules/authenticate-authorize-user-identities-github/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [GitHub administration for enterprise support and adoption](https://docs.microsoft.com/en-us/learn/modules/github-administration-for-enterprise-support-adoption/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [Manage GitHub Actions in the enterprise](https://docs.microsoft.com/en-us/learn/modules/manage-github-actions-enterprise/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
-- [Leverage GitHub Actions to publish to GitHub Packages](https://docs.microsoft.com/en-us/learn/modules/github-actions-packages/?ns-enrollment-type=Collection&ns-enrollment-id=mom7u1gzjdxw03)
+
### GitHub Advanced Security
[Learning path landing page](https://docs.microsoft.com/en-us/users/githubtraining/collections/rqymc6yw8q5rey)
-Modules:
+Expand for the GitHub Advanced Securuity modules:
+
+ - [Introduction to GitHub Advanced Security](https://docs.microsoft.com/en-us/learn/modules/introduction-github-advanced-security/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
+ - [Configure Dependabot security updates on your GitHub repo](https://docs.microsoft.com/en-us/learn/modules/configure-dependabot-security-updates-on-github-repo/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
+ - [Configure and use secret scanning in your GitHub repository](https://docs.microsoft.com/en-us/users/githubtraining/collections/rqymc6yw8q5rey#:~:text=Configure%20and%20use%20secret%20scanning%20in%20your%20GitHub%20repository)
+ - [Configure code scanning on GitHub](https://docs.microsoft.com/en-us/learn/modules/configure-code-scanning/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
+ - [Identify security vulnerabilities in your codebase with CodeQL](https://docs.microsoft.com/en-us/learn/modules/codebase-representation-codeql/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
+ - [Code scanning with GitHub CodeQL](https://docs.microsoft.com/en-us/users/githubtraining/collections/rqymc6yw8q5rey#:~:text=Code%20scanning%20with%20GitHub%20CodeQL)
+ - [GitHub administration for GitHub Advanced Security](https://docs.microsoft.com/en-us/users/githubtraining/collections/rqymc6yw8q5rey#:~:text=GitHub%20administration%20for%20GitHub%20Advanced%20Security)
+ - [Manage sensitive data and security policies within GitHub](https://docs.microsoft.com/en-us/learn/modules/manage-sensitive-data-security-policies/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey),
-- [Introduction to GitHub Advanced Security](https://docs.microsoft.com/en-us/learn/modules/introduction-github-advanced-security/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
-- [Configure Dependabot security updates on your GitHub repo](https://docs.microsoft.com/en-us/learn/modules/configure-dependabot-security-updates-on-github-repo/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
-- [Configure and use secret scanning in your GitHub repository](https://docs.microsoft.com/en-us/users/githubtraining/collections/rqymc6yw8q5rey#:~:text=Configure%20and%20use%20secret%20scanning%20in%20your%20GitHub%20repository)
-- [Configure code scanning on GitHub](https://docs.microsoft.com/en-us/learn/modules/configure-code-scanning/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
-- [Identify security vulnerabilities in your codebase with CodeQL](https://docs.microsoft.com/en-us/learn/modules/codebase-representation-codeql/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
-- [Code scanning with GitHub CodeQL](https://docs.microsoft.com/en-us/users/githubtraining/collections/rqymc6yw8q5rey#:~:text=Code%20scanning%20with%20GitHub%20CodeQL)
-- [GitHub administration for GitHub Advanced Security](https://docs.microsoft.com/en-us/users/githubtraining/collections/rqymc6yw8q5rey#:~:text=GitHub%20administration%20for%20GitHub%20Advanced%20Security)
-- [Manage sensitive data and security policies within GitHub](https://docs.microsoft.com/en-us/learn/modules/manage-sensitive-data-security-policies/?ns-enrollment-type=Collection&ns-enrollment-id=rqymc6yw8q5rey)
+
### GitHub Fundamentals
[Learning path landing page](https://docs.microsoft.com/en-us/users/githubtraining/collections/p0ygh4erdrmkp7)
-Modules:
+Expand for the GitHub Fundamentals modules:
-- [Introduction to GitHub](https://docs.microsoft.com/en-us/learn/modules/introduction-to-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
-- [Manage repository changes by using pull requests on GitHub](https://docs.microsoft.com/en-us/learn/modules/manage-changes-pull-requests-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
-- [Manage software delivery by using a release based workflow on GitHub](https://docs.microsoft.com/en-us/learn/modules/release-based-workflow-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
-- [Introduction to GitHub's Products](https://docs.microsoft.com/en-us/learn/modules/github-introduction-products/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
-- [Introduction to GitHub administration](https://docs.microsoft.com/en-us/learn/modules/github-introduction-administration/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
-- [Maintain a secure repository by using GitHub best practices](https://docs.microsoft.com/en-us/learn/modules/maintain-secure-repository-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
+ - [Introduction to GitHub](https://docs.microsoft.com/en-us/learn/modules/introduction-to-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
+ - [Manage repository changes by using pull requests on GitHub](https://docs.microsoft.com/en-us/learn/modules/manage-changes-pull-requests-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
+ - [Manage software delivery by using a release based workflow on GitHub](https://docs.microsoft.com/en-us/learn/modules/release-based-workflow-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
+ - [Introduction to GitHub's Products](https://docs.microsoft.com/en-us/learn/modules/github-introduction-products/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
+ - [Introduction to GitHub administration](https://docs.microsoft.com/en-us/learn/modules/github-introduction-administration/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
+ - [Maintain a secure repository by using GitHub best practices](https://docs.microsoft.com/en-us/learn/modules/maintain-secure-repository-github/?ns-enrollment-type=Collection&ns-enrollment-id=p0ygh4erdrmkp7)
+
+## How to provide feedback ✍️
+If you have content feedback or suggested changes for a Microsoft Learn module, please use the [MS Learn Module Update Request](https://github.com/githubpartners/microsoft-learn/issues/new/choose) issue form. A team member will triage the request. Thank you for taking the time to improve our content!
+## Helpful resources
+
+Here are some helpful resources to use during your GitHub Content on Microsoft Learn journey.
+
+- [Author pack](https://github.com/github/ms-learn-author-pack)
+- [Training and certification help](https://learn.microsoft.com/en-us/training/support/)
+
+## MS Learn contacts
+
+- **Thomas Petchel**: SR. Content Developer
+- **Nick Walker**: Content Strategy (DevOps/GitHub)
+- **Judy McNeil**: PM and Sr. Content Developer
+- **Brian Turner**: Sr. Manager Learn Content
+- **Bob Tabor**: Sr. Program Manager and Sr. Content Developer
+- **Helen Miller**: Sr. Instructional Designer
+- **John Papa**: Lead Cloud Developer Advocate
+## Hubbers resources
+Additional resources for GitHub employees.
+- [Slack channel](https://github.slack.com/archives/C0229GB8LN7)
diff --git a/github/ISSUE_TEMPLATE/ms-learn-request.yml b/github/ISSUE_TEMPLATE/ms-learn-request.yml
new file mode 100644
index 00000000..368f65fe
--- /dev/null
+++ b/github/ISSUE_TEMPLATE/ms-learn-request.yml
@@ -0,0 +1,66 @@
+name: MS Learn Module Update Request
+description: Use this form to submit a module update request
+title: "MS Learn Module Update Request: [REPLACE_WITH_MODULE_TITLE]"
+labels: [MS Learn Update]
+assignees:
+ - a-a-ron
+body:
+ - type: markdown
+ attributes:
+ value: |
+  Thank you for taking the time to submit a module update request!
Please fill out the below form so that we can address this update appropriately.
+ - type: dropdown
+ id: select-module
+ attributes:
+ label: Which of the MS Learn modules from the dropdown are you submitting an update request?
+ multiple: false
+ options:
+ - "Introduction to GitHub"
+ - "Introduction to Git"
+ - "Maintain a secure repository by using GitHub best practices"
+ - "Build and deploy applications to Azure by using GitHub Actions"
+ - "Automate GitHub by using GitHub Script"
+ - "Build continuous integration (CI) workflows by using GitHub Actions"
+ - "Migrate your repository by using GitHub best practices"
+ - "Upload your project by using GitHub best practices"
+ - "Manage repository changes by using pull requests on GitHub"
+ - "Settle competing commits by using merge conflict resolution on GitHub"
+ - "Manage an InnerSource program by using GitHub"
+ - "Manage software delivery by using a release based workflow on GitHub"
+ - "Communicate effectively on GitHub by using Markdown"
+ - "Search and organize repository history by using GitHub"
+ - "Automate DevOps processes by using GitHub Apps"
+ - "Introduction to GitHub's Products"
+ - "Introduction to GitHub administration"
+ - "Automate development tasks by using GitHub Actions"
+ - "Leverage GitHub Actions to publish to GitHub Packages"
+ - "Contribute to an open-source project on GitHub"
+ - "Create and host web sites by using GitHub Pages"
+ - "Create an open-sourced program by using GitHub best practices"
+ - "Manage GitHub Actions in the enterprise"
+ - "Create and publish custom GitHub actions"
+ - "Manage sensitive data and security policies within GitHub"
+ - "Authenticate and authorize user identities on GitHub"
+ - "GitHub administration for enterprise support and adoption"
+ - "Configure and use secret scanning in your GitHub repository"
+ - "Introduction to GitHub Advanced Security"
+ - "Configure Dependabot security updates on your GitHub repo"
+ - "Configure code scanning on GitHub"
+ - "Identify security vulnerabilities in your codebase with CodeQL"
+ - "Code scanning with GitHub CodeQL"
+ - "GitHub administration for GitHub Advanced Security"
+ - type: checkboxes
+ id: tasks
+ attributes:
+ label: Additional information
+ description: Please select any that apply
+ options:
+ - label: Fix a broken user experience (broken links, exercise error, etc.)
+ - label: Update incorrect information
+ - label: Add new content to the module
+ - label: Some other request
+ - type: textarea
+ id: specific-request
+ attributes:
+ label: Information about the requested update
+ description: Please provide the necessary information to address the module update request (unit section, links, detailed description, etc.)
diff --git a/github/authenticate-authorize-user-identities-github/includes/1-introduction.md b/github/authenticate-authorize-user-identities-github/includes/1-introduction.md
index 3e27e473..eabe3494 100644
--- a/github/authenticate-authorize-user-identities-github/includes/1-introduction.md
+++ b/github/authenticate-authorize-user-identities-github/includes/1-introduction.md
@@ -1,4 +1,4 @@
-User authentication has traditionally been achieved using a User ID and password. A password is a single factor form of authentication. The fundamental issue with single-factor authentication is that it's easier for any bad actor with knowledge of the sign-on information to impersonate the valid user. To prevent a breach of security for a user account, there are authentication tools available on GitHub to promote security best practices. You can even enforce a security policy for all GitHub users within the organization.
+User authentication has traditionally been achieved using a User ID and password. A password is a single-factor form of authentication. The fundamental issue with single-factor authentication is that it's easier for any bad actor with knowledge of the sign-on information to impersonate the valid user. To prevent a breach of security for a user account, there are authentication tools available on GitHub to promote security best practices. You can even enforce a security policy for all GitHub users within the organization.
Controlling access to your company's data is foundational for a secure GitHub Enterprise. GitHub is committed to helping enterprises on their security journey with authentication methods to allow for more secure account access and a better user experience. In a GitHub Enterprise, most organizations want to require extra levels of authentication for better security. Enterprise System Administrators can enforce authentication and authorization security policies across an organization. These security features allow you to ensure that users are required to sign on securely to access the correct permissions in repositories. These features also include access and tools for auditing user access and activity, identity maintenance, and authentication compliance. As an administrator, you should work with your internal resources to identify what type of authentication and authorization is appropriate. This module provides an overview of the authentication and authorization options available to you in your GitHub organization or GitHub Enterprise.
@@ -6,13 +6,13 @@ Controlling access to your company's data is foundational for a secure GitHub En
By the end of this module, you'll be able to:
-- Describe the GitHub authentication and authorization Model
-- Understand how to manage user access to your GitHub organization through Authorization and Authentication tools
-- Identify the identity providers and technologies that support secure repository access
-- Understand the implications of enabling SAML SSO
-- Identify the authorization and authentication options available, and understand the administrator’s role in enforcing a secure access strategy for a GitHub enterprise
-- Describe how users access private information in a GitHub organization
-- Evaluate the benefits of enabling Team Synchronization to manage team membership
+- Describe the GitHub authentication and authorization Model.
+- Understand how to manage user access to your GitHub organization through Authorization and Authentication tools.
+- Identify the identity providers and technologies that support secure repository access.
+- Understand the implications of enabling SAML SSO.
+- Identify the authorization and authentication options available, and understand the administrator’s role in enforcing a secure access strategy for a GitHub enterprise.
+- Describe how users access private information in a GitHub organization.
+- Evaluate the benefits of enabling Team Synchronization to manage team membership.
## Prerequisites
diff --git a/github/authenticate-authorize-user-identities-github/includes/2-user-identity-access-management.md b/github/authenticate-authorize-user-identities-github/includes/2-user-identity-access-management.md
index 96b74788..9038a4f1 100644
--- a/github/authenticate-authorize-user-identities-github/includes/2-user-identity-access-management.md
+++ b/github/authenticate-authorize-user-identities-github/includes/2-user-identity-access-management.md
@@ -2,15 +2,15 @@ Controlling access to your company's data and applications is the foundation of
A challenge you may face in your organization is how to balance the ease of use with an authorization process while maintaining secure best practices. Setting up your team for success requires ease of access for the user under the umbrella of secure organizational requirements.
-Configuring authentication is the first step in ensuring secure software development in your enterprise. The good news is that leveraging the tools available with your IdP is critical to getting the most value from GitHub.
+Configuring authentication is the first step in ensuring secure software development in your enterprise. The good news is that using the tools available with your IdP is critical to getting the most value from GitHub.
## Organization management through SAML SSO
-An important component of an enterprise security strategy is SAML SSO. It provides a link between the IdP authorization, and access to service providers (SaaS). This form of authentication allows users to sign in to all their applications with one set of credentials. Through SAML, the IdP authenticates users and grants authorization to services like GitHub. When a user logs into GitHub, they can view what enterprises they're members of, but if the user tries to access repository data, it will prompt for enterprise credentials (Enterprise ID).
+An important component of an enterprise security strategy is SAML SSO. It provides a link between the IdP authorization and access to service providers (SaaS). This form of authentication allows users to sign in to all their applications with one set of credentials. Through SAML, the IdP authenticates users and grants authorization to services like GitHub. When a user logs into GitHub, they can view the enterprises of which they're members. However, if the user tries to access repository data, it will prompt for enterprise credentials (Enterprise ID).
-As the Enterprise Administrator, you're responsible for the authorization of user access and permissions. Limiting a user's access to only the resources they need is important when securing your repository. This responsibility can also include routine audit events and maintaining tightly scoped access. As an administrator of a repository, you have an overview of every user with their specific access within the repository. You can also easy export this data to a CSV file.
+As the Enterprise Administrator, you're responsible for the authorization of user access and permissions. Limiting a user's access to only the resources they need is important when securing your repository. This responsibility can also include routine audit events and maintaining tightly scoped access. As an administrator of a repository, you have an overview of every user with their specific access within the repository. You can also easily export this data to a CSV file.
-:::image type="content" source="../media/repository-permission-list-example.png" alt-text="example of admin repository permission list review.":::
+:::image type="content" source="../media/repository-permission-list-example.png" alt-text="Screenshot of an example of admin repository permission list review.":::
You need to configure SAML SSO for a GitHub organization with the IdP you're using. If you have specific questions on how to implement SAML SSO with your chosen IdP, you can find details in the documentation for each supported IdP. Below is a list of the SAML IdPs that GitHub currently supports:
@@ -22,10 +22,10 @@ You need to configure SAML SSO for a GitHub organization with the IdP you're usi
- Shibboleth
> [!NOTE]
-> GitHub offers limit support for all identity providers that implement the SAML 2.0 standard.
+> GitHub offers limited support for all identity providers that implement the SAML 2.0 standard.
-More access management can be accomplished when using multiple organizations. You can use organizations to create distinct groups of users within your company, such as divisions or groups working on similar projects. Public and internal repositories that belong to an organization are accessible to members of other organizations in the enterprise. Private repositories are inaccessible to anyone who isn't a member of the organization.
+You can accomplish more access management when using multiple organizations. You can use organizations to create distinct groups of users within your company, such as divisions or groups working on similar projects. Public and internal repositories that belong to an organization are accessible to members of other organizations in the enterprise. Private repositories are inaccessible to anyone who isn't a member of the organization.
## Organization private information
-When an organization member creates a repository, they can choose to make the repository public or private. In addition, when creating the repository in an organization that is owned by an enterprise account, they can choose to make the repository internal. Public repositories are accessible to everyone on the internet. Private repositories are only accessible to the user who created the repository and the people with whom they explicitly share access. Keep in mind that certain organization members have access to organization internal repositories.
+When an organization member creates a repository, they can choose to make the repository public or private. In addition, when creating the repository in an organization that's owned by an enterprise account, they can choose to make the repository internal. Public repositories are accessible to everyone on the internet. Private repositories are only accessible to the user who created the repository and the people with whom they explicitly share access. Keep in mind that certain organization members have access to organization internal repositories.
diff --git a/github/authenticate-authorize-user-identities-github/includes/3-authentication.md b/github/authenticate-authorize-user-identities-github/includes/3-authentication.md
index aa66f7c9..bad29308 100644
--- a/github/authenticate-authorize-user-identities-github/includes/3-authentication.md
+++ b/github/authenticate-authorize-user-identities-github/includes/3-authentication.md
@@ -1,12 +1,12 @@
-Here, you'll learn about two recommended authentication systems employed by GitHub Enterprises, and how to do a basic but important 2FA audit for user compliance.
+Here, you'll learn about two recommended authentication systems employed by GitHub Enterprises. You'll also learn how to do a basic but important 2FA audit for user compliance.
When it comes to user authentication, security should be the number one consideration that comes to mind. Strong security is essential. It seems like every month or so, a company reports a data breach. Credentials are stolen because of inefficient security processes, or simply because of a lack of up-to-date security features within the company. Establishing secure user authentication can be a difficult task if user adoption requires long and frustrating steps to authenticate. Ask any security professional and they'll mention several ways that companies authenticate their users.
-There are two recommended authentication methods you can implement when authenticating your users on GitHub; SAML SSO and multifactor authentication, also known as 2FA.
+There are two recommended authentication methods you can implement when authenticating your users on GitHub: SAML SSO and multifactor authentication, also known as 2FA.
## Authentication with SAML SSO
-SAML authentication is a process used to verify user identity and credentials against a known identify provider. Nowadays, your company may likely already be using this form of authentication. If so, you can link your existing IdP to GitHub for user sign-in management. Below is a high-level overview of the process that occurs with enabled SAML SSO within your GitHub Enterprise.
+SAML authentication is a process used to verify user identity and credentials against a known identity provider. Nowadays, your company may likely already be using this form of authentication. If so, you can link your existing IdP to GitHub for user sign-in management. The following is a high-level overview of the process that occurs with enabled SAML SSO within your GitHub Enterprise:
- Before enabling SAML SSO with your GitHub Enterprise, an Administrator needs to connect the GitHub organization to a supported IdP.
- Next, when a member accesses resources within an organization that uses SAML SSO, GitHub redirects the member to the IdP to authenticate.
@@ -25,13 +25,13 @@ After you enforce authentication for an organization, GitHub will then remove an
## Multifactor authentication or 2FA
-Two-Factor authentication is an extra level of security available to GitHub Enterprise accounts. With 2FA, a member in your organization is required to log in with username and password, and also provide a secondary form of authentication. This second form of authentication needs to be something only the user knows or has access to. You can require organization members, outside collaborators, and billing managers to enable two-factor authentication for their personal accounts by selecting an organization security setting.
+Two-factor authentication is an extra level of security available to GitHub Enterprise accounts. With 2FA, a member in your organization is required to log in with username and password, and also provide a secondary form of authentication. This second form of authentication needs to be something only the user knows or has access to. You can require organization members, outside collaborators, and billing managers to enable two-factor authentication for their personal accounts by selecting an organization security setting.
-:::image type="content" source="../media/require-2fa-checkbox.png" alt-text="Checkbox requiring two-factor authentication for members in the organization.":::
+:::image type="content" source="../media/require-2fa-checkbox.png" alt-text="Screenshot of the checkbox requiring two-factor authentication for members in the organization.":::
-Keep in mind that before you can require organization members, outside collaborators, or billing managers to use two-factor authentication, they must enable two-factor authentication setting for their account on GitHub. You'll need to communicate this requirement to your team via email or some other means of communication.
+Keep in mind that before you can require organization members, outside collaborators, or billing managers to use two-factor authentication, they must enable the two-factor authentication setting for their account on GitHub. You'll need to communicate this requirement to your team via email or some other means of communication.
-> [!warning]
+> [!WARNING]
> When you require the use of two-factor authentication for your organization, all accounts that do not use 2FA will be removed from the organization and lose access to its repositories. This includes bot accounts.
For more detailed information about 2FA, see [Securing your account with two-factor authentication (2FA)](https://docs.github.com/en/github/authenticating-to-github/securing-your-account-with-two-factor-authentication-2fa).
@@ -40,28 +40,28 @@ For more detailed information about 2FA, see [Securing your account with two-fac
Only users who legitimately need access to your organization's data should have it. Insufficient data security could lead to an attack or breach of important data. One way to ensure that your organization is meeting basic security requirements is by enabling 2FA. When you require 2FA, a malicious actor needs more than just a user's password and username to access an account. 2FA makes it much harder for malicious actors to access your organization's data, because they don't have access to your users' physical devices.
-The codes used for 2FA expire in a short amount of time. Once expired, the login attempt is no longer valid and the access request is canceled. By enabling 2FA, your user's accounts will be better protected from malicious attacks and data breaches. In your GitHub enterprise, your users have three ways that they can authenticate with 2FA; security keys, TOTP, and SMS.
+The codes used for 2FA expire in a short amount of time. Once expired, the login attempt is no longer valid, and the access request is canceled. By enabling 2FA, your user's accounts will be better protected from malicious attacks and data breaches. In your GitHub enterprise, your users have three ways that they can authenticate with 2FA: security keys, TOTP, and SMS.
#### Security keys
-With security keys, your enterprise can achieve a higher level of user security and protection. With two-factor authentication enabled, security keys provide a strong, convenient, and phishing-proof option for 2FA. Authentication with a security key requires that TOTP or SMS authentication has already been completed. On most devices, you can use a physical security key over USB or NFC. A user can register a new security key through accessing their profile setting following the security key’s documentation. Using these keys is the most secure form of 2FA, because they're nearly impossible for a malicious party to replicate. When using a security key, none of the sensitive information ever leaves the physical security key device. Authentication with a security key is the most secure way to authenticate, but your users will need to complete one of the following authentication methods to configure the key.
+With security keys, your enterprise can achieve a higher level of user security and protection. With two-factor authentication enabled, security keys provide a strong, convenient, and phishing-proof option for 2FA. Authentication with a security key requires that TOTP or SMS authentication has already been completed. On most devices, you can use a physical security key over USB or NFC. A user can register a new security key by accessing their profile setting and following the security key’s documentation. Using these keys is the most secure form of 2FA, because they're nearly impossible for a malicious party to replicate. When using a security key, none of the sensitive information ever leaves the physical security key device. Authentication with a security key is the most secure way to authenticate, but your users will need to complete one of the following authentication methods to configure the key.
#### TOTP
GitHub recommends using a cloud-based TOTP app to configure 2FA. TOTP applications are more reliable than SMS, especially for locations outside the United States. TOTP apps support the secure backup of your authentication codes in the cloud, and can be restored if you lose access to your device.
-:::image type="content" source="../media/two-factor-identification-totp-example.png" alt-text="screenshot of the time-based one-time password code." :::
+:::image type="content" source="../media/two-factor-identification-totp-example.png" alt-text="Screenshot of the time-based one-time password code." :::
#### SMS
-If your users aren't able to authenticate using a TOTP mobile app, they can authenticate using SMS messages. This form of 2FA relies on the assumption that the user is the only person with access to their mobile device. GitHub doesn't support authentication via SMS in all countries. Before an Administrator allows users to authenticate via SMS, they should confirm that it's supported in the country where the users are located.
+If your users aren't able to authenticate using a TOTP mobile app, they can authenticate using SMS messages. This form of 2FA relies on the assumption that the user is the only person with access to their mobile device. GitHub doesn't support authentication via SMS in all countries/regions. Before an Administrator allows users to authenticate via SMS, they should confirm that it's supported in the country/region where the users are located.
-:::image type="content" source="../media/two-factor-authentication-sms-six-digit-code-example.png" alt-text="screenshot of the sms code." :::
+:::image type="content" source="../media/two-factor-authentication-sms-six-digit-code-example.png" alt-text="Screenshot of the sms code." :::
### Audit 2FA for user compliance
You can review which organization owners, members, and outside collaborators have enabled two-factor authentication by navigating to the right corner of GitHub.com, clicking your profile photo, clicking **Your organizations**, then selecting the name of the chosen organization. Under the organization name, click the **People** tab and then select the **2FA** option. From here, you can see which members in the organization have enabled two-factor authentication, and which outside contributors have it enabled.
-:::image type="content" source="../media/two-factor-authentication-enabled-example.png" alt-text="screenshot of the account security setting." :::
+:::image type="content" source="../media/two-factor-authentication-enabled-example.png" alt-text="Screenshot of the account-security setting." :::
Revoking access for users in your enterprise who aren't compliant is possible, but you'll need to contact them outside of GitHub to relay the reason they no longer have access to your organization. Communication to non-compliant users is traditionally done through email notification.
diff --git a/github/authenticate-authorize-user-identities-github/includes/4-authorization.md b/github/authenticate-authorize-user-identities-github/includes/4-authorization.md
index 3a415741..eca2e604 100644
--- a/github/authenticate-authorize-user-identities-github/includes/4-authorization.md
+++ b/github/authenticate-authorize-user-identities-github/includes/4-authorization.md
@@ -1,4 +1,4 @@
-Here, you'll be introduced to the authorization for GitHub users, the next step after user authentication.
+Here, you'll be introduced to the authorization for GitHub users, which is the next step after user authentication.
As we learned previously, a user can be granted access to a GitHub organization that uses SAML single sign-on (SSO) by authenticating through the identity provider (IdP). But after you authenticate the user with the IdP successfully from GitHub, you must now authorize any personal access token, SSH key, or OAuth App that you would like the user to use to access your organization's resources. Let's look a little deeper into this authentication process with SAML single sign-on.
@@ -6,9 +6,9 @@ As we learned previously, a user can be granted access to a GitHub organization
SAML single sign-on (SSO) gives organization owners and enterprise owners on GitHub a way to control and secure access to organization resources like repositories, issues, and pull requests. If you use SAML SSO in your organization, you can implement SCIM or *System for Cross-domain Identity Management*. SCIM lets you add, manage, or remove organization member access within GitHub. SCIM was developed to allow synchronization of information between an IdP and multiple applications.
-:::image type="content" source="../media/enable-scim-user-provisioning-example.png" alt-text="screenshot of the SCIM setting." :::
+:::image type="content" source="../media/enable-scim-user-provisioning-example.png" alt-text="Screenshot of the SCIM setting." :::
-SCIM is a protocol that tells the directory an account has been created, and allows you to automate the exchange of user identity information between systems. For example, while onboarding a new employee, the use of a central directory allows you to automatically provision the user to access services like GitHub. An administrator can deprovision an organization member using SCIM and automatically remove the member from the organization.
+SCIM is a protocol that tells the directory an account has been created and allows you to automate the exchange of user identity information between systems. For example, while onboarding a new employee, using a central directory allows you to automatically provision the user to access services like GitHub. An administrator can deprovision an organization member using SCIM and automatically remove the member from the organization.
> [!NOTE]
> If you use SAML SSO without implementing SCIM, you won't have automatic deprovisioning.
@@ -17,19 +17,19 @@ SCIM integrations allow the secure exchange of user identity data between your I
### SSH key and PAT with SAML SSO
-Once these systems are implemented, user lifecycle management changes made in your IdP will be reflected in your GitHub enterprise automatically. The SAML IdP and the SCIM client must use matching NameID and userName values for each user. This process allows a user authenticating through SAML to be linked to their provisioned SCIM identity. Each time you make changes to group membership in your IdP, the IdP will make a SCIM call to GitHub.com to update the corresponding organization's membership. Each time an enterprise member accesses a resource protected by your enterprise account's SAML configuration, that SAML assertion will trigger provisioning.
+Once these systems are implemented, user lifecycle-management changes made in your IdP will be reflected in your GitHub enterprise automatically. The SAML IdP and the SCIM client must use matching NameID and userName values for each user. This process allows a user authenticating through SAML to be linked to their provisioned SCIM identity. Each time you make changes to group membership in your IdP, the IdP will make a SCIM call to GitHub.com to update the corresponding organization's membership. Each time an enterprise member accesses a resource protected by your enterprise account's SAML configuration, that SAML assertion will trigger provisioning.
To access your organization's protected resources using the API and Git on the command line, your users will need to authorize and authenticate with a PAT (personal access token) or SSH key. Users can authorize an existing PAT or SSH key, or create a new PAT or SSH key and then authorize it. As the administrator, you're able to review each personal access token and SSH key that a member has authorized for API and Git access.
-:::image type="content" source="../media/saml-sso-ssh-key-example.png" alt-text="screenshot of the SSH key." :::
+:::image type="content" source="../media/saml-sso-ssh-key-example.png" alt-text="Screenshot of the SSH key." :::
-After you enable SAML SSO, there are multiple ways you can add new members to your organization. Organization owners can invite new members manually on GitHub or using the API. To provision new users without an invitation from an organization owner, you can use the URL `https://github.com/orgs/ORGANIZATION/sso/sign_up`, replacing *ORGANIZATION* with the name of your organization. For example, you can configure your IdP so that anyone with access to the IdP can click a link on the IdP's dashboard to join your GitHub organization.
+After you enable SAML SSO, there are multiple ways you can add new members to your organization. Organization owners can invite new members manually on GitHub or by using the API. To provision new users without an invitation from an organization owner, you can use the URL `https://github.com/orgs/ORGANIZATION/sso/sign_up`, replacing *ORGANIZATION* with the name of your organization. For example, you can configure your IdP so that anyone with access to the IdP can click a link on the IdP's dashboard to join your GitHub organization.
SCIM and SAML SSO also have security benefits. The first time a member uses SAML SSO to access your organization, GitHub automatically creates a record that links your organization, the member's GitHub account, and the member's account on your IdP. You can review the SAML SSO identity that a member has linked to their GitHub account. When available, the entry will include SCIM data for the user. You can also view and revoke the linked SAML identity, active sessions, and authorized credentials for members of your organization or enterprise account. When an employee leaves the company, the off-boarding process is automated and deprovisioning happens automatically. When you unassign the application from a user or deactivate a user's account on your IdP, it will communicate with GitHub.com to invalidate any SAML sessions for that user. The automation of these tasks reduces the time required for an administrator to manage user credentials, and the risk of error associated with manually entering and updating user information is also mitigated.
### Connect your IdP to your organization
-To use SAML single sign-on and SCIM, you must connect your identity provider to your GitHub organization. When you enable SAML SSO for your GitHub organization, you connect your identity provider to your organization. Keep in mind that not all SAML identity providers are currently supported by GitHub for SCIM. Below is a list of the GitHub supported identity providers for SCIM.
+To use SAML single sign-on and SCIM, you must connect your identity provider to your GitHub organization. When you enable SAML SSO for your GitHub organization, you connect your identity provider to your organization. Keep in mind that not all SAML identity providers are currently supported by GitHub for SCIM. Following is a list of the GitHub supported identity providers for SCIM:
- Azure AD
- Okta
@@ -44,6 +44,6 @@ If your support request is outside of the scope of what our team can help you wi
- Configuration of external authentication systems, such as SAML identity providers
- Open-source projects
-Some companies may have built their own system and synchronize their accounts in a custom way. GitHub doesn't support these custom-created accounts with technical assistance. Technical support by GitHub for changes in the way GitHub.com uses SCIM and SAML is available for enterprises that are using one of the providers above.
+Some companies may have built their own system and synchronize their accounts in a custom way. GitHub doesn't support these custom-created accounts with technical assistance. Technical support by GitHub for changes in the way GitHub.com uses SCIM and SAML is available for enterprises that are using one of the providers listed previously.
If you're uncertain if the issue is out of scope, open a ticket with GitHub support, and they'll be happy to help you determine the best way to continue.
diff --git a/github/authenticate-authorize-user-identities-github/includes/5-team-synchronization.md b/github/authenticate-authorize-user-identities-github/includes/5-team-synchronization.md
index 56e30f4b..34c80581 100644
--- a/github/authenticate-authorize-user-identities-github/includes/5-team-synchronization.md
+++ b/github/authenticate-authorize-user-identities-github/includes/5-team-synchronization.md
@@ -2,7 +2,7 @@ If your company is using Azure AD or Okta as your IdP for your enterprise in Git
When you synchronize a GitHub team with an IdP group, changes to the IdP group are reflected on GitHub automatically, reducing the need for manual updates and custom scripts. You can use an IdP with team synchronization to manage administrative tasks such as onboarding new members, granting new permissions for movements within an organization, and removing member access to the organization.
-Managing a team via your service provider allows you to save time and resources that would otherwise be spent duplicating in GitHub the information about your team that is already captured in your IdP. The Administrator of your IdP will need to enable SAML SSO and SCIM to implement team synchronization.
+Managing a team via your service provider allows you to save time and resources that you'd otherwise spend duplicating in GitHub the information about your team that's already captured in your IdP. The Administrator of your IdP will need to enable SAML SSO and SCIM to implement team synchronization.
| Features | Description |
| ---------------------- | ------------------------------------------------------------ |
@@ -26,14 +26,14 @@ When using the team synchronization feature, there are specific usage limits you
With team synchronization, you can use your IdP to manage administrative tasks like onboarding new members, granting new permissions in your organization, and removing member access. When you synchronize a GitHub team with an IdP group, changes made to the IdP group are reflected on GitHub automatically, reducing the need for manual updates and custom scripts. The steps to enable team synchronization depend on the IdP you use.
-You can enable and use team synchronization, but only with the following supported IdPs.
+You can enable and use team synchronization, but only with the following supported IdPs:
- Azure AD
- Okta
The steps to enable team synchronization depend on the IdP you want to use. There are prerequisites to enable team synchronization that apply to each IdP. To enable team synchronization with your IdP, you must obtain administrative access or work with your IdP administrator to configure the IdP integration and groups. After you enable team synchronization, team maintainers and organization owners can connect a team to an IdP group on GitHub or through the API.
-**Azure AD**: The GitHub System Admin for the GitHub organization will need to identify and work with the Azure AD Administrator to configure Team Synchronization. On the Azure AD side, the service is called “automatic user account provisioning.” To enable team synchronization for Azure AD, the installation needs the following permissions.
+**Azure AD**: The GitHub System Admin for the GitHub organization will need to identify and work with the Azure AD Administrator to configure Team Synchronization. On the Azure AD side, the service is called “automatic user account provisioning.” To enable team synchronization for Azure AD, the installation needs the following permissions:
- Read all users’ full profiles
- Sign in and read user profiles
@@ -41,12 +41,12 @@ The steps to enable team synchronization depend on the IdP you want to use. Ther
**Okta**: To enable team synchronization for Okta, you or your IdP administrator must:
-- Enable SAML SSO and SCIM for your organization using Okta
-- Provide the tenant URL for your Okta instance
-- Generate a valid SSWS token with read-only admin permissions for your Okta installation as a service user
+- Enable SAML SSO and SCIM for your organization using Okta.
+- Provide the tenant URL for your Okta instance.
+- Generate a valid SSWS token with read-only admin permissions for your Okta installation as a service user.
## Disable team synchronization
-When you disable team synchronization, any team members who were assigned to a GitHub team through the IdP group are removed from the team, and may lose access to your organization's repositories. You can disable this feature through the organization settings by clicking on **Your organization**, and then selecting **Settings**. Next, click on **Organization security** and then choose **Disable team synchronization**.
+When you disable team synchronization, any team members who were assigned to a GitHub team through the IdP group are removed from the team and may lose access to your organization's repositories. You can disable this feature through the organization settings by selecting **Your organization** and selecting **Settings**. Next, select **Organization security** and choose **Disable team synchronization**.
-:::image type="content" source="../media/disable-team-synchronization.png" alt-text="screenshot of the organization setting to disable team synchronization." :::
+:::image type="content" source="../media/disable-team-synchronization.png" alt-text="Screenshot of the organization setting to disable team synchronization." :::
diff --git a/github/authenticate-authorize-user-identities-github/includes/7-summary.md b/github/authenticate-authorize-user-identities-github/includes/7-summary.md
index 9615f141..5c7c07be 100644
--- a/github/authenticate-authorize-user-identities-github/includes/7-summary.md
+++ b/github/authenticate-authorize-user-identities-github/includes/7-summary.md
@@ -1,6 +1,6 @@
-In this module, you learned about allowing access to your users, and how the authentication systems available for your GitHub organization help keep your sensitive data secure. You also learned about auditing which users and teams have access to the repositories in your organization. The goal for you as a GitHub administrator should be to give your users access to your enterprise data with robust security restrictions that are painless to use. Securing who has access to your organization will ensure that only the users who legitimately *need* access to your organization's data will have access to it.
+In this module, you learned about allowing access to your users, and how the authentication systems available for your GitHub organization help keep your sensitive data secure. You also learned about auditing which users and teams have access to the repositories in your organization. The goal for you as a GitHub administrator should be to give your users access to your enterprise data with robust security restrictions that are painless to use. Securing who has access to your organization will ensure that only the users who legitimately *need* access to your organization's data will have it.
-You learned about:
+You learned:
- How SAML SSO and 2FA are more secure than username/password authentication
- Which identity providers are supported by GitHub
diff --git a/github/authenticate-authorize-user-identities-github/index.yml b/github/authenticate-authorize-user-identities-github/index.yml
index 9caa5834..673744ec 100644
--- a/github/authenticate-authorize-user-identities-github/index.yml
+++ b/github/authenticate-authorize-user-identities-github/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.authenticate-authorize-user-identities-github
metadata:
title: Authenticate and authorize user identities on GitHub
description: Learn how to manage the authentication and authorization of user identities on GitHub.
- ms.date: 04/11/2022
+ ms.date: 11/17/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
@@ -40,6 +40,6 @@ units:
- learn.github.authenticate-authorize-user-identities-github.5-team-synchronization
- learn.github.authenticate-authorize-user-identities-github.6-knowledge-check
- learn.github.authenticate-authorize-user-identities-github.7-summary
-iconUrl: /learn/achievements/github/authenticate-authorize-user-identities-github.svg
+iconUrl: /training/achievements/github/authenticate-authorize-user-identities-github.svg
badge:
uid: learn.github.authenticate-authorize-user-identities-github.badge
diff --git a/github/authenticate-authorize-user-identities-github/resources/module-design.md b/github/authenticate-authorize-user-identities-github/resources/module-design.md
index a2a07f88..7192f556 100644
--- a/github/authenticate-authorize-user-identities-github/resources/module-design.md
+++ b/github/authenticate-authorize-user-identities-github/resources/module-design.md
@@ -4,11 +4,11 @@
## Role(s)
-- *Add the role(s)* [Role guidance](https://review.docs.microsoft.com/en-us/new-hope/information-architecture/metadata/taxonomies?branch=master#role)
+- *Add the role(s)* [Role guidance](https://review.learn.microsoft.com/new-hope/information-architecture/metadata/taxonomies?branch=main#role)
## Level
-- *Add the level* [Level guidance](https://review.docs.microsoft.com/en-us/new-hope/information-architecture/metadata/taxonomies?branch=master#level)
+- *Add the level* [Level guidance](https://review.learn.microsoft.com/new-hope/information-architecture/metadata/taxonomies?branch=main#level)
## Product(s)
@@ -83,4 +83,4 @@ Identify the subtasks of *module title*
## Notes
-Note any additional information that may be beneficial to this content such as links, reference material, etc.
\ No newline at end of file
+Note any additional information that may be beneficial to this content such as links, reference material, etc.
diff --git a/github/communicate-using-markdown/1-introduction.yml b/github/communicate-using-markdown/1-introduction.yml
index c076e8e5..93e26988 100644
--- a/github/communicate-using-markdown/1-introduction.yml
+++ b/github/communicate-using-markdown/1-introduction.yml
@@ -5,8 +5,8 @@ metadata:
title: Introduction
description: Learn to use Markdown to communicate with brevity, clarity, and expression.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 2
diff --git a/github/communicate-using-markdown/2-what-is-markdown.yml b/github/communicate-using-markdown/2-what-is-markdown.yml
index ce9912e3..9300927a 100644
--- a/github/communicate-using-markdown/2-what-is-markdown.yml
+++ b/github/communicate-using-markdown/2-what-is-markdown.yml
@@ -5,8 +5,8 @@ metadata:
title: What is Markdown?
description: Learn to use common Markdown features to enhance your GitHub communications.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 8
diff --git a/github/communicate-using-markdown/3-communicating-using-markdown.yml b/github/communicate-using-markdown/3-communicating-using-markdown.yml
index 1b9e1819..339ae978 100644
--- a/github/communicate-using-markdown/3-communicating-using-markdown.yml
+++ b/github/communicate-using-markdown/3-communicating-using-markdown.yml
@@ -1,12 +1,12 @@
### YamlMime:ModuleUnit
uid: learn.github.communicate-using-markdown.3-communicating-using-markdown
-title: Exercise - Communicating using Markdown
+title: Exercise - Communicate using Markdown
metadata:
- title: Exercise - Communicating using Markdown
+ title: Exercise - Communicate using Markdown
description: Learn to use Markdown to communicate your ideas through web site content, issue discussions, and pull requests.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 48
diff --git a/github/communicate-using-markdown/4-knowledge-check.yml b/github/communicate-using-markdown/4-knowledge-check.yml
index e0748adc..adef64cc 100644
--- a/github/communicate-using-markdown/4-knowledge-check.yml
+++ b/github/communicate-using-markdown/4-knowledge-check.yml
@@ -5,8 +5,8 @@ metadata:
title: Knowledge check
description: Check what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 3
diff --git a/github/communicate-using-markdown/5-summary.yml b/github/communicate-using-markdown/5-summary.yml
index 6fd93d1c..a05be47c 100644
--- a/github/communicate-using-markdown/5-summary.yml
+++ b/github/communicate-using-markdown/5-summary.yml
@@ -5,8 +5,8 @@ metadata:
title: Summary
description: Review what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 1
diff --git a/github/communicate-using-markdown/includes/1-introduction.md b/github/communicate-using-markdown/includes/1-introduction.md
index 1a992b6f..984c71da 100644
--- a/github/communicate-using-markdown/includes/1-introduction.md
+++ b/github/communicate-using-markdown/includes/1-introduction.md
@@ -1,6 +1,6 @@
-Markdown is a markup language that offers a lean approach to content editing. It defines a concise, lightweight syntax that strips out the overhead inherent to HTML, providing a more approachable creation experience. It has become the standard for sites like GitHub, and enjoys broad editor support in both client and browser forms.
+Markdown is a markup language that offers a lean approach to content editing. It defines a concise, lightweight syntax that strips out the overhead inherent to HTML, providing a more approachable creation experience. It's become the standard for sites like GitHub, and enjoys broad editor support in both client and browser forms.
-Suppose you're filing a bug report on GitHub. In order to provide depth and context, you would like to emphasize parts of your text, provide a list of reproduction steps, enumerate your observations, and possibly embed screenshots with links to logs. Further, you'd like to reference other issues or lines of code and mention specific team members to be sure they have visibility on the issue. Markdown enables all of these scenarios on GitHub, and does so in a clear, convenient way.
+Suppose you're filing a bug report on GitHub. In order to provide depth and context, you'd like to emphasize parts of your text, provide a list of reproduction steps, enumerate your observations, and possibly embed screenshots with links to logs. Further, you'd like to reference other issues or lines of code and mention specific team members to be sure they have visibility on the issue. Markdown enables all of these scenarios on GitHub, and does so in a clear, convenient way.
In this module, you'll learn how to use Markdown in order to communicate more expressively throughout GitHub.
@@ -8,13 +8,13 @@ In this module, you'll learn how to use Markdown in order to communicate more ex
In this module, you'll:
-- Use Markdown to add lists, images, and links in a comment or text file
-- Determine where and how to use Markdown in a GitHub repository
-- Learn about syntax extensions available in GitHub (GitHub-flavored Markdown)
+- Use Markdown to add lists, images, and links in a comment or text file.
+- Determine where and how to use Markdown in a GitHub repository.
+- Learn about syntax extensions available in GitHub (GitHub-flavored Markdown).
## Prerequisites
- A GitHub account
- The ability to navigate and edit files in GitHub
-We recommend that you complete [Introduction to GitHub](/learn/modules/introduction-to-github) before beginning this module.
\ No newline at end of file
+We recommend that you complete [Introduction to GitHub](/training/modules/introduction-to-github) before beginning this module.
diff --git a/github/communicate-using-markdown/includes/2-what-is-markdown.md b/github/communicate-using-markdown/includes/2-what-is-markdown.md
index c9a5975c..0d6fbfa8 100644
--- a/github/communicate-using-markdown/includes/2-what-is-markdown.md
+++ b/github/communicate-using-markdown/includes/2-what-is-markdown.md
@@ -1,7 +1,7 @@
-Here, we'll discuss the structure and syntax of Markdown. We'll also cover features of GitHub-Flavored Markdown (GFM), which are syntax extensions that enable you to integrate GitHub features into content.
+Here, we'll discuss the structure and syntax of Markdown. We'll also cover features of GitHub-Flavored Markdown (GFM), which are syntax extensions that allow you to integrate GitHub features into content.
> [!NOTE]
-> This unit is intended to give you a taste of what Markdown is about. For a more in-depth review, see [Markdown syntax description](https://daringfireball.net/projects/markdown/syntax?azure-portal=true) or [GitHub-Flavored Markdown Spec](https://github.github.com/gfm/?azure-portal=true).
+> This unit is intended to give you a taste of what Markdown is about. For a more in-depth review, reference [Markdown syntax description](https://daringfireball.net/projects/markdown/syntax?azure-portal=true) or [GitHub-Flavored Markdown Spec](https://github.github.com/gfm/?azure-portal=true).
## What is Markdown?
@@ -9,9 +9,9 @@ Markdown exists to shield content creators from the overhead of HTML. While HTML
### Emphasizing text
-The most important part of any communication on GitHub is usually the text itself. But how do you show that some parts of the text are more important than others?
+The most important part of any communication on GitHub is usually the text itself, but how do you show that some parts of the text are more important than others?
-Using italics in text is as easy as surrounding the target text with single asterisks (`*`) or single underscores (`_`). Just be sure to close an emphasis with the same character with which you opened. Be observant how you combine the use of asterisks and underscores. Here are several examples:
+Using italics in text is as easy as surrounding the target text with single asterisks (`*`) or single underscores (`_`). Just be sure to close an emphasis with the same character with which you opened it. Be observant how you combine the use of asterisks and underscores. Here are several examples:
```markdown
This is *italic* text.
@@ -41,7 +41,7 @@ __This is bold and *italic* text__ using double underscores for bold and single
>_This is **italic and bold** text_ using a single underscore for italic and double asterisks for bold.
> __This is bold and *italic* text__ using double underscores for bold and single asterisks for italic.
-To use a literal asterisk, precede it with an escape character; in GFM that's a backslash (`\`). This example results in the underscores and asterisks being shown in the output.
+To use a literal asterisk, precede it with an escape character; in GFM, that's a backslash (`\`). This example results in the underscores and asterisks being shown in the output.
```markdown
\_This is all \*\*plain\*\* text\_.
@@ -67,23 +67,23 @@ Image and site links use a very similar syntax.

```
-> 
+> 
```markdown
-[Link to Microsoft Learn](/learn)
+[Link to Microsoft Training](/training)
```
-> [Link to Microsoft Learn](/learn)
+> [Link to Microsoft Training](/training)
### Making lists
You can define ordered or unordered lists. You can also define nested items through indentation.
- * Ordered lists start with numbers.
- * Unordered lists can use asterisks or dashes (`-`).
+* Ordered lists start with numbers.
+* Unordered lists can use asterisks or dashes (`-`).
+Here's the markdown for an ordered list:
-Here is the markdown for an ordered list.
```markdown
1. First
1. Second
@@ -91,11 +91,11 @@ Here is the markdown for an ordered list.
```
Result:
+
> 1. First
> 1. Second
> 1. Third
-
```markdown
- First
- Nested
@@ -114,7 +114,7 @@ Here is the markdown for an unordered list.
You can construct tables using a combination of pipes (`|`) for column breaks and dashes (`-`) to designate the prior row as a header.
-```
+```markdown
First|Second
-|-
1|2
@@ -130,7 +130,7 @@ First|Second
You can create blockquotes using the greater than (`>`) character.
-```
+```markdown
> This is quoted text.
```
@@ -151,7 +151,7 @@ Here is a
line break
Markdown provides default behavior for working with inline code blocks delimited by the backtick (\`) character. When decorating text with this character, it is rendered as code.
-```
+```markdown
This is `code`.
```
@@ -159,7 +159,7 @@ This is `code`.
If you have a code segment spanning multiple lines, you can use three backticks (\`\`\`) before and after to create a fenced code block.
- ```
+ ```markdown
var first = 1;
var second = 2;
var sum = first + second;
@@ -187,7 +187,7 @@ GFM extends this support with syntax highlighting for popular languages. Just sp
### Cross-linking issues and pull requests
-GFM supports a variety of shortcode formats to make it easy to link to issues and pull requests. The easiest way to do this is to use the format `#ID`, such as `#3602`. GitHub will automatically adjust longer links to this format if you paste them in. There are also additional conventions you can follow, such as if you're working with other tools or want to specify other projects/branches.
+GFM supports a variety of shortcode formats to make it easy to link to issues and pull requests. The easiest way to do this is to use the format `#ID`, such as `#3602`. GitHub will automatically adjust longer links to this format if you paste them in. There are also additional conventions you can follow, such as if you're working with other tools or want to specify other projects/branches.
| Reference type | Raw reference | Short link |
| -------------- | ------------- | ---------- |
@@ -213,7 +213,7 @@ You can link to a commit by pasting in its ID, or, simply using its secure hash
Typing an `@` symbol followed by a GitHub username will send a notification to that person about the comment. This is called an "@mention", because you're mentioning the individual. You can also `@mention` teams within an organization.
-```
+```markdown
@githubteacher
```
@@ -223,9 +223,9 @@ For more information, see [Receiving notifications about activity on GitHub](htt
### Tracking task lists
-You can create task lists within issues or pull requests using the syntax illustrated below. These can be helpful to track progress when used in the body of an issue or pull request.
+You can create task lists within issues or pull requests using the following syntax. These can be helpful to track progress when used in the body of an issue or pull request.
-```
+```markdown
- [x] First task
- [x] Second task
- [ ] Third task
diff --git a/github/communicate-using-markdown/includes/3-communicating-using-markdown.md b/github/communicate-using-markdown/includes/3-communicating-using-markdown.md
index 5edd43d9..7464f78f 100644
--- a/github/communicate-using-markdown/includes/3-communicating-using-markdown.md
+++ b/github/communicate-using-markdown/includes/3-communicating-using-markdown.md
@@ -1,10 +1,10 @@
This exercise checks your knowledge on content covered in this module by using Markdown in order to collaborate more expressively throughout GitHub.
-## Getting started
+## Get started
-When you click the _Start the exercise on GitHub_ button below, you'll be navigated to a public GitHub template repository that will prompt you to complete a series of small challenges. Before you can begin the exercise, complete the below tasks:
+When you select the **Start the exercise on GitHub** button below, you'll be directed to a public GitHub template repository that will prompt you to complete a series of small challenges. Before you can begin the exercise, complete the below tasks:
-- Select the _Start course_ button or the _Use this template_ feature within the template repository. This will prompt you to create a new repository. We recommend creating a public repository, as private repositories will use Actions minutes.
+- Select the **Start course** button or the **Use this template** feature within the template repository. This will prompt you to create a new repository. We recommend creating a public repository, as private repositories will use Actions minutes.
After you make your own repository from the template, wait about 20 seconds and refresh.
- Follow the instructions in the repository's README to understand how the exercise works, its learning objectives, and how to successfully complete the exercise.
@@ -17,9 +17,8 @@ When you've finished the exercise in GitHub, return here for:
> * To earn a badge for completing this module
>[!Note]
-> You do not need to modify any of the workflow files to complete this exercise.
-> **Altering the contents in this workflow can break the exercise's**
-> **ability to validate your actions, provide feedback, or grade the results**.
+> You don't need to modify any of the workflow files to complete this exercise.
+> **Altering the contents in this workflow can break the exercise's ability to validate your actions, provide feedback, or grade the results**.
> [!div class="nextstepaction"]
-> [Start the exercise on GitHub](https://github.com/skills/review-pull-requests)
+> [Start the exercise on GitHub](https://github.com/skills/communicate-using-markdown)
diff --git a/github/communicate-using-markdown/includes/5-summary.md b/github/communicate-using-markdown/includes/5-summary.md
index e68d6c41..adb5f6f5 100644
--- a/github/communicate-using-markdown/includes/5-summary.md
+++ b/github/communicate-using-markdown/includes/5-summary.md
@@ -2,11 +2,11 @@ In this module, you learned about Markdown and GitHub-flavored Markdown so you c
You learned about:
-- Using Markdown to add lists, images, and links in a comment or text file
-- Determining where and how to use Markdown in a GitHub repository
-- Learning about syntax extensions available in GitHub (GitHub-flavored Markdown)
+- Using Markdown to add lists, images, and links in a comment or text file.
+- Determining where and how to use Markdown in a GitHub repository.
+- Learning about syntax extensions available in GitHub (GitHub-flavored Markdown).
-Now that you know how to use Markdown on GitHub, learn to [Create and host web sites by using GitHub Pages](/learn/modules/create-host-web-sites-github-pages/).
+Now that you know how to use Markdown on GitHub, learn to [Create and host web sites by using GitHub Pages](/training/modules/create-host-web-sites-github-pages/).
## Learn more
@@ -15,4 +15,4 @@ Here are some links to more information on the topics we discussed in this modul
- [Markdown syntax description](https://daringfireball.net/projects/markdown/syntax?azure-portal=true)
- [GitHub-Flavored Markdown Spec](https://github.github.com/gfm/?azure-portal=true)
- [Writing on GitHub](https://help.github.com/en/github/writing-on-github?azure-portal=true)
-- [GitHub markdown emojis](https://gist.github.com/rxaviers/7360908?azure-portal=true)
\ No newline at end of file
+- [GitHub markdown emojis](https://gist.github.com/rxaviers/7360908?azure-portal=true)
diff --git a/github/communicate-using-markdown/index.yml b/github/communicate-using-markdown/index.yml
index 702bed09..289c6075 100644
--- a/github/communicate-using-markdown/index.yml
+++ b/github/communicate-using-markdown/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.communicate-using-markdown
metadata:
title: "Communicate effectively on GitHub by using Markdown"
description: Learn to use Markdown to communicate with brevity, clarity, and expression.
- ms.date: 07/08/2022
+ ms.date: 10/24/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
@@ -18,7 +18,7 @@ abstract: |
prerequisites: |
- A GitHub account
- The ability to navigate and edit files in GitHub
-iconUrl: /learn/achievements/github/communicate-using-markdown.svg
+iconUrl: /training/achievements/github/communicate-using-markdown.svg
ratingEnabled: true
levels:
- beginner
diff --git a/github/configure-dependabot-security-updates-on-github-repo/includes/3-dependabot-alerts.md b/github/configure-dependabot-security-updates-on-github-repo/includes/3-dependabot-alerts.md
index 89a70b0e..932e46e2 100644
--- a/github/configure-dependabot-security-updates-on-github-repo/includes/3-dependabot-alerts.md
+++ b/github/configure-dependabot-security-updates-on-github-repo/includes/3-dependabot-alerts.md
@@ -46,6 +46,24 @@ GitHub Enterprise customers can also enable Dependabot alerts. If you're a GitHu
For more information, see [Connect your enterprise account to GitHub Enterprise Cloud](https://docs.github.com/enterprise-server@3.1/admin/configuration/managing-connections-between-your-enterprise-accounts/connecting-your-enterprise-account-to-github-enterprise-cloud).
+### Set up Dependabot alerts for GitHub Actions
+
+GitHub will send a Dependabot alert for vulnerable GitHub Actions, making it even easier to stay up to date and fix security vulnerabilities in your actions workflows. When a security vulnerability is reported in an action, GitHub's team of security researchers will create an advisory to document the vulnerability, which will trigger an alert to impacted repositories. These alerts are powered by the GitHub Advisory Database.
+
+#### Use Dependabot alerts for GitHub Actions
+
+If you already use Dependabot, you’re covered with no additional step required. To receive alerts on GitHub Actions and vulnerabilities impacting your code, you can enable Dependabot by selecting **Enable all** under the Code security and analysis tab.
+
+#### Submit an advisory for GitHub Actions
+
+After discovering a vulnerability, the owner of a GitHub Action can start the process of creating an advisory from the security tab in your repository. Once the repository advisory is created and tagged within the GitHub Action ecosystem, the GitHub curation team will review the repository advisory and create a global advisory when appropriate.
+
+Please ensure to disclosure process, when creating a GitHub Action advisory:
+- The GitHub Action uses semantic versioning.
+- You own the repository of the action you are creating the alert for.
+- Package names are formatted as a user or organization name followed by the repository name with a slash in between: `org-name/repo-name`. An example would be `GitHub/GitHub’s-favorite-action`
+- There is only one action in the repository, so it is distinguishable from other actions
+
## View Dependabot alerts
Dependabot alerts are displayed in the **Security** tab for the repository and in the repository's dependency graph. The alert includes a link to the affected file in the project, and information about a fixed version, if available.
diff --git a/github/contribute-open-source/includes/1-introduction.md b/github/contribute-open-source/includes/1-introduction.md
index d55eaf57..efccf23a 100644
--- a/github/contribute-open-source/includes/1-introduction.md
+++ b/github/contribute-open-source/includes/1-introduction.md
@@ -25,4 +25,4 @@ By the end of this module, you'll be able to:
> [!NOTE]
> This module covers how to make contributions to open-source projects on GitHub. To familiarize yourself with GitHub, complete the following module first:
>
-> - [Introduction to GitHub](/learn/modules/introduction-to-github)
+> - [Introduction to GitHub](/training/modules/introduction-to-github)
diff --git a/github/contribute-open-source/includes/5-next-steps.md b/github/contribute-open-source/includes/5-next-steps.md
index c5e5fb53..ec98b6bb 100644
--- a/github/contribute-open-source/includes/5-next-steps.md
+++ b/github/contribute-open-source/includes/5-next-steps.md
@@ -14,7 +14,7 @@ Code, and solutions, can sometimes be reused across projects. Have you solved a
- Publish as a stand-alone library (dependency).
- Mirror the project with your added functionality.
-- [Create a GitHub Action](/learn/modules/github-actions-automate-tasks/) for others to include in their workflow.
+- [Create a GitHub Action](/training/modules/github-actions-automate-tasks/) for others to include in their workflow.
The first option is probably the best course of action when your bit of code is like a plug-in that could be used across web-development projects. Mirroring or forking a project with the addition of your code is useful when you're solving a narrow use case for a small subset of customers, or even a single customer. Consider that you'll need to keep your fork up to date with the upstream repository if you want to benefit from (for instance) security patches.
@@ -22,4 +22,4 @@ GitHub Actions are packaged scripts that automate tasks in a software-developmen
For all three of the suggested paths, consider that you're now a maintainer of a project. People will come to you with praise, questions, and complaints. Are you ready for such a commitment?
-If your project takes off, people's apps might depend on your bit of code. Can you involve more people to take some of the potential load off? Do you have time to add documentation, triage issues, and review suggestions from people you've likely never met before? Consider your "bandwidth," and instead set expectations in your project's README file. Or, you can release your code in a public gist or a blog post. Code doesn't need to be on GitHub to be open source, after all.
\ No newline at end of file
+If your project takes off, people's apps might depend on your bit of code. Can you involve more people to take some of the potential load off? Do you have time to add documentation, triage issues, and review suggestions from people you've likely never met before? Consider your "bandwidth," and instead set expectations in your project's README file. Or, you can release your code in a public gist or a blog post. Code doesn't need to be on GitHub to be open source, after all.
diff --git a/github/contribute-open-source/index.yml b/github/contribute-open-source/index.yml
index de8bcb13..3b6d58ee 100644
--- a/github/contribute-open-source/index.yml
+++ b/github/contribute-open-source/index.yml
@@ -33,7 +33,6 @@ roles:
- ai-engineer
- ai-edge-engineer
products:
- - vs
- github
- azure
prerequisites: |
@@ -49,6 +48,6 @@ units:
- learn.github.contribute-opensource.5-next-steps
- learn.github.contribute-opensource.6-knowledge-check
- learn.github.contribute-opensource.7-summary
-iconUrl: /learn/achievements/github/contribute-to-an-open-source-project-on-github.svg
+iconUrl: /training/achievements/github/contribute-to-an-open-source-project-on-github.svg
badge:
uid: learn.github.contribute-opensource.badge
diff --git a/github/contribute-open-source/resources/design-doc.md b/github/contribute-open-source/resources/design-doc.md
index 3bc389c0..e016dd5b 100644
--- a/github/contribute-open-source/resources/design-doc.md
+++ b/github/contribute-open-source/resources/design-doc.md
@@ -34,7 +34,7 @@ Contribute to an open-source project using GitHub
## Summary
-*Add the summary [(Summary guidance)](https://review.docs.microsoft.com/en-us/learn-docs/docs/id-guidance-introductory-summaries)*
+*Add the summary [(Summary guidance)](https://review.learn.microsoft.com/learn-docs/docs/id-guidance-introductory-summaries)*
Contribute to open-source projects and communities through GitHub. Identify tasks you can work on and adopt best practices to contribute to the project and interact with its communities.
@@ -129,7 +129,7 @@ Identify the subtasks of *Contribute to an open-source project using GitHub*
6. **Knowledge check**
- What types of questions will test *learning objective*? *[(Knowledge check guidance)](https://review.docs.microsoft.com/en-us/learn-docs/docs/id-guidance-knowledge-check)*
+ What types of questions will test *learning objective*? *[(Knowledge check guidance)](https://review.learn.microsoft.com/learn-docs/docs/id-guidance-knowledge-check)*
- What is the best place on a GitHub repository to find where you can help a project?
* The README file
@@ -162,4 +162,4 @@ Note any additional information that may be beneficial to this content such as l
-
-
--
\ No newline at end of file
+-
diff --git a/github/create-custom-github-actions/includes/publish-custom-github-action.md b/github/create-custom-github-actions/includes/publish-custom-github-action.md
index cbe2774d..b77d1f6e 100644
--- a/github/create-custom-github-actions/includes/publish-custom-github-action.md
+++ b/github/create-custom-github-actions/includes/publish-custom-github-action.md
@@ -29,6 +29,8 @@ The `README.md` file is often the first place developers will look at to see how
As a general rule, the `README.md` file should include everything a user should know to use the action. If you think it could be useful information, include it in the `README.md`.
+GitHub Actions lets you generate markdown files and publish them as a job summary. Using the same familiar functionality that powers pull requests and issues, an action can generate custom Markdown content on the run summary generated by each job.
+
## Release and version your action
If you're developing an action for other people to use, regardless of if it's public or private, you should define a release management strategy to control how updates are distributed. Major version updates including necessary critical fixes and security patches that affect compatibility need to be documented clearly.
@@ -37,6 +39,8 @@ If you're developing an action for other people to use, regardless of if it's pu
A good release management strategy should include versioning recommendations. Users should not be referencing an action's default branch with the action as the default branch which is likely to contain the latest code (which may or may not be stable) and could result in your workflow breaking. Instead, we recommend that users specify a major version when using the action, and to only direct them to a more specific version if they encounter issues. This can be done by configuring their GitHub Actions workflow to target a tag, a commit's SHA, or a specific branch named for a release. Let's take a closer look at these release options.
+GitHub has made changes to better support communities who have chosen to move away from using `master` as their default branch name. This update has been applied to all of the starter workflows that use a new `$default-branch` macro. You can take advantage of this feature in your custom starter workflow templates as well. In addition, GitHub has renamed the default branch for most of the GitHub-authored actions from `master` to `main`. All of your workflows that reference the old branch name will still work, but you’ll see a prompt to change to the new name when you edit the workflow using the GitHub UI.
+
#### Tags
Tags can be a good way to manage releases for an action. By using tags, users can easily distinguish between major and minor versions. Below is a list of helpful practices to consider when creating releases:
diff --git a/github/create-custom-github-actions/index.yml b/github/create-custom-github-actions/index.yml
index 1fa36846..c81ef5c2 100644
--- a/github/create-custom-github-actions/index.yml
+++ b/github/create-custom-github-actions/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.create-custom-github-actions
metadata:
title: Create and publish custom GitHub actions
description: Learn how to create and publish custom GitHub actions.
- ms.date: 07/08/2022
+ ms.date: 08/08/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
diff --git a/github/github-actions-automate-tasks/includes/2-github-actions-automate-development-tasks.md b/github/github-actions-automate-tasks/includes/2-github-actions-automate-development-tasks.md
index e187fdad..8c8a90bf 100644
--- a/github/github-actions-automate-tasks/includes/2-github-actions-automate-development-tasks.md
+++ b/github/github-actions-automate-tasks/includes/2-github-actions-automate-development-tasks.md
@@ -43,6 +43,14 @@ However, beyond those GitHub Actions featured on the Actions tab, you can:
- Search for open-source projects. For example, the [GitHub Actions](https://github.com/actions?azure-portal=true) organization features many popular open-source repos containing GitHub Actions you can use.
- Write your own GitHub Actions from scratch. Furthermore, if you want, you could make them open source, or even publish them to the GitHub Marketplace.
+## New workflow experience
+
+When you want to create an Actions workflow in the Actions tab of your repository, the recommendations will be based on an analysis of repository content. The workflow recommendations are based on repository analysis that detects elements, such as programming language, build tools, frameworks, and package managers. If a repository contains a Node.js application that has been containerized, then the repository analysis will prioritize showing you both container and Node related workflows, as one example.
+
+Also recommendations have been extended to the deployment category. If a repository contains a Dockerfile, we’ll suggest a workflow that builds these containers and deploys them to a container-compatible cloud service, as an example. This enables our cloud partners to contribute workflows for each of their services and helps them recommend the right workflows to end users based on the language and framework used in the repository code.
+
+Get started by going to the **Actions** tab in your repository and select **New Workflow**.
+
## Using open-source GitHub Actions
Many GitHub Actions are open source and available for anyone who wants to use them. However, just like with any open-source software, you need to carefully check them before using them in your project. Similar to recommended community standards with open-source software, such as including a README, code of conduct, contributing file, and issue templates, just to name a few, you can follow the following recommendations when using GitHub Actions:
@@ -162,6 +170,8 @@ When it comes to runners, there are two options to choose from: GitHub-hosted ru
Each type of runner has its benefits, but GitHub-hosted runners offer a quicker, simpler way to run your workflows, albeit with limited options. Self-hosted runners are a highly configurable way to run workflows in your own custom local environment. Self-hosted runners can be run on-premises or in the cloud. You can also use self-hosted runners to create a custom hardware configuration with more processing power or memory to run larger jobs, install software available on your local network, and choose an operating system not offered by GitHub-hosted runners.
+You can now specify shell scripts that run before the runner starts running a job from a workflow, and after a job completes, when you are managing. self-hosted runners for GitHub Actions. Doing so allows you to perform a task on your self-hosted runner before a job starts and after a job ends. Allowing you to set up your execution environment and clean up after workflow runs to ensure a consistent state on the runner itself, without requiring users to add that to their workflows.
+
### GitHub Actions may have usage limits
GitHub Actions has some usage limits, depending on whether your runner is GitHub-hosted or self-hosted and your GitHub plan. For more information on usage limits, check out [Usage limits, billing, and administration](https://docs.github.com/en/actions/reference/usage-limits-billing-and-administration) in the GitHub documentation.
diff --git a/github/github-actions-automate-tasks/includes/2c-configure-github-actions-workflow.md b/github/github-actions-automate-tasks/includes/2c-configure-github-actions-workflow.md
index 498f772a..4bae39de 100644
--- a/github/github-actions-automate-tasks/includes/2c-configure-github-actions-workflow.md
+++ b/github/github-actions-automate-tasks/includes/2c-configure-github-actions-workflow.md
@@ -129,3 +129,17 @@ steps:
```
Some references are safer than others. For example, referencing a specific branch will run that action off of the latest changes from that branch, which you may or may not want. By referencing a specific version number or commit SHA hash, you're being more specific about the version of the action you're running. For more stability and security, we recommend that you use the commit SHA of a released action within your workflows.
+
+## Prevent GitHub Actions from creating and approving pull requests
+
+To further reduce the risk of a user using Actions to merge a change into a protected branch that was not reviewed by another person, the organization setting to disallow Actions from approving pull requests has been extended to also limit Actions from creating pull requests. The Allow GitHub Actions to create and approve pull requests setting can be managed by admins in organization settings under **Actions** > *General* > *Workflow permissions*.
+
+## Helping maintainers
+
+One of the best things about GitHub Actions is that it gives developers the ability to automate all of their software workflows. Unfortunately, as GitHub Actions has grown, there has been a wide variety of bad actors abusing Actions, affecting service performance, and causing denial of service to open source projects.
+
+To help prevent this, GitHub has made two changes to how they treat pull requests from from public forks in Actions to help maintainers.
+
+- First, if GitHub determines an Actions run to be abusive or against our terms, GitHub's enforcement will be directed at the account hosting the fork and not the account associated with the upstream repository. The result of this process is to prevent maintainer accounts from being flagged and blocked due to these bad actors.
+
+- Second, pull requests from first-time contributors require manual approval from a repository collaborator with write access before any Actions workflows run. A first-time contributor will see a message that a maintainer must approve their Actions workflow when they opens a pull request before it will run. After a collaborator with write access has reviewed the changes, they can approve the workflows to run for the current commit only. If the pull request is updated to a new commit, a new approval will be required. These steps are a good balance between manual approval and existing automated workflows.
diff --git a/github/github-actions-automate-tasks/index.yml b/github/github-actions-automate-tasks/index.yml
index 6c110c20..7d63587c 100644
--- a/github/github-actions-automate-tasks/index.yml
+++ b/github/github-actions-automate-tasks/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.github-actions-automate-tasks
metadata:
title: "Automate development tasks by using GitHub Actions"
description: Create a basic GitHub Action and use that action in a workflow.
- ms.date: 07/08/2022
+ ms.date: 08/08/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
diff --git a/github/github-actions-cd/includes/2-deploy-azure.md b/github/github-actions-cd/includes/2-deploy-azure.md
index 2a388db7..8c0ea2cd 100644
--- a/github/github-actions-cd/includes/2-deploy-azure.md
+++ b/github/github-actions-cd/includes/2-deploy-azure.md
@@ -16,6 +16,8 @@ on:
types: [labeled]
```
+Workflow re-runs in GitHub Actions will use the initial run’s actor for privilege evaluation. The actor who triggered the re-run will continue to be displayed in the UI, and accessed in a workflow via the `triggering_actor` field in the `github` context.
+
## Control execution with a job conditional
Often, you only want to run a workflow if some condition is true.
@@ -163,4 +165,8 @@ steps:
```
-Notice that you use GitHub actions to check out the repository and to sign in to Azure. After that, you create the resources you need and deploy the container by using the Azure CLI.
\ No newline at end of file
+Notice that you use GitHub actions to check out the repository and to sign in to Azure. After that, you create the resources you need and deploy the container by using the Azure CLI.
+
+## Disable Actions workflows
+
+You can temporarily disable a GitHub Actions workflow either in the UI or through the API. This functionality allows you to stop a workflow from being triggered without having to delete the file from the repo. Later, you can easily re-enable it again from the UI or through the API.
diff --git a/github/github-actions-cd/includes/2b-manage-workflow-runs.md b/github/github-actions-cd/includes/2b-manage-workflow-runs.md
index cfbc380a..cb3228d2 100644
--- a/github/github-actions-cd/includes/2b-manage-workflow-runs.md
+++ b/github/github-actions-cd/includes/2b-manage-workflow-runs.md
@@ -71,4 +71,8 @@ So, for example, let's say you need to create a workflow to a production environ
2. Configure the required reviewers environment protection to require an approval from the specific dev team.
3. Configure the specific job within the workflow to look for the production environment.
+GitHub Actions lets you control the permissions granted to the `GITHUB_TOKEN` secret. The `GITHUB_TOKEN` is an automatically generated secret letting you make authenticated calls to the GitHub API in your workflow runs. Actions generates a new token for each job and expires the token when a job completes. These new settings allow you to follow a principle of least privilege in your workflows. The token has `write` permissions to a number of API endpoints except in the case of pull requests from forks which are always `read`.
+
You can create and configure new repository environments from the repository's **Settings** tab under **Environments**.
+
+GitHub Actions simplifies using secrets with reusable workflows with the secrets: `inherit keyword`. You can simply pass the `secrets: inherit` to the reusable workflow and the secrets will be inherited from the calling workflow.
diff --git a/github/github-actions-cd/index.yml b/github/github-actions-cd/index.yml
index 83c607f9..d1c6349d 100644
--- a/github/github-actions-cd/index.yml
+++ b/github/github-actions-cd/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.github-actions-cd
metadata:
title: "Build and deploy applications to Azure by using GitHub Actions"
description: Create two deployment workflows using GitHub Actions and Microsoft Azure.
- ms.date: 07/08/2022
+ ms.date: 08/08/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
diff --git a/github/github-actions-ci/includes/2-github-actions-workflows-ci.md b/github/github-actions-ci/includes/2-github-actions-workflows-ci.md
index 1ca1bc3f..0d83f5fa 100644
--- a/github/github-actions-ci/includes/2-github-actions-workflows-ci.md
+++ b/github/github-actions-ci/includes/2-github-actions-workflows-ci.md
@@ -11,22 +11,22 @@ You'll learn to:
## Create a workflow from a template
-To create a workflow, you'll start by using a template. A template has common jobs and steps pre-configured for the particular type of automation you're implementing. If you're not familiar with workflows, jobs, and steps, check out the [Automate development tasks by using GitHub Actions](/learn/modules/github-actions-automate-tasks/) module.
+
-On the main page of your repository, select the **Actions** tab to create a new workflow. You'll see that you can choose from many different templates. Two examples are the *Node.js* template, which does a clean install of node dependencies, builds the source code and runs tests across different versions of Node; and the *Python package* template, which installs Python dependencies and runs tests, including lint, across different versions of Python.
+Building something from scratch can be a good learning experience, but if you've gone through the process before it can be time consuming and frustrating to repeat the same steps over and over. The same can be said for Actions workflows. Instead of creating a workflow from scratch, you can create a workflow using a pre-existing template. These templates have some common configurations, jobs, and even steps already defined for the particular type of automation you're implementing and type of language your working in. If you're not familiar with the basics of a GitHub Actions workflow, check out the [Automate development tasks by using GitHub Actions](/learn/modules/github-actions-automate-tasks/) module.
-:::image type="content" source="../media/2-workflow-template.png" alt-text="GitHub Actions tab with the New Workflow button highlighted and the Node.js template selected." border="true":::
+To see how you can create a new workflow from a template, you can navigate to the Code tab of your repository and select the **Actions** tab to create a new workflow. You'll then see a list of existing templates separated into categories for automation, continuous integration, deployment, security, and pages. Once a workflow is selected, you can then modify exisiting template.
-Take a look at the following Node.js template workflow.
+For an example, below are the contents from a existing Node.js template workflow. This template workflow will do a clean installation of node dependencies, cache/restore them, build the source code, and run tests across different versions of node.
```yml
name: Node.js CI
on:
push:
- branches: [ main ]
+ branches: [ "main" ]
pull_request:
- branches: [ main ]
+ branches: [ "main" ]
jobs:
build:
@@ -35,14 +35,16 @@ jobs:
strategy:
matrix:
- node-version: [10.x, 12.x]
+ node-version: [14.x, 16.x, 18.x]
+ # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v1
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
+ cache: 'npm'
- run: npm ci
- run: npm run build --if-present
- run: npm test
@@ -52,9 +54,9 @@ Notice the ```on:``` attribute. This workflow is triggered on a push to the repo
There is one ```job``` in this workflow. Let's review what it does.
-The ```runs-on:``` attribute specifies that, for the operating system, the workflow runs on ```ubuntu-latest```. The ```node-version:``` attribute specifies that there will be two builds, one for Node version 10.x and one for Node version 12.x. We'll describe the ```matrix``` portion in depth later, when we customize the workflow.
+The ```runs-on:``` attribute specifies that, for the operating system, the workflow runs on ```ubuntu-latest```. The ```node-version:``` attribute specifies that there will be three builds, Node version 14.x, 16.x, and 18.x. We'll describe the ```matrix``` portion in depth later, when we customize the workflow.
-The ```steps``` in the job use the GitHub Actions [actions/checkout@v2](https://github.com/actions/checkout?azure-portal=true) action to get the code from your repository into the VM, and the [actions/setup-node@v1](https://github.com/actions/setup-node?azure-portal=true) action to set up the right version of Node.js. We specify that we're going to test two versions of Node.js with the ```${{ matrix.node-version }}``` attribute. This attribute points to the matrix we defined at the top of the file.
+The ```steps``` in the job use the GitHub Actions [actions/checkout@v3](https://github.com/actions/checkout?azure-portal=true) action to get the code from your repository into the VM, and the [actions/setup-node@v3error](https://github.com/actions/setup-node?azure-portal=true) action to set up the right version of Node.js. We specify that we're going to test two versions of Node.js with the ```${{ matrix.node-version }}``` attribute. This attribute points to the matrix we defined at the top of the file.
The last part of this step executes commands used by Node.js projects. The ```npm ci``` command installs dependencies from the *package-lock.json* file, ```npm run build --if-present``` runs a build script if it exists, and ```npm test``` runs the testing framework. Notice that this template includes both the build and test steps in the same job.
@@ -69,6 +71,8 @@ To learn more about npm, check out the npm documentation:
When a workflow runs, it produces a log that includes the details of what happened and any errors or test failures.
If there is an error or if a test has failed, you see a red X rather than a green check mark ✔️ in the logs. You can examine the details of the error or failure to investigate what went wrong.
+
+
:::image type="content" source="../media/2-log-details.png" alt-text=" GitHub Actions log with details on a failed test." border="true":::
In the exercise, you identify failed tests by examining the details in the logs. You can access the logs from the **Actions** tab.
@@ -83,7 +87,7 @@ Let's take a look at how you customize a workflow.
strategy:
matrix:
os: [ubuntu-lastest, windows-2016]
- node-version: [8.x, 10.x]
+ node-version: [14.x, 16.x, 18.x]
```
Here, we configured a [build matrix](https://docs.github.com/enterprise-server@3.1/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix) for testing across multiple operating systems and language versions. This matrix will produce four builds, one for each operating system paired with each version of Node.
@@ -96,7 +100,7 @@ test:
strategy:
matrix:
os: [ubuntu-lastest, windows-2016]
- node-version: [8.x, 10.x]
+ node-version: [14.x, 16.x, 18.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
diff --git a/github/github-actions-ci/includes/3-exercise-ci-workflow-github.md b/github/github-actions-ci/includes/3-exercise-ci-workflow-github.md
index 4699569d..e8bf19fc 100644
--- a/github/github-actions-ci/includes/3-exercise-ci-workflow-github.md
+++ b/github/github-actions-ci/includes/3-exercise-ci-workflow-github.md
@@ -2,6 +2,8 @@ This exercise checks your knowledge on how to create, customize and test a conti
## Getting started
+
+
When you click the _Start the exercise on GitHub_ button below, you'll be navigated to a public GitHub template repository that will prompt you to complete a series of small challenges. Before you can begin the exercise, complete the below tasks:
- Select the _Start course_ button or the _Use this template_ feature within the template repository. This will prompt you to create a new repository. We recommend creating a public repository, as private repositories will use Actions minutes.
diff --git a/github/github-actions-ci/media/ci-exercise.png b/github/github-actions-ci/media/ci-exercise.png
new file mode 100644
index 00000000..7236f10e
Binary files /dev/null and b/github/github-actions-ci/media/ci-exercise.png differ
diff --git a/github/github-actions-ci/media/template-workflows.png b/github/github-actions-ci/media/template-workflows.png
new file mode 100644
index 00000000..cd01e8ba
Binary files /dev/null and b/github/github-actions-ci/media/template-workflows.png differ
diff --git a/github/github-actions-packages/includes/2b-publish-using-workflow.md b/github/github-actions-packages/includes/2b-publish-using-workflow.md
index 8c0ae9bb..08eda78a 100644
--- a/github/github-actions-packages/includes/2b-publish-using-workflow.md
+++ b/github/github-actions-packages/includes/2b-publish-using-workflow.md
@@ -48,9 +48,13 @@ The preceding workflow does a few things after a new release is created:
1. Once the `build` job succeeds, the job named `publish-gpr` publishes the package.
1. The workflow publishes the package to the `registry-url: https://npm.pkg.github.com/` using an access token for authentication.
+Actions written in YAML can also reference other actions. This is in addition to using scripts. Being able to reference actions as well should help reduce duplication in your workflows. You can use setup-node action to cache dependencies for projects with monorepo and pnpm package manager. Additionally, you can now run Node.js projects faster on GitHub Actions by enabling dependency caching on the setup-node action. `setup-node` supports caching from both npm and yarn package managers.
+
## Use GitHub Container Registry to host and manage Docker container images
-GitHub Packages support the use of containers, Kubernetes, and other cloud-native technologies to manage their entire application lifecycle including production operations, development, release, and deployment. GitHub Packages also offers a container registry designed to support the unique needs of container images. You can use GitHub Container Registry to seamlessly host and manage Docker container images in your GitHub organization or personal user account. GitHub Container Registry allows you to configure who can manage and access packages using fine-grained permissions.
+GitHub Packages support the use of containers, Kubernetes, and other cloud-native technologies to manage their entire application lifecycle including production operations, development, release, and deployment. GitHub Packages also offers a container registry designed to support the unique needs of container images. You can use GitHub Container Registry to seamlessly host and manage Docker container images in your GitHub organization or personal user account. GitHub Container Registry allows you to configure who can manage and access packages using fine-grained permissions. You can use images from public and private registries in job and service containers.
+
+In GitHub Actions, job and service containers allow you to containerize your continuous integration environment and make databases, caches, or other services available to your tests.
With the container registry, you can:
diff --git a/github/github-actions-packages/index.yml b/github/github-actions-packages/index.yml
index 4fa129a7..db313ba9 100644
--- a/github/github-actions-packages/index.yml
+++ b/github/github-actions-packages/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.github-actions-packages
metadata:
title: Leverage GitHub Actions to publish to GitHub Packages
description: Publish automatically and secure your code libraries or Docker images with GitHub Packages.
- ms.date: 05/25/2022
+ ms.date: 08/25/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-administration/1-introduction.yml b/github/github-introduction-administration/1-introduction.yml
index a2fc46c9..39bed2d5 100644
--- a/github/github-introduction-administration/1-introduction.yml
+++ b/github/github-introduction-administration/1-introduction.yml
@@ -4,7 +4,7 @@ title: Introduction
metadata:
title: Introduction
description: An introduction to the topics you'll learn about in this module.
- ms.date: 8/23/2021
+ ms.date: 2/16/2023
author: lucie-docs
ms.author: lucielenaour
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-administration/2-what-is-github-administration.yml b/github/github-introduction-administration/2-what-is-github-administration.yml
index 9c542054..6e74f16e 100644
--- a/github/github-introduction-administration/2-what-is-github-administration.yml
+++ b/github/github-introduction-administration/2-what-is-github-administration.yml
@@ -4,7 +4,7 @@ title: What is GitHub administration?
metadata:
title: What is GitHub administration?
description: Overview of common GitHub administration tasks and hierarchical levels.
- ms.date: 8/23/2021
+ ms.date: 2/16/2023
author: lucie-docs
ms.author: lucielenaour
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-administration/3-how-github-authentication-works.yml b/github/github-introduction-administration/3-how-github-authentication-works.yml
index f561f277..2237c288 100644
--- a/github/github-introduction-administration/3-how-github-authentication-works.yml
+++ b/github/github-introduction-administration/3-how-github-authentication-works.yml
@@ -4,7 +4,7 @@ title: How does GitHub authentication work?
metadata:
title: How does GitHub authentication work?
description: Discover the ways in which administrators can configure GitHub authentication.
- ms.date: 8/23/2021
+ ms.date: 2/16/2023
author: lucie-docs
ms.author: lucielenaour
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-administration/4-how-github-organization-permission-works.yml b/github/github-introduction-administration/4-how-github-organization-permission-works.yml
index 2eac8ad4..65ddca09 100644
--- a/github/github-introduction-administration/4-how-github-organization-permission-works.yml
+++ b/github/github-introduction-administration/4-how-github-organization-permission-works.yml
@@ -4,7 +4,7 @@ title: How does GitHub organization and permissions work?
metadata:
title: How does GitHub organization and permissions work?
description: Deep dive into the hierarchical structure of GitHub's permission levels.
- ms.date: 8/23/2021
+ ms.date: 2/16/2023
author: lucie-docs
ms.author: lucielenaour
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-administration/5-knowledge-check.yml b/github/github-introduction-administration/5-knowledge-check.yml
index 86d61a7f..87e5cd51 100644
--- a/github/github-introduction-administration/5-knowledge-check.yml
+++ b/github/github-introduction-administration/5-knowledge-check.yml
@@ -4,7 +4,7 @@ title: Knowledge check
metadata:
title: Check your knowledge
description: Review what you've learned.
- ms.date: 8/23/2021
+ ms.date: 2/16/2023
author: lucie-docs
ms.author: lucielenaour
ms.topic: interactive-tutorial
@@ -13,45 +13,45 @@ durationInMinutes: 3
quiz:
title: Check your knowledge
questions:
- - content: "You want to grant a user the permissions required to add and remove organization members to a team. Which permission would you need to grant that user?"
+ - content: "You want to grant a user the permissions required to add and remove organization members to and from a team. Which permission would you need to grant that user?"
choices:
- content: "The admin permission on a repository"
isCorrect: false
- explanation: "The admin permission on a repository will only allow you to perform full administration-related tasks on a specific repository; it will not affect membership on a team."
+ explanation: "Incorrect. The admin permission on a repository only allows you to perform full administration-related tasks on a specific repository; it doesn't affect membership on a team."
- content: "The maintain permission on a repository"
isCorrect: false
- explanation: "The maintain permission on a repository will only allow you to perform limited administration-related tasks on a specific repository; it will not affect membership on a team."
+ explanation: "Incorrect. The maintain permission on a repository only allows you to perform limited administration-related tasks on a specific repository; it doesn't affect membership on a team."
- content: "Organization billing manager"
isCorrect: false
- explanation: "The organization billing manager permission only allows the user to handle billing related tasks; it will not affect membership on a team."
+ explanation: "Incorrect. The organization billing manager permission only allows the user to handle billing related tasks; it doesn't affect membership on a team."
- content: "Team maintainer"
isCorrect: true
- explanation: "As a team maintainer, the user will be able to add and remove organization members to a team."
- - content: "As an organization owner, you want to ensure that everyone who is signed in to your corporate network can access the GitHub website without requiring a second sign-in. Which technology will you enable to accomplish this?"
+ explanation: "Correct! As a team maintainer, the user can add and remove organization members to and from a team."
+ - content: "As an organization owner, you want to ensure that everyone who is signed in to your corporate network can access the GitHub website without requiring a second sign-in. Which technology would you enable to accomplish this?"
choices:
- - content: "Single Sign-On"
+ - content: "Single sign-on"
isCorrect: true
- explanation: "Single Sign-On is the right technology to allow network users to access the GitHub website without additional sign-ins."
+ explanation: "Correct! Single sign-on is the right technology to allow network users to access the GitHub website without extra sign-ins."
- content: "Two-factor authentication"
isCorrect: false
- explanation: "Two-factor authentication would require each user to sign in using a second means of identifying themselves, like using an authenticator app on their phones. It would not be used in this scenario."
- - content: "SSH Keys"
- isCorrect: false
- explanation: "Personal Access Tokens provide access for the git client or web API by using a cryptographic key. You do not use them to access the GitHub website."
+ explanation: "Incorrect. Two-factor authentication requires each user to sign in by using a second means of identifying themselves, like using an authenticator app on their phones."
- content: "Personal Access Tokens"
isCorrect: false
- explanation: "Personal Access Tokens provide access for the git client through a username and password. You do not use them to access the GitHub website."
- - content: "What is the appropriate repository permission level for contributors who will actively push changes to your repository?"
+ explanation: "Incorrect. Personal Access Tokens provide access for the git client or web API by using a cryptographic key. You don't use them to access the GitHub website."
+ - content: "SSH keys"
+ isCorrect: false
+ explanation: "Incorrect. SSH keys provide access for the git client through a username and password. You don't use them to access the GitHub website."
+ - content: "What's the appropriate repository permission level for contributors who need to actively push changes to your repository?"
choices:
- content: "admin"
isCorrect: false
- explanation: "The admin permission is not appropriate because provides too much access to the administration functions of the repository."
+ explanation: "Incorrect. The admin permission isn't appropriate because it provides too much access to the administration functions of the repository."
- content: "write"
isCorrect: true
- explanation: "The write permission is the appropriate permission level."
+ explanation: "Correct! The write permission is the appropriate permission level."
- content: "triage"
isCorrect: false
- explanation: "The triage permission is not appropriate because it is intended for contributors who need to proactively manage issues and pull requests without write access."
+ explanation: "Incorrect. The triage permission is for contributors who need to proactively manage issues and pull requests without making changes."
- content: "maintain"
isCorrect: false
- explanation: "The maintain permission is not appropriate because it is intended for project managers who need to manage the repository without access to sensitive or destructive actions. It would provide too much access for other users."
+ explanation: "Incorrect. The maintain permission is for contributors who need to manage the repository without access to sensitive or destructive actions. It provides too much access for other users."
diff --git a/github/github-introduction-administration/6-summary.yml b/github/github-introduction-administration/6-summary.yml
index 3e5a6080..b02aff2a 100644
--- a/github/github-introduction-administration/6-summary.yml
+++ b/github/github-introduction-administration/6-summary.yml
@@ -4,7 +4,7 @@ title: Summary
metadata:
title: Summary
description: A recap on what you learned about GitHub administration in this module.
- ms.date: 8/23/2021
+ ms.date: 2/16/2023
author: lucie-docs
ms.author: lucielenaour
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-administration/includes/1-introduction.md b/github/github-introduction-administration/includes/1-introduction.md
index d1896540..06b0630a 100644
--- a/github/github-introduction-administration/includes/1-introduction.md
+++ b/github/github-introduction-administration/includes/1-introduction.md
@@ -1,8 +1,8 @@
-GitHub administrators work to ensure that their organization's code and content assets are protected while providing each team access to the repositories they rely on to collaborate and share their work.
+GitHub administrators work to protect their organization's code and content assets while providing each team access to the repositories they rely on to collaborate and share their work.
-Imagine that your CIO asks you for an adoption plan to help the entire company benefit from GitHub. You want to ensure every group has adequate access to the right repositories and that there is a sustainable way to provide adequate permissions to the appropriate software development and content teams. You will need to think through the kinds of tasks that administrators need to perform and assign them the right level of access. But first, you really need to understand what options are available to you from GitHub.
+Imagine that your CIO asks you for an adoption plan to help the entire company benefit from GitHub. You want to ensure every group has adequate access to the right repositories and that there's a sustainable way to provide adequate permissions to the appropriate software development and content teams. You'll need to think through the kinds of tasks that administrators need to perform and assign them the right level of access. But first, you really need to understand what options are available to you from GitHub.
-In this module, you will learn about:
+In this module, you'll learn about:
- GitHub administrative tasks and their purpose at each hierarchical level.
- The various ways that administrators can configure authentication so that users can access GitHub via the web browser and the git client.
@@ -10,14 +10,10 @@ In this module, you will learn about:
## Learning objectives
-By the end of this module, you will be able to:
+By the end of this module, you'll be able to:
- Summarize the organizational structures and permission levels that GitHub administrators can use to organize members to control access and security.
- Identify the various technologies that enable a secure authentication strategy, allowing administrators to centrally manage repository access.
-- Describe the technologies required to centrally manage teams and members using existing directory information services and how GitHub can itself be used as an identity provider for authentication and authorization.
+- Describe the technologies required to centrally manage teams and members using existing directory information services and how you can use GitHub itself as an identity provider for authentication and authorization.
-## Prerequisites
-
-- Familiarity with GitHub, repositories, and the basics of managing individual accounts
-- Familiarity with personal and organizational authentication technologies and processes
diff --git a/github/github-introduction-administration/includes/2-what-is-github-administration.md b/github/github-introduction-administration/includes/2-what-is-github-administration.md
index 9f5e4c31..84562997 100644
--- a/github/github-introduction-administration/includes/2-what-is-github-administration.md
+++ b/github/github-introduction-administration/includes/2-what-is-github-administration.md
@@ -2,21 +2,23 @@ As a GitHub administrator, your goal is to keep everything working smoothly for
## Administration at team level
-:::image type="content" source="../media/teams.png" alt-text="Screenshot of organization screen with Teams tab highlighted.":::
+:::image type="content" source="../media/teams.png" alt-text="Screenshot of the organization screen with the Teams tab highlighted.":::
-In GitHub, each user is an organization member that can be added to a team. You can create teams in your organization with cascading access permissions and mentions to reflect your company or group's structure. Teams are useful for refining repository permissions on a more granular level and enabling communication and notification between team members.
+In GitHub, each user is an organization member that you can add to a team. You can create teams in your organization with cascading access permissions and mentions to reflect your company or group's structure. Teams are useful for refining repository permissions on a more granular level and enabling communication and notification between team members.
-Additionally, GitHub allows you to sync your teams with identity provider (IdP) groups such as Azure Active Directory (Azure AD). When you synchronize a GitHub team with an Azure AD, changes to the Azure AD group are automatically reflected on GitHub, reducing the need for manual updates and custom scripts. You can use an Azure AD with team synchronization to manage administrative tasks such as onboarding new members, granting new permissions for movements within an organization, and removing member access from the organization.
+Additionally, GitHub allows you to sync your teams with identity provider (IdP) groups such as Azure Active Directory (Azure AD). When you synchronize a GitHub team with Azure AD, you can replicate changes to GitHub automatically, which reduces the need for manual updates and custom scripts. You can use Azure AD with team synchronization to manage administrative tasks such as onboarding new members, granting new permissions, and removing member access to the organization.
Members of a team with *team maintainer* or repository *admin* permissions can:
-- Create a new team, as well as select or change the parent team.
+- Create a new team, and select or change the parent team.
- Delete or rename a team.
- Add or remove organization members from a team, or synchronize a GitHub team's membership with an IdP group.
-- Add or remove outside collaborators (people who are not explicitly members of your organization, such as consultants or temporary employees) from team repositories.
-- Enable or disable team discussions, where the team can plan together, update one another, or talk about any topic in discussion posts on the organization's team's page.
+- Add or remove outside collaborators (people who aren't explicitly members of your organization, such as consultants or temporary employees) from team repositories.
+- Enable or disable team discussions on the team's page.
- Change the visibility of the team within the organization.
- Manage automatic code review assignment for pull requests, utilizing GitHub's review assignment routing algorithm.
+- Schedule reminders.
+- Set the team profile picture.
### Best practices for team-level administration
@@ -24,7 +26,7 @@ Creating teams in your organization enables greater flexibility for collaboratio
- Create nested teams to reflect your group or company's hierarchy within your GitHub organization.
- Create teams based on interests or specific technology (JavaScript, data science, etc.) to help streamline PR review processes. Individuals can choose to join these teams according to their interests or skills.
-- Enable team synchronization between your identity provider (IdP) and GitHub to allow organization owners and team maintainers to connect teams in your organization with IdP groups. When you synchronize a GitHub team with an IdP group, changes to the IdP group are reflected on GitHub automatically, reducing the need for manual updates and custom scripts. You can use an IdP with team synchronization to manage administrative tasks such as onboarding new members, granting new permissions for movements within an organization, and removing member access to the organization.
+- Enable team synchronization between your identity provider (IdP) and GitHub to allow organization owners and team maintainers to connect teams in your organization with IdP groups. When you synchronize a GitHub team with an IdP group, you can replicate changes to GitHub automatically, reducing the need for manual updates and custom scripts. You can use an IdP with team synchronization to manage administrative tasks such as onboarding new members, granting new permissions, and removing member access to the organization.
## Administration at organization level
@@ -32,9 +34,9 @@ In GitHub, organizations are shared spaces enabling users to collaborate across
Members of an organization with the *owner* permission can perform a wide range of activities at the organization level including:
-- Invite users to join the organization, as well as remove members from the organization.
+- Invite users to join the organization and remove members from the organization.
- Organize users into a team, and grant "team maintainer" permissions to organization members.
-- Add or remove outside collaborators (people who are not explicitly members of your organization, such as consultants or temporary employees) to organizational repositories.
+- Add or remove outside collaborators (people who aren't explicitly members of your organization, such as consultants or temporary employees) to organizational repositories.
- Grant repository permission levels to members, and set the base (default) permission level for a given repository.
- Set up organization security.
- Set up billing or assign a billing manager for the organization.
@@ -43,14 +45,12 @@ Members of an organization with the *owner* permission can perform a wide range
We recommend setting up only one organization for your users and repositories. If specific constraints in your company require you to create multiple organizations, be aware that:
-- It is not possible to duplicate an organization or share configurations between two organizations. This means that you must set up everything from scratch every time you create an organization, which increases the risk of errors in your settings.
+- It isn't possible to duplicate an organization or share configurations between two organizations. This means that you must set up everything from scratch every time you create an organization, which increases the risk of errors in your settings.
- Depending on your software providers' policies, you might incur extra costs if you need to install some applications in multiple organizations.
- Managing multiple organizations is generally more difficult!
## Administration at enterprise level
-:::image type="content" source="../media/avocado-corp.png" alt-text="Screenshot of enterprise screen.":::
-
Enterprise accounts include GitHub Enterprise Cloud and Enterprise Server instances and enable owners to centrally manage policy and billing for multiple organizations.
At the enterprise level, members of an enterprise with the *owner* permissions can:
@@ -64,6 +64,5 @@ At the enterprise level, members of an enterprise with the *owner* permissions c
## Learn more
-This link provides more information about the topics covered in this module:
+Read more about [nested teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams#nested-teams)in GitHub Docs.
-[GitHub documentation on nested teams](https://docs.github.com/organizations/organizing-members-into-teams/about-teams#nested-teams)
diff --git a/github/github-introduction-administration/includes/3-how-github-authentication-works.md b/github/github-introduction-administration/includes/3-how-github-authentication-works.md
index 38325c29..47f9e329 100644
--- a/github/github-introduction-administration/includes/3-how-github-authentication-works.md
+++ b/github/github-introduction-administration/includes/3-how-github-authentication-works.md
@@ -1,4 +1,4 @@
-In the previous unit, you learned about typical administration tasks at the team, organization, and enterprise level. In this unit, you will deep dive into one of the most common administrative tasks performed by organization owners: setting up and controlling users' authentication to GitHub.
+In the previous unit, you learned about typical administration tasks at the team, organization, and enterprise level. In this unit, you'll deep dive into one of the most common administrative tasks performed by organization owners: setting up and controlling users' authentication to GitHub.
## GitHub's authentication options
@@ -10,31 +10,31 @@ Administrators can allow users to continue using the default username and passwo
### Personal access tokens
-:::image type="content" source="../media/personal-access-token.png" alt-text="Screenshot of personal access token screen.":::
+:::image type="content" source="../media/personal-access-token.png" alt-text="Screenshot of the personal access token screen.":::
-Personal access tokens (PATs) are an alternative to using passwords for authentication to GitHub when using the GitHub API or the command line. Users generate a token via the GitHub's settings option, and tie the token permissions to a repository or organization. When users interact with GitHub using the git command-line tool, they can enter the token information when they're asked for their username and password.
+Personal access tokens (PATs) are an alternative to using passwords for authentication to GitHub when using the GitHub API or the command line. Users generate a token via the GitHub's settings option, and tie the token permissions to a repository or organization. When users interact with GitHub by using the git command-line tool, they can enter the token information when they're asked for their username and password.
### SSH keys
As an alternative to using personal access tokens, users can connect and authenticate to remote servers and services via SSH with the help of SSH keys. SSH keys eliminate the need for users to supply their username and personal access token for every interaction.
-When setting up SSH, users generate an SSH key, add it to the ssh-agent and then add the key to their GitHub account. Adding the SSH key to the ssh-agent ensures that the SSH key has an extra layer of security through the use of a passphrase. Users can configure their local copy of git to automatically supply the passphrase, or they can supply it manually each time they use the git command-line tool to interact with GitHub.
+When setting up SSH, users generate an SSH key, add it to the ssh-agent and then add the key to their GitHub account. Adding the SSH key to the ssh-agent ensures that the SSH key has a passphrase as an extra layer of security. Users can configure their local copy of git to automatically supply the passphrase, or they can supply it manually each time they use the git command-line tool to interact with GitHub.
-SSH keys can even be authorized for use with a repository owned by an organization that uses SAML single sign-on. If the organization provides SSH certificates, users can also use it to access the organization's repositories without adding the certificate to their GitHub account.
+You can even use SSH keys with a repository owned by an organization that uses SAML single sign-on. If the organization provides SSH certificates, users can also use it to access the organization's repositories without adding the certificate to their GitHub account.
### Deploy keys
-Deploy keys are another type of SSH key in GitHub that grant a user access to a single repository. GitHub attaches the public part of the key directly to the repository instead of a personal user account, and the private part of the key remains on the user's server. Deploy keys are read-only by default, but you can give them write access when adding them to a repository.
+Deploy keys are another type of SSH key in GitHub that grants a user access to a single repository. GitHub attaches the public part of the key directly to the repository instead of a personal user account, and the private part of the key remains on the user's server. Deploy keys are read-only by default, but you can give them write access when adding them to a repository.
## GitHub's added security options
-GitHub also offers the following additional security options.
+GitHub also offers the following extra security options.
-### Multi-factor authentication
+### Two-factor authentication
-:::image type="content" source="../media/2-factor-authentication.png" alt-text="Screenshot of two-factor authentication screen.":::
+:::image type="content" source="../media/2-factor-authentication.png" alt-text="Screenshot of the two-factor authentication screen.":::
-Multi-factor authentication (MFA), also known as two-factor authentication (2FA), is an extra layer of security used when logging into websites or apps. With 2FA, users have to log in with their username and password and provide another form of authentication that only they have access to.
+Two-factor authentication (2FA), sometimes known as multifactor authentication (MFA), is an extra layer of security used when logging into websites or apps. With 2FA, users have to sign in with their username and password and provide another form of authentication that only they have access to.
For GitHub, the second form of authentication is a code generated by an application on a user's mobile device or sent as a text message (SMS). After a user enables 2FA, GitHub generates an authentication code anytime someone attempts to sign into their GitHub account. Users can only sign into their account if they know their password and have access to the authentication code on their phone.
@@ -62,7 +62,7 @@ GitHub offers limited support for all identity providers that implement the SAML
### LDAP
-Lightweight directory access protocol (LDAP) lets you authenticate GitHub Enterprise Server against your existing accounts and centrally manage repository access. LDAP is a popular application protocol for accessing and maintaining directory information services, and is one of the most common protocols used to integrate third-party software with large company user directories.
+Lightweight directory access protocol (LDAP) is a popular application protocol for accessing and maintaining directory information services. LDAP lets you authenticate GitHub Enterprise Server against your existing accounts and centrally manage repository access. It's one of the most common protocols used to integrate third-party software with large company user directories.
GitHub Enterprise Server integrates with popular LDAP services like:
diff --git a/github/github-introduction-administration/includes/4-how-github-organization-permission-works.md b/github/github-introduction-administration/includes/4-how-github-organization-permission-works.md
index e5ba7b17..47cf6e21 100644
--- a/github/github-introduction-administration/includes/4-how-github-organization-permission-works.md
+++ b/github/github-introduction-administration/includes/4-how-github-organization-permission-works.md
@@ -7,13 +7,13 @@ In the previous unit, you explored the different ways that users can authenticat
## Repository permission levels
-As an organization member, each user is assigned a permission for a given repository. There are five repository-level permissions:
+You can customize access to a given repository by assigning permissions. There are five repository-level permissions:
-- **Read** - Recommended for non-code contributors who want to view or discuss your project. This is good for anyone that needs to view the content within the repository but doesn't need to actually make contributions or changes.
-- **Triage** - Recommended for contributors who need to proactively manage issues and pull requests without write access. This could be good for some project managers who manage tracking issues but won't make any changes.
-- **Write** - Recommended for contributors who actively push to your project. This is the standard permission for most developers.
-- **Maintain** - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions
-- **Admin** - Recommended for people who need full access to the project, including sensitive and destructive actions like managing security or deleting a repository. These are repository owners and administrators.
+- **Read** - Recommended for non-code contributors who want to view or discuss your project. This level is good for anyone that needs to view the content within the repository but doesn't need to actually make contributions or changes.
+- **Triage** - Recommended for contributors who need to proactively manage issues and pull requests without write access. This level could be good for some project managers who manage tracking issues but don't make any changes.
+- **Write** - Recommended for contributors who actively push to your project. Write is the standard permission for most developers.
+- **Maintain** - Recommended for project managers who need to manage the repository without access to sensitive or destructive actions.
+- **Admin** - Recommended for people who need full access to the project, including sensitive and destructive actions like managing security or deleting a repository. These people are repository owners and administrators.
You can give organization members, outside collaborators, and teams different levels of access to repositories owned by an organization. Each permission level progressively increases access to a repository's content and settings. Choose the level that best fits each person or team's role in your project without giving more access to the project than necessary.
@@ -23,47 +23,47 @@ Teams provide an easy way to assign repository permissions to several related us
There are two levels of permissions at the team level:
-| **Permission level** | **Description** |
-|:--------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Member | Team members have the same set of abilities as organization members |
-| Maintainer | Team maintainers can do everything team members can, as well as:
- Change the team's name, description, and visibility
- Request that the team change parent and child teams
- Edit and delete team discussions
- Add and remove organization members from the team
- Promote team members to also have the team maintainer permission
- Remove the team's access to repositories
- Manage code review assignment for the team
- Manage scheduled reminders for pull requests |
+| **Permission level** | **Description** |
+|:----------------------|:----------------|
+| Member | Team members have the same set of abilities as organization members |
+| Maintainer | Team maintainers can do everything team members can, plus:
- Change the team's name, description, and visibility
- Request that the team change parent and child teams
- Set the team profile picture
- Edit and delete team discussions
- Add and remove organization members from the team
- Promote team members to also have the team maintainer permission
- Remove the team's access to repositories
- Manage code review assignment for the team
- Manage scheduled reminders for pull requests |
An organization owner can also promote any member of the organization to be a maintainer for a team.
To audit access to a repository that you administer, you can view a combined list of teams and users with access to your repository in your settings:
-:::image type="content" source="../media/audit-access.png" alt-text="Screenshot of manage access screen.":::
+:::image type="content" source="../media/manage-access-overview.png" alt-text="Screenshot of the manage access screen.":::
## Organization permission levels
There are three levels of permissions at the organizational level:
-| **Permission level** | **Description** |
-|:--------------------|:-------------------------------------------------------------------------------------------------------------------------------------|
-| Owner | Organization owners can do everything organization members can, and can add or remove other users to and from the organization |
-| Member | Organization members can create and manage organization repositories and teams |
-| Billing manager | Organization billing managers can only view and edit billing information |
+| **Permission level** | **Description** |
+|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------|
+| Owner | Organization owners can do everything organization members can, and can add or remove other users to and from the organization |
+| Member | Organization members can create and manage organization repositories and teams |
+| Billing manager | Organization billing managers can only view and edit billing information |
-In addition to these 3 levels, you can also set default permissions for all members of your organization:
+In addition to these three levels, you can also set default permissions for all members of your organization:
-:::image type="content" source="../media/org-base-permissions.png" alt-text="Screenshot of member privileges screen with base permissions dropdown displayed.":::
+:::image type="content" source="../media/org-base-permissions.png" alt-text="Screenshot of the member privileges screen with the base permissions dropdown displayed.":::
-For improved management and security, you might also consider giving default read permissions to all members of your organization and adjusting their access to repositories on a case-by-case basis. On the other hand, if you have a relatively small organization (with a low number of users and/or low number of repositories) and trust everyone with pushing changes to any repository, you might want to give all members of your organization write permissions by default.
+For improved management and security, you might also consider giving default read permissions to all members of your organization and adjusting their access to repositories on a case-by-case basis. If you have a relatively small organization with a low number of users, a low number of repositories, or a combination of the two, this level of restriction might be unnecessary. If you trust everyone with pushing changes to any repository, you might prefer to give all members write permissions by default.
## Enterprise permission levels
-Recall from earlier that enterprise accounts are collections of organizations. By extension, each individual user account that is a member of an organization is also a member of the enterprise, and various settings related to authentication can be controlled from this higher level.
+Recall from earlier that enterprise accounts are collections of organizations. By extension, each individual user account that is a member of an organization is also a member of the enterprise, and you can control various settings related to authentication from this higher level.
There are three levels of permission at the enterprise level:
-| Permission level | Description |
-|:----------------|:-----------------------------------------------------------------------------------------------------------------------------------|
-| Owner | Enterprise owners have complete control over the enterprise and can take every action, including managing administrators, adding and removing organizations to and from the enterprise, managing enterprise settings, enforcing policies across organizations and managing billing settings |
-| Member | Enterprise members have the same set of abilities as organization members |
-| Billing manager | Enterprise billing managers can only view and edit your enterprise's billing information and add or remove other billing managers |
+| **Permission level** | **Description** |
+|:----------------------|:-----------------------------------------------------------------------------------------------------------------------------------|
+| Owner | Enterprise owners have complete control over the enterprise and can take every action, including:
- Managing administrators
- Adding and removing organizations to and from the enterprise
- Managing enterprise settings
- Enforcing policies across organizations
- Managing billing settings |
+| Member | Enterprise members have the same set of abilities as organization members |
+| Billing manager | Enterprise billing managers can only view and edit your enterprise's billing information and add or remove other billing managers |
-In addition to these 3 levels, you can also set a policy of default repository permissions across all your organizations:
+In addition to these three levels, you can also set a policy of default repository permissions across all your organizations:
-:::image type="content" source="../media/enterprise-base-permissions.png" alt-text="Screenshot of policies screen with default permissions dropdown displayed.":::
+:::image type="content" source="../media/enterprise-base-permissions.png" alt-text="Screenshot of the policies screen with the default permissions dropdown displayed.":::
-For improved management and security, you might want to give default read permissions to all members of your enterprise and adjust their access to repositories on a case-by-case basis. On the other hand, if your enterprise has a single, relatively small organization (with a low number of users and/or low number of repositories) and you trust everyone with pushing changes to any repository, you might want to give all members of your enterprise write permissions by default.
+For improved management and security, you can give default read permissions to all members of your enterprise and adjust their access to repositories on a case-by-case basis. In a smaller enterprise, such as one with a single, relatively small organization, you might prefer to trust all members with write permissions by default.
diff --git a/github/github-introduction-administration/includes/5-summary.md b/github/github-introduction-administration/includes/5-summary.md
index df04d615..b7d1644d 100644
--- a/github/github-introduction-administration/includes/5-summary.md
+++ b/github/github-introduction-administration/includes/5-summary.md
@@ -1,6 +1,8 @@
-The goal of this module was to help you develop a mental model of the roles and responsibilities of users who perform GitHub administrative tasks for companies. Whether it is setting up authentication schemes and enforcing organization or enterprise-wide policies, or designing cascading structures that represent the natural groupings within the company for the purpose of restricting access to appropriate repositories, GitHub supplies administrators with the tools they need to flexibly control and protect their company's GitHub usage.
+The goal of this module was to help you develop a mental model of the roles and responsibilities of users who perform GitHub administrative tasks for companies.
-Hierarchical levels like teams, organizations, and enterprises enable ways of setting up and controlling authentication and other security measures. Permission levels allow for fine-grained control of specific tasks. Repository permissions can be applied to individual users or teams of users, and these permissions cascade down to child teams.
+GitHub supplies administrators with the tools they can use flexibly to control and protect their company's GitHub usage. Administrators can set up authentication schemes and enforce organization-wide or enterprise-wide policies, and design cascading permission structures that represent the natural groupings within the company.
+
+Hierarchical levels like teams, organizations, and enterprises enable ways of setting up and controlling authentication and other security measures. Permission levels allow for fine-grained control of specific tasks. Repository permissions apply to individual users or teams of users, and cascade to child teams.
Without these types of administrative controls, it would be impossible to adequately secure a company's GitHub implementation.
@@ -10,19 +12,19 @@ GitHub administrators perform vital tasks that ensure the security and viability
Here are some links to more information on the topics we discussed in this module:
-- [Organizations and teams](https://docs.github.com/free-pro-team@latest/github/setting-up-and-managing-organizations-and-teams?azure-portal=true)
-- [Managing team synchronization for your organization](https://docs.github.com/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization)
-- [Creating a personal access token](https://docs.github.com/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)
-- [Generating a new SSH key and adding it to the ssh-agent](https://docs.github.com/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent)
-- [Deploy keys](https://docs.github.com/developers/overview/managing-deploy-keys#deploy-keys)
-- [Requiring two-factor authentication in your organization](https://docs.github.com/organizations/keeping-your-organization-secure/requiring-two-factor-authentication-in-your-organization)
-- [Requiring two-factor authentication for organizations in your enterprise account](https://docs.github.com/en/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#requiring-two-factor-authentication-for-organizations-in-your-enterprise)
-- [About identity and access management with SAML single sign-on](https://docs.github.com/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on)
-- [Using LDAP](https://docs.github.com/enterprise-server@3.1/admin/authentication/authenticating-users-for-your-github-enterprise-server-instance/using-ldap)
-- [Repository permission levels for an organization](https://docs.github.com/free-pro-team@latest/github/setting-up-and-managing-organizations-and-teams/repository-permission-levels-for-an-organization#repository-access-for-each-permission-level?azure-portal=true)
-- [Managing teams and people with access to your repository](https://docs.github.com/github/administering-a-repository/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository)
-- [Giving "team maintainer" permissions to an organization member](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/giving-team-maintainer-permissions-to-an-organization-member#promoting-an-organization-member-to-team-maintainer%20)
-- [Permission levels for an organization](https://docs.github.com/free-pro-team@latest/github/setting-up-and-managing-organizations-and-teams/permission-levels-for-an-organization#permission-levels-for-an-organization?azure-portal=true)
-- [Setting base permissions for an organization](https://docs.github.com/organizations/managing-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization)
-- [Roles in an enterprise](https://docs.github.com/github/setting-up-and-managing-your-enterprise/managing-users-in-your-enterprise/roles-in-an-enterprise)
-- [Enforcing a policy on default repository permissions](https://docs.github.com/github/setting-up-and-managing-your-enterprise/setting-policies-for-organizations-in-your-enterprise-account/enforcing-repository-management-policies-in-your-enterprise-account#enforcing-a-policy-on-default-repository-permissions)
+- [Organizations](https://docs.github.com/organizations?azure-portal=true)
+- [Managing team synchronization for your organization](https://docs.github.com/organizations/managing-saml-single-sign-on-for-your-organization/managing-team-synchronization-for-your-organization?azure-portal=true)
+- [Creating a personal access token](https://docs.github.com/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token)
+- [Generating a new SSH key and adding it to the ssh-agent](https://docs.github.com/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent?azure-portal=true)
+- [Deploy keys](https://docs.github.com/authentication/connecting-to-github-with-ssh/managing-deploy-keys#deploy-keys)
+- [Requiring two-factor authentication in your organization](https://docs.github.com/organizations/keeping-your-organization-secure/managing-two-factor-authentication-for-your-organization/requiring-two-factor-authentication-in-your-organization?azure-portal=true)
+- [Requiring two-factor authentication for organizations in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-policies-for-security-settings-in-your-enterprise#requiring-two-factor-authentication-for-organizations-in-your-enterprise?azure-portal=true)
+- [About identity and access management with SAML single sign-on](https://docs.github.com/enterprise-cloud@latest/organizations/managing-saml-single-sign-on-for-your-organization/about-identity-and-access-management-with-saml-single-sign-on?azure-portal=true)
+- [Using LDAP](https://docs.github.com/enterprise-server@3.8/admin/identity-and-access-management/using-ldap-for-enterprise-iam/using-ldap?azure-portal=true)
+- [Repository roles for an organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/repository-roles-for-an-organization#repository-access-for-each-permission-level?azure-portal=true)
+- [Managing teams and people with access to your repository](https://docs.github.com/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/managing-teams-and-people-with-access-to-your-repository?azure-portal=true)
+- [Assigning the team maintainer role to a team member](https://docs.github.com/organizations/organizing-members-into-teams/assigning-the-team-maintainer-role-to-a-team-member?azure-portal=true)
+- [Roles in an organization](https://docs.github.com/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#permission-levels-for-an-organization?azure-portal=true)
+- [Setting base permissions for an organization](https://docs.github.com/organizations/managing-user-access-to-your-organizations-repositories/setting-base-permissions-for-an-organization?azure-portal=true)
+- [Roles in an enterprise](https://docs.github.com/enterprise-cloud@latest/admin/user-management/managing-users-in-your-enterprise/roles-in-an-enterprise?azure-portal=true)
+- [Enforcing repository management policies in your enterprise](https://docs.github.com/enterprise-cloud@latest/admin/policies/enforcing-policies-for-your-enterprise/enforcing-repository-management-policies-in-your-enterprise#enforcing-a-policy-on-default-repository-permissions?azure-portal=true)
diff --git a/github/github-introduction-administration/index.yml b/github/github-introduction-administration/index.yml
index b84178de..1ad4f9e7 100644
--- a/github/github-introduction-administration/index.yml
+++ b/github/github-introduction-administration/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.github-introduction-administration
metadata:
title: Introduction to GitHub administration
description: Understand the security and control measures available to GitHub administrators within an organization or enterprise.
- ms.date: 8/23/2021
+ ms.date: 2/16/2023
author: lucie-docs
ms.author: rotabor
ms.topic: interactive-tutorial
@@ -11,15 +11,16 @@ metadata:
title: Introduction to GitHub administration
summary: Understand the security and control measures available to GitHub administrators within an organization or enterprise.
abstract: |
- By the end of this module, you will be able to:
+ By the end of this module, you'll be able to:
- Summarize the organizational structures and permission levels that GitHub administrators can use to organize members in order to control access and security.
- Identify the various technologies that enable a secure authentication strategy allowing administrators to centrally manage repository access.
- - Describe the technologies required to centrally manage teams and members using existing directory information services and how GitHub can itself be used as an identity provider for authentication and authorization.
+ - Describe the technologies required to centrally manage teams and members using existing directory information services.
+ - Describe how you can use GitHub itself as an identity provider for authentication and authorization.
prerequisites: |
- Familiarity with GitHub, repositories, and the basics of managing individual accounts is required
- Familiarity with personal and organizational authentication technologies and processes would be helpful
ratingEnabled: true
-iconUrl: /learn/achievements/github-introduction-administration.svg
+iconUrl: /training/achievements/github-introduction-administration.svg
levels:
- intermediate
roles:
diff --git a/github/github-introduction-administration/media/audit-access.png b/github/github-introduction-administration/media/audit-access.png
deleted file mode 100644
index 4970cebc..00000000
Binary files a/github/github-introduction-administration/media/audit-access.png and /dev/null differ
diff --git a/github/github-introduction-administration/media/avocado-corp.png b/github/github-introduction-administration/media/avocado-corp.png
deleted file mode 100644
index 11f6c5cf..00000000
Binary files a/github/github-introduction-administration/media/avocado-corp.png and /dev/null differ
diff --git a/github/github-introduction-administration/media/manage-access-overview.png b/github/github-introduction-administration/media/manage-access-overview.png
new file mode 100644
index 00000000..93fd88b5
Binary files /dev/null and b/github/github-introduction-administration/media/manage-access-overview.png differ
diff --git a/github/github-introduction-administration/media/teams.png b/github/github-introduction-administration/media/teams.png
index a738903f..479c1275 100644
Binary files a/github/github-introduction-administration/media/teams.png and b/github/github-introduction-administration/media/teams.png differ
diff --git a/github/github-introduction-products/1-introduction.yml b/github/github-introduction-products/1-introduction.yml
index 033390a6..43497b08 100644
--- a/github/github-introduction-products/1-introduction.yml
+++ b/github/github-introduction-products/1-introduction.yml
@@ -4,7 +4,7 @@ title: Introduction
metadata:
title: Introduction
description: Quick overview of what you'll learn in this module.
- ms.date: 8/23/2021
+ ms.date: 02/09/2023
author: davenowell
ms.author: dapolite
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-products/2-what-are-github-products.yml b/github/github-introduction-products/2-what-are-github-products.yml
index f86a26be..cdc4df3e 100644
--- a/github/github-introduction-products/2-what-are-github-products.yml
+++ b/github/github-introduction-products/2-what-are-github-products.yml
@@ -4,7 +4,7 @@ title: What are GitHub's products?
metadata:
title: What are GitHub's products?
description: An overview of each GitHub product including a look at the pricing options of each plan and paid features.
- ms.date: 8/23/2021
+ ms.date: 02/09/2023
author: davenowell
ms.author: dapolite
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-products/3-how-licensing-works.yml b/github/github-introduction-products/3-how-licensing-works.yml
index 10100f06..ff0ee18c 100644
--- a/github/github-introduction-products/3-how-licensing-works.yml
+++ b/github/github-introduction-products/3-how-licensing-works.yml
@@ -4,7 +4,7 @@ title: How does licensing work for GitHub features?
metadata:
title: How does licensing work for GitHub features?
description: Understand how GitHub charges for various per-use and metered services.
- ms.date: 8/23/2021
+ ms.date: 02/09/2023
author: davenowell
ms.author: dapolite
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-products/4-knowledge-check.yml b/github/github-introduction-products/4-knowledge-check.yml
index ec9c3334..8bb70f5f 100644
--- a/github/github-introduction-products/4-knowledge-check.yml
+++ b/github/github-introduction-products/4-knowledge-check.yml
@@ -4,11 +4,11 @@ title: Knowledge check
metadata:
title: Check your knowledge
description: Review what you've learned.
- ms.date: 8/23/2021
+ ms.date: 02/09/2023
author: davenowell
ms.author: dapolite
ms.topic: interactive-tutorial
- ms.prod: learning-languages
+ ms.prod: learning-azure
durationInMinutes: 3
quiz:
title: Check your knowledge
@@ -17,38 +17,38 @@ quiz:
choices:
- content: "macOS"
isCorrect: true
- explanation: "macOS is the most expensive platform to use with GitHub Actions."
+ explanation: "Correct! macOS is the most expensive platform to use with GitHub Actions."
- content: "Windows"
isCorrect: false
- explanation: "Windows is not the most expensive platform to use with GitHub Actions."
+ explanation: "Incorrect. Windows isn't the most expensive platform to use with GitHub Actions."
- content: "Linux"
isCorrect: false
- explanation: "Linux is the least expensive platform to use with GitHub Actions."
- - content: "When would you decide to upgrade to the GitHub Enterprise product?"
+ explanation: "Incorrect. Linux is the least expensive platform to use with GitHub Actions."
+ - content: "Why would you decide to upgrade to the GitHub Enterprise product?"
choices:
- content: "Because you want to use GitHub Actions and Codespaces."
isCorrect: false
- explanation: "You do not need to license GitHub Enterprise to use GitHub Actions or Codespaces."
+ explanation: "Incorrect. You don't need to license GitHub Enterprise to use GitHub Actions or Codespaces."
- content: "Because your VP needs to use GitHub Insights."
isCorrect: false
- explanation: "GitHub Insights is available with the GitHub One product, not the GitHub Enterprise product."
+ explanation: "Incorrect. GitHub Insights is available with the GitHub One product, not the GitHub Enterprise product."
- content: "Because you want to centrally manage users and repositories across multiple organizations."
isCorrect: true
explanation: "Correct! GitHub Enterprise allows you to collect multiple organizations together for central management."
- content: "Because you want to use the team pull request reviewers feature."
isCorrect: false
- explanation: "The team pull request reviewers feature is available at the GitHub Pro and GitHub Team product level."
+ explanation: "Incorrect. The team pull request reviewers feature is available at the GitHub Pro and GitHub Team product level."
- content: "What is the purpose of a team?"
choices:
- content: "A team allows you to manage an organization account."
isCorrect: false
- explanation: "A team does not allow you to manage an organization account."
+ explanation: "Incorrect. A team doesn't allow you to manage an organization account."
- content: "A team allows you to control permission levels for an enterprise."
isCorrect: false
- explanation: "A team does not allow you to control permission levels for an enterprise."
- - content: "A team allows a single user to log in using different accounts credentials."
+ explanation: "Incorrect. A team doesn't allow you to control permission levels for an enterprise."
+ - content: "A team allows a single user to sign in using different accounts credentials."
isCorrect: false
- explanation: "A team does not allow a single user to log in using different accounts credentials."
- - content: "A team is intended to reflect a company or group's structure, and is used to provide cascading access permissions and make it easy to notify all team members via mentions"
+ explanation: "Incorrect. A team doesn't allow a single user to sign in using different accounts credentials."
+ - content: "A team is intended to reflect a company or group's structure. It's used to provide cascading access permissions and make it easy to notify all team members via mentions"
isCorrect: true
explanation: "Correct!"
diff --git a/github/github-introduction-products/5-summary.yml b/github/github-introduction-products/5-summary.yml
index f2a77768..cb8a4c12 100644
--- a/github/github-introduction-products/5-summary.yml
+++ b/github/github-introduction-products/5-summary.yml
@@ -4,7 +4,7 @@ title: Summary
metadata:
title: Summary
description: Review what you've learned about GitHub products in this module.
- ms.date: 8/23/2021
+ ms.date: 02/09/2023
author: davenowell
ms.author: dapolite
ms.topic: interactive-tutorial
diff --git a/github/github-introduction-products/includes/1-introduction.md b/github/github-introduction-products/includes/1-introduction.md
index c91e1f9e..3ca0b47f 100644
--- a/github/github-introduction-products/includes/1-introduction.md
+++ b/github/github-introduction-products/includes/1-introduction.md
@@ -1,10 +1,10 @@
GitHub products attach features to licensing plans. Understanding the various products, features, and licensing is an important consideration when using GitHub in organizations and enterprises.
-Suppose you work at a company that needs to rethink their existing source code management strategy. They know they want to use GitHub, but they are not sure which features they need, how much it would cost, and how to get started. Your company's VP of software development wants to better understand the costs associated with GitHub and has asked you to become the subject matter expert and help to make this change in the organization.
+Suppose you work at a company that needs to rethink their existing source code management strategy. They know they want to use GitHub, but they aren't sure which features they need, how much it would cost, and how to get started. Your company's VP of software development wants to better understand the costs associated with GitHub and has asked you to become the subject matter expert and help to make this change in the organization.
-In this module, you'll discover GitHub's products and associated features. You'll learn how each product is priced, and discover how other features are licensed.
+In this module, you'll discover GitHub's products and associated features. You'll learn how each product is priced, and discover how other features are licensed.
-By the end of this module, you will be able to discuss GitHub's products, features, and licensing.
+By the end of this module, you'll be able to discuss GitHub's products, features, and licensing.
## Learning objectives
@@ -17,5 +17,5 @@ After completing this module, you'll be able to:
## Prerequisites
- Familiarity with GitHub, repositories, and the basics of managing individual accounts is required
-- A high-level familiarity with GitHub's product plans and features would be helpful, but not required
+- A high-level familiarity with GitHub's product plans and features would be helpful, but isn't required
diff --git a/github/github-introduction-products/includes/2-what-are-github-products.md b/github/github-introduction-products/includes/2-what-are-github-products.md
index 51e89607..201b86a2 100644
--- a/github/github-introduction-products/includes/2-what-are-github-products.md
+++ b/github/github-introduction-products/includes/2-what-are-github-products.md
@@ -1,4 +1,4 @@
-Here, you'll learn about available GitHub products, corresponding product features, and pricing.
+In this unit, you'll learn about available GitHub products, corresponding product features, and pricing.
## A focus on GitHub products
@@ -9,35 +9,35 @@ GitHub has several free and paid products to improve your software management pr
- GitHub Team
- GitHub Enterprise
-As you learn about these products, remember that there is a difference between products and accounts. Below is a list of the three GitHub account types:
+As you learn about these products, remember that there's a difference between products and accounts. Here's a list of the three GitHub account types:
- Personal user accounts
- Organization accounts
- Enterprise accounts
-Some account types are only available within specific products. In the following sections, you'll learn more about these products, their different features, and which account types they are compatible with. As you move through the content, make it your goal to understand these separate but related concepts so that you can decide which GitHub product is right for you.
+Some account types are available only within specific products. In the following sections, you'll learn more about these products, their different features, and which account types they're compatible with. As you move through the content, make it your goal to understand these separate but related concepts so that you can decide which GitHub product is right for you.
### GitHub Free
-This is often the product version that comes to mind when thinking of GitHub. GitHub Free provides the basics for individuals and organizations. Anyone can sign up for the free version of GitHub. Signing up for GitHub Free will give a new user a *Personal user account*. A personal user account gives you unlimited public and private repositories, and unlimited collaborators. Private repositories under GitHub Free have limited functionality, GitHub Actions minutes, and GitHub Packages storage.
+This is often the product version that comes to mind when thinking of GitHub. GitHub Free provides the basics for individuals and organizations. Anyone can sign up for the free version of GitHub. Signing up for GitHub Free will give a new user a *Personal user account*. A personal user account includes unlimited public and private repositories and unlimited collaborators. Private repositories under GitHub Free have limited functionality, GitHub Actions minutes, and GitHub Packages storage.
-Below is a breakdown of the features included with GitHub Free:
+Here's a breakdown of the features included with GitHub Free:
- Unlimited public/private repositories
- 2,000 Actions automation minutes/month (_Free for public repositories_)
-- 500MB of Packages storage (_Free for public repositories_)
-- New Issues & Projects (in limited beta)
+- 500 MB of Packages storage (_Free for public repositories_)
+- 120 core-hours Codespaces compute/month
+- 15 GB of Codespaces storage/month
+- New issues & projects (in limited beta)
- GitHub Community Support
- Dependabot alerts
- Two-factor authentication enforcement
-- 2,000 GitHub Actions minutes (_Number of free minutes for private repositories_)
-- 500 MB GitHub Packages storage (_Number of free minutes for private repositories_)
-For a more comprehensive list of features, please refer to [GitHub's pricing page](https://github.com/pricing).
+For a more comprehensive description of features and available add-ons, refer to [GitHub's pricing page](https://github.com/pricing?azure-portal=true).
#### GitHub Free for organizations
-As mentioned above, GitHub Free also includes a free version specifically for organizations. The organization version has all the features of the personal account and two extra features:
+GitHub Free also includes a free version specifically for organizations. The organization version has all the features of the personal account and two extra features:
- Team discussions
- Team access controls for managing groups
@@ -62,25 +62,27 @@ In addition, GitHub Pro increases the limits of GitHub Actions and GitHub Packag
|---|---|
| GitHub Actions minutes | 3000 |
| GitHub Packages storage | 2 GB |
+| GitHub Codespaces core-hours | 180 |
+| GitHub Codespaces storage | 20 GB |
> [!NOTE]
-> GitHub Pro doesn't show up on the pricing page, but is available as an upgrade to personal user accounts once the user is logged in. If the account already belongs to an organization, GitHub Pro will not be available, instead GitHub Team will show as an available upgrade.
+> GitHub Pro doesn't show up on the pricing page, but is available as an upgrade to personal user accounts once the user is logged in. If the account already belongs to an organization, GitHub Pro will not be available, instead GitHub Team will show as an available upgrade.
### GitHub Team
-GitHub Team is the version of GitHub Pro but for teams instead of personal accounts. GitHub Team includes all the same features as GitHub Pro and a few extra features that help with collaboration within a team:
+GitHub Team is the version of GitHub Pro for organizations instead of personal accounts. GitHub Team includes all the same features as GitHub Pro and a few extra features that help with collaboration within a team:
- Draft pull requests
-- Team pull request reviewers
+- Team pull-request reviewers
- Scheduled reminders
### GitHub Enterprise
-GitHub Enterprise can be hosted on-premise, or in the cloud using GitHub's existing infrastructure. GitHub Enterprise accounts enjoy a greater level of support and extra security, compliance, and deployment controls.
+GitHub Enterprise can be hosted on-premises (GitHub Enterprise Server) or in the cloud (GitHub Enterprise Cloud) using GitHub's existing infrastructure. GitHub Enterprise accounts enjoy a greater level of support and extra security, compliance, and deployment controls.
-You can create one or more *enterprise accounts* by signing up for the paid GitHub Enterprise product. When you create an enterprise account, you are assigned the role of *enterprise owner*. As an enterprise owner, you can add and remove organizations to and from the enterprise account. You can manage other administrators, enforce security policies across organizations, and so on.
+You can create one or more *enterprise accounts* by signing up for the paid GitHub Enterprise product. When you create an enterprise account, you're assigned the role of *enterprise owner*. As an enterprise owner, you can add and remove organizations to and from the enterprise account. You can manage other administrators, enforce security policies across organizations, and so on.
-With GitHub Enterprise (GHE), you get GitHub Enterprise Support and a greater integration with existing on-prem or cloud services. For example, you can synchronize your authentication with SAML to enable single sign-on by using your existing configurations stored in Active Directory Federation Services or Azure Active Directory. Alternatively, you can provision access to other services by using SAML or SCIM as the identity provider. You can also use GitHub Connect to share certain features and data between your GitHub Enterprise Server instance, your GitHub Enterprise Cloud organization, or enterprise account on GitHub.com.
+With GitHub Enterprise, you get GitHub Enterprise Support and a greater integration with existing on-premises or cloud services. For example, you can synchronize your authentication with SAML to enable single sign-on by using your existing configurations stored in Active Directory Federation Services or Azure Active Directory. Alternatively, you can provision access to other services by using SAML or SCIM as the identity provider. You can also use GitHub Connect to share certain features and data between your GitHub Enterprise Server instance, your GitHub Enterprise Cloud organization, or your enterprise account on GitHub.com.
In addition to the features available with GitHub Team, GitHub Enterprise includes:
@@ -93,7 +95,7 @@ In addition to the features available with GitHub Team, GitHub Enterprise includ
### GitHub Enterprise Cloud
-The hosted cloud version of GitHub enterprise includes a dramatic increase in GitHub Actions minutes and GitHub Packages storage.
+The hosted cloud version of GitHub Enterprise includes a dramatic increase in GitHub Actions minutes and GitHub Packages storage.
| Feature | Limit |
|---|---|
@@ -104,7 +106,7 @@ In addition to the increased minutes, you also get the following extra features
- Access control for GitHub Pages
- A service level agreement for 99.9% monthly uptime
-- Centralize billing options
+- Centralized billing options
## Recap
diff --git a/github/github-introduction-products/includes/3-how-licensing-works.md b/github/github-introduction-products/includes/3-how-licensing-works.md
index b81b5017..e36cba29 100644
--- a/github/github-introduction-products/includes/3-how-licensing-works.md
+++ b/github/github-introduction-products/includes/3-how-licensing-works.md
@@ -4,11 +4,11 @@ In this unit, we'll look at a few different ways that GitHub licenses and prices
## Licensing for metered products
-GitHub Actions is free for public repositories and self-hosted runners. For private repositories, each GitHub account receives a certain number of free minutes, depending on the product used with the account.
+GitHub Actions is free for public repositories and self-hosted runners. For private repositories, each GitHub account receives a certain number of free minutes, depending on the product used with the account.
-By default, your account will have a spending limit of $0, which prevents additional usage of minutes after you reach your limit. If you increase your spending limit above the default of $0, you will be billed for any minutes beyond the limits, also called overages. GitHub charges usage to the account that owns the repository where the workflow is run.
+By default, your account will have a spending limit of `$0`, which prevents additional usage of minutes after you reach your limit. If you increase your spending limit above the default of `$0`, you'll be billed for any minutes beyond the limits, also called overages. GitHub charges usage to the account that owns the repository where the workflow is run.
-Jobs that run on GitHub hosted Windows and macOS runners consume minutes at 2 and 10 times the rate that jobs on Linux runners consume. For example, using 1,000 Windows minutes would consume 2,000 of the minutes included in your account. Using 1,000 macOS minutes, would consume 10,000 minutes included in your account.
+Jobs that run on GitHub-hosted Windows and macOS runners consume minutes at 2 and 10 times the rate that jobs on Linux runners consume. For example, using 1,000 Windows minutes would consume 2,000 of the minutes included in your account. Using 1,000 macOS minutes, would consume 10,000 minutes included in your account.
The following table compares the minute multiplier for the different operating systems.
@@ -18,106 +18,100 @@ The following table compares the minute multiplier for the different operating s
| macOS | 10 |
| Windows | 2 |
-Finally, the free minutes reset each month. You cannot "roll over" unused minutes from previous months.
+Finally, the free minutes reset each month. You can't "roll over" unused minutes from previous months.
-If your account's usage surpasses these limits and you have set a spending limit above $0, you will pay per-minute usage based on the operating system used by the GitHub-hosted runner. GitHub rounds the minutes each job uses up to the nearest minute.
+If your account's usage surpasses these limits and you've set a spending limit higher than `$0`, you'll pay per-minute usage based on the operating system used by the GitHub-hosted runner. GitHub rounds the minutes each job uses up to the nearest minute.
> [!NOTE]
-> For current prices, please refer to [GitHub's pricing page](https://github.com/pricing?azure-portal=true).
+> For current prices, refer to [GitHub's pricing page](https://github.com/pricing?azure-portal=true).
### Licensing GitHub Packages
-Storage for GitHub Packages works in a similar way, except that GitHub Packages storage capacity does not reset every month.
+Storage for GitHub Packages works in a similar way, except that GitHub Packages storage capacity doesn't reset every month.
The storage used by a repository is the total storage used by GitHub Actions artifacts and GitHub Packages. Your storage cost is the total usage for all repositories owned by your account.
GitHub calculates your storage usage for each month based on hourly usage during that month. For example, if you use 3 GB of storage for 10 days of March and 12 GB for 21 days of March, your storage usage would be:
-3 GB x 10 days x (24 hours per day) = 720 GB-Hours
-12 GB x 21 days x (24 hours per day) = 6,048 GB-Hours
-720 GB-Hours + 6,048 GB-Hours = 6,768 GB-Hours
+3 GB x 10 days x (24 hours per day) = 720 GB-Hours
+12 GB x 21 days x (24 hours per day) = 6,048 GB-Hours
+720 GB-Hours + 6,048 GB-Hours = 6,768 GB-Hours
6,768 GB-Hours / (744 hours per month) = 9.0967 GB-Months
At the end of the month, GitHub rounds your storage to the nearest megabyte. Therefore, your storage usage for March would be 9.097 GB.
-If your account's usage surpasses these limits and you have set a spending limit above $0, you incur an additional fee per gigabyte of storage used per month.
+If your account's usage surpasses these limits and you've set a spending limit higher than $0, you incur an additional fee per gigabyte of storage used per month.
At the end of the month, GitHub calculates the cost of minutes and storage used over the amount included in your account.
> [!NOTE]
-> For a specific scenario that demonstrates how your bill is calculated with actual dollar amounts, see the following article in GitHub's Docs, titled ["Calculating minute and storage spending"](https://docs.github.com/free-pro-team@latest/github/setting-up-and-managing-billing-and-payments-on-github/about-billing-for-github-actions#calculating-minute-and-storage-spending?azure-portal=true).
+> For a specific scenario that demonstrates how your bill is calculated with actual dollar amounts, see [calculating minute and storage spending](https://docs.github.com/billing/managing-billing-for-github-actions/about-billing-for-github-actions#calculating-minute-and-storage-spending) in GitHub Docs.
### What are spending limits?
-By default, your account will have a spending limit of $0 for GitHub Actions usage. To enable using minutes and storage for private repositories beyond the amounts included with your account, you can increase the spending limit or allow unlimited spending.
+By default, your account will have a spending limit of $0 for GitHub Actions usage. To allow you to use minutes and storage for private repositories beyond the amounts included with your account, you can increase the spending limit or allow unlimited spending.
-If you pay for your enterprise account by invoice, you cannot manage the spending limit for your enterprise account on GitHub. If you want to allow organizations owned by your enterprise account to use GitHub Actions beyond the storage or data transfer included in their accounts, you can prepay for overages. Because overages must be prepaid, you cannot enable unlimited spending on accounts paid by invoice. Your spending limit will be 150% of the amount you prepaid.
+If you pay for your enterprise account by invoice, your account will have an unlimited default spending limit and you'll be billed for overages. You can set a specific spending limit.
If your account has outstanding unpaid charges:
-- The storage or minutes included in your account for GitHub Actions and GitHub Packages will not reset until the payment has been successfully processed.
+- The storage or minutes included in your account for GitHub Actions and GitHub Packages won't reset until the payment has been successfully processed.
- For accounts with storage or minutes remaining for the current billing period, GitHub Actions and GitHub Packages will continue to be available until any included usage has been reached.
-- For accounts that have reached the included usage for the current billing period for GitHub Actions or GitHub Packages, both GitHub Actions and GitHub Packages will be disabled to prevent any further overages. If you pay your account by invoice, you must contact our account management team to process payment and reset your usage.
+- For accounts that have reached the included usage for the current billing period for GitHub Actions or GitHub Packages, both GitHub Actions and GitHub Packages will be disabled to prevent any further overages. If you pay your account by invoice, you must contact the account management team to process payment and reset your usage.
## Codespaces billing
-As of this writing, Codespaces is beta and during this period it is free to use. When Codespaces becomes generally available, you will be billed for storage and compute usage.
+GitHub Codespaces usage is billed monthly for all organization and enterprise accounts on GitHub Team and GitHub Enterprise, which don't include any free minutes or storage.
-Compute costs are incurred only when a codespace is active. When you're using a codespace, the codespace is active. After 30 minutes of inactivity, a codespace becomes suspended automatically.
+Personal accounts include free use of GitHub Codespaces up to a fixed amount of usage every month.
-Compute usage is billed per hour, at a rate that depends on your codespace's instance type. During the beta, Codespaces offers a single, Linux instance type. At general availability, GitHub will support three Linux instance types.
+Compute costs are incurred when a codespace is active. When you're using a codespace, the codespace is active. After 30 minutes of inactivity, a codespace becomes suspended automatically.
-- Basic (2 cores, 4-GB RAM, 32 GB SSD)
-- Standard (4 cores, 8-GB RAM, 32 GB SSD)
-- Premium (8 cores, 16-GB RAM, 32 GB SSD)
+The unit of measure for compute usage is one hour, at a rate that depends on your codespace's instance type. Compute pricing may vary for additional instance types and operating systems supported in the future.
-Compute pricing may vary for additional instance types and operating systems supported in the future.
-
-Each codespace also incurs monthly storage costs until you delete the codespace. Storage costs for all instance types incur a small additional fee per month per gigabyte of storage used.
+Storage is billed for all of your existing codespaces, regardless of whether they're active or inactive, unless your storage quota is used up or you've reached your spending limit. The storage billing for a codespace ends when it's deleted.
## How can I view my usage of products and services?
-The GitHub user interface makes it easy for you to find statistics of license usage for a specific organization, across organizations, enterprise accounts, or instances. Also, you can view details about your license usage for machine accounts and peripheral services.
+The GitHub user interface makes it easy for you to find statistics of license usage for a specific organization, or across organizations, enterprise accounts, or instances. Also, you can view details about your license usage for machine accounts and peripheral services.
-Licenses for paid products are available to an organization on a per user basis. Each of these licenses is referred to as a *seat*. It is possible to set up a machine user: a GitHub account that is attached to an SSH key and used exclusively for automation. A machine user also consumes a license.
+Licenses for paid products are available to an organization on a per user basis. Each of these licenses is referred to as a *seat*. It's possible to set up a machine user: a GitHub account that's attached to an SSH key and used exclusively for automation. A machine user also consumes a license.
### Context switching for organization or enterprise owners
-Organization or enterprise owners who are responsible for multiple accounts need easy access to those accounts. The GitHub user interface enables context switch, which is the flexibility to log in to more than one account and move between the accounts.
+Organization or enterprise owners who are responsible for multiple accounts need easy access to those accounts. The GitHub user interface enables context switch, which is the flexibility to sign in to more than one account and move between the accounts.
-As an owner, you can click on your profile photo and choose the option to switch to a different account.
+As an owner, you can select your profile photo and choose the option to switch to a different account.
-:::image type="content" source="../media/multiple-accounts.png" alt-text="Screenshot of multiple accounts dropdown menu.":::
+:::image type="content" source="../media/multiple-accounts.png" alt-text="Screenshot of the dropdown menu showing multiple accounts.":::
Context switching demonstrates GitHub's capability to enable usage management across accounts.
### Manage licenses across organizations
-An Organization owner seeking to manage and monitor the number of seats licensed to their organization can click on their profile photo and then navigate to *Billing & plans*.
+An organization owner who wants to manage and monitor the number of seats licensed to their organization can select their profile photo and then navigate to **Billing and plans**.
-As it is possible to have multiple organizations, the user interface requires the organization owner to select the organization for which they would like to view licensing.
+If the owner manages multiple organizations, they'll need to select the organization they want to view.
-:::image type="content" source="../media/select-org.png" alt-text="Screenshot of settings option.":::
+:::image type="content" source="../media/select-org.png" alt-text="Screenshot of the settings option for an organization.":::
-After selecting their organization, they can view their current plan and choose to add to or remove seats from it.
+They can then view their current plan and add or remove seats.
-:::image type="content" source="../media/remove-seats.png" alt-text="Screenshot of remove seats option.":::
+:::image type="content" source="../media/remove-seats.png" alt-text="Screenshot of the add and remove seats options for an organization.":::
### Manage licenses across enterprises and instances
-Enterprise owners that manage multiple enterprises or enterprise instances can also easily view and manage licensing for one or more enterprises.
-
-After clicking on their profile photo, the enterprise owner can select *Your Enterprises* from the drop-down menu. If the enterprise owner is responsible for multiple enterprises, GitHub lists the ones available. This listing shows GitHub's ability to accommodate license management across multiple enterprises.
+Enterprise owners that manage multiple enterprises or enterprise instances can also easily view and manage licensing for one or more enterprises, by selecting **Your Enterprises** from the **Settings** dropdown menu in the owner's profile.
-In the same scenario, the enterprise owner continues by selecting an enterprise. The enterprise may have multiple licensed server instances. Next, the enterprise owner has the option to view and manage the number of seats for each of these server instances. Each of those instances has a set number of seats licensed. The owner can remove or add seats.
+GitHub Enterprise Server licenses can be viewed and managed at the server instance level.
### Monitoring consumption of metered products
-As you have learned, metered products are billed by the number of minutes or gigabytes consumed beyond the allotted, basic amount. GitHub Actions and GitHub Packages are examples of metered products. The GitHub user interface also enables you to monitor statistics for metered products.
+As you've learned, metered products are billed by the number of minutes or gigabytes consumed beyond the allotted, basic amount. GitHub Actions and GitHub Packages are examples of metered products. The GitHub user interface also enables you to monitor statistics for metered products.
-The *Billing & plans* provides an overview of your current plans, up-to-date minute usage for GitHub Actions, and storage usage for GitHub Packages.
+**Billing & plans** provides an overview of your current plans, up-to-date minute usage for GitHub Actions, and storage usage for GitHub Packages.
-In addition to viewing data in the GitHub user interface, you can also have CSV reports sent to your email.
+In addition to viewing data in the GitHub user interface, you can also have CSV reports sent to your email address.
:::image type="content" source="../media/actions.png" alt-text="Screenshot of actions usage overview.":::
@@ -125,15 +119,15 @@ In addition to viewing data in the GitHub user interface, you can also have CSV
### Set spending limits
-You can set limits that control your spending for actions and packages usage. Adjust the limit at any time and according to the growth of your operations.
+You can set limits that control your spending for actions and packages usage. Adjust the limit at any time and according to the growth of your operations.
The safety and control offered by this feature is also noteworthy. Enabled spending limits safeguard you in the event that a configuration error causes your organization to be billed. The billing is capped and the damage is kept to a minimum. This could be thought of as maximum risk.
-When misconfiguration is not the case, a spending limit simply assists you in budgeting your IT expenses.
+When misconfiguration isn't the case, a spending limit simply assists you in budgeting your IT expenses.
### Monitor Git LFS data
-The GitHub user interface enables management of Git LFS (Large File Storage) Data providing feedback on the amount of storage and bandwidth used. Every account using Git Large File Storage receives 1 GB of free storage and 1 GB a month of free bandwidth. You pay when assets are pushed to or downloaded from your account.
+The GitHub user interface enables management of Git LFS (Large File Storage) Data providing feedback on the amount of storage and bandwidth used. Every account using Git Large File Storage receives 1 GB of free storage and 1 GB a month of free bandwidth. If that's not enough, you can purchase extra. You pay when assets are pushed to or downloaded from your account.
:::image type="content" source="../media/lfs.png" alt-text="Screenshot of Git LFS usage overview.":::
@@ -141,10 +135,12 @@ The GitHub user interface enables management of Git LFS (Large File Storage) Dat
[Switching between settings for your different accounts](https://docs.github.com/en/billing/managing-your-github-billing-settings/about-billing-on-github#switching-between-settings-for-your-different-accounts)
-[Managing your GitHub Enterprise license](https://docs.github.com/en/enterprise-server@3.1/admin/overview/managing-your-github-enterprise-license)
+[Managing your license for GitHub Enterprise Server](https://docs.github.com/enterprise-server@3.8/billing/managing-your-license-for-github-enterprise?azure-portal=true)
+
+[Managing your license for GitHub Enterprise Cloud](https://docs.github.com/enterprise-cloud@latest/billing/managing-your-license-for-github-enterprise?azure-portal=true)
-[Viewing your GitHub Actions usage](https://docs.github.com/en/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage)
+[Viewing your GitHub Actions usage](https://docs.github.com/en/billing/managing-billing-for-github-actions/viewing-your-github-actions-usage?azure-portal=true)
-[Viewing your GitHub Packages usage](https://docs.github.com/en/billing/managing-billing-for-github-packages/viewing-your-github-packages-usage)
+[Viewing your GitHub Packages usage](https://docs.github.com/en/billing/managing-billing-for-github-packages/viewing-your-github-packages-usage?azure-portal=true)
-[Viewing your Git Large File Storage usage](https://docs.github.com/en/billing/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage)
+[Viewing your Git Large File Storage usage](https://docs.github.com/en/billing/managing-billing-for-git-large-file-storage/viewing-your-git-large-file-storage-usage?azure-portal=true)
diff --git a/github/github-introduction-products/includes/5-summary.md b/github/github-introduction-products/includes/5-summary.md
index e71c98e3..0573aeaf 100644
--- a/github/github-introduction-products/includes/5-summary.md
+++ b/github/github-introduction-products/includes/5-summary.md
@@ -1,5 +1,5 @@
Your goal in this module was to understand and then describe GitHub's various products, features, and licensing terms.
-In this module, you learned how plans, account types, teams, repository permissions, and organization permission levels are related. You learned about each product, the features available with each option and how they're priced. You also learned about some other licensing considerations for metered or per-use services.
+In this module, you learned how plans, account types, teams, repository permissions, and organization permission levels are related. You learned about each product, the features available with each option, and how they're priced. You also learned about some other licensing considerations for metered or per-use services.
-Understanding GitHub's products, features, and licensing helps to optimize its usage within your organization.
\ No newline at end of file
+Understanding GitHub's products, features, and licensing helps you to optimize its usage within your organization.
\ No newline at end of file
diff --git a/github/github-introduction-products/index.yml b/github/github-introduction-products/index.yml
index d8bf96d1..295addf8 100644
--- a/github/github-introduction-products/index.yml
+++ b/github/github-introduction-products/index.yml
@@ -1,25 +1,25 @@
### YamlMime:Module
uid: learn.github.github-introduction-products
metadata:
- title: Introduction to GitHub's Products
- description: Overview GitHub's products, associated features, and licensing of per-use and metered features.
- ms.date: 8/23/2021
+ title: Introduction to GitHub's products
+ description: Overview of GitHub's products, associated features, and licensing of per-use and metered features.
+ ms.date: 02/09/2023
author: davenowell
ms.author: dapolite
ms.topic: interactive-tutorial
ms.prod: learning-azure
-title: Introduction to GitHub's Products
-summary: Overview GitHub's products, associated features, and licensing of per-use and metered features.
+title: Introduction to GitHub's products
+summary: Overview of GitHub's products, associated features, and licensing of per-use and metered features.
abstract: |
- After completing this module, you will be able to:
+ After completing this module, you'll be able to:
- Explain the difference between each GitHub product, and which features are available with each product.
- Make key distinctions between plans, account types, teams, repository permissions, organization permission levels, and so on.
- Describe licensing terms for GitHub Actions, GitHub Packages, and Codespaces.
prerequisites: |
- Familiarity with GitHub, repositories, and the basics of managing individual accounts is required
- - A high-level familiarity with GitHub's product plans and features would be helpful, but not required
+ - A high-level familiarity with GitHub's product plans and features would be helpful, but isn't required
ratingEnabled: true
-iconUrl: /learn/achievements/github-introduction-products.svg
+iconUrl: /training/achievements/github-introduction-products.svg
levels:
- intermediate
roles:
diff --git a/github/github-introduction-products/media/lfs.png b/github/github-introduction-products/media/lfs.png
index 24adf43e..dc3cc7ec 100644
Binary files a/github/github-introduction-products/media/lfs.png and b/github/github-introduction-products/media/lfs.png differ
diff --git a/github/introduction-to-github/1-introduction.yml b/github/introduction-to-github/1-introduction.yml
index 57df3059..b2ca22c1 100644
--- a/github/introduction-to-github/1-introduction.yml
+++ b/github/introduction-to-github/1-introduction.yml
@@ -5,8 +5,8 @@ metadata:
title: Introduction
description: Learn to use key GitHub features, including issues, notifications, branches, commits, and pull requests.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 2
diff --git a/github/introduction-to-github/2-what-is-github.yml b/github/introduction-to-github/2-what-is-github.yml
index 6c2ea655..6261ba02 100644
--- a/github/introduction-to-github/2-what-is-github.yml
+++ b/github/introduction-to-github/2-what-is-github.yml
@@ -5,8 +5,8 @@ metadata:
title: What is GitHub?
description: Learn to use key GitHub features, including issues, notifications, branches, commits, and pull requests.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 8
diff --git a/github/introduction-to-github/3-introduction-to-github.yml b/github/introduction-to-github/3-introduction-to-github.yml
index c329cad6..90af3050 100644
--- a/github/introduction-to-github/3-introduction-to-github.yml
+++ b/github/introduction-to-github/3-introduction-to-github.yml
@@ -5,8 +5,8 @@ metadata:
title: Exercise - A guided tour of GitHub
description: Learn to use key GitHub features, including issues, notifications, branches, commits, and pull requests.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 58
diff --git a/github/introduction-to-github/4-knowledge-check.yml b/github/introduction-to-github/4-knowledge-check.yml
index d2c004bc..f1fd84c9 100644
--- a/github/introduction-to-github/4-knowledge-check.yml
+++ b/github/introduction-to-github/4-knowledge-check.yml
@@ -5,8 +5,8 @@ metadata:
title: Knowledge check
description: Check what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 3
diff --git a/github/introduction-to-github/5-summary.yml b/github/introduction-to-github/5-summary.yml
index 69458685..9edd3251 100644
--- a/github/introduction-to-github/5-summary.yml
+++ b/github/introduction-to-github/5-summary.yml
@@ -5,8 +5,8 @@ metadata:
title: Summary
description: Review what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 1
diff --git a/github/introduction-to-github/includes/5-summary.md b/github/introduction-to-github/includes/5-summary.md
index ccfd238a..12098a87 100644
--- a/github/introduction-to-github/includes/5-summary.md
+++ b/github/introduction-to-github/includes/5-summary.md
@@ -12,7 +12,7 @@ You learned about:
- How a repository fork differs from a clone
- Repository labels and where to apply them in issues and pull requests
-Now that you're familiar with the basics of GitHub, learn to [Upload your project by using GitHub best practices](/learn/modules/upload-project-github/).
+Now that you're familiar with the basics of GitHub, learn to [Upload your project by using GitHub best practices](/training/modules/upload-project-github/).
## Learn more
@@ -24,4 +24,4 @@ Here are some links to more information on the topics we discussed in this modul
- [About the role of labels](https://docs.github.com/en/free-pro-team@latest/github/managing-your-work-on-github/about-labels?azure-portal=true)
- [GitHub Actions](https://docs.github.com/en/free-pro-team@latest/actions?azure-portal=true)
- [Fork a repo](https://docs.github.com/en/free-pro-team@latest/github/getting-started-with-github/fork-a-repo?azure-portal=true)
-- [Working with GitHub Pages](https://help.github.com/en/github/working-with-github-pages?azure-portal=true)
\ No newline at end of file
+- [Working with GitHub Pages](https://help.github.com/en/github/working-with-github-pages?azure-portal=true)
diff --git a/github/introduction-to-github/index.yml b/github/introduction-to-github/index.yml
index 907a4c98..07193459 100644
--- a/github/introduction-to-github/index.yml
+++ b/github/introduction-to-github/index.yml
@@ -20,7 +20,7 @@ abstract: |
- Deploy a web page to GitHub Pages
prerequisites: |
- A GitHub account
-iconUrl: /learn/achievements/github/introduction-to-github.svg
+iconUrl: /training/achievements/github/introduction-to-github.svg
ratingEnabled: true
levels:
- beginner
diff --git a/github/maintain-secure-repository-github/4-knowledge-check.yml b/github/maintain-secure-repository-github/4-knowledge-check.yml
index 55b4bd44..a5dd8199 100644
--- a/github/maintain-secure-repository-github/4-knowledge-check.yml
+++ b/github/maintain-secure-repository-github/4-knowledge-check.yml
@@ -5,8 +5,8 @@ metadata:
title: Knowledge check
description: Check what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 3
diff --git a/github/maintain-secure-repository-github/includes/2-how-to-maintain-secure-repository.md b/github/maintain-secure-repository-github/includes/2-how-to-maintain-secure-repository.md
index 81d1df6c..bbca8b46 100644
--- a/github/maintain-secure-repository-github/includes/2-how-to-maintain-secure-repository.md
+++ b/github/maintain-secure-repository-github/includes/2-how-to-maintain-secure-repository.md
@@ -41,7 +41,7 @@ Below are some ways to distribute security and operational responsibilities acro
The community benefits of GitHub are substantial, but they also carry potential risks. The fact that anyone can propose bug fixes publicly comes with certain responsibilities. The most important is the responsible disclosure of information that could lead to security exploits before their underlying bugs can be fixed. Developers looking to report or address security issues look for a `SECURITY.md` file in the root of a repository in order to responsibly disclose their concerns. Providing guidance in this file will ultimately speed up the resolution of these critical issues.
-To learn more about `SECURITY.md`, see [Adding a security policy to your repository](https://help.github.com/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository?azure-portal=true).
+To learn more about `SECURITY.md`, see [Adding a security policy to your repository](https://docs.github.com/code-security/getting-started/adding-a-security-policy-to-your-repository).
## GitHub Security Advisories
GitHub Security Advisories allow repository maintainers to privately discuss and fix a security vulnerability in a project. After collaborating on a fix, repository maintainers can publish the security advisory to publicly disclose the security vulnerability to the project's community. By publishing security advisories, repository maintainers make it easier for their community to update package dependencies and research the impact of the security vulnerabilities. GitHub stores the published advisories in the Common Vulnerabilities and Exposures (CVE) list, which is used for automatically notifying affected repositories that leverage software that has a listed vulnerability.
@@ -76,17 +76,18 @@ x86/
Your repository may include multiple `.gitignore` files. Settings are inherited from parent directories, with overriding fields in new `.gitignore` files taking precedence over parent settings for their folders and subfolders. It's common for the majority of effort to go into maintaining the root `.gitignore` file where feasible, although adding a `.gitignore` into a project directory can be helpful when that project has specific requirements that are easier to maintain separately from the parent, such as files that should *not* be ignored.
-To learn more about `.gitignore`, see [Ignoring files](https://help.github.com/github/using-git/ignoring-files?azure-portal=true). Also check out the collection of starter `.gitignore` files offered for various platforms in the [gitignore repository](https://github.com/github/gitignore?azure-portal=true).
+To learn more about `.gitignore`, see [Ignoring files](https://docs.github.com/get-started/getting-started-with-git/ignoring-files). Also check out the collection of starter `.gitignore` files offered for various platforms in the [gitignore repository](https://github.com/github/gitignore?azure-portal=true).
## Remove sensitive data from a repository
While `.gitignore` can be useful in helping contributors avoid committing sensitive data, it's just a strong suggestion. Developers can still work around it to add files if they are motivated enough, and sometimes files may slip through because they don't meet the `.gitignore` configuration. Project participants should always be on the lookout for commits containing data that should not be included in the repository or its history.
> [!IMPORTANT]
-> You should assume that any data committed to GitHub at any point has been compromised. Simply overwriting a commit isn't enough to ensure the data will not be accessible in the future. For the complete guide to removing sensitive data from GitHub, see [Removing sensitive data from a repository](https://help.github.com/github/authenticating-to-github/removing-sensitive-data-from-a-repository?azure-portal=true).
+> You should assume that any data committed to GitHub at any point has been compromised. Simply overwriting a commit isn't enough to ensure the data will not be accessible in the future. For the complete guide to removing sensitive data from GitHub, see [Removing sensitive data from a repository](https://docs.github.com/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository).
## Branch protection rules
-You can create a [branch protection rule](https://docs.github.com/en/github/administering-a-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule) to enforce certain workflows for one or more branches, such as requiring an approving review or passing status checks for all pull requests merged into the protected branch.
+
+You can create a [branch protection rule](https://docs.github.com/github/administering-a-repository/defining-the-mergeability-of-pull-requests/managing-a-branch-protection-rule) to enforce certain workflows for one or more branches, such as requiring an approving review or passing status checks for all pull requests merged into the protected branch.
You can leverage the workflows that protect the branch to:
@@ -96,7 +97,8 @@ You can leverage the workflows that protect the branch to:
* And so on
## Add a CODEOWNERS file
-By adding a [CODEOWNERS](https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-code-owners#codeowners-syntax) file to your repository, you can assign individual team members or entire teams as code owners to paths in your repository. These code owners are then required for pull-request reviews on any changes to files in a path that they are configured for.
+
+By adding a [CODEOWNERS](https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-code-owners#codeowners-syntax) file to your repository, you can assign individual team members or entire teams as code owners to paths in your repository. These code owners are then required for pull-request reviews on any changes to files in a path that they are configured for.
```
# Changes to files with the js extensions need to be reviewed by the js-owner user/group:
@@ -105,4 +107,5 @@ By adding a [CODEOWNERS](https://docs.github.com/en/github/creating-cloning-and-
# Changes to files in the builds folder need to be reviewed by the octocat user/group:
/build/ @octocat
```
+
You can create the CODEOWNERS file in either the root of the repository, or in the `docs` or `.github` folder.
diff --git a/github/maintain-secure-repository-github/includes/3-security-automation.md b/github/maintain-secure-repository-github/includes/3-security-automation.md
index 0a35f921..22d15437 100644
--- a/github/maintain-secure-repository-github/includes/3-security-automation.md
+++ b/github/maintain-secure-repository-github/includes/3-security-automation.md
@@ -10,11 +10,11 @@ One default feature every repository enjoys is dependency graphs. GitHub scans c

-For the list of supported dependency manifests, see [Listing the packages that a repository depends on](https://help.github.com/github/visualizing-repository-data-with-graphs/listing-the-packages-that-a-repository-depends-on#supported-languages?azure-portal=true).
+For the list of supported dependency manifests, see [About the dependency graph](https://docs.github.com/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph).
### Automated dependency alerts
-Even with a visual dependency graph, it can still be overwhelming to stay on top of the latest security considerations for every dependency a project has. To reduce this overhead, GitHub provides [automated dependency alerts](https://docs.github.com/en/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies) that watch your dependency graphs for you. It then cross-references target versions with versions on known vulnerability lists. When a risk is discovered, the project is alerted. Input for the analysis comes from [GitHub Security Advisories](https://docs.github.com/en/code-security/security-advisories/about-github-security-advisories#dependabot-alerts-for-published-security-advisories).
+Even with a visual dependency graph, it can still be overwhelming to stay on top of the latest security considerations for every dependency a project has. To reduce this overhead, GitHub provides [automated dependency alerts](https://docs.github.com/code-security/supply-chain-security/managing-vulnerabilities-in-your-projects-dependencies/about-alerts-for-vulnerable-dependencies#dependabot-alerts-for-vulnerable-dependencies) that watch your dependency graphs for you. It then cross-references target versions with versions on known vulnerability lists. When a risk is discovered, the project is alerted. Input for the analysis comes from [GitHub Security Advisories](https://docs.github.com/code-security/security-advisories/about-github-security-advisories#dependabot-alerts-for-published-security-advisories).

@@ -22,19 +22,19 @@ Even with a visual dependency graph, it can still be overwhelming to stay on top
Most of the time, a dependency alert leads to a project contributor bumping the offending package reference to the recommended version and creating a pull request for validation. Wouldn't it be great if there was a way to automate this effort? Well, good news! That's exactly what **Dependabot** does. It scans for dependency alerts and creates pull requests so that a contributor can validate the update and merge the request.
-To learn more about Dependabot's flexibility, see [Configuring GitHub Dependabot security updates](https://help.github.com/github/managing-security-vulnerabilities/configuring-github-dependabot-security-updates?azure-portal=true).
+To learn more about Dependabot's flexibility, see [Configuring Dependabot security updates](https://docs.github.com/code-security/dependabot/dependabot-security-updates/configuring-dependabot-security-updates).
### Automated code scanning
Similar to how Dependabot scans your repository for dependency alerts, you can use code scanning to analyze and find security vulnerabilities and errors in the code in a GitHub repository. Code scanning has several benefits; you can use it to find, triage, and prioritize fixes for existing problems or potential security vulnerabilities. It's also useful to help prevent developers from introducing any new security problems into the code.
-Another advantage to code scanning is its ability to use CodeQL. CodeQL lets you query code as data, which lats you create custom queries or use queries maintained by the open-source community. Code scanning gives you the freedom to customize and maintain how the code within your repository is being scanned.
+Another advantage to code scanning is its ability to use CodeQL. CodeQL lets you query code as data, which lets you create custom queries or use queries maintained by the open-source community. Code scanning gives you the freedom to customize and maintain how the code within your repository is being scanned.
You can enable code-scanning alerts and workflows in the security tab of a GitHub repository:
:::image type="content" source="../media/security-overview.png" alt-text="A list of policies, advisories, and alerts with links to more information.":::
-Learn more about [Code scanning and CodeQL](https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning#about-code-scanning).
+Learn more about [Code scanning and CodeQL](https://docs.github.com/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/about-code-scanning#about-code-scanning).
### Secret scanning
@@ -42,4 +42,4 @@ Another automated scanning feature within a GitHub repository is secret scanning
When secret scanning detects a set of credentials, GitHub notifies the service provider who issued the secret. The service provider validates the credential, then decides whether they should revoke the secret, issue a new secret, or reach out to you directly, which will depend on the associated risks to you or the service provider.
-Learn more about [Secret scanning for public and private repositories](https://docs.github.com/en/free-pro-team@latest/github/administering-a-repository/about-secret-scanning).
+Learn more about [Secret scanning for public and private repositories](https://docs.github.com/free-pro-team@latest/github/administering-a-repository/about-secret-scanning).
diff --git a/github/maintain-secure-repository-github/includes/5-summary.md b/github/maintain-secure-repository-github/includes/5-summary.md
index 7c98e475..cae371df 100644
--- a/github/maintain-secure-repository-github/includes/5-summary.md
+++ b/github/maintain-secure-repository-github/includes/5-summary.md
@@ -8,15 +8,15 @@ You learned about:
- How to add a `.gitignore` file to a repository
- Advanced security features such as code scanning and secret scanning
-Now that you're familiar with security best practices, learn to [Automate DevOps processes by using GitHub Apps](/learn/modules/automate-devops-github-apps/).
+Now that you're familiar with security best practices, learn to [Automate DevOps processes by using GitHub Apps](/training/modules/automate-devops-github-apps/).
## Learn more
Here are some links to more information on the topics we discussed in this module.
-- [About security alerts for vulnerable dependencies](https://help.github.com/github/managing-security-vulnerabilities/about-security-alerts-for-vulnerable-dependencies?azure-portal=true)
+- [Viewing and updating Dependabot alerts](https://docs.github.com/code-security/dependabot/dependabot-alerts/viewing-and-updating-dependabot-alerts)
- [Dependabot official site](https://github.com/dependabot)
- [Security apps on GitHub Marketplace](https://github.com/marketplace/category/security?azure-portal=true)
-- [Adding a security policy to your repository](https://help.github.com/github/managing-security-vulnerabilities/adding-a-security-policy-to-your-repository?azure-portal=true)
-- [Ignoring files](https://help.github.com/github/using-git/ignoring-files?azure-portal=true)
-- [Removing sensitive data from a repository](https://help.github.com/github/authenticating-to-github/removing-sensitive-data-from-a-repository?azure-portal=true)
+- [Adding a security policy to your repository](https://docs.github.com/code-security/getting-started/adding-a-security-policy-to-your-repository)
+- [Ignoring files](https://docs.github.com/get-started/getting-started-with-git/ignoring-files)
+- [Removing sensitive data from a repository](https://docs.github.com/authentication/keeping-your-account-and-data-secure/removing-sensitive-data-from-a-repository)
diff --git a/github/maintain-secure-repository-github/index.yml b/github/maintain-secure-repository-github/index.yml
index 527df19b..7245c018 100644
--- a/github/maintain-secure-repository-github/index.yml
+++ b/github/maintain-secure-repository-github/index.yml
@@ -23,7 +23,7 @@ abstract: |
prerequisites: |
- A GitHub account
- The ability to navigate and edit files in GitHub
-iconUrl: /learn/achievements/github/maintain-secure-repository-github.svg
+iconUrl: /training/achievements/github/maintain-secure-repository-github.svg
ratingEnabled: true
levels:
- beginner
diff --git a/github/manage-changes-pull-requests-github/1-introduction.yml b/github/manage-changes-pull-requests-github/1-introduction.yml
index 6e2acb6b..256aaaf5 100644
--- a/github/manage-changes-pull-requests-github/1-introduction.yml
+++ b/github/manage-changes-pull-requests-github/1-introduction.yml
@@ -5,8 +5,8 @@ metadata:
title: Introduction
description: Learn how to manage changes to your repository source by using pull requests.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 2
diff --git a/github/manage-changes-pull-requests-github/2-what-are-pull-requests.yml b/github/manage-changes-pull-requests-github/2-what-are-pull-requests.yml
index cc6433bf..43338a7b 100644
--- a/github/manage-changes-pull-requests-github/2-what-are-pull-requests.yml
+++ b/github/manage-changes-pull-requests-github/2-what-are-pull-requests.yml
@@ -5,8 +5,8 @@ metadata:
title: What are pull requests?
description: Learn how to manage changes to your repository source by using pull requests.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 8
diff --git a/github/manage-changes-pull-requests-github/3-review-pull-requests.yml b/github/manage-changes-pull-requests-github/3-review-pull-requests.yml
index 6782e99f..4ec1c007 100644
--- a/github/manage-changes-pull-requests-github/3-review-pull-requests.yml
+++ b/github/manage-changes-pull-requests-github/3-review-pull-requests.yml
@@ -5,8 +5,8 @@ metadata:
title: Exercise - Reviewing pull requests
description: Learn how to manage changes to your repository source by using pull requests.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 35
diff --git a/github/manage-changes-pull-requests-github/4-knowledge-check.yml b/github/manage-changes-pull-requests-github/4-knowledge-check.yml
index 3011935e..23cf2c4d 100644
--- a/github/manage-changes-pull-requests-github/4-knowledge-check.yml
+++ b/github/manage-changes-pull-requests-github/4-knowledge-check.yml
@@ -5,8 +5,8 @@ metadata:
title: Knowledge check
description: Check what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 3
diff --git a/github/manage-changes-pull-requests-github/5-summary.yml b/github/manage-changes-pull-requests-github/5-summary.yml
index 1c420be5..92d708e1 100644
--- a/github/manage-changes-pull-requests-github/5-summary.yml
+++ b/github/manage-changes-pull-requests-github/5-summary.yml
@@ -5,8 +5,8 @@ metadata:
title: Summary
description: Review what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 1
diff --git a/github/manage-changes-pull-requests-github/includes/1-introduction.md b/github/manage-changes-pull-requests-github/includes/1-introduction.md
index 04da9523..6a38cfe4 100644
--- a/github/manage-changes-pull-requests-github/includes/1-introduction.md
+++ b/github/manage-changes-pull-requests-github/includes/1-introduction.md
@@ -20,4 +20,4 @@ In this module, you will:
- A GitHub account
- The ability to navigate and edit files in GitHub
-It is recommended that you complete [Manage software delivery by using a release based workflow on GitHub](/learn/modules/release-based-workflow-github) before beginning this module.
\ No newline at end of file
+It is recommended that you complete [Manage software delivery by using a release based workflow on GitHub](/training/modules/release-based-workflow-github) before beginning this module.
diff --git a/github/manage-changes-pull-requests-github/includes/5-summary.md b/github/manage-changes-pull-requests-github/includes/5-summary.md
index 449b2ee4..b6c21653 100644
--- a/github/manage-changes-pull-requests-github/includes/5-summary.md
+++ b/github/manage-changes-pull-requests-github/includes/5-summary.md
@@ -9,7 +9,7 @@ You learned about:
- Requesting pull request reviews
- Accepting changes introduced by a pull request review
-Now that you're familiar with merging commits using pull requests, learn to [Settle competing commits by using merge conflict resolution on GitHub](/learn/modules/resolve-merge-conflicts-github/).
+Now that you're familiar with merging commits using pull requests, learn to [Settle competing commits by using merge conflict resolution on GitHub](/training/modules/resolve-merge-conflicts-github/).
## Learn more
diff --git a/github/manage-changes-pull-requests-github/index.yml b/github/manage-changes-pull-requests-github/index.yml
index 2655ae1c..a0d18a08 100644
--- a/github/manage-changes-pull-requests-github/index.yml
+++ b/github/manage-changes-pull-requests-github/index.yml
@@ -21,7 +21,7 @@ abstract: |
prerequisites: |
- A GitHub account
- The ability to navigate and edit files in GitHub
-iconUrl: /learn/achievements/github/manage-changes-pull-requests-github.svg
+iconUrl: /training/achievements/github/manage-changes-pull-requests-github.svg
ratingEnabled: true
levels:
- beginner
diff --git a/github/manage-github-actions-enterprise/includes/manage-actions-workflows.md b/github/manage-github-actions-enterprise/includes/manage-actions-workflows.md
index b455ce80..f503f8f4 100644
--- a/github/manage-github-actions-enterprise/includes/manage-actions-workflows.md
+++ b/github/manage-github-actions-enterprise/includes/manage-actions-workflows.md
@@ -20,12 +20,20 @@ If you want to enable only specific actions to be used within your enterprise, s
:::image type="content" source="../media/policies-2.png" alt-text="Actions screen with Allow select actions option selected.":::
+### Share GitHub Actions within your enterprise
+
+You can innersource automation by sharing Actions only within your enterprise without publishing them publicly. You do this by storing the Action in an internal repository and then configure the repository settings to allow access to workflows in other repositories. The other repositories can be in the same organization or other organizations in the enterprise. These Actions can only be used by workflows defined in other private and internal repositories but cannot be used in workflows defined within any public repositories.
+
### Manually sync public actions for Enterprise Server
Most official GitHub-authored actions come automatically bundled with Enterprise Server, and are captured at a point in time from the GitHub Marketplace. They include `actions/checkout`, `actions/upload-artifact`, `actions/download-artifact`, `actions/labeler` and various `actions/setup-` actions, among others. To see all the official actions included on your enterprise instance, browse to the actions organization on your instance: https://HOSTNAME/actions.
As mentioned in the [Configure a GitHub Actions use policy](#configure-a-github-actions-use-policy) section, it is possible to configure Enterprise Server to automatically access the public actions available in the GitHub Marketplace and to configure a use policy for them. However, if you want stricter control over the public actions that should be made available in your enterprise, you have the possibility to manually download and sync actions into your enterprise instance using the `actions-sync` tool.
+### View cache usage
+
+Dependency caching is one of the most effective ways to make jobs faster on GitHub Actions. This gives you greater control over cache availability for your action workflows and monitor the storage usage of your existing caches. Actions users can use actions/cache to speed up their workflow execution times through GitHub's cache usage APIs. Doing so allows you to query the cache usage within each repository and monitor if the total size of all caches is reaching the upper limit of 10 GB. Additionally, you can monitor aggregate cache usage at organization level and at enterprise level, if your GitHub organization is owned by an enterprise account.
+
## At organization level
### Document corporate standards
diff --git a/github/manage-github-actions-enterprise/includes/manage-runners.md b/github/manage-github-actions-enterprise/includes/manage-runners.md
index 732c1176..780e86f5 100644
--- a/github/manage-github-actions-enterprise/includes/manage-runners.md
+++ b/github/manage-github-actions-enterprise/includes/manage-runners.md
@@ -7,7 +7,7 @@ GitHub Actions workflows can be executed by two types of runners: GitHub-hosted
> [!Note]
> GitHub-hosted runners are only available for Enterprise Cloud. If you have an Enterprise Server instance, this section does not apply to you.
-GitHub-hosted runners offer a quicker, simpler way to run your workflows, while self-hosted runners are a highly configurable way to run workflows in your own custom environment. For example, if you need to use an IP address allowlist for your organization or a specialized hardware configuration for running your workflows, you would use a self-hosted runner.
+GitHub-hosted runners offer a quicker, simpler way to run your workflows, while self-hosted runners are a highly configurable way to run workflows in your own custom environment. For example, if you need to use an IP address allowlist for your organization or a specialized hardware configuration for running your workflows, you would use a self-hosted runner. When running a job that requires a self-hosted runner, GitHub Actions will look for self-hosted runners with the first available matching runner. This is at any level running the job in all cases. This allows jobs to be sent to self-hosted runners much faster, especially for organizations and enterprises with lots of self-hosted runners.
The table below compares GitHub-hosted runners versus self-hosted runners. Use it to choose the appropriate runner for your workload.
@@ -62,6 +62,14 @@ To add a label to a self-hosted runner, navigate to the GitHub Actions settings
1. Click an existing label to add it to your runner or type the name of your new label in the **Filter labels** field and select **Create new label**. The label is automatically added to your runner when you create it.
+Managing self-hosted runners within an enterprise no longer requires personal access tokens with the` admin:enterprise` scope. You can tighten down the permissions on your token by using the `manage_runners:enterprise` scope instead. A token with this scope can authenticate many endpoints to manage your enterprise's self-hosted runners.
+
+It is possible to list, add, and remove runner labels for Actions self-hosted runners via API.
+
+### Restrict self-hosted runner groups to specific workflows
+
+Administrators can further control access by selecting specific workflow files and versions. This will restrict self-hosted runner groups to only be accessible from certain workflows. Combining this feature with reusable workflows will help you create more secure standard workflows in your organization.
+
### Proxy servers
If you need a self-hosted runner to communicate with GitHub via a proxy server, both Enterprise Cloud and Enterprise Server enable you to change proxy configurations using the following environment variables:
diff --git a/github/manage-github-actions-enterprise/index.yml b/github/manage-github-actions-enterprise/index.yml
index 5e253e8f..4934b7ca 100644
--- a/github/manage-github-actions-enterprise/index.yml
+++ b/github/manage-github-actions-enterprise/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.manage-github-actions-enterprise
metadata:
title: Manage GitHub Actions in the enterprise
description: Learn how to manage GitHub Actions in the enterprise.
- ms.date: 06/09/2021
+ ms.date: 08/09/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
diff --git a/github/manage-innersource-program-github/1-introduction.yml b/github/manage-innersource-program-github/1-introduction.yml
index 188e0cc0..d5018add 100644
--- a/github/manage-innersource-program-github/1-introduction.yml
+++ b/github/manage-innersource-program-github/1-introduction.yml
@@ -5,8 +5,8 @@ metadata:
title: Introduction
description: Learn to manage a successful InnerSource program on GitHub through effective discoverability, guidance, and maintenance.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 2
diff --git a/github/manage-innersource-program-github/2-manage-innersource-program.yml b/github/manage-innersource-program-github/2-manage-innersource-program.yml
index acf1dad7..c885162b 100644
--- a/github/manage-innersource-program-github/2-manage-innersource-program.yml
+++ b/github/manage-innersource-program-github/2-manage-innersource-program.yml
@@ -5,8 +5,8 @@ metadata:
title: How to manage a successful InnerSource program
description: Learn to manage a successful InnerSource program on GitHub through effective discoverability, guidance, and maintenance.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 8
diff --git a/github/manage-innersource-program-github/3-innersource-fundamentals.yml b/github/manage-innersource-program-github/3-innersource-fundamentals.yml
index e4930735..dfd9457b 100644
--- a/github/manage-innersource-program-github/3-innersource-fundamentals.yml
+++ b/github/manage-innersource-program-github/3-innersource-fundamentals.yml
@@ -5,8 +5,8 @@ metadata:
title: Exercise - InnerSource fundamentals
description: Learn to manage a successful InnerSource program on GitHub through effective discoverability, guidance, and maintenance.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 36
diff --git a/github/manage-innersource-program-github/4-knowledge-check.yml b/github/manage-innersource-program-github/4-knowledge-check.yml
index 85f53676..dbc4e712 100644
--- a/github/manage-innersource-program-github/4-knowledge-check.yml
+++ b/github/manage-innersource-program-github/4-knowledge-check.yml
@@ -5,8 +5,8 @@ metadata:
title: Knowledge check
description: Check what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 3
diff --git a/github/manage-innersource-program-github/5-summary.yml b/github/manage-innersource-program-github/5-summary.yml
index 8da1063f..36bd146f 100644
--- a/github/manage-innersource-program-github/5-summary.yml
+++ b/github/manage-innersource-program-github/5-summary.yml
@@ -5,8 +5,8 @@ metadata:
title: Summary
description: Review what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 1
diff --git a/github/manage-innersource-program-github/includes/1-introduction.md b/github/manage-innersource-program-github/includes/1-introduction.md
index db4d9d34..110ad30f 100644
--- a/github/manage-innersource-program-github/includes/1-introduction.md
+++ b/github/manage-innersource-program-github/includes/1-introduction.md
@@ -23,4 +23,4 @@ In this module, you'll learn to:
- The ability to navigate and edit files in GitHub
- Familiarity with pull requests
-We recommend that you complete [Introduction to GitHub](/learn/modules/introduction-to-github) before beginning this module.
\ No newline at end of file
+We recommend that you complete [Introduction to GitHub](/training/modules/introduction-to-github) before beginning this module.
diff --git a/github/manage-innersource-program-github/includes/3-innersource-fundamentals.md b/github/manage-innersource-program-github/includes/3-innersource-fundamentals.md
index 5771c8ce..d7aa2610 100644
--- a/github/manage-innersource-program-github/includes/3-innersource-fundamentals.md
+++ b/github/manage-innersource-program-github/includes/3-innersource-fundamentals.md
@@ -1,17 +1,15 @@
-In this exercise, you'll use GitHub Learning Lab to learn how to manage a successful InnerSource program on GitHub through effective discoverability, guidance, and maintenance.
+An integral part of adopting InnerSource within your team is establishing goals, milestones, and then creating a checklist of items that need to be accomplished within your team to meet those goals.
-GitHub Learning Lab is an integrated experience that's easy to use. You'll get feedback and instructions throughout the lab as you work in your GitHub repository.
+The following guide will provide you with a getting started and expanded checklist of items to include in your GitHub repositories for the following categories:
-Here are a few suggestions to make the Learning Lab exercise more enjoyable.
+- Team
+- Repository
+- Project
+- Developers
-- GitHub Learning Lab is installed on your account in the first step of this lab. If you're asked, be sure to *install it on all repositories*. This won't affect the organizations of which you're a member, just the personal repositories that the lab creates for you.
-- After the install, you may be returned to the main page. To get back to your lab, just use the button on the bottom of this page.
-- GitHub will create a repository for you to use. Give permissions to GitHub Learning Lab.
-- GitHub Learning Lab will set itself as a reviewer on your pull requests so that it can give you the next steps just in time. Sometimes reviewing your pull request will take a few minutes.
-- When you're given a link for creating or editing a file or told to open a tab, **be sure to open it in another tab in your browser**. This way, you can come back to the instructions without leaving the file.
-- Comments and instructions will continue on your pull request or in an issue on your repository.
+Using the provided checklists, pick one of the above categories and compare the list of items to one of your existing repositories. If focusing on the repository itself, what files do you need to add or remove to add clarity around its purpose and how to contribute to or open up issues.
-When you've finished the exercise in GitHub, return here for:
+When you've read through the guide and have identified ways to improve your own GitHub repositories, return here for:
> [!div class="checklist"]
> * A quick knowledge check
@@ -20,4 +18,4 @@ When you've finished the exercise in GitHub, return here for:
> [!div class="nextstepaction"]
-> [Start the learning lab on GitHub](https://lab.github.com/githubtraining/innersource-fundamentals?azure-portal=true)
+> [Navigate to GitHub's InnerSource guide](https://githubtraining.github.io/innersource-theory/#/measuring_success)
\ No newline at end of file
diff --git a/github/manage-innersource-program-github/includes/5-summary.md b/github/manage-innersource-program-github/includes/5-summary.md
index 87d70a1b..6c00ca4a 100644
--- a/github/manage-innersource-program-github/includes/5-summary.md
+++ b/github/manage-innersource-program-github/includes/5-summary.md
@@ -11,7 +11,7 @@ You learned about:
- Measuring the success of InnerSource within your organization
- Distributing your InnerSource toolkit
-Now that you have an InnerSource program together, learn to [Create an open-source program by using GitHub best practices](/learn/modules/create-open-source-program-github/?azure-portal=true).
+Now that you have an InnerSource program together, learn to [Create an open-source program by using GitHub best practices](/training/modules/create-open-source-program-github/?azure-portal=true).
## Learn more
diff --git a/github/manage-innersource-program-github/index.yml b/github/manage-innersource-program-github/index.yml
index 9c362b87..d07fac30 100644
--- a/github/manage-innersource-program-github/index.yml
+++ b/github/manage-innersource-program-github/index.yml
@@ -4,8 +4,8 @@ metadata:
title: "Manage an InnerSource program by using GitHub"
description: Learn to manage a successful InnerSource program on GitHub through effective discoverability, guidance, and maintenance.
ms.date: 05/16/2022
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
title: "Manage an InnerSource program by using GitHub"
@@ -24,7 +24,7 @@ prerequisites: |
- A GitHub account
- The ability to navigate and edit files in GitHub
- Familiarity with pull requests
-iconUrl: /learn/achievements/github/manage-innersource-program-github.svg
+iconUrl: /training/achievements/github/manage-innersource-program-github.svg
ratingEnabled: true
levels:
- beginner
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/1-introduction.yml b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/1-introduction.yml
new file mode 100644
index 00000000..29cf042c
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/1-introduction.yml
@@ -0,0 +1,14 @@
+### YamlMime:ModuleUnit
+uid: learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.introduction
+title: Introduction
+metadata:
+ title: introduction
+ description: "Learn about GitHub Actions Importer and how it can help facilitate migrations from your current CI/CD tool to GitHub Actions."
+ ms.date: 1/10/2023
+ author: a-a-ron
+ ms.author: aastewar
+ ms.topic: interactive-tutorial
+ ms.prod: learning-azure # Edit as appropriate for your portfolio area
+durationInMinutes: 1
+content: |
+ [!include[](includes/1-introduction.md)]
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/2-Learn-about-the-two-distinct-phases-of-a-GitHub-Actions-Importer-migration-and-their-associated-commands.yml b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/2-Learn-about-the-two-distinct-phases-of-a-GitHub-Actions-Importer-migration-and-their-associated-commands.yml
new file mode 100644
index 00000000..995ca84d
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/2-Learn-about-the-two-distinct-phases-of-a-GitHub-Actions-Importer-migration-and-their-associated-commands.yml
@@ -0,0 +1,14 @@
+### YamlMime:ModuleUnit
+uid: learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.exercise
+title: How-execute-GitHub-Actions-Importer-commands-and-what-is-not-automatically-migrated
+metadata:
+ title: exercise
+ description: Understand the GitHub Actions Importer commands: audit, forecast, dry-run, and migrate as well as learn what is not automatically migrated
+ ms.date: 1/10/2023
+ author: a-a-ron
+ ms.author: aastewar
+ ms.topic: interactive-tutorial
+ ms.prod: learning-azure # Edit as appropriate for your portfolio area
+durationInMinutes: 10
+content: |
+ [!include[](includes/How-execute-GitHub-Actions-Importer-commands-and-what-is-not-automatically-migrated..md)]
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/3-exercise.yml b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/3-exercise.yml
new file mode 100644
index 00000000..df26688e
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/3-exercise.yml
@@ -0,0 +1,14 @@
+### YamlMime:ModuleUnit
+uid: learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.exercise
+title: GitHub Actions Importer Labs
+metadata:
+ title: exercise
+ description: GitHub Actions Importer helps plan, forecast, and automate the migration of Azure DevOps, CircleCI, GitLab, Jenkins, and Travis CI pipelines to GitHub Actions. This repository contains learning paths that teach you how to use GitHub Actions Importer and how to approach migrations to Actions.
+ ms.date: 1/10/2023
+ author: a-a-ron
+ ms.author: aastewar
+ ms.topic: interactive-tutorial
+ ms.prod: learning-azure # Edit as appropriate for your portfolio area
+durationInMinutes: 1
+content: |
+ [!include[](includes/5-exercise.md)]
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/4-knowledge-check.yml b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/4-knowledge-check.yml
new file mode 100644
index 00000000..6bcbfd88
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/4-knowledge-check.yml
@@ -0,0 +1,63 @@
+### YamlMime:ModuleUnit
+uid: learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.knowledge-check
+title: Knowledge check
+metadata:
+ title: Knowledge check
+ description: "Test your knowledge on GitHub Actions Importer with questions about its commands and supported CI platforms."
+ ms.date: 1/10/2023
+ author: a-a-ron
+ ms.author: aastewar
+ ms.topic: interactive-tutorial
+ ms.prod: learning-azure
+durationInMinutes: 5
+content: |
+quiz:
+ questions:
+ - content: "Which of the following are supported in a GitHub Actions Importer migration?"
+ choices:
+ - content: "Widely used build steps and triggers"
+ isCorrect: true
+ explanation: "Correct! Widely used build steps and tiggers are included in GitHub Actions Importer migrations. What you want to be wary of is less frequently used build steps and triggers."
+ - content: "Secrets and encrypted values"
+ isCorrect: false
+ explanation: "Secrets and encrypted values are not included in GitHub Actions Importer migrations."
+ - content: "Self-hosted build agents"
+ isCorrect: false
+ explanation: "Self-hosted build agents are not included in GitHub Actions Importer migrations."
+ - content: "Historical packages"
+ isCorrect: false
+ explanation: "Historical packages are not included in GitHub Actions Importer migrations."
+ - content: "Permissions for CI/CD pipelines"
+ isCorrect: false
+ explanation: "Permissions for CI/CD pipelines are not included in GitHub Actions Importer migrations."
+ - content: "Which of the following is *NOT* part of the Audit summary?"
+ choices:
+ - content: "Pipelines"
+ isCorrect: false
+ explanation: "Pipelines are included in the Audit summary."
+ - content: "Templates"
+ isCorrect: true
+ explanation: "Correct! Templates are NOT a part of the Audit summary."
+ - content: "Build steps"
+ isCorrect: false
+ explanation: "Build steps are included in the Audit summary."
+ - content: "Manual tasks"
+ isCorrect: false
+ explanation: "Manual tasks are included in the Audit summary."
+ - content: "File manifest"
+ isCorrect: false
+ explanation: "The File manifest is included in the Audit summary."
+ - content: "Which of the following metrics are *NOT* included in the Forecast report?"
+ choices:
+ - content: "Execution time"
+ isCorrect: false
+ explanation: "Execute time is part of a Forecast report."
+ - content: "Queue time"
+ isCorrect: false
+ explanation: "Queue time is part of a Forecast report."
+ - content: "Pipeline count"
+ isCorrect: false
+ explanation: "Pipeline count is part of a Forecast report."
+ - content: "Total CI/CD spend"
+ isCorrect: true
+ explanation: "Correct! Total CI/CD spend is NOT part of a Forecast report."
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/5-summary.yml b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/5-summary.yml
new file mode 100644
index 00000000..444b5390
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/5-summary.yml
@@ -0,0 +1,14 @@
+### YamlMime:ModuleUnit
+uid: learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.summary
+title: Summary
+metadata:
+ title: Summary
+ description: Through this module you should have learned how to install and update GitHub Actions Importer as well as learn about its four commands and what is not automatically mirgrated.
+ ms.date: 1/10/2023
+ author: a-a-ron
+ ms.author: aastewar
+ ms.topic: interactive-tutorial
+ ms.prod: learning-azure # Edit as appropriate for your portfolio area
+durationInMinutes: 1
+content: |
+ [!include[](includes/7-summary.md)]
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/1-introduction.md b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/1-introduction.md
new file mode 100644
index 00000000..5dbf5eea
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/1-introduction.md
@@ -0,0 +1,42 @@
+GitHub Actions Importer is designed to help you forecast, plan, and facilitate migrations from your current CI/CD tool to GitHub Actions.
+
+Doing individual migrations is relatively easy in isolation. However, if you have a large and established CI/CD footprint, having a tool capable to assist with migrations is key to your ability to adopt GitHub Actions at scale.
+
+## Learning objectives
+
+In this module you will:
+
+- Learn about the two distinct phases of a GitHub Actions Importer migration and the phases' associated commands
+- Run through a mock migration lab exercise for one of the supported CI/CD platforms listed below
+
+## Prerequisites
+
+- A GitHub account
+- Prior working knowledge of GitHub Actions
+- Organizational access to one of the supported CI/CD platforms below
+
+## Important notes
+
+As you'll learn from this module, you can use GitHub Actions Importer to plan and automatically migrate your CI/CD pipelines to GitHub Actions from the following supported platforms:
+
+- Azure DevOps
+- CircleCI
+- GitLab
+- Jenkins
+- Travis CI
+
+It is imperative to review every workflow that is converted by the GitHub Actions Importer for correctness before using it as a production workload.
+
+The goal is to achieve an 80% conversion rate for every workflow, but like all things, the actual conversion rate will depend on your specific makeup of your pipelines.
+
+To set expectations, it is important to note that there are a couple of things that won't be automatically migrated when you use GitHub Actions Importer.
+
+#### What is *not* automatically migrated:
+
+- Secrets and encrypted values
+- Self-hosted build agents
+- Historical packages
+- Permissions for CI/CD pipelines
+- Less commonly used build steps or build triggers
+
+Now, let's dive into how to install GitHub Actions Importer and ensure it is up to date.
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/2-Learn-about-the-three-distinct-phases-of-a-GitHub-Actions-Importer-migration-and-their-associated-commands.md b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/2-Learn-about-the-three-distinct-phases-of-a-GitHub-Actions-Importer-migration-and-their-associated-commands.md
new file mode 100644
index 00000000..83075092
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/2-Learn-about-the-three-distinct-phases-of-a-GitHub-Actions-Importer-migration-and-their-associated-commands.md
@@ -0,0 +1,146 @@
+In the following lab exericse you will be provided step-by-step guidelines on how to run all four commands for each of the supported CI/CD platforms.
+
+But in the meantime, in this unit we will be reviewing the three phases of a GitHub Actions Importer Migration: **planning, testing,** and **migrating** and their associated commands.
+
+- We’ll walk through the **planning phase** of your migration and introduce you to the:
+ - The ```audit```
+ - And the ```forecast``` commands
+- Then we'll introduce you to the **testing phase**, which includes
+ - The ```dry-run``` command
+ - As well as custom transformers
+- And for the **migration phase**, we’ll introduce you to the ```migration``` command.
+- And we will round things out with a review of what is not automatically migrated over with GitHub Actions Importer.
+
+But for now, let’s start with the planning phase of your migration.
+
+## The planning phase
+
+The planning phase of a migration typically starts with an analysis of your existing CI/CD usage and approach, which includes addressing such questions as:
+
+- How many pipelines are currently defined?
+- What is the typical makeup of these pipelines? Are they defined using out-of-the-box tasks, or is the product being extended to - provide custom behavior?
+- Which pipelines are the highest priority to be migrated? Should any pipelines not be migrated?
+- What type and how many runners are being used? What mix of GitHub-hosted and self-hosted runners should you select when migrating?
+
+If you find yourself leaving these questions unanswered, fear not, GitHub Actions Importer can help you find out your answers to these questions with its commands.
+
+Let's get started with getting to know the ```audit``` command.
+
+### What is the audit command?
+In this section we’ll be going over the basics of the ```audit``` command with GitHub Actions Importer.
+
+The ```audit``` command does the following:
+- Fetches all of the pipelines defined in a specified scope of the existing CI/CD environment
+- Attempts a conversion of these pipelines to their equivalent Actions workflow
+- Writes a summary report with statistics gathered from the audit
+
+The ```audit``` command is designed to help analyze the complexity of a potential migration, which can be used to formulate a migration plan.
+
+Running an audit on the command line will look something like this:
+```
+$ gh actions-importer audit jenkins --output-dir
+```
+
+Once you initiate the command it will provide an Audit summary report.
+
+Let’s go over the details the Audit summary report will provide you.
+
+#### What is in an Audit summary report?
+
+There are four sections of the Audit summary:
+
+- **Pipelines:** This section contains high-level aggregated statistics on GitHub Actions Importer’s ability to migrate the targeted pipeline automatically.
+- **Build steps:** This section presents an aggregated summary of the individual build steps that are used across all of the target pipelines and how many could be converted automatically.
+- **Manual tasks:** This section presents an overview of the manual tasks that can be identified.
+- **File manifest:** The final section of the audit summary report provides a manifest of all the files generated during the audit.
+
+:::image type="content" source="../media/Audit_summary.jpg" alt-text="Audit summary for an Jenkins instance with sections of Pipelines and Job types.":::
+
+Next, let's get into the ```forecast``` command.
+
+### What is the forecast command?
+
+In this section we’ll be reviewing the ```forecast``` command and walking through a Forecast report.
+
+The ```forecast``` command fetches jobs that have been completed over a specified time period and uses that data to calculate usage metrics.
+
+Running a forecast on the command line will look something like the image below.
+
+:::image type="content" source="../media/Forecast_report.jpg" alt-text="Forecast report for Jenkins with Job count, Pipeline count, Execution time, Queue time, and Concurrent jobs sections.":::
+
+
+#### What is in a Forecast report?
+
+The Forecast report includes these metrics:
+
+- **Job count:** The total number of completed jobs.
+- **Pipeline count:** The number of unique pipelines used.
+- **Execution time:** The amount of time a runner spent on a job. This metric can be used to help set expectations for the cost of GitHub-hosted runners.
+- **Queue time:** The amount of time a job spent waiting for a runner to be available.
+- **Concurrent jobs:** The number of jobs running at any given time. This metric can be used to understand the number of concurrent runners necessary at current levels.
+
+Additionally, these metrics are presented for each runner queue defined in the source CI/CD system. This is useful if you will need a mix of hosted and self-hosted runners and/or if you use a mix of platforms.
+
+In the next section, we’ll be diving into the ```dry-run``` command.
+
+## The testing phase
+
+The testing phase of a GitHub Actions Importer migration allows you test run what your mirgration will look like.
+
+By using the ```dry-run``` command you can see what might not be automatically converted and utilize custom transformers to convert items into your new GitHub environment.
+
+Let's first review the ```dry-run``` command.
+
+### What is the dry-run command?
+
+In this section we will review what the ```dry-run``` command does.
+
+You can use the ```dry-run``` command to convert an existing pipeline to its equivalent GitHub Actions workflow.
+
+The console output of the command will list the path to the file or files that GitHub Actions Importer generated. Before migrating, you should perform a dry-run of a pipeline and validate the contents are suitable.
+
+If the conversion of a pipeline was only “partially successful” (that is, it included tasks that could not be converted automatically), the task that was not converted will be included in a commented section.
+
+If you have "partially successful" items you can utilize custom transformers to extend GitHub Actions Importer's mapping logic.
+
+Let's touch upon custom transformers in our next section.
+
+### Custom transformers
+
+A custom transformer contains mapping logic that GitHub Actions Importer can use to transform your plugins, tasks, runner labels, or environment variables to work with GitHub Actions.
+
+Custom transformers can be used to:
+- Convert items that GitHub Actions Importer does not automatically convert, or modify how items are converted.
+- Convert references to runners to use different runner labels.
+- Convert environment variable values from your existing pipelines to GitHub Actions workflows.
+
+Once you have built custom transformers for your items that needed to be converted into your new environment, the next step is to finally migrate.
+
+Next up, we'll be tackling how to migrate your environment.
+
+## The migration phase
+
+You can use the ```migrate``` command to convert an existing pipeline to its equivalent action and open a pull request with the converted workflows and associated files.
+
+```
+$ gh actions-importer migrate jenkins --source-url $SOURCE_URL –target-url $TARGET_URL --output-dir
+```
+
+Any necessary manual tasks will be included in the description of the pull request. Once these manual tasks and the code reviews are complete, the pull request can be merged and the workflow will have been successfully migrated to GitHub Actions.
+
+:::image type="content" source="../media/PR_for_Migration.jpg" alt-text="New PR once a migration is completed.":::
+
+Now, let’s take a moment to review and dive a bit deeper into what is not automatically migrated with GitHub Actions Importer.
+
+### Understand what is not migrated automatically
+
+GitHub Actions Importer cannot migrate everything. It’s important to be mindful of its limitations, which include:
+
+- **Secrets and encrypted values** are not automatically converted to repository secrets. References to secrets will be converted into context expressions and populating these values will be a manual task.
+- **Self-hosted build agents** are not automatically converted to self-hosted runners. Determining whether to use GitHub-hosted runners or create equivalent self-hosted runners will be a manual task. References to these self-hosted runners will be converted to the same set of labels in a ```needs``` statement in the resulting workflow.
+- **Historical packages** are not migrated to GitHub Packages. Any steps that publish or consume pipeline artifacts and caches will be converted using the equivalent actions.
+- **Permissions for CI/CD pipelines** are not migrated automatically and will need to be manually configured.
+- **Build steps or build triggers** that are less commonly used may not be automatically converted by GitHub Actions Importer. This can be a factor for migrations involving Azure DevOps, Jenkins, and CircleCI, all of which can be extended through marketplace customizations.
+
+
+Like we had mentioned earlier, the upcoming [lab exercise](https://github.com/actions/importer-labs) will provide step-by-step guidelines on how to run all four commands for each of the supported CI/CD platforms. Let's go there next!
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/3-exercise.md b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/3-exercise.md
new file mode 100644
index 00000000..dc777501
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/3-exercise.md
@@ -0,0 +1,17 @@
+This exercise will walk you through how to utilize the four GitHub Action Importer commands within one of the supported CI/CD platforms.
+
+## Getting started
+
+When you click the _Start the exercise on GitHub_ button below, you'll be navigated to a public GitHub template repository that will prompt you to complete a series of small challenges. Before you can begin the exercise, complete the below tasks:
+
+- Follow the instructions in the repository's README to understand how the exercise works and select your preferred CI/CD platform you would like to utilize.
+
+When you've finished the exercise in GitHub, return here for:
+
+> [!div class="checklist"]
+> * A quick knowledge check
+> * A summary of what you've learned
+> * To earn a badge for completing this module
+
+> [!div class="nextstepaction"]
+> [Start the exercise on GitHub](https://github.com/actions/importer-labs)
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/5-summary.md b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/5-summary.md
new file mode 100644
index 00000000..4020de33
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/includes/5-summary.md
@@ -0,0 +1,15 @@
+In this module you learned about GitHub Actions Importer, how to ensure it is up to date, its supported CI/CD platforms, the commands you can run on it, and what might not be migrated automatically from your previous CI/CD environment.
+
+You learned about:
+- Learn about the two distinct phases of a GitHub Actions Importer migration and the phases' associated commands
+- Run through a mock migration lab exercise for one of the supported CI/CD platforms listed below
+
+## Learn more
+
+Here are some links to more information on the topics we discussed in this module:
+- [Automating migration with GitHub Actions Importer](https://docs.github.com/en/actions/migrating-to-github-actions/automating-migration-with-github-actions-importer)
+- [GitHub Actions Importer labs](https://github.com/actions/importer-labs/tree/main#readme)
+
+## How to provide feedback ✍️
+
+If you have content feedback or suggested changes for a Microsoft Learn module, please use the [MS Learn Module Update Request](https://github.com/githubpartners/microsoft-learn/issues/new/choose) issue form to provide that feedback and a team member will triage the request. Thank you for taking the time to improve our content!
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/index.yml b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/index.yml
new file mode 100644
index 00000000..529eff77
--- /dev/null
+++ b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/index.yml
@@ -0,0 +1,41 @@
+### YamlMime:Module
+uid: learn.migrate-cicd-pipelines-to-github-with-github-actions-importer
+metadata:
+ title: Migrate your CICD pipelines to GitHub with GitHub Actions Importer
+ description: Learn about GitHub Actions Importer and how it can help facilitate migrations from your current CI/CD tool to GitHub Actions.
+ ms.date: 1/10/2023
+ author: a-a-ron
+ ms.author: aastewar
+ ms.topic: interactive-tutorial
+ ms.prod: learning-azure
+title: Migrate your CICD pipelines to GitHub with GitHub Actions Importer
+summary: Learn about GitHub Actions Importer and how it can help facilitate migrations from your current CI/CD tool to GitHub Actions.
+abstract: |
+ By the end of this module, you'll be able to:
+ - Review how to install the GitHub Actions Importer CLI Extension and ensure it's up-to-date
+ - Understand the GitHub Actions Importer commands: audit, forecast, dry-run, and migrate as well as learn what is not automatically migrated
+ - Run through a mock migration lab exercise for a supported CI platform
+prerequisites: |
+ - A GitHub account
+ - Prior working knowledge of GitHub Actions
+ - Organizational access to one of the supported CI/CD platforms below
+ - Ability to execute the accompanying labs exercises within Codespaces
+iconUrl: /learn/achievements/generic-badge.svg
+levels:
+ - intermediate
+roles:
+ - dev-ops engineer
+ - developer
+products:
+- github
+subjects:
+ - cloud-computing
+units:
+- learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.introduction
+- learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.How-to-install,-update,-and-configure-GitHub-Actions-Importer
+- learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.How-run-GitHub-Actions-Importer-commands
+- learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.exercise
+- learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.knowledge-check
+- learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.summary
+badge:
+ uid: learn.migrate-cicd-pipelines-to-github-with-github-actions-importer.badge
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Audit_summary.jpg b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Audit_summary.jpg
new file mode 100644
index 00000000..bc255110
Binary files /dev/null and b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Audit_summary.jpg differ
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Build_steps.jpg b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Build_steps.jpg
new file mode 100644
index 00000000..06ef6cde
Binary files /dev/null and b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Build_steps.jpg differ
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Forecast_report.jpg b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Forecast_report.jpg
new file mode 100644
index 00000000..539510b9
Binary files /dev/null and b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Forecast_report.jpg differ
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Manual_tasks.jpg b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Manual_tasks.jpg
new file mode 100644
index 00000000..82f09c33
Binary files /dev/null and b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/Manual_tasks.jpg differ
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/PR_for_Migration.png b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/PR_for_Migration.png
new file mode 100644
index 00000000..6a193ce2
Binary files /dev/null and b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/PR_for_Migration.png differ
diff --git a/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/github.png b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/github.png
new file mode 100644
index 00000000..85bd50c8
Binary files /dev/null and b/github/migrate-cicd-pipelines-to-github-with-github-actions-importer/media/github.png differ
diff --git a/github/search-organize-repository-history-github/1-introduction.yml b/github/search-organize-repository-history-github/1-introduction.yml
index a3a2ca97..ef8d6a9d 100644
--- a/github/search-organize-repository-history-github/1-introduction.yml
+++ b/github/search-organize-repository-history-github/1-introduction.yml
@@ -5,8 +5,8 @@ metadata:
title: Introduction
description: "Learn to search and organize repository history by using filters, blame, and cross-linking on GitHub."
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 2
diff --git a/github/search-organize-repository-history-github/2-search-organize-repository-history-github.yml b/github/search-organize-repository-history-github/2-search-organize-repository-history-github.yml
index 8436bd78..1a2d62ec 100644
--- a/github/search-organize-repository-history-github/2-search-organize-repository-history-github.yml
+++ b/github/search-organize-repository-history-github/2-search-organize-repository-history-github.yml
@@ -5,8 +5,8 @@ metadata:
title: How to search and organize repository history by using GitHub
description: "Learn to search and organize repository history by using filters, blame, and cross-linking on GitHub."
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 8
diff --git a/github/search-organize-repository-history-github/3-connect-dots.yml b/github/search-organize-repository-history-github/3-connect-dots.yml
index 59ee486d..48eb0e0b 100644
--- a/github/search-organize-repository-history-github/3-connect-dots.yml
+++ b/github/search-organize-repository-history-github/3-connect-dots.yml
@@ -5,8 +5,8 @@ metadata:
title: Exercise - Connect the dots in a GitHub repository
description: "Learn to search and organize repository history by using filters, blame, and cross-linking on GitHub."
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 24
diff --git a/github/search-organize-repository-history-github/4-knowledge-check.yml b/github/search-organize-repository-history-github/4-knowledge-check.yml
index 7e70c8bf..4e1845b7 100644
--- a/github/search-organize-repository-history-github/4-knowledge-check.yml
+++ b/github/search-organize-repository-history-github/4-knowledge-check.yml
@@ -5,8 +5,8 @@ metadata:
title: Knowledge check
description: Check what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 3
diff --git a/github/search-organize-repository-history-github/5-summary.yml b/github/search-organize-repository-history-github/5-summary.yml
index a67b1533..0b8a33f7 100644
--- a/github/search-organize-repository-history-github/5-summary.yml
+++ b/github/search-organize-repository-history-github/5-summary.yml
@@ -5,8 +5,8 @@ metadata:
title: Summary
description: Review what you've learned.
ms.date: 06/26/2020
- author: tpetchel
- ms.author: thpetche
+ author: a-a-ron
+ ms.author: aastewar
ms.topic: interactive-tutorial
ms.prod: learning-azure
durationInMinutes: 1
diff --git a/github/search-organize-repository-history-github/includes/1-introduction.md b/github/search-organize-repository-history-github/includes/1-introduction.md
index 24da01cf..d51bbe3a 100644
--- a/github/search-organize-repository-history-github/includes/1-introduction.md
+++ b/github/search-organize-repository-history-github/includes/1-introduction.md
@@ -1,6 +1,6 @@
GitHub projects support virtually unlimited scale. The upside of this scale is that your projects can grow to include countless files, commits, issues, pull requests, and more. The downside is, well, the same.
-Suppose you are a developer working on a rapidly growing project. As more contributors come on board, they're able to add features and fix bugs at an incredible rate. However, every one of those changes likely includes a lot of contextual information buried in issues, discussions, commits, and pull requests. While that information seems fresh in everyone's mind at the time, the risk of losing that context as time passes could cost you some significant productivity down the road. What happens when a bug is reported that traces back to work that hasn't been touched for more than a year? Fortunately, GitHub offers a few ways to help you quickly ramp up for any task.
+Suppose you're a developer working on a rapidly growing project. As more contributors come on board, they're able to add features and fix bugs at an incredible rate. However, every one of those changes likely includes a lot of contextual information buried in issues, discussions, commits, and pull requests. While that information seems fresh in everyone's mind at the time, the risk of losing that context as time passes could cost you some significant productivity down the road. What happens when a bug is reported that traces back to work that hasn't been touched for more than a year? Fortunately, GitHub offers a few ways to help you quickly ramp up for any task.
In this module, you'll learn how to search and organize repository history by using filters, blame, and cross-linking on GitHub.
@@ -8,9 +8,9 @@ In this module, you'll learn how to search and organize repository history by us
In this module, you'll:
-- Find relevant issues and pull requests
-- Search history to find context
-- Make connections within GitHub to help others find things
+- Find relevant issues and pull requests.
+- Search history to find context.
+- Make connections within GitHub to help others find things.
## Prerequisites
@@ -19,6 +19,6 @@ In this module, you'll:
This module covers the process of finding and organizing information on GitHub. To fully appreciate the benefits this module discusses, we recommend that you complete the following modules first:
-- [Introduction to GitHub](/learn/modules/introduction-to-github)
-- [Manage software delivery by using a release based workflow on GitHub](/learn/modules/release-based-workflow-github)
-- [Manage repository changes by using pull requests on GitHub](/learn/modules/manage-changes-pull-requests-github)
\ No newline at end of file
+- [Introduction to GitHub](/training/modules/introduction-to-github)
+- [Manage software delivery by using a release based workflow on GitHub](/training/modules/release-based-workflow-github)
+- [Manage repository changes by using pull requests on GitHub](/training/modules/manage-changes-pull-requests-github)
diff --git a/github/search-organize-repository-history-github/includes/2-search-organize-repository-history-github.md b/github/search-organize-repository-history-github/includes/2-search-organize-repository-history-github.md
index d3e62259..fb22bbf2 100644
--- a/github/search-organize-repository-history-github/includes/2-search-organize-repository-history-github.md
+++ b/github/search-organize-repository-history-github/includes/2-search-organize-repository-history-github.md
@@ -8,17 +8,17 @@ As a new team member, you're not yet familiar with the codebase. You also haven'
Although you weren't around for the events that led to the sidebar's implementation, many of those events live on in the project's history. Searching the project's repository for "sidebar" will give you a starting point.
-There are two search methods available on GitHub: the global search at the top of the page, and the scoped search available on certain repository tabs. They support the same syntax and function in the same way, with some key differences.
+There are two search methods available on GitHub: the global search at the top of the page, and the scoped search available on certain repository tabs. They support the same syntax and function in the same way, but with some key differences.
### Global search
The global search lets you use [the complete search syntax](https://help.github.com/github/searching-for-information-on-github/searching-on-github?azure-portal=true) to search across all of GitHub.
-
+
The search results are comprehensive and include everything from code to issues to the Marketplace (and even users). This is the best way to find mentions of key terms across multiple result types and repositories.
-
+
> [!NOTE]
> The filter clause `is:pr` filters out issues returned from the issues/pull requests store. Some filter clauses, such as `is:pr`, are only supported by certain search providers and ignored by others. For example, the code-search provider doesn't support that clause, so it will ignore it and return the same code results either way.
@@ -31,13 +31,13 @@ To craft a complex global search, try the [advanced search](https://github.com/s
Context searches are available on certain tabs, such as **Issues** and **Pull requests**. These searches are scoped into the current repository and only return results of that type. The benefit to this scoping is that it allows the user interface to expose known type-specific filters, such as authors, labels, projects, and more.
-
+
Using the context search is the preferred option when you're looking for something in the current repository. In our scenario, this would be a good way to find search results mentioning "sidebar," which you could then easily refine using the filter dropdowns.
### Using search filters
-There are an infinite number of ways to search using [the complete search syntax](https://help.github.com/github/searching-for-information-on-github/searching-on-github?azure-portal=true). However, most searches only make use of a few common filters. While these are often available from context search dropdowns, it's sometimes more convenient to type them in directly.
+There are an infinite number of ways to search using [the complete search syntax](https://docs.github.com/en/search-github/getting-started-with-searching-on-github/about-searching-on-github). However, most searches only make use of a few common filters. While these are often available from context search dropdowns, it's sometimes more convenient to type them in directly.
Here are some example filter queries:
@@ -52,7 +52,7 @@ Learn more about [Understanding the search syntax](https://help.github.com/en/gi
## What is git blame?
-Despite its ominous name, `git blame` is a command that displays the commit history for a file. It makes it easy for you to see who made what changes and when. This makes it a lot easier to track down other people who have worked on a file in order to seek out their input or participation.
+Despite its ominous name, `git blame` is a command that displays the commit history for a file. It makes it easy for you to see who made what changes and when. This makes it much easier to track down other people who have worked on a file in order to seek out their input or participation.
> [!NOTE]
> Some Git systems alias `git praise` onto `git blame` to avoid the implication of judgment.
@@ -61,9 +61,9 @@ Despite its ominous name, `git blame` is a command that displays the commit hist
GitHub extends the basic `git blame` functionality with a more robust user interface.
-
+
-In our scenario, there are a few ways you might get to this view. You might have found some sidebar code from the global search and selected the **Blame** option to see who worked on it last. Or maybe you found a pull request and tracked that back to the last commit that seems related to the bug description. However you got here, the blame view is an effective way to locate a subject matter expert for the task at hand.
+In our scenario, there are a few ways you might get to this view. You might've found some sidebar code from the global search and selected the **Blame** option to see who worked on it last. Or maybe you found a pull request and tracked that back to the last commit that seems related to the bug description. However you got here, the blame view is an effective way to locate a subject matter expert for the task at hand.
## Cross-linking issues, commits, and more
@@ -73,11 +73,11 @@ Part of what makes GitHub great for collaborative software projects is its suppo
To make it even easier to cross-link different items throughout your project, GitHub offers a shorthand syntax. For example, if you leave a comment like `Duplicate of #8`, GitHub will recognize that #8 is an issue and create the appropriate link for you.
-
+
GitHub also links commits for you if you paste in the first seven or more characters of its ID.
-
+
In our scenario, these links could prove very valuable for ramping up if someone thought ahead to leave the context. For example, the current state of the sidebar may have had some known issues related to a JavaScript dependency. If the issue with that dependency was discussed in another issue that didn't explicitly mention "sidebar", then it would be difficult to find. However, if someone had thought ahead to link the issue in the discussion, then it could save you a lot of time now. Keep that in mind the next time you're documenting issues and pull requests.
@@ -87,4 +87,4 @@ Learn more about [Autolinked references and URLs](https://help.github.com/en/git
Besides linking issues and commits, it's often helpful to associate other people with discussions. The easiest way to do this is by using an `@mention`. This kind of mention notifies the mentioned user so that they can participate in the discussion. It's also a good way to identify people associated with issues long after they have been closed.
-
+
diff --git a/github/search-organize-repository-history-github/includes/3-connect-dots.md b/github/search-organize-repository-history-github/includes/3-connect-dots.md
index beb13a66..e7040ad5 100644
--- a/github/search-organize-repository-history-github/includes/3-connect-dots.md
+++ b/github/search-organize-repository-history-github/includes/3-connect-dots.md
@@ -2,10 +2,9 @@ This exercise checks your knowledge on the ability to search and organize your r
## Getting started
-When you click the _Start the exercise on GitHub_ button below, you'll be navigated to a public GitHub template repository that will prompt you to complete a series of small challenges. Before you can begin the exercise, complete the below tasks:
+When you select the **Start the exercise on GitHub** button below, you'll be directed to a public GitHub template repository that will prompt you to complete a series of small challenges. Before you can begin the exercise, complete the below tasks:
-- Select the _Start course_ button or the _Use this template_ feature within the template repository. This will prompt you to create a new repository. We recommend creating a public repository, as private repositories will use Actions minutes.
-After you make your own repository from the template, wait about 20 seconds and refresh.
+- Select the **Start course** button or the **Use this template** feature within the template repository. This will prompt you to create a new repository. We recommend creating a public repository, as private repositories will use Actions minutes. After you make your own repository from the template, wait about 20 seconds and refresh.
- Follow the instructions in the repository's README to understand how the exercise works, its learning objectives, and how to successfully complete the exercise.
@@ -17,9 +16,8 @@ When you've finished the exercise in GitHub, return here for:
> * To earn a badge for completing this module
>[!Note]
-> You do not need to modify any of the workflow files to complete this exercise.
-> **Altering the contents in this workflow can break the exercise's**
-> **ability to validate your actions, provide feedback, or grade the results**.
+> You do not need to modify any of the workflow files to complete this exercise.
+> **Altering the contents in this workflow can break the exercise's ability to validate your actions, provide feedback, or grade the results**.
> [!div class="nextstepaction"]
> [Start the exercise on GitHub](https://github.com/skills/connect-the-dots?azure-portal=true)
diff --git a/github/search-organize-repository-history-github/includes/5-summary.md b/github/search-organize-repository-history-github/includes/5-summary.md
index 7282ca0c..333bc551 100644
--- a/github/search-organize-repository-history-github/includes/5-summary.md
+++ b/github/search-organize-repository-history-github/includes/5-summary.md
@@ -6,14 +6,14 @@ You learned about:
- Searching history to find context
- Making connections within GitHub to help others find things
-Now that you're familiar with finding and organizing information on GitHub, learn to [Maintain a secure repository by using GitHub best practices](/learn/modules/maintain-secure-repository-github/).
+Now that you're familiar with finding and organizing information on GitHub, learn to [Maintain a secure repository by using GitHub best practices](/training/modules/maintain-secure-repository-github/).
## Learn more
Here are some links to more information on the topics we discussed in this module.
-- [Searching on GitHub](https://help.github.com/github/searching-for-information-on-github/searching-on-github?azure-portal=true)
+- [Searching on GitHub](https://docs.github.com/en/search-github/getting-started-with-searching-on-github/about-searching-on-github)
- [Understanding the search syntax](https://help.github.com/github/searching-for-information-on-github/understanding-the-search-syntax?azure-portal=true)
- [git blame documentation](https://git-scm.com/docs/git-blame?azure-portal=true)
-- [Tracking changes in a file](https://help.github.com/github/managing-files-in-a-repository/tracking-changes-in-a-file?azure-portal=true)
-- [Autolinked references and URLs](https://help.github.com/github/writing-on-github/autolinked-references-and-urls?azure-portal=true)
+- [View files and track file changes](https://docs.github.com/en/repositories/working-with-files/using-files/viewing-a-file)
+- [Autolinked references and URLs](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls)
diff --git a/github/search-organize-repository-history-github/index.yml b/github/search-organize-repository-history-github/index.yml
index 97684a96..a2eba059 100644
--- a/github/search-organize-repository-history-github/index.yml
+++ b/github/search-organize-repository-history-github/index.yml
@@ -3,7 +3,7 @@ uid: learn.github.search-organize-repository-history-github
metadata:
title: "Search and organize repository history by using GitHub"
description: "Learn to search and organize repository history by using filters, blame, and cross-linking on GitHub."
- ms.date: 07/08/2022
+ ms.date: 10/18/2022
author: a-a-ron
ms.author: aastewar
ms.topic: interactive-tutorial
@@ -18,7 +18,7 @@ abstract: |
prerequisites: |
- A GitHub account
- The ability to navigate and edit files in GitHub
-iconUrl: /learn/achievements/github/search-organize-repository-history-github.svg
+iconUrl: /training/achievements/github/search-organize-repository-history-github.svg
ratingEnabled: true
levels:
- beginner