From b25761466aaa2fa9ee394cb2ef348d0b969751c0 Mon Sep 17 00:00:00 2001 From: a-a-ron Date: Wed, 24 May 2023 08:58:37 -0600 Subject: [PATCH 01/90] Add scaffolding for codespaces module --- github/github-codespaces/1-introduction.yml | 25 +++++ .../github-codespaces/2-learning-content.yml | 25 +++++ .../github-codespaces/4-learning-content.yml | 25 +++++ github/github-codespaces/5-exercise.yml | 25 +++++ .../github-codespaces/6-knowledge-check.yml | 95 ++++++++++++++++ github/github-codespaces/7-summary.yml | 25 +++++ .../includes/1-introduction.md | 62 +++++++++++ .../includes/2-learning-content.md | 78 +++++++++++++ .../github-codespaces/includes/3-exercise.md | 104 ++++++++++++++++++ .../includes/4-learning-content.md | 78 +++++++++++++ .../github-codespaces/includes/5-exercise.md | 104 ++++++++++++++++++ .../github-codespaces/includes/7-summary.md | 69 ++++++++++++ github/github-codespaces/index.yml | 51 +++++++++ github/github-codespaces/media/2621760.png | Bin 0 -> 24074 bytes 14 files changed, 766 insertions(+) create mode 100644 github/github-codespaces/1-introduction.yml create mode 100644 github/github-codespaces/2-learning-content.yml create mode 100644 github/github-codespaces/4-learning-content.yml create mode 100644 github/github-codespaces/5-exercise.yml create mode 100644 github/github-codespaces/6-knowledge-check.yml create mode 100644 github/github-codespaces/7-summary.yml create mode 100644 github/github-codespaces/includes/1-introduction.md create mode 100644 github/github-codespaces/includes/2-learning-content.md create mode 100644 github/github-codespaces/includes/3-exercise.md create mode 100644 github/github-codespaces/includes/4-learning-content.md create mode 100644 github/github-codespaces/includes/5-exercise.md create mode 100644 github/github-codespaces/includes/7-summary.md create mode 100644 github/github-codespaces/index.yml create mode 100644 github/github-codespaces/media/2621760.png diff --git a/github/github-codespaces/1-introduction.yml b/github/github-codespaces/1-introduction.yml new file mode 100644 index 00000000..4ec8cdb5 --- /dev/null +++ b/github/github-codespaces/1-introduction.yml @@ -0,0 +1,25 @@ +### YamlMime:ModuleUnit +uid: learn.github-codespaces.introduction +title: Introduction +metadata: + title: introduction + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +content: | + [!include[](includes/1-introduction.md)] \ No newline at end of file diff --git a/github/github-codespaces/2-learning-content.yml b/github/github-codespaces/2-learning-content.yml new file mode 100644 index 00000000..aeb06549 --- /dev/null +++ b/github/github-codespaces/2-learning-content.yml @@ -0,0 +1,25 @@ +### YamlMime:ModuleUnit +uid: learn.github-codespaces.learning-content +title: Enter learning content title +metadata: + title: learning-content + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +content: | + [!include[](includes/2-learning-content.md)] \ No newline at end of file diff --git a/github/github-codespaces/4-learning-content.yml b/github/github-codespaces/4-learning-content.yml new file mode 100644 index 00000000..1656a399 --- /dev/null +++ b/github/github-codespaces/4-learning-content.yml @@ -0,0 +1,25 @@ +### YamlMime:ModuleUnit +uid: learn.github-codespaces.learning-content +title: Enter learning content title +metadata: + title: learning-content + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +content: | + [!include[](includes/4-learning-content.md)] \ No newline at end of file diff --git a/github/github-codespaces/5-exercise.yml b/github/github-codespaces/5-exercise.yml new file mode 100644 index 00000000..bc115a59 --- /dev/null +++ b/github/github-codespaces/5-exercise.yml @@ -0,0 +1,25 @@ +### YamlMime:ModuleUnit +uid: learn.github-codespaces.exercise +title: Enter exercise title +metadata: + title: exercise + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +content: | + [!include[](includes/5-exercise.md)] \ No newline at end of file diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml new file mode 100644 index 00000000..32f80061 --- /dev/null +++ b/github/github-codespaces/6-knowledge-check.yml @@ -0,0 +1,95 @@ +### YamlMime:ModuleUnit +uid: learn.github-codespaces.knowledge-check +title: Knowledge check +metadata: + title: Knowledge check + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +########################################################################### +### +### General guidance (https://review.docs.microsoft.com/learn-docs/docs/id-guidance-knowledge-check) +###  - Questions are complete sentences ending with a question mark +###  - No true/false questions +###  - 3 answers per question +###  - All answers about the same length +###  - Numeric answers listed in sorted order +###  - No "All of the above" and/or "None of the above" as answer choices +###  - No "Not" or "Except" in questions +###  - No second person ("you") in the questions or answers +###  - Provide a meaningful explanation for both correct and incorrect answers +### +########################################################################### +content: | +quiz: + questions: + - content: "" + choices: + - content: "" + isCorrect: true + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + choices: + - content: "" + isCorrect: true + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + choices: + - content: "" + isCorrect: true + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + choices: + - content: "" + isCorrect: true + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + choices: + - content: "" + isCorrect: true + explanation: "" + - content: "" + isCorrect: false + explanation: "" + - content: "" + isCorrect: false + explanation: "" \ No newline at end of file diff --git a/github/github-codespaces/7-summary.yml b/github/github-codespaces/7-summary.yml new file mode 100644 index 00000000..766fe42f --- /dev/null +++ b/github/github-codespaces/7-summary.yml @@ -0,0 +1,25 @@ +### YamlMime:ModuleUnit +uid: learn.github-codespaces.summary +title: Summary +metadata: + title: summary + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +content: | + [!include[](includes/7-summary.md)] \ No newline at end of file diff --git a/github/github-codespaces/includes/1-introduction.md b/github/github-codespaces/includes/1-introduction.md new file mode 100644 index 00000000..d8a47c35 --- /dev/null +++ b/github/github-codespaces/includes/1-introduction.md @@ -0,0 +1,62 @@ + +TODO: add your topic sentences(s) +TODO: add a visual element + + +## Example scenario +TODO: add your scenario +TODO: add a visual element + + +## What will we be doing? +TODO: add your activities + + +## What is the main goal? +By the end of this session, you'll be able to (TODO) + + \ No newline at end of file diff --git a/github/github-codespaces/includes/2-learning-content.md b/github/github-codespaces/includes/2-learning-content.md new file mode 100644 index 00000000..ed3dc218 --- /dev/null +++ b/github/github-codespaces/includes/2-learning-content.md @@ -0,0 +1,78 @@ + +TODO: add your topic sentences(s) + + +TODO: add your scenario sub-task + + +TODO: write your prose table-of-contents + + +TODO: add a visual element + + + + +## H2 heading +Strong lead sentence; remainder of paragraph. +Paragraph (optional) +Visual (image, table, list, code sample, blockquote) +Paragraph (optional) +Paragraph (optional) + + +## H2 heading +Strong lead sentence; remainder of paragraph. +Visual (image, table, list) +### H3 heading +Strong lead sentence; remainder of paragraph. +Paragraph (optional) +Visual (image, table, list) +Paragraph (optional) +### H3 heading +Strong lead sentence; remainder of paragraph. +Paragraph (optional) +Visual (image, table, list) +Paragraph (optional) + + + + \ No newline at end of file diff --git a/github/github-codespaces/includes/3-exercise.md b/github/github-codespaces/includes/3-exercise.md new file mode 100644 index 00000000..4ed600b3 --- /dev/null +++ b/github/github-codespaces/includes/3-exercise.md @@ -0,0 +1,104 @@ + +TODO: add your topic sentences(s) + + +TODO: add your scenario sub-task +TODO: add your scenario image + + +TODO: describe the end-state + + + +## (Chunk 1 heading) + +1. +1. +1. + +## (Chunk 2 heading) + +1. +1. +1. + +## (Chunk n heading) + +1. +1. +1. + + + +## Check your work + +1. +1. +1. +Optional "exercise-solution" video + + + + diff --git a/github/github-codespaces/includes/4-learning-content.md b/github/github-codespaces/includes/4-learning-content.md new file mode 100644 index 00000000..ed3dc218 --- /dev/null +++ b/github/github-codespaces/includes/4-learning-content.md @@ -0,0 +1,78 @@ + +TODO: add your topic sentences(s) + + +TODO: add your scenario sub-task + + +TODO: write your prose table-of-contents + + +TODO: add a visual element + + + + +## H2 heading +Strong lead sentence; remainder of paragraph. +Paragraph (optional) +Visual (image, table, list, code sample, blockquote) +Paragraph (optional) +Paragraph (optional) + + +## H2 heading +Strong lead sentence; remainder of paragraph. +Visual (image, table, list) +### H3 heading +Strong lead sentence; remainder of paragraph. +Paragraph (optional) +Visual (image, table, list) +Paragraph (optional) +### H3 heading +Strong lead sentence; remainder of paragraph. +Paragraph (optional) +Visual (image, table, list) +Paragraph (optional) + + + + \ No newline at end of file diff --git a/github/github-codespaces/includes/5-exercise.md b/github/github-codespaces/includes/5-exercise.md new file mode 100644 index 00000000..4ed600b3 --- /dev/null +++ b/github/github-codespaces/includes/5-exercise.md @@ -0,0 +1,104 @@ + +TODO: add your topic sentences(s) + + +TODO: add your scenario sub-task +TODO: add your scenario image + + +TODO: describe the end-state + + + +## (Chunk 1 heading) + +1. +1. +1. + +## (Chunk 2 heading) + +1. +1. +1. + +## (Chunk n heading) + +1. +1. +1. + + + +## Check your work + +1. +1. +1. +Optional "exercise-solution" video + + + + diff --git a/github/github-codespaces/includes/7-summary.md b/github/github-codespaces/includes/7-summary.md new file mode 100644 index 00000000..9e55e9a2 --- /dev/null +++ b/github/github-codespaces/includes/7-summary.md @@ -0,0 +1,69 @@ + +TODO: restate the scenario problem + + +TODO: add your lead-in sentence(s) +TODO: add your list of techniques used to solve the scenario problem + + +TODO: describe the experience without the product + + +TODO: describe the business impact + + + + diff --git a/github/github-codespaces/index.yml b/github/github-codespaces/index.yml new file mode 100644 index 00000000..b85e333a --- /dev/null +++ b/github/github-codespaces/index.yml @@ -0,0 +1,51 @@ +### YamlMime:Module +uid: learn.github-codespaces +metadata: + title: github-codespaces + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the module; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: module-standard-task-based # Please don't edit, used for our analytics +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +title: github-codespaces +summary: "TODO 2 sentences, 20-35 words, don't teach or motivate, avoid using 'learn', don't duplicate the title; see https://review.docs.microsoft.com/help/learn/id-guidance-introductory-summaries?branch=main" +abstract: | + By the end of this module, you'll be able to: + - "TODO learning objective 1" + - "TODO learning objective 2" + - "TODO learning objective 3 (if needed; see https://review.docs.microsoft.com/help/learn/id-guidance-learning-objectives?branch=main)" +prerequisites: | + - "TODO prerequisite 1" + - "TODO prerequisite 2" + - "TODO prerequisite 3 (if needed; see https://review.docs.microsoft.com/help/learn/id-guidance-prerequisites?branch=main" +iconUrl: /learn/achievements/generic-badge.svg +levels: # see level taxonomy https://review.docs.microsoft.com/help/contribute/metadata-taxonomies?branch=main#level + - TODO +roles: # see role taxonomy https://review.docs.microsoft.com/help/contribute/metadata-taxonomies?branch=main#role + - TODO +products: # see product taxonomy https://review.docs.microsoft.com/help/contribute/metadata-taxonomies?branch=main#product +- github +subjects: # see subject taxonomy https://review.docs.microsoft.com/help/contribute/metadata-taxonomies?branch=main#subject + - TODO +units: +- learn.github-codespaces.introduction +- learn.github-codespaces.learning-content +- learn.github-codespaces.exercise +- learn.github-codespaces.learning-content +- learn.github-codespaces.exercise +- learn.github-codespaces.knowledge-check +- learn.github-codespaces.summary +badge: + uid: learn.github-codespaces.badge \ No newline at end of file diff --git a/github/github-codespaces/media/2621760.png b/github/github-codespaces/media/2621760.png new file mode 100644 index 0000000000000000000000000000000000000000..b21e0774b05be1ef5e7e5b5a89e9cbee9748806d GIT binary patch literal 24074 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 Date: Wed, 24 May 2023 09:16:50 -0600 Subject: [PATCH 02/90] Remove unit --- .../github-codespaces/includes/3-exercise.md | 104 ------------------ 1 file changed, 104 deletions(-) delete mode 100644 github/github-codespaces/includes/3-exercise.md diff --git a/github/github-codespaces/includes/3-exercise.md b/github/github-codespaces/includes/3-exercise.md deleted file mode 100644 index 4ed600b3..00000000 --- a/github/github-codespaces/includes/3-exercise.md +++ /dev/null @@ -1,104 +0,0 @@ - -TODO: add your topic sentences(s) - - -TODO: add your scenario sub-task -TODO: add your scenario image - - -TODO: describe the end-state - - - -## (Chunk 1 heading) - -1. -1. -1. - -## (Chunk 2 heading) - -1. -1. -1. - -## (Chunk n heading) - -1. -1. -1. - - - -## Check your work - -1. -1. -1. -Optional "exercise-solution" video - - - - From fbfe55632472a80b07ea52c818daaa2dfa9b26d0 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 15 Jun 2023 15:54:15 -0400 Subject: [PATCH 03/90] Update 1-introduction.md --- .../includes/1-introduction.md | 78 ++++--------------- 1 file changed, 16 insertions(+), 62 deletions(-) diff --git a/github/github-codespaces/includes/1-introduction.md b/github/github-codespaces/includes/1-introduction.md index d8a47c35..e9a67adb 100644 --- a/github/github-codespaces/includes/1-introduction.md +++ b/github/github-codespaces/includes/1-introduction.md @@ -1,62 +1,16 @@ - -TODO: add your topic sentences(s) -TODO: add a visual element - - -## Example scenario -TODO: add your scenario -TODO: add a visual element - - -## What will we be doing? -TODO: add your activities - - -## What is the main goal? -By the end of this session, you'll be able to (TODO) - - \ No newline at end of file +# About GitHub Codespace +GitHub Codespace is a development environment hosted in the cloud making the workspace available from any computer with access to the internet. Codespace contains common languages, tools, and utilities for software development. + +## Learning objectives: +- In this module, you will learn how to: +- Describe what is GitHub Codespaces +- Start a GitHub Codespace +- Describe the Codespace lifecycle and how to do each step +- Describe the different customizations you can personalize with GitHub Codespaces +- Explain how to add and configure dev containers +- Add an "Open in GitHub Codespaces" badge to a README file + +## Pre-requisites +- A GitHub Account +- Access to a GitHub organization +- Knowledge of basic computer code terminology and concepts From a41141b3ead4d9d4ac782ed1e5d707dc97bfed3b Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 15 Jun 2023 15:56:57 -0400 Subject: [PATCH 04/90] Create 7-learning-content.md --- github/github-codespaces/includes/7-learning-content.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 github/github-codespaces/includes/7-learning-content.md diff --git a/github/github-codespaces/includes/7-learning-content.md b/github/github-codespaces/includes/7-learning-content.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/github/github-codespaces/includes/7-learning-content.md @@ -0,0 +1 @@ + From 079dde2c2b2ee2409937f4e8492c3ca62598e81e Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 15 Jun 2023 15:57:59 -0400 Subject: [PATCH 05/90] Create 7-learning-content.yml --- github/github-codespaces/7-learning-content.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 github/github-codespaces/7-learning-content.yml diff --git a/github/github-codespaces/7-learning-content.yml b/github/github-codespaces/7-learning-content.yml new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/github/github-codespaces/7-learning-content.yml @@ -0,0 +1 @@ + From b1a60498edef1c0e5cf9d36bf6f756b03414175b Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 15 Jun 2023 15:58:29 -0400 Subject: [PATCH 06/90] Update 7-learning-content.yml --- .../github-codespaces/7-learning-content.yml | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/github/github-codespaces/7-learning-content.yml b/github/github-codespaces/7-learning-content.yml index 8b137891..8db9ae49 100644 --- a/github/github-codespaces/7-learning-content.yml +++ b/github/github-codespaces/7-learning-content.yml @@ -1 +1,25 @@ - +### YamlMime:ModuleUnit +uid: learn.github-codespaces.learning-content +title: Enter learning content title +metadata: + title: learning-content + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +content: | + [!include[](includes/2-learning-content.md)] From 44db16270d22f76ca122c5f13de6e84125aa4c53 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 11:24:41 -0400 Subject: [PATCH 07/90] Rename 2-learning-content.md to 2-Codespace-Lifecycle.md Changed heading to match new content. --- .../{2-learning-content.md => 2-Codespace-Lifecycle.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/github-codespaces/includes/{2-learning-content.md => 2-Codespace-Lifecycle.md} (98%) diff --git a/github/github-codespaces/includes/2-learning-content.md b/github/github-codespaces/includes/2-Codespace-Lifecycle.md similarity index 98% rename from github/github-codespaces/includes/2-learning-content.md rename to github/github-codespaces/includes/2-Codespace-Lifecycle.md index ed3dc218..9e2546e2 100644 --- a/github/github-codespaces/includes/2-learning-content.md +++ b/github/github-codespaces/includes/2-Codespace-Lifecycle.md @@ -75,4 +75,4 @@ Paragraph (optional) - \ No newline at end of file + From 3b3d21c54723679ff72b3a0b29cccaecd8359b7f Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 11:25:49 -0400 Subject: [PATCH 08/90] Rename 2-learning-content.yml to 2-Codespace-Lifecycle.yml Changed file name to reflect content --- .../{2-learning-content.yml => 2-Codespace-Lifecycle.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/github-codespaces/{2-learning-content.yml => 2-Codespace-Lifecycle.yml} (96%) diff --git a/github/github-codespaces/2-learning-content.yml b/github/github-codespaces/2-Codespace-Lifecycle.yml similarity index 96% rename from github/github-codespaces/2-learning-content.yml rename to github/github-codespaces/2-Codespace-Lifecycle.yml index aeb06549..8db9ae49 100644 --- a/github/github-codespaces/2-learning-content.yml +++ b/github/github-codespaces/2-Codespace-Lifecycle.yml @@ -22,4 +22,4 @@ metadata: ms.service: TODO durationInMinutes: 1 content: | - [!include[](includes/2-learning-content.md)] \ No newline at end of file + [!include[](includes/2-learning-content.md)] From 9e0e332b9f150b190b42193d77cd851f9113ad63 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 11:26:43 -0400 Subject: [PATCH 09/90] Rename 2-Codespace-Lifecycle.md to 2-codespace-lifecycle.md --- .../{2-Codespace-Lifecycle.md => 2-codespace-lifecycle.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{2-Codespace-Lifecycle.md => 2-codespace-lifecycle.md} (100%) diff --git a/github/github-codespaces/includes/2-Codespace-Lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md similarity index 100% rename from github/github-codespaces/includes/2-Codespace-Lifecycle.md rename to github/github-codespaces/includes/2-codespace-lifecycle.md From 9e12ab6234641d98056a81be5356bbf482744599 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 11:27:09 -0400 Subject: [PATCH 10/90] Rename 2-Codespace-Lifecycle.yml to 2-codespace-lifecycle.yml --- .../{2-Codespace-Lifecycle.yml => 2-codespace-lifecycle.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/{2-Codespace-Lifecycle.yml => 2-codespace-lifecycle.yml} (100%) diff --git a/github/github-codespaces/2-Codespace-Lifecycle.yml b/github/github-codespaces/2-codespace-lifecycle.yml similarity index 100% rename from github/github-codespaces/2-Codespace-Lifecycle.yml rename to github/github-codespaces/2-codespace-lifecycle.yml From 9b729c27f0cee7b9e8ddec08408e2f8be6357227 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 13:12:30 -0400 Subject: [PATCH 11/90] Update 2-codespace-lifecycle.md New content for content lifecycle. --- .../includes/2-codespace-lifecycle.md | 142 +++++++++++------- 1 file changed, 87 insertions(+), 55 deletions(-) diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index 9e2546e2..8582bd4f 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -1,78 +1,110 @@ - -TODO: add your topic sentences(s) +Let’s review the difference between the two in the next section. +GitHub.dev vs GitHub Codespace +The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. +Both github.dev and GitHub Codespaces allow you to edit your code straight from your repository. However, both have slightly different benefits, depending on your use case. - -TODO: add your scenario sub-task +- From a GitHub template or any template repository on GitHub.com to start a new project +- From a branch in your repository for new feature work +- From an open pull request to explore work-in-progress +- From a commit in a repository's history to investigate a bug at a specific point in time - -TODO: write your prose table-of-contents +When creating a new Codespace each time you work on a project, you should regularly push your changes to ensure that any new commits are on GitHub. When using a long-running Codespace for a new project, pull from the repository's default branch each time you start working in Codespace, This will enable the environment to have the latest commits. The workflow is very similar to working with a project on a local machine. - -TODO: add a visual element +### VM and storage are assigned to your Codespace +When creating a Codespace, a shallow clone is made of either the current repository or of the template repository if you're creating a Codespace from a template. A shadow clone is a repository created by limiting the depth of the history that duplicates from an original repository. The shallow clone enables you to have full root container access. - +Since your repository is cloned onto the host VM before the container is created, anything in the git template directory will not apply in your Codespace unless you set up hooks in your devcontainer.json configuration file using the postCreateCommand - -## H2 heading -Strong lead sentence; remainder of paragraph. -Paragraph (optional) -Visual (image, table, list, code sample, blockquote) -Paragraph (optional) -Paragraph (optional) +### Connecting to a Codespace +After container creation and any other initialization has run, you can connect to Codespace one of the following four methods. +- Web browser +- Visual studio code +- JetBrains IDE +- GitHub CLI - -## H2 heading -Strong lead sentence; remainder of paragraph. -Visual (image, table, list) -### H3 heading -Strong lead sentence; remainder of paragraph. -Paragraph (optional) -Visual (image, table, list) -Paragraph (optional) -### H3 heading -Strong lead sentence; remainder of paragraph. -Paragraph (optional) -Visual (image, table, list) -Paragraph (optional) +### Post-creation setup +Once the Codespace connection is complete, the automated setup process may continue to build based on the configuration specified in the devcontainer.json file. You may see postCreateCommand and postAttachCommand run after connection completion. - +Once you have the Codespace complete, you may want to use Git hooks in your Codespace or set up hooks using the devcontainer.json lifecycle scripts, such as postCreateCommand. + +You can enable a public dotfile repository using Codespaces. When implemented, your dotfiles will be cloned to the container and will invoke the install script. - +When creating a Codespace from a repository, the repository’s entire history is copied down with a full clone. If creating a Codespace from a template, the full history of the template repository is not preserved, unless you are using the blank template. You will start with an initial commit for the contents of the template repository. + +**NOTE: During post-creation setup, you'll still be able to use the integrated terminal and make edits to your files, but take care to avoid any race conditions between your work and the commands that are running.** + +## Saving changes in a Codespace +When you connect to a Codespace through the web, auto-save is automatically enabled to save changes after a specific amount of time has passed. When you connect to a Codespace through Visual Studio Code running on your desktop, you must enable auto-save. + +Your work will save to a virtual machine in the cloud. You can close and stop a Codespace and return to the saved work at a later time. If you have unsaved changes, you’ll receive a prompt to save them before exiting. However, if your Codespace is deleted, then your work will be lost. To save your work, you must commit your changes and push them to your remote repository or publish your work to a new one if you created your Codespace from a template. + +## Timeouts for a Codespace +If Codespace is inactive, or if you exit your Codespace without explicitly stopping, the application times out after a period of inactivity and stops running. The default timeout is after 30 minutes of inactivity. You cannot customize the duration of the timeout period for new Codespaces. + +When a Codespace times out, your data is kept from the last time your changes were saved. + +## Closing or stopping a Codespace +If you exit the Codespace without running the stop command (for example, by closing the browser tab) or leave the Codespace running without interaction, the Codespace and its running processes continue for the duration of the inactivity timeout period. The default inactivity timeout period is 30 minutes. You can define your personal timeout setting for Codespaces you create, but this may be overruled by an organization timeout policy. + +Only running Codespaces incur CPU charges. A stopped Codespace incurs only storage costs. + +You can stop and restart a Codespace to apply changes. For example, if you change the machine type used for your Codespace, you will need to stop and restart it for the change to take effect. When you close or stop your Codespace, all uncommitted changes are preserved until you connect to the Codespace again. + +**NOTE: You can also stop Codespace and choose to restart or delete it if you encounter an error or something unexpected.** + +## Rebuilding a Codespace +You can rebuild your Codespace to implement changes to your dev container configuration. For most uses, you can create a new Codespace as an alternative to rebuilding a Codespace. When you rebuild your Codespace, images from the cache speed up the rebuild process. You could also perform a full rebuild to clear the cache and rebuilds the container with fresh images. + +**NOTE: When you rebuild the container in a Codespace, changes you made outside the /workspaces directory are cleared. Changes you made inside the /workspaces directory, including the clone of the repository or template you created the Codespace from, are preserved over a rebuild.** + +## Deleting a Codespace +You can create a Codespace for a particular task. After you push your changes to a remote branch, then you can safely delete that Codespace. + +If you try to delete a Codespace with unpushed git commits, the editor will notify you that you have changes that have not been pushed to a remote branch. You can push any desired changes and then delete your Codespace. You can also continue to delete your Codespace and any uncommitted changes or export the code to a new branch without creating a new Codespace. + +Stopped Codespaces that remain inactive for a specified amount of time will be deleted automatically. Inactive Codespaces delete after 30 days, but you can customize your Codespace retention intervals. From 7e05febe547df6ec70f8b35b3181a95f2c2f94db Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 13:14:30 -0400 Subject: [PATCH 12/90] Rename 4-learning-content.md to 3-managing.codespace.md Change .md file to reflect content, --- .../includes/{4-learning-content.md => 3-managing.codespace.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/github-codespaces/includes/{4-learning-content.md => 3-managing.codespace.md} (98%) diff --git a/github/github-codespaces/includes/4-learning-content.md b/github/github-codespaces/includes/3-managing.codespace.md similarity index 98% rename from github/github-codespaces/includes/4-learning-content.md rename to github/github-codespaces/includes/3-managing.codespace.md index ed3dc218..9e2546e2 100644 --- a/github/github-codespaces/includes/4-learning-content.md +++ b/github/github-codespaces/includes/3-managing.codespace.md @@ -75,4 +75,4 @@ Paragraph (optional) - \ No newline at end of file + From 0de7f75ff2469b3fa1a33ad6a508fe6480390bc7 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 13:16:39 -0400 Subject: [PATCH 13/90] Rename 4-learning-content.yml to 3-managing.codespace..yml Renamed .yml file to reflect the .md name change to keep consistent --- .../{4-learning-content.yml => 3-managing.codespace..yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/github-codespaces/{4-learning-content.yml => 3-managing.codespace..yml} (96%) diff --git a/github/github-codespaces/4-learning-content.yml b/github/github-codespaces/3-managing.codespace..yml similarity index 96% rename from github/github-codespaces/4-learning-content.yml rename to github/github-codespaces/3-managing.codespace..yml index 1656a399..258ecd47 100644 --- a/github/github-codespaces/4-learning-content.yml +++ b/github/github-codespaces/3-managing.codespace..yml @@ -22,4 +22,4 @@ metadata: ms.service: TODO durationInMinutes: 1 content: | - [!include[](includes/4-learning-content.md)] \ No newline at end of file + [!include[](includes/4-learning-content.md)] From 728f8b26b33867606069b16a173949c60abe83bd Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 13:18:49 -0400 Subject: [PATCH 14/90] Rename 3-managing.codespace..yml to 3-managing.codespace.yml --- .../{3-managing.codespace..yml => 3-managing.codespace.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/{3-managing.codespace..yml => 3-managing.codespace.yml} (100%) diff --git a/github/github-codespaces/3-managing.codespace..yml b/github/github-codespaces/3-managing.codespace.yml similarity index 100% rename from github/github-codespaces/3-managing.codespace..yml rename to github/github-codespaces/3-managing.codespace.yml From 29d88a83776f8b0c48477a61b291e1e12ffebe27 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:00:18 -0400 Subject: [PATCH 15/90] Update 3-managing.codespace.md --- .../includes/3-managing.codespace.md | 95 ++++++++----------- 1 file changed, 37 insertions(+), 58 deletions(-) diff --git a/github/github-codespaces/includes/3-managing.codespace.md b/github/github-codespaces/includes/3-managing.codespace.md index 9e2546e2..3581e9ee 100644 --- a/github/github-codespaces/includes/3-managing.codespace.md +++ b/github/github-codespaces/includes/3-managing.codespace.md @@ -1,78 +1,57 @@ - -TODO: add your topic sentences(s) +If you want to make Codespaces more robust over rebuilds and across different Codespaces, you have several options. - -TODO: add your scenario sub-task +When an application running inside a GitHub Codespace outputs a port to the console, GitHub Codespace detects the localhost URL pattern and automatically forwards the port. You can click on the URL in the terminal, or the link in the "toast" notification message that pops up at the bottom right corner of VS Code, to open the port in a browser. By default, GitHub Codespace forwards the port using HTTP. - -TODO: write your prose table-of-contents +**NOTE: If you have an unstable internet connection, you should frequently commit and push your changes.** - -TODO: add a visual element +GitHub Codespace is designed to be a short-lived clone of the UAT (user acceptance testing) or production environment. Use Codespace to create an isolated environment to: +- experiment +- check a teammate's pull request +- fix merge conflicts - +## Personalizing your Codespace with extensions or plugins +You can add plugins and extensions within a Codespace to personalize your experience in JetBrains and VS Code. +### VS Code extensions +If you work on your Codespaces in the VS Code desktop application or the web client, you can add any extensions you need from the Visual Studio Code Marketplace. For information on how extensions run in GitHub Codespaces, see Supporting Remote Development and GitHub Codespaces in the VS Code documentation. - -## H2 heading -Strong lead sentence; remainder of paragraph. -Paragraph (optional) -Visual (image, table, list, code sample, blockquote) -Paragraph (optional) -Paragraph (optional) - - -## H2 heading -Strong lead sentence; remainder of paragraph. -Visual (image, table, list) -### H3 heading -Strong lead sentence; remainder of paragraph. -Paragraph (optional) -Visual (image, table, list) -Paragraph (optional) -### H3 heading -Strong lead sentence; remainder of paragraph. -Paragraph (optional) -Visual (image, table, list) -Paragraph (optional) - - - - +If you already use VS Code, you can use Settings Sync to automatically sync extensions, settings, themes, and keyboard shortcuts between your local instance and any Codespaces you create. +## JetBrains plugins +If you work on your codespaces in a JetBrains IDE, you can add plugins from the JetBrains Marketplace. From 41e408f5a0f233843dd87157180439dc673f96ab Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:02:21 -0400 Subject: [PATCH 16/90] Delete 7-learning-content.md Didn't need this file --- github/github-codespaces/includes/7-learning-content.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 github/github-codespaces/includes/7-learning-content.md diff --git a/github/github-codespaces/includes/7-learning-content.md b/github/github-codespaces/includes/7-learning-content.md deleted file mode 100644 index 8b137891..00000000 --- a/github/github-codespaces/includes/7-learning-content.md +++ /dev/null @@ -1 +0,0 @@ - From 50a6b08bac018d84ededcc9c6640ef277080d866 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:03:53 -0400 Subject: [PATCH 17/90] Rename 5-exercise.md to 4-exercise.md change file name to reflect outline --- .../github-codespaces/includes/{5-exercise.md => 4-exercise.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{5-exercise.md => 4-exercise.md} (100%) diff --git a/github/github-codespaces/includes/5-exercise.md b/github/github-codespaces/includes/4-exercise.md similarity index 100% rename from github/github-codespaces/includes/5-exercise.md rename to github/github-codespaces/includes/4-exercise.md From bd7fd264e4b6fd80cb6ec818e9dfcc3203c0a189 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:04:29 -0400 Subject: [PATCH 18/90] Rename 5-exercise.yml to 4-exercise.yml --- github/github-codespaces/{5-exercise.yml => 4-exercise.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/github-codespaces/{5-exercise.yml => 4-exercise.yml} (97%) diff --git a/github/github-codespaces/5-exercise.yml b/github/github-codespaces/4-exercise.yml similarity index 97% rename from github/github-codespaces/5-exercise.yml rename to github/github-codespaces/4-exercise.yml index bc115a59..e4179c17 100644 --- a/github/github-codespaces/5-exercise.yml +++ b/github/github-codespaces/4-exercise.yml @@ -22,4 +22,4 @@ metadata: ms.service: TODO durationInMinutes: 1 content: | - [!include[](includes/5-exercise.md)] \ No newline at end of file + [!include[](includes/5-exercise.md)] From 90f1a4b55a2f33121c2ec422fd415f542728b77c Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:05:11 -0400 Subject: [PATCH 19/90] Delete 7-learning-content.yml No longer needed this file. --- .../github-codespaces/7-learning-content.yml | 25 ------------------- 1 file changed, 25 deletions(-) delete mode 100644 github/github-codespaces/7-learning-content.yml diff --git a/github/github-codespaces/7-learning-content.yml b/github/github-codespaces/7-learning-content.yml deleted file mode 100644 index 8db9ae49..00000000 --- a/github/github-codespaces/7-learning-content.yml +++ /dev/null @@ -1,25 +0,0 @@ -### YamlMime:ModuleUnit -uid: learn.github-codespaces.learning-content -title: Enter learning content title -metadata: - title: learning-content - description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." - ms.date: 5/24/2023 - author: a-a-ron - ms.author: aastewar - ms.topic: interactive-tutorial -########################################################################### -### -### If your content is related to a product or service, apply one value from the either the ms.prod allowlist -### or the ms.service allowlist. You can’t use both ms.prod and ms.service. -### -### If your content isn't about a product or service, you can omit both ms.prod and ms.service. -### -### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod -### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice -### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main - ms.prod: TODO - ms.service: TODO -durationInMinutes: 1 -content: | - [!include[](includes/2-learning-content.md)] From 31be8bc7c15a9588f2ea443c7f419d5abf3fbbe3 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:06:44 -0400 Subject: [PATCH 20/90] Create 5-knowledge-check.md --- github/github-codespaces/includes/5-knowledge-check.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 github/github-codespaces/includes/5-knowledge-check.md diff --git a/github/github-codespaces/includes/5-knowledge-check.md b/github/github-codespaces/includes/5-knowledge-check.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/github/github-codespaces/includes/5-knowledge-check.md @@ -0,0 +1 @@ + From 2853a1756006b50aa0e513bdfe49aca49ebf1f3c Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:07:13 -0400 Subject: [PATCH 21/90] Rename 7-summary.md to 6-summary.md --- github/github-codespaces/includes/{7-summary.md => 6-summary.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{7-summary.md => 6-summary.md} (100%) diff --git a/github/github-codespaces/includes/7-summary.md b/github/github-codespaces/includes/6-summary.md similarity index 100% rename from github/github-codespaces/includes/7-summary.md rename to github/github-codespaces/includes/6-summary.md From 5d56b53ffdbce50c5d70cf785afbe144e04c8519 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:10:53 -0400 Subject: [PATCH 22/90] Update 4-exercise.md --- .../github-codespaces/includes/4-exercise.md | 105 +----------------- 1 file changed, 1 insertion(+), 104 deletions(-) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index 4ed600b3..87bbfff4 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -1,104 +1 @@ - -TODO: add your topic sentences(s) - - -TODO: add your scenario sub-task -TODO: add your scenario image - - -TODO: describe the end-state - - - -## (Chunk 1 heading) - -1. -1. -1. - -## (Chunk 2 heading) - -1. -1. -1. - -## (Chunk n heading) - -1. -1. -1. - - - -## Check your work - -1. -1. -1. -Optional "exercise-solution" video - - - - +## Exercise From d8a17d0022019a48bfbbf61da145a6189de483ab Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:30:58 -0400 Subject: [PATCH 23/90] Update 6-summary.md --- .../github-codespaces/includes/6-summary.md | 70 +------------------ 1 file changed, 1 insertion(+), 69 deletions(-) diff --git a/github/github-codespaces/includes/6-summary.md b/github/github-codespaces/includes/6-summary.md index 9e55e9a2..7aaa3495 100644 --- a/github/github-codespaces/includes/6-summary.md +++ b/github/github-codespaces/includes/6-summary.md @@ -1,69 +1 @@ - -TODO: restate the scenario problem - - -TODO: add your lead-in sentence(s) -TODO: add your list of techniques used to solve the scenario problem - - -TODO: describe the experience without the product - - -TODO: describe the business impact - - - - +## Summary From b05bbd5fb5542575b2670635f9075d632e800d8e Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:31:34 -0400 Subject: [PATCH 24/90] Rename 6-knowledge-check.yml to 5-knowledge-check.yml --- .../{6-knowledge-check.yml => 5-knowledge-check.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/github-codespaces/{6-knowledge-check.yml => 5-knowledge-check.yml} (99%) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/5-knowledge-check.yml similarity index 99% rename from github/github-codespaces/6-knowledge-check.yml rename to github/github-codespaces/5-knowledge-check.yml index 32f80061..b92215f3 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/5-knowledge-check.yml @@ -92,4 +92,4 @@ quiz: explanation: "" - content: "" isCorrect: false - explanation: "" \ No newline at end of file + explanation: "" From 70303db08425d776ca66ff6b98fb2b922ae6f9ac Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 14:32:54 -0400 Subject: [PATCH 25/90] Rename 7-summary.yml to 6-summary.yml --- github/github-codespaces/{7-summary.yml => 6-summary.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/github-codespaces/{7-summary.yml => 6-summary.yml} (97%) diff --git a/github/github-codespaces/7-summary.yml b/github/github-codespaces/6-summary.yml similarity index 97% rename from github/github-codespaces/7-summary.yml rename to github/github-codespaces/6-summary.yml index 766fe42f..3b36389b 100644 --- a/github/github-codespaces/7-summary.yml +++ b/github/github-codespaces/6-summary.yml @@ -22,4 +22,4 @@ metadata: ms.service: TODO durationInMinutes: 1 content: | - [!include[](includes/7-summary.md)] \ No newline at end of file + [!include[](includes/7-summary.md)] From da746713924f4e790e5b7f94b54b4bad855e542c Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Mon, 19 Jun 2023 15:27:08 -0400 Subject: [PATCH 26/90] Update 4-exercise.md --- github/github-codespaces/includes/4-exercise.md | 1 + 1 file changed, 1 insertion(+) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index 87bbfff4..d00f7563 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -1 +1,2 @@ ## Exercise + From e1a2183a2125febfc48e201ef4c067d1cb5caf2d Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Tue, 20 Jun 2023 14:18:32 -0400 Subject: [PATCH 27/90] Update 4-exercise.md Updated link to existing exercise. --- .../github-codespaces/includes/4-exercise.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index d00f7563..b434d6f1 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -1,2 +1,21 @@ ## Exercise +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](https://github.com/skills/code-with-codespaces)https://github.com/skills/code-with-codespaces) + + From 7e5bbd23124ffb724c206b4430b994d2a9d8a828 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:02:47 -0400 Subject: [PATCH 28/90] Update 4-exercise.md Updated exercise file to contain CodeSpace information --- .../github-codespaces/includes/4-exercise.md | 42 +++++++++++++------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index b434d6f1..64ad1361 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -1,12 +1,33 @@ -## Exercise +# Code with GitHub Codespaces and Visual Studio Code +Create workflows that enable you to use Continuous Integration (CI) for your projects. + +## Welcome +GitHub Codespaces is a development environment that's hosted in the cloud. + +Who this is for: +- Developers, DevOps Engineers, Engineering Managers, Product Managers. +- What you'll learn: How to create a codespace, push code from a codespace, select a custom image, and customize a codespace. +- What you'll build: A codespace with devcontainer.json files, customizations, and personalizations. +- Prerequisites: If you need to learn about Visual Studio Code, read Visual Studio Code Docs first. +- How long: This course can be completed in less than an hour. + +In this course, you will: +- Create your first codespace +- Add a custom image +- Customize your codespace +- Personalize your codespace + +## How to start this course + +1. Right-click Start course and open the link in a new tab. + - In the new tab, most of the prompts will automatically fill in for you. + - For owner, choose your personal account or an organization to host the repository. + - We recommend creating a public repository, as private repositories will use Actions minutes. +2. Scroll down and click the Create repository button at the bottom of the form. +3. After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README. -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. +> [!div class="nextstepaction"] +> [Start the exercise on GitHub](https://github.com/skills/code-with-codespaces]) When you've finished the exercise in GitHub, return here for: @@ -14,8 +35,3 @@ When you've finished the exercise in GitHub, return here for: > * 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](https://github.com/skills/code-with-codespaces)https://github.com/skills/code-with-codespaces) - - From 249f71c57d37500b7ff3fcae1ce82b117d63261e Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:03:52 -0400 Subject: [PATCH 29/90] Update 4-exercise.md --- github/github-codespaces/includes/4-exercise.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index 64ad1361..e9a117f4 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -27,7 +27,7 @@ In this course, you will: 3. After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README. > [!div class="nextstepaction"] -> [Start the exercise on GitHub](https://github.com/skills/code-with-codespaces]) +> [Start the exercise on GitHub]([https://github.com/skills/code-with-codespaces]) When you've finished the exercise in GitHub, return here for: From 61997b8b0d19f9be6abbb6bcffe13d93b67cda6d Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:05:25 -0400 Subject: [PATCH 30/90] Update 4-exercise.md --- github/github-codespaces/includes/4-exercise.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index e9a117f4..120bda9c 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -27,7 +27,7 @@ In this course, you will: 3. After your new repository is created, wait about 20 seconds, then refresh the page. Follow the step-by-step instructions in the new repository's README. > [!div class="nextstepaction"] -> [Start the exercise on GitHub]([https://github.com/skills/code-with-codespaces]) +> [Start the exercise on GitHub](https://github.com/skills/code-with-codespaces) When you've finished the exercise in GitHub, return here for: From fb5873e63fc5687f8f1d520f6aa1c283933eadea Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:08:18 -0400 Subject: [PATCH 31/90] Update 4-exercise.md --- github/github-codespaces/includes/4-exercise.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index 120bda9c..d03ff7db 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -19,7 +19,9 @@ In this course, you will: ## How to start this course -1. Right-click Start course and open the link in a new tab. +https://github.com/new?template_owner=skills&template_name=code-with-codespaces&owner=%40me&name=skills-code-with-codespaces&description=My+clone+repository&visibility=public + +1. Right-click Start course hyperlink and open the link in a new tab. - In the new tab, most of the prompts will automatically fill in for you. - For owner, choose your personal account or an organization to host the repository. - We recommend creating a public repository, as private repositories will use Actions minutes. From bc9b41766f881d14ed41abb59e8043ac80187124 Mon Sep 17 00:00:00 2001 From: Aaron Stewart Date: Wed, 21 Jun 2023 04:38:05 +0000 Subject: [PATCH 32/90] Small review changes to introduction.mg --- github/github-codespaces/includes/1-introduction.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/github/github-codespaces/includes/1-introduction.md b/github/github-codespaces/includes/1-introduction.md index e9a67adb..93cb3094 100644 --- a/github/github-codespaces/includes/1-introduction.md +++ b/github/github-codespaces/includes/1-introduction.md @@ -1,16 +1,17 @@ # About GitHub Codespace -GitHub Codespace is a development environment hosted in the cloud making the workspace available from any computer with access to the internet. Codespace contains common languages, tools, and utilities for software development. +GitHub Codespaces is a fully configured development environment hosted in the cloud. By using GitHub Codespaces, your workspace, along with all of your configured development environments, is available from any computer with access to the internet. GitHub Codespaces contains common languages, tools, and utilities for software development. ## Learning objectives: -- In this module, you will learn how to: + +In this module, you will learn how to: + - Describe what is GitHub Codespaces -- Start a GitHub Codespace -- Describe the Codespace lifecycle and how to do each step +- Identify how to start a new GitHub Codespace +- Describe the Codespace lifecycle and how to perform each step - Describe the different customizations you can personalize with GitHub Codespaces - Explain how to add and configure dev containers - Add an "Open in GitHub Codespaces" badge to a README file ## Pre-requisites - A GitHub Account -- Access to a GitHub organization - Knowledge of basic computer code terminology and concepts From ec2f856c48578db996033329b4ffb78ded92fa32 Mon Sep 17 00:00:00 2001 From: Aaron Stewart Date: Wed, 21 Jun 2023 05:13:47 +0000 Subject: [PATCH 33/90] Add images to 2-codespaces-lifecycle --- .../includes/2-codespace-lifecycle.md | 5 +++++ .../media/codespaces-diagram.png | Bin 0 -> 77061 bytes .../media/codespaces-lifecycle.png | Bin 0 -> 170245 bytes 3 files changed, 5 insertions(+) create mode 100644 github/github-codespaces/media/codespaces-diagram.png create mode 100644 github/github-codespaces/media/codespaces-lifecycle.png diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index 8582bd4f..506e62db 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -23,6 +23,8 @@ Both github.dev and GitHub Codespaces allow you to edit your code straight from A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it. You can disconnect and reconnect to an active Codespace without affecting its running processes. You can stop and restart a Codespace without losing the changes that you have made to your project. +:::image type="content" source="../media/codespaces-lifecycle.png" alt-text="Image of a circular lifecyle of a codespace that starts with creating and ends with deleting."::: + ## Creating a Codespace You can create a Codespace on GitHub.com, in Visual Studio Code, or by GitHub CLI. There are four ways to create a Codespace: @@ -42,6 +44,9 @@ When creating a new Codespace each time you work on a project, you should regula Repository administrators can enable GitHub Codespaces prebuilds for a repository to speed up Codespace creation. ## Codespace creation process + +:::image type="content" source="../media/codespaces-diagram.png" alt-text="Diagram of a github codespace and how it connects from your code editor and into a docker container."::: + When creating a GitHub Codespace, four processes must occur: 1. VM and storage are assigned to your Codespace 2. A container is created diff --git a/github/github-codespaces/media/codespaces-diagram.png b/github/github-codespaces/media/codespaces-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..cdc5705c518b62d22550a4f113a0c2740b8bfc12 GIT binary patch literal 77061 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ℑ7x{wluSQV|Ji5a@H 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 z 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 EUl|q4EC2ui literal 0 HcmV?d00001 diff --git a/github/github-codespaces/media/codespaces-lifecycle.png b/github/github-codespaces/media/codespaces-lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..dcfe2710e66371241ebf64e941206d0b629c2122 GIT binary patch literal 170245 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

Oye^uh)hizym?q1`q+N8^*cU3 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%0AQ3^4_T%h@~xEzpOPjWN@i448YVVsaDdw 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%0D6l`#anfPmefGd4*YG=p6R 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 b Date: Wed, 21 Jun 2023 05:31:00 +0000 Subject: [PATCH 34/90] Add changes --- .../includes/3-managing.codespace.md | 10 +++++----- github/github-codespaces/includes/4-exercise.md | 1 + .../github-codespaces/media/port-forwarding.png | Bin 0 -> 72207 bytes 3 files changed, 6 insertions(+), 5 deletions(-) create mode 100644 github/github-codespaces/media/port-forwarding.png diff --git a/github/github-codespaces/includes/3-managing.codespace.md b/github/github-codespaces/includes/3-managing.codespace.md index 3581e9ee..421d3264 100644 --- a/github/github-codespaces/includes/3-managing.codespace.md +++ b/github/github-codespaces/includes/3-managing.codespace.md @@ -1,16 +1,16 @@ ## Codespace directory structure -After creating a Codespace, the clone is placed into the /workspaces directory. This is a persistent directory placed into the container. Any changes you make inside this directory, including editing, adding, deleting files, and rebuilding the container are preserved when you stop and restart the Codespace. +After creating a Codespace, the clone is placed into the `/workspaces` directory. This is a persistent directory placed into the container. Any changes you make inside this directory, including editing, adding, deleting files, and rebuilding the container are preserved when you stop and restart the Codespace. -Outside the /workspaces directory, your Codespace contains a Linux directory structure that varies depending on the image used to build your Codespace. You can add files or make changes to files outside the /workspaces directory. For example, you can install new programs, or set up your shell configuration in a file such as ~/.bashrc. As a non-root user, you may not automatically have write access to certain directories. Most images allow root access to these directories with the sudo command. +Outside the `/workspaces` directory, your Codespace contains a Linux directory structure that varies depending on the image used to build your Codespace. You can add files or make changes to files outside the `/workspaces` directory. For example, you can install new programs, or set up your shell configuration in a file such as `~/.bashrc`. As a non-root user, you may not automatically have write access to certain directories. Most images allow root access to these directories with the sudo command. -Outside /workspaces, except the /tmp directory, Codespace directories are linked to the container’s lifecycle. Any changes are preserved when you stop and start your Codespace but are not preserved when you rebuild the container. +Outside `/workspaces`, except the `/tmp` directory, Codespace directories are linked to the container’s lifecycle. Any changes are preserved when you stop and start your Codespace but are not preserved when you rebuild the container. -Clearing the directories outside /workspaces ensures the rebuilt container is in the same state as it would be in a newly created Codespace. If rebuilding a container to apply configuration changes to the Codespace you're working in, any changes you have made will work the same for users creating new Codespaces with the same configuration. +Clearing the directories outside `/workspaces` ensures the rebuilt container is in the same state as it would be in a newly created Codespace. If rebuilding a container to apply configuration changes to the Codespace you're working in, any changes you have made will work the same for users creating new Codespaces with the same configuration. If you want to make Codespaces more robust over rebuilds and across different Codespaces, you have several options. - Install programs and tools in all Codespaces created from a repository. In your dev container configuration, you can use lifecycle command properties such as postCreateCommand to run custom installation commands, or you can choose from pre-written installation commands called features. -- Install tools or customize your setup in every Codespace you create, such as configuring your bash profile, you can link GitHub Codespaces with a dotfiles repository. The dotfiles repository is also cloned into the persistent /workspaces directory. +- Install tools or customize your setup in every Codespace you create, such as configuring your bash profile, you can link GitHub Codespaces with a dotfiles repository. The dotfiles repository is also cloned into the persistent `/workspaces` directory. - Preserve specific files over a rebuild, use a devcontainer.json file to create a symlink between the files and a persistent directory within /workspaces. A symlink points to another file or folder on your computer or a connected file system. A symlink is similar to a Windows shortcut. ## Running your application diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/4-exercise.md index d03ff7db..48c1d4de 100644 --- a/github/github-codespaces/includes/4-exercise.md +++ b/github/github-codespaces/includes/4-exercise.md @@ -5,6 +5,7 @@ Create workflows that enable you to use Continuous Integration (CI) for your pro GitHub Codespaces is a development environment that's hosted in the cloud. Who this is for: + - Developers, DevOps Engineers, Engineering Managers, Product Managers. - What you'll learn: How to create a codespace, push code from a codespace, select a custom image, and customize a codespace. - What you'll build: A codespace with devcontainer.json files, customizations, and personalizations. diff --git a/github/github-codespaces/media/port-forwarding.png b/github/github-codespaces/media/port-forwarding.png new file mode 100644 index 0000000000000000000000000000000000000000..f543d316fc5e39686c70e0bf48945d1f9a16215f GIT binary patch literal 72207 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 T^uX}Z+g=@wd$&u~te*c5`M^e1 literal 0 HcmV?d00001 From 302031b5c79632ae5532154f5060e5cd68b7bc3c Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 10:28:49 -0400 Subject: [PATCH 35/90] Update 5-knowledge-check.yml Added question one with content --- github/github-codespaces/5-knowledge-check.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/github/github-codespaces/5-knowledge-check.yml b/github/github-codespaces/5-knowledge-check.yml index b92215f3..1c04185f 100644 --- a/github/github-codespaces/5-knowledge-check.yml +++ b/github/github-codespaces/5-knowledge-check.yml @@ -38,11 +38,11 @@ durationInMinutes: 1 content: | quiz: questions: - - content: "" + - content: "After creating a Codespace which directory is the clone placed?" choices: - - content: "" + - content: "/workspaces directory" isCorrect: true - explanation: "" + explanation: "After creating a Codespace, the clone is placed into the /workspace directory." - content: "" isCorrect: false explanation: "" From fbc1b9e4933761cab95e5797fe44081c389f25a3 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 10:38:32 -0400 Subject: [PATCH 36/90] Update 5-knowledge-check.yml Updated key and distractors for Question 1 --- github/github-codespaces/5-knowledge-check.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/github/github-codespaces/5-knowledge-check.yml b/github/github-codespaces/5-knowledge-check.yml index 1c04185f..3a81911b 100644 --- a/github/github-codespaces/5-knowledge-check.yml +++ b/github/github-codespaces/5-knowledge-check.yml @@ -43,13 +43,16 @@ quiz: - content: "/workspaces directory" isCorrect: true explanation: "After creating a Codespace, the clone is placed into the /workspace directory." - - content: "" + - content: "/temp directory" isCorrect: false - explanation: "" - - content: "" + explanation: "After creating a Codespace, the clone is placed into the /workspace directory." + - content: "~/.bashrc directory" isCorrect: false - explanation: "" - - content: "" + explanation: "After creating a Codespace, the clone is placed into the /workspace directory." + content: Linuix directory + isCorrect: false + explanation: "After creating a Codespace, the clone is placed into the /workspaces directory." + - content: "" choices: - content: "" isCorrect: true From 4265b4f6d58baf87c45b9c1aa1f7672a68e4f11f Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:18:21 -0400 Subject: [PATCH 37/90] Update 5-knowledge-check.yml Entered knowledge check question 2 with stem, key, and distractors. --- github/github-codespaces/5-knowledge-check.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/github/github-codespaces/5-knowledge-check.yml b/github/github-codespaces/5-knowledge-check.yml index 3a81911b..3ee85a1e 100644 --- a/github/github-codespaces/5-knowledge-check.yml +++ b/github/github-codespaces/5-knowledge-check.yml @@ -38,7 +38,7 @@ durationInMinutes: 1 content: | quiz: questions: - - content: "After creating a Codespace which directory is the clone placed?" + - content: "After creating a Codespace in which directory is the clone placed?" choices: - content: "/workspaces directory" isCorrect: true @@ -52,14 +52,14 @@ quiz: content: Linuix directory isCorrect: false explanation: "After creating a Codespace, the clone is placed into the /workspaces directory." - - content: "" + - content: "What is the maximum number of Codespaces that you can create per repository or branch?" choices: - - content: "" + - content: "You can create an unlimited number of Codespaces per repository or branch. However, there are limits to the number of Codespaces that you can create and run at the same time." isCorrect: true - explanation: "" - - content: "" + explanation: "You can have an unlimited number of Codespace per repository or even per branch. However, there are limits to the number of Codespaces you can create and run at the same time." + - content: "You can only create two Codespaces." isCorrect: false - explanation: "" + explanation: "You can have an unlimited number of Codespace per repository or even per branch. However, there are limits to the number of Codespaces you can create and run at the same time" - content: "" isCorrect: false explanation: "" From a121e92dffd7393109d0809e14e6dee3a72f51be Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 11:25:27 -0400 Subject: [PATCH 38/90] Update 5-knowledge-check.yml --- github/github-codespaces/5-knowledge-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/github/github-codespaces/5-knowledge-check.yml b/github/github-codespaces/5-knowledge-check.yml index 3ee85a1e..b5e221b1 100644 --- a/github/github-codespaces/5-knowledge-check.yml +++ b/github/github-codespaces/5-knowledge-check.yml @@ -60,9 +60,9 @@ quiz: - content: "You can only create two Codespaces." isCorrect: false explanation: "You can have an unlimited number of Codespace per repository or even per branch. However, there are limits to the number of Codespaces you can create and run at the same time" - - content: "" + - content: "You can create a total of ten workspaces." isCorrect: false - explanation: "" + explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." - content: "" choices: - content: "" From 60be4f7e4675f745c621fc6e846e4c3662d04ebc Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:41:22 -0400 Subject: [PATCH 39/90] Update 5-knowledge-check.yml --- github/github-codespaces/5-knowledge-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/5-knowledge-check.yml b/github/github-codespaces/5-knowledge-check.yml index b5e221b1..c9edb433 100644 --- a/github/github-codespaces/5-knowledge-check.yml +++ b/github/github-codespaces/5-knowledge-check.yml @@ -54,7 +54,7 @@ quiz: explanation: "After creating a Codespace, the clone is placed into the /workspaces directory." - content: "What is the maximum number of Codespaces that you can create per repository or branch?" choices: - - content: "You can create an unlimited number of Codespaces per repository or branch. However, there are limits to the number of Codespaces that you can create and run at the same time." + - content: "You can create an unlimited number of Codespaces per repository or branch. However, there are limits to the number of Codespaces that you can create and run at the same time. A message will display that an existing Codespace needs to removed/deleted " isCorrect: true explanation: "You can have an unlimited number of Codespace per repository or even per branch. However, there are limits to the number of Codespaces you can create and run at the same time." - content: "You can only create two Codespaces." From 6a3251b0723e5f6a46f3b303612f703a38020720 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:44:15 -0400 Subject: [PATCH 40/90] Update 2-codespace-lifecycle.md Deleted github.dev information --- .../includes/2-codespace-lifecycle.md | 21 +------------------ 1 file changed, 1 insertion(+), 20 deletions(-) diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index 506e62db..edf7b134 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -1,25 +1,6 @@ # What is a Codespace? -GitHub Codespaces is an instant, cloud-based development environment that uses a container to provide you with common languages, tools, and utilities for development. GitHub Codespaces is also configurable, allowing you to create a customized development environment for your project. By configuring a custom development environment for your project, you can have a repeatable codespace configuration for all users of your project. - -Similar to Codespaces, you can also utilize github.dev. - -It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. - -Let’s review the difference between the two in the next section. -GitHub.dev vs GitHub Codespace -The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. -Both github.dev and GitHub Codespaces allow you to edit your code straight from your repository. However, both have slightly different benefits, depending on your use case. - -## Codespace vs. github.dev -| | github.dev | GitHub Codespace | -|--------|--------|--------| -| Cost | Free | Free monthly quota of usage for personal accounts | -| Availability | Available to everyone on GitHub.com | Available to everyone on GitHub.com | -| Startup | Github.dev opens instantly with a key-press and you can start using it right away without having to wait for additional configuration or installation | When you create or resume a codespace, the codespace is assigned a VM and the container is configured based on the contents of a devcontainer.json file. This setup may take a few minutes to create the development environment. | -| Compute | There is no associated compute, so you won’t be able to build and run your code or use the integrated terminal. | With GitHub Codespaces, you get the power of a dedicated VM on which you can run and debug your application.| -| Terminal access | None | GitHub Codespaces provides a common set of tools by default, meaning that you can use the Terminal exactly as you would in your local environment.| -| Extensions | Only a subset of extensions that can run on the web will appear in the Extensions View and can be installed | With GitHub Codespaces, you can use most extensions from the Visual Studio Code Marketplace.| +GitHub Codespaces is an instant, cloud-based development environment that uses a container to provide you with common languages, tools, and utilities for development. GitHub Codespaces is a configurable, allowing you to create a customized development environment for your project. By configuring a custom development environment for your project, you can have a repeatable codespace configuration for all users of your project. A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it. You can disconnect and reconnect to an active Codespace without affecting its running processes. You can stop and restart a Codespace without losing the changes that you have made to your project. From f19ca50b2182fa945c1f49aee696feba38ba625a Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:45:17 -0400 Subject: [PATCH 41/90] Rename 3-managing.codespace.md to 4-managing.codespace.md --- .../includes/{3-managing.codespace.md => 4-managing.codespace.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{3-managing.codespace.md => 4-managing.codespace.md} (100%) diff --git a/github/github-codespaces/includes/3-managing.codespace.md b/github/github-codespaces/includes/4-managing.codespace.md similarity index 100% rename from github/github-codespaces/includes/3-managing.codespace.md rename to github/github-codespaces/includes/4-managing.codespace.md From 608017eacd11e45645a566a8fd3b2cd44e5d40be Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:46:00 -0400 Subject: [PATCH 42/90] Rename 4-exercise.md to 5-exercise.md --- .../github-codespaces/includes/{4-exercise.md => 5-exercise.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{4-exercise.md => 5-exercise.md} (100%) diff --git a/github/github-codespaces/includes/4-exercise.md b/github/github-codespaces/includes/5-exercise.md similarity index 100% rename from github/github-codespaces/includes/4-exercise.md rename to github/github-codespaces/includes/5-exercise.md From f3991c246b7521d75f633f685878ed324d7bab1b Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:46:57 -0400 Subject: [PATCH 43/90] Rename 5-exercise.md to 6-exercise.md --- .../github-codespaces/includes/{5-exercise.md => 6-exercise.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{5-exercise.md => 6-exercise.md} (100%) diff --git a/github/github-codespaces/includes/5-exercise.md b/github/github-codespaces/includes/6-exercise.md similarity index 100% rename from github/github-codespaces/includes/5-exercise.md rename to github/github-codespaces/includes/6-exercise.md From 2df1f56a0d931078f1c1cfa8895ee7757aaf5dff Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:47:26 -0400 Subject: [PATCH 44/90] Rename 4-managing.codespace.md to 3-managing.codespace.md --- .../includes/{4-managing.codespace.md => 3-managing.codespace.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{4-managing.codespace.md => 3-managing.codespace.md} (100%) diff --git a/github/github-codespaces/includes/4-managing.codespace.md b/github/github-codespaces/includes/3-managing.codespace.md similarity index 100% rename from github/github-codespaces/includes/4-managing.codespace.md rename to github/github-codespaces/includes/3-managing.codespace.md From 4da8b457e5517f9c2f6eeccbc826b41306fd4f18 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:55:54 -0400 Subject: [PATCH 45/90] Create 4-githubdev.md Added new unit --- .../github-codespaces/includes/4-githubdev.md | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 github/github-codespaces/includes/4-githubdev.md diff --git a/github/github-codespaces/includes/4-githubdev.md b/github/github-codespaces/includes/4-githubdev.md new file mode 100644 index 00000000..ae873b9e --- /dev/null +++ b/github/github-codespaces/includes/4-githubdev.md @@ -0,0 +1,33 @@ +## GitHub.dev + +Similar to Codespaces, you can also utilize github.dev. + +It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. + +Let’s review the difference between the two in the next section. +GitHub.dev vs GitHub Codespace + +The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. + +The github.dev editor is available to everyone for free on GitHub.com. + +The github.dev editor provides many of the benefits of Visual Studio Code, such as search, syntax highlighting, and a source control view. You can also use Settings Sync to share your own VS Code settings with the editor. + +The github.dev editor runs entirely in your browser’s sandbox. The editor doesn’t clone the repository, but instead uses the GitHub Repositories extension to carry out most of the functionality that you will use. Your work is saved in the browser’s local storage until you commit it. You should commit your changes regularly to ensure that they're always accessible. + +You must be signed in to GitHub.com to use the github.dev editor. + +### Codespace vs. github.dev +| | github.dev | GitHub Codespace | +|--------|--------|--------| +| Cost | Free | Free monthly quota of usage for personal accounts | +| Availability | Available to everyone on GitHub.com | Available to everyone on GitHub.com | +| Startup | Github.dev opens instantly with a key-press and you can start using it right away without having to wait for additional configuration or installation | When you create or resume a codespace, the codespace is assigned a VM and the container is configured based on the contents of a devcontainer.json file. This setup may take a few minutes to create the development environment. | +| Compute | There is no associated compute, so you won’t be able to build and run your code or use the integrated terminal. | With GitHub Codespaces, you get the power of a dedicated VM on which you can run and debug your application.| +| Terminal access | None | GitHub Codespaces provides a common set of tools by default, meaning that you can use the Terminal exactly as you would in your local environment.| +| Extensions | Only a subset of extensions that can run on the web will appear in the Extensions View and can be installed | With GitHub Codespaces, you can use most extensions from the Visual Studio Code Marketplace.| + +### Continue working on Codespaces +You can start your workflow in github.dev and continue working on a codespace. If you try to access the Run and Debug View or the Terminal, you'll be notified that they are not available in github.dev. + +To continue your work in a codespace, click Continue Working on… and select Create New Codespace to create a codespace on your current branch. Before you choose this option, you must commit any changes. From 88bc2a32b69f5b092b81f7058224f01d41108a37 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:56:37 -0400 Subject: [PATCH 46/90] Rename 6-summary.md to 7-summary.md --- github/github-codespaces/includes/{6-summary.md => 7-summary.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/includes/{6-summary.md => 7-summary.md} (100%) diff --git a/github/github-codespaces/includes/6-summary.md b/github/github-codespaces/includes/7-summary.md similarity index 100% rename from github/github-codespaces/includes/6-summary.md rename to github/github-codespaces/includes/7-summary.md From b96c0bd3d7dd4b4a06adb57d848c3b4839bfcb73 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:57:08 -0400 Subject: [PATCH 47/90] Rename 4-exercise.yml to 5-exercise.yml --- github/github-codespaces/{4-exercise.yml => 5-exercise.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/{4-exercise.yml => 5-exercise.yml} (100%) diff --git a/github/github-codespaces/4-exercise.yml b/github/github-codespaces/5-exercise.yml similarity index 100% rename from github/github-codespaces/4-exercise.yml rename to github/github-codespaces/5-exercise.yml From ed5067582df566f7abb1b01a51d5fc9342d70a87 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:57:30 -0400 Subject: [PATCH 48/90] Rename 5-knowledge-check.yml to 6-knowledge-check.yml --- .../{5-knowledge-check.yml => 6-knowledge-check.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/{5-knowledge-check.yml => 6-knowledge-check.yml} (100%) diff --git a/github/github-codespaces/5-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml similarity index 100% rename from github/github-codespaces/5-knowledge-check.yml rename to github/github-codespaces/6-knowledge-check.yml From 1ea85e643d632fc024b58280e9f58dec44cc20d4 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:57:56 -0400 Subject: [PATCH 49/90] Rename 6-summary.yml to 7-summary.yml --- github/github-codespaces/{6-summary.yml => 7-summary.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/github-codespaces/{6-summary.yml => 7-summary.yml} (100%) diff --git a/github/github-codespaces/6-summary.yml b/github/github-codespaces/7-summary.yml similarity index 100% rename from github/github-codespaces/6-summary.yml rename to github/github-codespaces/7-summary.yml From c5ed0066125608d157f5e306fb65afb1f31b3fa7 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 12:58:39 -0400 Subject: [PATCH 50/90] Create 4-gethubdev.md --- github/github-codespaces/4-gethubdev.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 github/github-codespaces/4-gethubdev.md diff --git a/github/github-codespaces/4-gethubdev.md b/github/github-codespaces/4-gethubdev.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/github/github-codespaces/4-gethubdev.md @@ -0,0 +1 @@ + From 0af0aac42225e287c7ea847cae6b836cf27009d9 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 13:08:38 -0400 Subject: [PATCH 51/90] Update 6-knowledge-check.yml --- github/github-codespaces/6-knowledge-check.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index c9edb433..43462c58 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -54,7 +54,7 @@ quiz: explanation: "After creating a Codespace, the clone is placed into the /workspaces directory." - content: "What is the maximum number of Codespaces that you can create per repository or branch?" choices: - - content: "You can create an unlimited number of Codespaces per repository or branch. However, there are limits to the number of Codespaces that you can create and run at the same time. A message will display that an existing Codespace needs to removed/deleted " + - content: "You can create an unlimited number of Codespaces per repository or branch, depending upon available space. When you reach an upper amount of resources, a message will display that an existing Codespace needs to removed/deleted before a new Codespace can be created." isCorrect: true explanation: "You can have an unlimited number of Codespace per repository or even per branch. However, there are limits to the number of Codespaces you can create and run at the same time." - content: "You can only create two Codespaces." @@ -63,7 +63,10 @@ quiz: - content: "You can create a total of ten workspaces." isCorrect: false explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." - - content: "" + - content: "You can create a total of thirty workspaces." + isCorrect: false + explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." + - content: "Which statement best describes github.dev?" choices: - content: "" isCorrect: true From ffdfa7b750a1952f1a8ab7bdd1ec519e1b72a701 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 13:12:00 -0400 Subject: [PATCH 52/90] Update 6-knowledge-check.yml --- github/github-codespaces/6-knowledge-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index 43462c58..62bd5ea0 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -66,9 +66,9 @@ quiz: - content: "You can create a total of thirty workspaces." isCorrect: false explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." - - content: "Which statement best describes github.dev?" + - content: "Which statement best describes github.dev editor?" choices: - - content: "" + - content: "The github.dev editor introduces a light weight editing experience that runs entirely in your web browser." isCorrect: true explanation: "" - content: "" From b6e435ad9a2224501e901a025d892f88c3061fe6 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 13:19:32 -0400 Subject: [PATCH 53/90] Update 6-knowledge-check.yml --- github/github-codespaces/6-knowledge-check.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index 62bd5ea0..ffc3fc80 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -68,15 +68,15 @@ quiz: explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." - content: "Which statement best describes github.dev editor?" choices: - - content: "The github.dev editor introduces a light weight editing experience that runs entirely in your web browser." + - content: "The github.dev editor introduces a lightweight editing experience that runs entirely in your web browser." isCorrect: true - explanation: "" - - content: "" + explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." + - content: "The github.dev is a heavyweight code editing tool that you can only install on your local hard drive." isCorrect: false - explanation: "" - - content: "" + explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." + - content: "The github.dev editor is a DOS-based coding tool that enables users to access each other's code." isCorrect: false - explanation: "" + explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." - content: "" choices: - content: "" From 061bfeb21bc0eee5f2d2a2133cef9078ce50a41b Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 13:46:14 -0400 Subject: [PATCH 54/90] Update 6-knowledge-check.yml --- github/github-codespaces/6-knowledge-check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index ffc3fc80..a7bc9b6a 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -77,7 +77,7 @@ quiz: - content: "The github.dev editor is a DOS-based coding tool that enables users to access each other's code." isCorrect: false explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." - - content: "" + - content: "What happens when Codespace loses internet connectivity" choices: - content: "" isCorrect: true From a46e9077cb0536a565ad4094c6d7a162ac074ed9 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 13:53:29 -0400 Subject: [PATCH 55/90] Update 6-knowledge-check.yml --- github/github-codespaces/6-knowledge-check.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index a7bc9b6a..27384eb0 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -79,15 +79,15 @@ quiz: explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." - content: "What happens when Codespace loses internet connectivity" choices: - - content: "" + - content: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." isCorrect: true - explanation: "" - - content: "" + explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." + - content: "Codespace does not require an internet connection. I can access my Codespace regardless if I lose connectivity." isCorrect: false - explanation: "" - - content: "" + explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." + - content: "Codespace requires an internet connection, but any work will not be saved." isCorrect: false - explanation: "" + explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." - content: "" choices: - content: "" From 46d859ed7616f20547628da073116ddf708c1ea1 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 14:07:07 -0400 Subject: [PATCH 56/90] Update 6-knowledge-check.yml --- github/github-codespaces/6-knowledge-check.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index 27384eb0..e7baef9f 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -79,15 +79,15 @@ quiz: explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." - content: "What happens when Codespace loses internet connectivity" choices: - - content: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." + - content: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost." isCorrect: true explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." - content: "Codespace does not require an internet connection. I can access my Codespace regardless if I lose connectivity." isCorrect: false - explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." + explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost. - content: "Codespace requires an internet connection, but any work will not be saved." isCorrect: false - explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." + explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost. - content: "" choices: - content: "" From 4ee78b003f3998690affb0f5234d135f5660d907 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 14:21:26 -0400 Subject: [PATCH 57/90] Update 6-knowledge-check.yml --- github/github-codespaces/6-knowledge-check.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index e7baef9f..03c92002 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -88,14 +88,14 @@ quiz: - content: "Codespace requires an internet connection, but any work will not be saved." isCorrect: false explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost. - - content: "" + - content: "When defines a Codespace’s lifecycle?" choices: - - content: "" + - content: "A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it." isCorrect: true - explanation: "" - - content: "" + explanation: "A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it." + - content: "A Codespace's lifecycle begins immediately when GitHub is opened and ends when the software is closed." isCorrect: false - explanation: "" - - content: "" + explanation: "A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it." + - content: "A Codespace's lifecycle begins when repository is created and ends when it is deleted." isCorrect: false - explanation: "" + explanation: "A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it." From 36d36e1e6e436febd3a6b77328701557ae261caf Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Wed, 21 Jun 2023 14:23:59 -0400 Subject: [PATCH 58/90] Update and rename 4-gethubdev.md to 4-gethubdev.yml --- github/github-codespaces/4-gethubdev.md | 1 - github/github-codespaces/4-gethubdev.yml | 25 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) delete mode 100644 github/github-codespaces/4-gethubdev.md create mode 100644 github/github-codespaces/4-gethubdev.yml diff --git a/github/github-codespaces/4-gethubdev.md b/github/github-codespaces/4-gethubdev.md deleted file mode 100644 index 8b137891..00000000 --- a/github/github-codespaces/4-gethubdev.md +++ /dev/null @@ -1 +0,0 @@ - diff --git a/github/github-codespaces/4-gethubdev.yml b/github/github-codespaces/4-gethubdev.yml new file mode 100644 index 00000000..258ecd47 --- /dev/null +++ b/github/github-codespaces/4-gethubdev.yml @@ -0,0 +1,25 @@ +### YamlMime:ModuleUnit +uid: learn.github-codespaces.learning-content +title: Enter learning content title +metadata: + title: learning-content + description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." + ms.date: 5/24/2023 + author: a-a-ron + ms.author: aastewar + ms.topic: interactive-tutorial +########################################################################### +### +### If your content is related to a product or service, apply one value from the either the ms.prod allowlist +### or the ms.service allowlist. You can’t use both ms.prod and ms.service. +### +### If your content isn't about a product or service, you can omit both ms.prod and ms.service. +### +### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod +### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice +### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main + ms.prod: TODO + ms.service: TODO +durationInMinutes: 1 +content: | + [!include[](includes/4-learning-content.md)] From 0419ef424b408b886ed618d8d7160d16a97ab7f4 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 27 Jun 2023 15:58:21 -0500 Subject: [PATCH 59/90] Update 6-knowledge-check.yml Changed some of the explanations of the the incorrect questions that way it didn't give away the answer Removed the 4th question, since we're trying to implement the standard to be the distractors have to be 100% possible but 100% incorrect we'll need to rework the distractors to work --- .../github-codespaces/6-knowledge-check.yml | 63 +++++-------------- 1 file changed, 14 insertions(+), 49 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index 03c92002..db84f092 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -8,33 +8,9 @@ metadata: author: a-a-ron ms.author: aastewar ms.topic: interactive-tutorial -########################################################################### -### -### If your content is related to a product or service, apply one value from the either the ms.prod allowlist -### or the ms.service allowlist. You can’t use both ms.prod and ms.service. -### -### If your content isn't about a product or service, you can omit both ms.prod and ms.service. -### -### The list of approved ms.prod values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msprod -### The list of approved ms.service values is here: https://review.learn.microsoft.com/help/platform/metadata-taxonomies?branch=main#msservice -### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main ms.prod: TODO ms.service: TODO -durationInMinutes: 1 -########################################################################### -### -### General guidance (https://review.docs.microsoft.com/learn-docs/docs/id-guidance-knowledge-check) -###  - Questions are complete sentences ending with a question mark -###  - No true/false questions -###  - 3 answers per question -###  - All answers about the same length -###  - Numeric answers listed in sorted order -###  - No "All of the above" and/or "None of the above" as answer choices -###  - No "Not" or "Except" in questions -###  - No second person ("you") in the questions or answers -###  - Provide a meaningful explanation for both correct and incorrect answers -### -########################################################################### +durationInMinutes: 4 content: | quiz: questions: @@ -45,50 +21,39 @@ quiz: explanation: "After creating a Codespace, the clone is placed into the /workspace directory." - content: "/temp directory" isCorrect: false - explanation: "After creating a Codespace, the clone is placed into the /workspace directory." + explanation: "/temp directory is not the location where cloned content is placed." - content: "~/.bashrc directory" isCorrect: false - explanation: "After creating a Codespace, the clone is placed into the /workspace directory." + explanation: "~/.bashrc directory is not the location where cloned content is placed." content: Linuix directory isCorrect: false - explanation: "After creating a Codespace, the clone is placed into the /workspaces directory." + explanation: "Linuix directory is not the location where cloned content is placed." - content: "What is the maximum number of Codespaces that you can create per repository or branch?" choices: - - content: "You can create an unlimited number of Codespaces per repository or branch, depending upon available space. When you reach an upper amount of resources, a message will display that an existing Codespace needs to removed/deleted before a new Codespace can be created." - isCorrect: true - explanation: "You can have an unlimited number of Codespace per repository or even per branch. However, there are limits to the number of Codespaces you can create and run at the same time." - content: "You can only create two Codespaces." isCorrect: false - explanation: "You can have an unlimited number of Codespace per repository or even per branch. However, there are limits to the number of Codespaces you can create and run at the same time" + explanation: "Two is not the maximum number of Codespaces you can create. However, there are limits to the number of Codespaces you can create and run at the same time" - content: "You can create a total of ten workspaces." isCorrect: false - explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." + explanation: "Ten is not the maximum number of Codespaces you can create. However, there are limits to the number of Codespaces that you can create and run at the same time." - content: "You can create a total of thirty workspaces." isCorrect: false - explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." - - content: "Which statement best describes github.dev editor?" - choices: - - content: "The github.dev editor introduces a lightweight editing experience that runs entirely in your web browser." + explanation: "Thirty is not the maximum number of Codespaces you can create. However, there are limits to the number of Codespaces that you can create and run at the same time." + - content: "You can create an unlimited number of Codespaces per repository or branch, depending upon available space. When you reach an upper amount of resources, a message will display that an existing Codespace needs to removed/deleted before a new Codespace can be created." isCorrect: true - explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." - - content: "The github.dev is a heavyweight code editing tool that you can only install on your local hard drive." - isCorrect: false - explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." - - content: "The github.dev editor is a DOS-based coding tool that enables users to access each other's code." - isCorrect: false - explanation: "The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor." + explanation: "You can have an unlimited number of Codespaces per repository or even per branch. However, there are limits to the number of Codespaces that you can create and run at the same time." - content: "What happens when Codespace loses internet connectivity" choices: - - content: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost." + - content: "If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." isCorrect: true explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace." - content: "Codespace does not require an internet connection. I can access my Codespace regardless if I lose connectivity." isCorrect: false - explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost. - - content: "Codespace requires an internet connection, but any work will not be saved." + explanation: "Incorrect, a Codespace requires an internet connection." + - content: "If you lose internet connection while working on your Codespace, no changes will be saved" isCorrect: false - explanation: "A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost. - - content: "When defines a Codespace’s lifecycle?" + explanation: "Incorrect, any uncommitted changes will be saved. When reestablished, you can access Codespace in the same state as when the connection was lost. + - content: "What defines the beginning of a Codespace’s lifecycle?" choices: - content: "A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it." isCorrect: true From 59179189ec1b18d4ea0cd6acc6fcf5681459d5cb Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 27 Jun 2023 16:29:29 -0500 Subject: [PATCH 60/90] Update 1-introduction.md You typically don't need a header in the intro paragraph in the intro page because it'll provide a header for you. Looked back at a previous module, it looks like we don't a colon in the Learning Objectives header. --- github/github-codespaces/includes/1-introduction.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/github/github-codespaces/includes/1-introduction.md b/github/github-codespaces/includes/1-introduction.md index 93cb3094..3c89e858 100644 --- a/github/github-codespaces/includes/1-introduction.md +++ b/github/github-codespaces/includes/1-introduction.md @@ -1,7 +1,6 @@ -# About GitHub Codespace GitHub Codespaces is a fully configured development environment hosted in the cloud. By using GitHub Codespaces, your workspace, along with all of your configured development environments, is available from any computer with access to the internet. GitHub Codespaces contains common languages, tools, and utilities for software development. -## Learning objectives: +## Learning objectives In this module, you will learn how to: From 9798c9d12d9b951dcbc6b1016e2ea1bd54639788 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Fri, 30 Jun 2023 10:14:35 -0400 Subject: [PATCH 61/90] Create 4-about-enterprise-managed-users.md --- .../includes/4-about-enterprise-managed-users.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md diff --git a/github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md b/github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md @@ -0,0 +1 @@ + From e3e6712fb0c859dca6c78fa2814b6d3bda6b2c1b Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Fri, 30 Jun 2023 10:16:07 -0400 Subject: [PATCH 62/90] Rename 4-authorization.md to 5-authorization.md --- .../includes/{4-authorization.md => 5-authorization.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/authenticate-authorize-user-identities-github/includes/{4-authorization.md => 5-authorization.md} (100%) diff --git a/github/authenticate-authorize-user-identities-github/includes/4-authorization.md b/github/authenticate-authorize-user-identities-github/includes/5-authorization.md similarity index 100% rename from github/authenticate-authorize-user-identities-github/includes/4-authorization.md rename to github/authenticate-authorize-user-identities-github/includes/5-authorization.md From 52376e1013667c0ee1330d06ae78a5ce16b635e2 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Fri, 30 Jun 2023 10:16:32 -0400 Subject: [PATCH 63/90] Rename 5-team-synchronization.md to 7-team-synchronization.md --- .../{5-team-synchronization.md => 7-team-synchronization.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/authenticate-authorize-user-identities-github/includes/{5-team-synchronization.md => 7-team-synchronization.md} (100%) diff --git a/github/authenticate-authorize-user-identities-github/includes/5-team-synchronization.md b/github/authenticate-authorize-user-identities-github/includes/7-team-synchronization.md similarity index 100% rename from github/authenticate-authorize-user-identities-github/includes/5-team-synchronization.md rename to github/authenticate-authorize-user-identities-github/includes/7-team-synchronization.md From 3c6ff000f2104b2b5e0b6b59349f14b4591bf43f Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Fri, 30 Jun 2023 10:17:22 -0400 Subject: [PATCH 64/90] Rename 7-summary.yml to 8-summary.yml --- .../{7-summary.yml => 8-summary.yml} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename github/authenticate-authorize-user-identities-github/{7-summary.yml => 8-summary.yml} (90%) diff --git a/github/authenticate-authorize-user-identities-github/7-summary.yml b/github/authenticate-authorize-user-identities-github/8-summary.yml similarity index 90% rename from github/authenticate-authorize-user-identities-github/7-summary.yml rename to github/authenticate-authorize-user-identities-github/8-summary.yml index 01b6aef1..4ed0322b 100644 --- a/github/authenticate-authorize-user-identities-github/7-summary.yml +++ b/github/authenticate-authorize-user-identities-github/8-summary.yml @@ -11,4 +11,4 @@ metadata: ms.prod: learning-azure durationInMinutes: 2 content: | - [!include[](includes/7-summary.md)] \ No newline at end of file + [!include[](includes/7-summary.md)] From e6b0fc374100e3321fc69169e10d2c0394aa7277 Mon Sep 17 00:00:00 2001 From: kfeeman1969 <132016388+kfeeman1969@users.noreply.github.com> Date: Fri, 30 Jun 2023 10:23:06 -0400 Subject: [PATCH 65/90] Rename 7-team-synchronization.md to 8-team-synchronization.md --- .../{7-team-synchronization.md => 8-team-synchronization.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/authenticate-authorize-user-identities-github/includes/{7-team-synchronization.md => 8-team-synchronization.md} (100%) diff --git a/github/authenticate-authorize-user-identities-github/includes/7-team-synchronization.md b/github/authenticate-authorize-user-identities-github/includes/8-team-synchronization.md similarity index 100% rename from github/authenticate-authorize-user-identities-github/includes/7-team-synchronization.md rename to github/authenticate-authorize-user-identities-github/includes/8-team-synchronization.md From f69508d96437817869a31927f1599ad0a00858d1 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 14:32:21 -0500 Subject: [PATCH 66/90] Update 1-introduction.md Broke up the introduction paragraph to make it easier for readers to digest and edited learning objectives to align to learning units --- .../github-codespaces/includes/1-introduction.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/github/github-codespaces/includes/1-introduction.md b/github/github-codespaces/includes/1-introduction.md index 3c89e858..f8628627 100644 --- a/github/github-codespaces/includes/1-introduction.md +++ b/github/github-codespaces/includes/1-introduction.md @@ -1,15 +1,15 @@ -GitHub Codespaces is a fully configured development environment hosted in the cloud. By using GitHub Codespaces, your workspace, along with all of your configured development environments, is available from any computer with access to the internet. GitHub Codespaces contains common languages, tools, and utilities for software development. +GitHub Codespaces is a fully configured development environment hosted in the cloud. + +By using GitHub Codespaces, your workspace, along with all of your configured development environments, is available from any computer with access to the internet. GitHub Codespaces contains common languages, tools, and utilities for software development. ## Learning objectives In this module, you will learn how to: -- Describe what is GitHub Codespaces -- Identify how to start a new GitHub Codespace -- Describe the Codespace lifecycle and how to perform each step -- Describe the different customizations you can personalize with GitHub Codespaces -- Explain how to add and configure dev containers -- Add an "Open in GitHub Codespaces" badge to a README file +- Describe GitHub Codespaces +- Define the GitHub Codespace lifecycle and how to perform each step +- Understand the different customizations you can personalize with GitHub Codespaces +- Discern the differences between GitHub.dev and GitHub Codespaces ## Pre-requisites - A GitHub Account From e44c6d94992d470a0bedf178f59d3d3c172d0bd2 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 14:52:44 -0500 Subject: [PATCH 67/90] Update and rename 4-githubdev.md to 4-githubdev-versus-GitHub-Codespaces.md Removed introduction header for a more seamless experience with the updated name of the unit. Also added specific nod to important content for the upcoming foundations exam --- ...thubdev.md => 4-githubdev-versus-GitHub-Codespaces.md} | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) rename github/github-codespaces/includes/{4-githubdev.md => 4-githubdev-versus-GitHub-Codespaces.md} (86%) diff --git a/github/github-codespaces/includes/4-githubdev.md b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md similarity index 86% rename from github/github-codespaces/includes/4-githubdev.md rename to github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md index ae873b9e..c56b083a 100644 --- a/github/github-codespaces/includes/4-githubdev.md +++ b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md @@ -1,13 +1,11 @@ -## GitHub.dev - Similar to Codespaces, you can also utilize github.dev. It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. -Let’s review the difference between the two in the next section. -GitHub.dev vs GitHub Codespace -The github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. +One of the main differences between github.dev and GitHub Codespaces is that GitHub Codespaces provides terminal access. + +Meanwhile, github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. The github.dev editor is available to everyone for free on GitHub.com. From b8d4af1d412fe85a455dc58ad5c6006a660f93e3 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 14:55:36 -0500 Subject: [PATCH 68/90] Update and rename 4-gethubdev.yml to 4-githubdev-versus-GitHub-Codespaces.yml Updated minutes and title --- ...gethubdev.yml => 4-githubdev-versus-GitHub-Codespaces.yml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename github/github-codespaces/{4-gethubdev.yml => 4-githubdev-versus-GitHub-Codespaces.yml} (95%) diff --git a/github/github-codespaces/4-gethubdev.yml b/github/github-codespaces/4-githubdev-versus-GitHub-Codespaces.yml similarity index 95% rename from github/github-codespaces/4-gethubdev.yml rename to github/github-codespaces/4-githubdev-versus-GitHub-Codespaces.yml index 258ecd47..4c3f48c4 100644 --- a/github/github-codespaces/4-gethubdev.yml +++ b/github/github-codespaces/4-githubdev-versus-GitHub-Codespaces.yml @@ -1,6 +1,6 @@ ### YamlMime:ModuleUnit uid: learn.github-codespaces.learning-content -title: Enter learning content title +title: Github.dev versus GitHub Codespaces metadata: title: learning-content description: "TODO this field is for search engine optimization and is not user-visible; use 2-3 complete, grammatically correct sentences to describe the unit; include relevant search keywords." @@ -20,6 +20,6 @@ metadata: ### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main ms.prod: TODO ms.service: TODO -durationInMinutes: 1 +durationInMinutes: 5 content: | [!include[](includes/4-learning-content.md)] From d694a2c26c41ca33a19775f17d294f3cc395fc5e Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 15:28:19 -0500 Subject: [PATCH 69/90] Update 2-codespace-lifecycle.md added content around resuming an existing codespace to align with the content on the foundation exam --- github/github-codespaces/includes/2-codespace-lifecycle.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index edf7b134..51d766e7 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -69,6 +69,12 @@ When you connect to a Codespace through the web, auto-save is automatically enab Your work will save to a virtual machine in the cloud. You can close and stop a Codespace and return to the saved work at a later time. If you have unsaved changes, you’ll receive a prompt to save them before exiting. However, if your Codespace is deleted, then your work will be lost. To save your work, you must commit your changes and push them to your remote repository or publish your work to a new one if you created your Codespace from a template. +## Opening an existing Codespace + +You can reopen any of your active or stopped codespaces on GitHub.com, in a JetBrains IDE, in Visual Studio Code, or by using GitHub CLI. + +To resume an existing Codespace you can either go to the respository where the Codespace exists and press "," key on your keyboard and **select Resume this codespace** or open https://github.com/codespaces in the browser, select the repository, and then select the existing Codespace. + ## Timeouts for a Codespace If Codespace is inactive, or if you exit your Codespace without explicitly stopping, the application times out after a period of inactivity and stops running. The default timeout is after 30 minutes of inactivity. You cannot customize the duration of the timeout period for new Codespaces. From 6cc5b6124881f09156b24fa45c6ae5a7c439d2e0 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 17:44:00 -0500 Subject: [PATCH 70/90] Update 3-managing.codespace.md Moving to 2nd unit in order to fit with flow --- github/github-codespaces/includes/3-managing.codespace.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/github/github-codespaces/includes/3-managing.codespace.md b/github/github-codespaces/includes/3-managing.codespace.md index 421d3264..961fdcd2 100644 --- a/github/github-codespaces/includes/3-managing.codespace.md +++ b/github/github-codespaces/includes/3-managing.codespace.md @@ -24,11 +24,6 @@ While ports can be forwarded automatically, they are not publicly accessible to Running your application when you first land in your Codespace can make for fast inner development. As you edit, your changes are automatically saved and available on your forwarded port. To view changes, go back to the running application tab in your browser and refresh it. -## Losing the connection while using GitHub Codespaces -A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When you reestablish the internet connection, you can access the Codespace in the same state that it was left in when the connection was lost. - -**NOTE: If you have an unstable internet connection, you should frequently commit and push your changes.** - If you know that you will often be working offline, you can use your devcontainer.json file with the "Dev Containers" extension for VS code to build and attach to a local development container for your repository. ## Committing and pushing your changes From a5791f4c8dc8bba82c1f972717e7d00ca51f1ab6 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 17:45:31 -0500 Subject: [PATCH 71/90] Update 2-codespace-lifecycle.md Added in Losing internet connection while using Codespaces --- github/github-codespaces/includes/2-codespace-lifecycle.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index 51d766e7..0961ac25 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -80,6 +80,11 @@ If Codespace is inactive, or if you exit your Codespace without explicitly stopp When a Codespace times out, your data is kept from the last time your changes were saved. +## Losing the connection while using GitHub Codespaces +A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When you reestablish the internet connection, you can access the Codespace in the same state that it was left in when the connection was lost. + +**NOTE: If you have an unstable internet connection, you should frequently commit and push your changes.** + ## Closing or stopping a Codespace If you exit the Codespace without running the stop command (for example, by closing the browser tab) or leave the Codespace running without interaction, the Codespace and its running processes continue for the duration of the inactivity timeout period. The default inactivity timeout period is 30 minutes. You can define your personal timeout setting for Codespaces you create, but this may be overruled by an organization timeout policy. From 163b1200d0aa87f2be6a593382b41ff6f897810a Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 17:46:15 -0500 Subject: [PATCH 72/90] Update 2-codespace-lifecycle.md specified internet connection --- github/github-codespaces/includes/2-codespace-lifecycle.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index 0961ac25..2800976b 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -80,7 +80,7 @@ If Codespace is inactive, or if you exit your Codespace without explicitly stopp When a Codespace times out, your data is kept from the last time your changes were saved. -## Losing the connection while using GitHub Codespaces +## Losing internet connection while using GitHub Codespaces A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When you reestablish the internet connection, you can access the Codespace in the same state that it was left in when the connection was lost. **NOTE: If you have an unstable internet connection, you should frequently commit and push your changes.** From 550c3accc70d4c681871bfd8cd6c8aada135c0bf Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 17:54:13 -0500 Subject: [PATCH 73/90] Update 2-codespace-lifecycle.md Removed a couple of sections to reduce the noise of the learning unit and pointed learners to more in depth material in the resources section --- .../includes/2-codespace-lifecycle.md | 32 ++----------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index 2800976b..f5cc8b19 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -24,6 +24,8 @@ When creating a new Codespace each time you work on a project, you should regula Repository administrators can enable GitHub Codespaces prebuilds for a repository to speed up Codespace creation. +For an indepth walkthrough and step by step guidance see the two resources titled **A beginner’s guide to learning to code with GitHub Codespaces** and **Developing in codespace** in the resources section of the summary unit at the end of this module + ## Codespace creation process :::image type="content" source="../media/codespaces-diagram.png" alt-text="Diagram of a github codespace and how it connects from your code editor and into a docker container."::: @@ -34,36 +36,6 @@ When creating a GitHub Codespace, four processes must occur: 3. Connecting to the Codespace 4. Post-creation setup -### VM and storage are assigned to your Codespace -When creating a Codespace, a shallow clone is made of either the current repository or of the template repository if you're creating a Codespace from a template. A shadow clone is a repository created by limiting the depth of the history that duplicates from an original repository. The shallow clone enables you to have full root container access. - -The cloned repository saves to a Linux virtual machine (VM) that you can have as both dedicated and private. Having a dedicated VM ensures you have the entire set of computing resources from that machine. - -### Creating a container -Creating a GitHub Codespace uses a development container as the environment based on configurations defined in a devcontainer.json file or a Dockerfile. When using a blank template, or from a repository with no devcontainer.json file, Codespace employs a default image, with the appropriate languages and runtimes available. - -**NOTE: If you want to use Git hooks in your Codespace and apply anything in the git template directory to your Codespace, then you must set up hooks after the container is created.** - -Since your repository is cloned onto the host VM before the container is created, anything in the git template directory will not apply in your Codespace unless you set up hooks in your devcontainer.json configuration file using the postCreateCommand - -### Connecting to a Codespace -After container creation and any other initialization has run, you can connect to Codespace one of the following four methods. -- Web browser -- Visual studio code -- JetBrains IDE -- GitHub CLI - -### Post-creation setup -Once the Codespace connection is complete, the automated setup process may continue to build based on the configuration specified in the devcontainer.json file. You may see postCreateCommand and postAttachCommand run after connection completion. - -Once you have the Codespace complete, you may want to use Git hooks in your Codespace or set up hooks using the devcontainer.json lifecycle scripts, such as postCreateCommand. - -You can enable a public dotfile repository using Codespaces. When implemented, your dotfiles will be cloned to the container and will invoke the install script. - -When creating a Codespace from a repository, the repository’s entire history is copied down with a full clone. If creating a Codespace from a template, the full history of the template repository is not preserved, unless you are using the blank template. You will start with an initial commit for the contents of the template repository. - -**NOTE: During post-creation setup, you'll still be able to use the integrated terminal and make edits to your files, but take care to avoid any race conditions between your work and the commands that are running.** - ## Saving changes in a Codespace When you connect to a Codespace through the web, auto-save is automatically enabled to save changes after a specific amount of time has passed. When you connect to a Codespace through Visual Studio Code running on your desktop, you must enable auto-save. From 44ea81911200c641c32247e20841bf867b064f4b Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 17:58:37 -0500 Subject: [PATCH 74/90] Update 2-codespace-lifecycle.md updated headers to better delineate content --- .../includes/2-codespace-lifecycle.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index f5cc8b19..287ecf7c 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -26,7 +26,7 @@ Repository administrators can enable GitHub Codespaces prebuilds for a repositor For an indepth walkthrough and step by step guidance see the two resources titled **A beginner’s guide to learning to code with GitHub Codespaces** and **Developing in codespace** in the resources section of the summary unit at the end of this module -## Codespace creation process +### Codespace creation process :::image type="content" source="../media/codespaces-diagram.png" alt-text="Diagram of a github codespace and how it connects from your code editor and into a docker container."::: @@ -36,23 +36,23 @@ When creating a GitHub Codespace, four processes must occur: 3. Connecting to the Codespace 4. Post-creation setup -## Saving changes in a Codespace +### Saving changes in a Codespace When you connect to a Codespace through the web, auto-save is automatically enabled to save changes after a specific amount of time has passed. When you connect to a Codespace through Visual Studio Code running on your desktop, you must enable auto-save. Your work will save to a virtual machine in the cloud. You can close and stop a Codespace and return to the saved work at a later time. If you have unsaved changes, you’ll receive a prompt to save them before exiting. However, if your Codespace is deleted, then your work will be lost. To save your work, you must commit your changes and push them to your remote repository or publish your work to a new one if you created your Codespace from a template. -## Opening an existing Codespace +### Opening an existing Codespace You can reopen any of your active or stopped codespaces on GitHub.com, in a JetBrains IDE, in Visual Studio Code, or by using GitHub CLI. To resume an existing Codespace you can either go to the respository where the Codespace exists and press "," key on your keyboard and **select Resume this codespace** or open https://github.com/codespaces in the browser, select the repository, and then select the existing Codespace. -## Timeouts for a Codespace +### Timeouts for a Codespace If Codespace is inactive, or if you exit your Codespace without explicitly stopping, the application times out after a period of inactivity and stops running. The default timeout is after 30 minutes of inactivity. You cannot customize the duration of the timeout period for new Codespaces. When a Codespace times out, your data is kept from the last time your changes were saved. -## Losing internet connection while using GitHub Codespaces +### Losing internet connection while using GitHub Codespaces A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When you reestablish the internet connection, you can access the Codespace in the same state that it was left in when the connection was lost. **NOTE: If you have an unstable internet connection, you should frequently commit and push your changes.** From 03c4905bc1668d03516d84877b97ffff5f36bb9a Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Mon, 10 Jul 2023 18:05:10 -0500 Subject: [PATCH 75/90] Update and rename 3-managing.codespace.md to 3-personalizing-your-codespace.md Reframing this section to be shorter and aligned to foundations exam, placeholders for now --- .../includes/3-managing.codespace.md | 52 ------------------- .../3-personalizing-your-codespace.md | 14 +++++ 2 files changed, 14 insertions(+), 52 deletions(-) delete mode 100644 github/github-codespaces/includes/3-managing.codespace.md create mode 100644 github/github-codespaces/includes/3-personalizing-your-codespace.md diff --git a/github/github-codespaces/includes/3-managing.codespace.md b/github/github-codespaces/includes/3-managing.codespace.md deleted file mode 100644 index 961fdcd2..00000000 --- a/github/github-codespaces/includes/3-managing.codespace.md +++ /dev/null @@ -1,52 +0,0 @@ -## Codespace directory structure -After creating a Codespace, the clone is placed into the `/workspaces` directory. This is a persistent directory placed into the container. Any changes you make inside this directory, including editing, adding, deleting files, and rebuilding the container are preserved when you stop and restart the Codespace. - -Outside the `/workspaces` directory, your Codespace contains a Linux directory structure that varies depending on the image used to build your Codespace. You can add files or make changes to files outside the `/workspaces` directory. For example, you can install new programs, or set up your shell configuration in a file such as `~/.bashrc`. As a non-root user, you may not automatically have write access to certain directories. Most images allow root access to these directories with the sudo command. - -Outside `/workspaces`, except the `/tmp` directory, Codespace directories are linked to the container’s lifecycle. Any changes are preserved when you stop and start your Codespace but are not preserved when you rebuild the container. - -Clearing the directories outside `/workspaces` ensures the rebuilt container is in the same state as it would be in a newly created Codespace. If rebuilding a container to apply configuration changes to the Codespace you're working in, any changes you have made will work the same for users creating new Codespaces with the same configuration. - -If you want to make Codespaces more robust over rebuilds and across different Codespaces, you have several options. - -- Install programs and tools in all Codespaces created from a repository. In your dev container configuration, you can use lifecycle command properties such as postCreateCommand to run custom installation commands, or you can choose from pre-written installation commands called features. -- Install tools or customize your setup in every Codespace you create, such as configuring your bash profile, you can link GitHub Codespaces with a dotfiles repository. The dotfiles repository is also cloned into the persistent `/workspaces` directory. -- Preserve specific files over a rebuild, use a devcontainer.json file to create a symlink between the files and a persistent directory within /workspaces. A symlink points to another file or folder on your computer or a connected file system. A symlink is similar to a Windows shortcut. - -## Running your application -Port forwarding provides access to TCP ports running within the Codespace. For example, if running a web application on port 4000 within your Codespace, you can automatically forward that port to make the application accessible from your browser. - -Port forwarding determines which ports are made accessible to you from the remote machine. Even if you do not forward a port, that port is still accessible to other processes running inside the Codespace. - -When an application running inside a GitHub Codespace outputs a port to the console, GitHub Codespace detects the localhost URL pattern and automatically forwards the port. You can click on the URL in the terminal, or the link in the "toast" notification message that pops up at the bottom right corner of VS Code, to open the port in a browser. By default, GitHub Codespace forwards the port using HTTP. - -While ports can be forwarded automatically, they are not publicly accessible to the internet. By default, all ports are private, but you can manually make a port available to your organization or public, and then share access through a URL. - -Running your application when you first land in your Codespace can make for fast inner development. As you edit, your changes are automatically saved and available on your forwarded port. To view changes, go back to the running application tab in your browser and refresh it. - -If you know that you will often be working offline, you can use your devcontainer.json file with the "Dev Containers" extension for VS code to build and attach to a local development container for your repository. - -## Committing and pushing your changes -If you're working with an existing repository, you can: -- create a Codespace from any branch, commit, or pull request in the repository -- switch to a new or existing branch from within your active Codespace. - -GitHub Codespace is designed to be a short-lived clone of the UAT (user acceptance testing) or production environment. Use Codespace to create an isolated environment to: -- experiment -- check a teammate's pull request -- fix merge conflicts - -If you only have read access to a repository, you can create a Codespace for the repository as long as you can fork it. When you make a commit from the Codespace or push a new branch, GitHub Codespaces either automatically create a fork of the repository for you or link the Codespace to an existing fork if you already have one for the upstream repository. - -If you're working in a Codespace created from a template, Git is installed by default. You will need to publish your Codespace to a remote repository to save your work before sharing. If you start from GitHub's blank template, you first need to initialize your workspace as a Git repository (for example by entering git init) to start using source control within the Codespace. - -**NOTE: Commits from your Codespace will be attributed to the name and public email configured at https://github.com/settings/profile. A token scoped to the repository, including in the environment as GITHUB_TOKEN, and your GitHub credentials will be used to authenticate.** - -## Personalizing your Codespace with extensions or plugins -You can add plugins and extensions within a Codespace to personalize your experience in JetBrains and VS Code. -### VS Code extensions -If you work on your Codespaces in the VS Code desktop application or the web client, you can add any extensions you need from the Visual Studio Code Marketplace. For information on how extensions run in GitHub Codespaces, see Supporting Remote Development and GitHub Codespaces in the VS Code documentation. - -If you already use VS Code, you can use Settings Sync to automatically sync extensions, settings, themes, and keyboard shortcuts between your local instance and any Codespaces you create. -## JetBrains plugins -If you work on your codespaces in a JetBrains IDE, you can add plugins from the JetBrains Marketplace. diff --git a/github/github-codespaces/includes/3-personalizing-your-codespace.md b/github/github-codespaces/includes/3-personalizing-your-codespace.md new file mode 100644 index 00000000..a64703bc --- /dev/null +++ b/github/github-codespaces/includes/3-personalizing-your-codespace.md @@ -0,0 +1,14 @@ +GitHub Codespaces is a dedicated environment for you. You can configure your repositories with a dev container to define their default GitHub Codespaces environment, and personalize your development experience across all of your codespaces with dotfiles and Settings Sync. + +## What you can personalize + +## Settings you can personalize setting sync and dotfiles + +## Personalizing your Codespace with extensions or plugins +You can add plugins and extensions within a Codespace to personalize your experience in JetBrains and VS Code. +### VS Code extensions +If you work on your Codespaces in the VS Code desktop application or the web client, you can add any extensions you need from the Visual Studio Code Marketplace. For information on how extensions run in GitHub Codespaces, see Supporting Remote Development and GitHub Codespaces in the VS Code documentation. + +If you already use VS Code, you can use Settings Sync to automatically sync extensions, settings, themes, and keyboard shortcuts between your local instance and any Codespaces you create. +## JetBrains plugins +If you work on your codespaces in a JetBrains IDE, you can add plugins from the JetBrains Marketplace. From 6a26c8e621f7f616923e7d9092186e20c9f1a2be Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 11 Jul 2023 10:20:20 -0500 Subject: [PATCH 76/90] Update 3-personalizing-your-codespace.md Updated content to include information on the foundations exam --- .../3-personalizing-your-codespace.md | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/github/github-codespaces/includes/3-personalizing-your-codespace.md b/github/github-codespaces/includes/3-personalizing-your-codespace.md index a64703bc..8ab5f0ce 100644 --- a/github/github-codespaces/includes/3-personalizing-your-codespace.md +++ b/github/github-codespaces/includes/3-personalizing-your-codespace.md @@ -1,14 +1,32 @@ GitHub Codespaces is a dedicated environment for you. You can configure your repositories with a dev container to define their default GitHub Codespaces environment, and personalize your development experience across all of your codespaces with dotfiles and Settings Sync. -## What you can personalize +## What you can customize -## Settings you can personalize setting sync and dotfiles +There are multultitude of ways for you to customize your Codespace. Let's review each one. -## Personalizing your Codespace with extensions or plugins +- **Settings Sync:** You can synchronize your Visual Studio Code settings between the desktop application and the VS Code web client. +- **Dotfiles:** You can use a dotfiles repository to specify scripts, shell preferences, and other configurations. +- **Rename a codespace:** When you create a codespace it's assigned an auto-generated display name. If you have multiple codespaces, the display name helps you to differentiate between codespaces.You can change the display name for your codespace. +- **Change your shell:** You can change your shell in a codespace to keep the setup you're used to. When you're working in a codespace, you can open a new terminal window with a shell of your choice, change your default shell for new terminal windows, or install a new shell. You can also use dotfiles to configure your shell. +- **Change the machine type:** You can change the type of machine that's running your codespace, so that you're using resources appropriate for the work you're doing. +- **Set the default editor:** You can set your default editor for Codespaces in your personal settings page. On the settings page, you can set your editor preference so that when you create a codespace, or open an existing codespace, it is opened in your choice of: + - Visual Studio Code (desktop application) + - Visual Studio Code (web client application) + - JetBrains Gateway - for opening codespaces in a JetBrains IDE + - JupyterLab - the web interface for Project Jupyter +- **Set the default region:** You can set your default region in the GitHub Codespaces profile settings page to personalize where your data is held. +- **Set the timeout:** A codespace will stop running after a period of inactivity. By default this period is 30 minutes, but you can specify a longer or shorter default timeout period in your personal settings on GitHub. The updated setting will apply to any new codespaces you create, or to existing codespaces the next time you start them. +- **Configuring automatic deletion:** Inactive codespaces are automatically deleted. You can choose how long your stopped codespaces are retained, up to a maximum of 30 days. + +For more on how on customization and step by step instructions on how to do everything we reviewed above, check out article titled, "Personalize your codespace" in the Resources section at the end of this module. + +## Add to your Codespace with extensions or plugins You can add plugins and extensions within a Codespace to personalize your experience in JetBrains and VS Code. + ### VS Code extensions If you work on your Codespaces in the VS Code desktop application or the web client, you can add any extensions you need from the Visual Studio Code Marketplace. For information on how extensions run in GitHub Codespaces, see Supporting Remote Development and GitHub Codespaces in the VS Code documentation. If you already use VS Code, you can use Settings Sync to automatically sync extensions, settings, themes, and keyboard shortcuts between your local instance and any Codespaces you create. -## JetBrains plugins + +### JetBrains plugins If you work on your codespaces in a JetBrains IDE, you can add plugins from the JetBrains Marketplace. From bfbc5106d90bc3a8269931b2c55037aea4668ac7 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 11 Jul 2023 10:21:11 -0500 Subject: [PATCH 77/90] Update 1-introduction.md Removed 2nd prerequisite --- github/github-codespaces/includes/1-introduction.md | 1 - 1 file changed, 1 deletion(-) diff --git a/github/github-codespaces/includes/1-introduction.md b/github/github-codespaces/includes/1-introduction.md index f8628627..c35eb82f 100644 --- a/github/github-codespaces/includes/1-introduction.md +++ b/github/github-codespaces/includes/1-introduction.md @@ -13,4 +13,3 @@ In this module, you will learn how to: ## Pre-requisites - A GitHub Account -- Knowledge of basic computer code terminology and concepts From 98e817ad3e2bd682654ea210fffa5735414f7ba7 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 11 Jul 2023 10:21:55 -0500 Subject: [PATCH 78/90] Delete 5-knowledge-check.md Deleting this file since we don't need it --- github/github-codespaces/includes/5-knowledge-check.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 github/github-codespaces/includes/5-knowledge-check.md diff --git a/github/github-codespaces/includes/5-knowledge-check.md b/github/github-codespaces/includes/5-knowledge-check.md deleted file mode 100644 index 8b137891..00000000 --- a/github/github-codespaces/includes/5-knowledge-check.md +++ /dev/null @@ -1 +0,0 @@ - From 911e2628398b1f38beca5897801e09141259cd68 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 11 Jul 2023 13:42:27 -0500 Subject: [PATCH 79/90] Update 7-summary.md Added content to summary --- .../github-codespaces/includes/7-summary.md | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/7-summary.md b/github/github-codespaces/includes/7-summary.md index 7aaa3495..9680dda4 100644 --- a/github/github-codespaces/includes/7-summary.md +++ b/github/github-codespaces/includes/7-summary.md @@ -1 +1,18 @@ -## Summary +In this module you learned about GitHub Codespaces, a fully configured development environment hosted in the cloud. + +You should now know how to: + +- Describe GitHub Codespaces +- Define the GitHub Codespace lifecycle and how to perform each step +- Understand the different customizations you can personalize with GitHub Codespaces +- Discern the differences between GitHub.dev and GitHub Codespaces + +## Resources +Here are some links to more information on the topics we discussed in this module: +- [A beginner’s guide to learning to code with GitHub Codespaces](https://github.blog/2023-02-22-a-beginners-guide-to-learning-to-code-with-github-codespaces/) +- [Developing in a codespace](https://docs.github.com/en/codespaces/developing-in-codespaces/developing-in-a-codespace) +- [Customizing your codespace](https://docs.github.com/en/codespaces/customizing-your-codespace) + +## How to provide feedback + +If you have content feedback or suggested changes for this Microsoft Learn module, use [this issue form](https://github.com/githubpartners/microsoft-learn/issues/new/choose) to provide that feedback. This content is maintained by GitHub and a team member will triage the request. Thank you for taking the time to improve our content! From 57fdf1c6f1cd19c9d5ecd60919331c2c1ad276c3 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 11 Jul 2023 13:43:08 -0500 Subject: [PATCH 80/90] Update 3-managing.codespace.yml Changed time stamp --- github/github-codespaces/3-managing.codespace.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/3-managing.codespace.yml b/github/github-codespaces/3-managing.codespace.yml index 258ecd47..423eaa21 100644 --- a/github/github-codespaces/3-managing.codespace.yml +++ b/github/github-codespaces/3-managing.codespace.yml @@ -20,6 +20,6 @@ metadata: ### If you need to request new values, follow the process here: https://review.learn.microsoft.com/en-us/help/platform/metadata-allowlist-requests?branch=main ms.prod: TODO ms.service: TODO -durationInMinutes: 1 +durationInMinutes: 5 content: | [!include[](includes/4-learning-content.md)] From d1a0835e4cde5efc4e848a8839c88d87bfb944d9 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Tue, 11 Jul 2023 17:45:19 -0500 Subject: [PATCH 81/90] Update 4-githubdev-versus-GitHub-Codespaces.md Added a bit of content to ensure we cover questions reviewed in the foundations exam --- .../includes/4-githubdev-versus-GitHub-Codespaces.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md index c56b083a..6447f666 100644 --- a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md +++ b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md @@ -2,10 +2,9 @@ Similar to Codespaces, you can also utilize github.dev. It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. - One of the main differences between github.dev and GitHub Codespaces is that GitHub Codespaces provides terminal access. -Meanwhile, github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. +Meanwhile, github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. Github.dev from a web browser is the best way to quickly modify a batch of files in a repository. The github.dev editor is available to everyone for free on GitHub.com. From d07bcc4f0bd19e277e6aeb5312e26f2bdc8924f1 Mon Sep 17 00:00:00 2001 From: a-a-ron Date: Thu, 13 Jul 2023 09:06:37 -0600 Subject: [PATCH 82/90] Make minor changes --- .../github-codespaces/6-knowledge-check.yml | 6 ++--- .../includes/2-codespace-lifecycle.md | 22 ++++++++++++------- .../3-personalizing-your-codespace.md | 7 ++++-- .../4-githubdev-versus-GitHub-Codespaces.md | 12 +++++----- 4 files changed, 29 insertions(+), 18 deletions(-) diff --git a/github/github-codespaces/6-knowledge-check.yml b/github/github-codespaces/6-knowledge-check.yml index db84f092..fe18dbe0 100644 --- a/github/github-codespaces/6-knowledge-check.yml +++ b/github/github-codespaces/6-knowledge-check.yml @@ -25,9 +25,9 @@ quiz: - content: "~/.bashrc directory" isCorrect: false explanation: "~/.bashrc directory is not the location where cloned content is placed." - content: Linuix directory + - content: Linux directory isCorrect: false - explanation: "Linuix directory is not the location where cloned content is placed." + explanation: "Linux directory is not the location where cloned content is placed." - content: "What is the maximum number of Codespaces that you can create per repository or branch?" choices: - content: "You can only create two Codespaces." @@ -36,7 +36,7 @@ quiz: - content: "You can create a total of ten workspaces." isCorrect: false explanation: "Ten is not the maximum number of Codespaces you can create. However, there are limits to the number of Codespaces that you can create and run at the same time." - - content: "You can create a total of thirty workspaces." + - content: "You can create a total of thirty workspaces." isCorrect: false explanation: "Thirty is not the maximum number of Codespaces you can create. However, there are limits to the number of Codespaces that you can create and run at the same time." - content: "You can create an unlimited number of Codespaces per repository or branch, depending upon available space. When you reach an upper amount of resources, a message will display that an existing Codespace needs to removed/deleted before a new Codespace can be created." diff --git a/github/github-codespaces/includes/2-codespace-lifecycle.md b/github/github-codespaces/includes/2-codespace-lifecycle.md index 287ecf7c..47061c8a 100644 --- a/github/github-codespaces/includes/2-codespace-lifecycle.md +++ b/github/github-codespaces/includes/2-codespace-lifecycle.md @@ -1,5 +1,3 @@ -# What is a Codespace? - GitHub Codespaces is an instant, cloud-based development environment that uses a container to provide you with common languages, tools, and utilities for development. GitHub Codespaces is a configurable, allowing you to create a customized development environment for your project. By configuring a custom development environment for your project, you can have a repeatable codespace configuration for all users of your project. A Codespace’s lifecycle begins when you create a Codespace and ends when you delete it. You can disconnect and reconnect to an active Codespace without affecting its running processes. You can stop and restart a Codespace without losing the changes that you have made to your project. @@ -7,6 +5,7 @@ A Codespace’s lifecycle begins when you create a Codespace and ends when you d :::image type="content" source="../media/codespaces-lifecycle.png" alt-text="Image of a circular lifecyle of a codespace that starts with creating and ends with deleting."::: ## Creating a Codespace + You can create a Codespace on GitHub.com, in Visual Studio Code, or by GitHub CLI. There are four ways to create a Codespace: - From a GitHub template or any template repository on GitHub.com to start a new project @@ -31,13 +30,15 @@ For an indepth walkthrough and step by step guidance see the two resources title :::image type="content" source="../media/codespaces-diagram.png" alt-text="Diagram of a github codespace and how it connects from your code editor and into a docker container."::: When creating a GitHub Codespace, four processes must occur: + 1. VM and storage are assigned to your Codespace 2. A container is created 3. Connecting to the Codespace 4. Post-creation setup ### Saving changes in a Codespace -When you connect to a Codespace through the web, auto-save is automatically enabled to save changes after a specific amount of time has passed. When you connect to a Codespace through Visual Studio Code running on your desktop, you must enable auto-save. + +When you connect to a Codespace through the web, auto-save is automatically enabled to save changes after a specific amount of time has passed. When you connect to a Codespace through Visual Studio Code running on your desktop, you must enable auto-save. Your work will save to a virtual machine in the cloud. You can close and stop a Codespace and return to the saved work at a later time. If you have unsaved changes, you’ll receive a prompt to save them before exiting. However, if your Codespace is deleted, then your work will be lost. To save your work, you must commit your changes and push them to your remote repository or publish your work to a new one if you created your Codespace from a template. @@ -45,20 +46,23 @@ Your work will save to a virtual machine in the cloud. You can close and stop a You can reopen any of your active or stopped codespaces on GitHub.com, in a JetBrains IDE, in Visual Studio Code, or by using GitHub CLI. -To resume an existing Codespace you can either go to the respository where the Codespace exists and press "," key on your keyboard and **select Resume this codespace** or open https://github.com/codespaces in the browser, select the repository, and then select the existing Codespace. +To resume an existing Codespace you can either go to the respository where the Codespace exists and press "," key on your keyboard and **select Resume this codespace** or open https://github.com/codespaces in the browser, select the repository, and then select the existing Codespace. ### Timeouts for a Codespace + If Codespace is inactive, or if you exit your Codespace without explicitly stopping, the application times out after a period of inactivity and stops running. The default timeout is after 30 minutes of inactivity. You cannot customize the duration of the timeout period for new Codespaces. -When a Codespace times out, your data is kept from the last time your changes were saved. +When a Codespace times out, your data is kept from the last time your changes were saved. ### Losing internet connection while using GitHub Codespaces + A Codespace requires an internet connection. If the connection to the internet is lost while working in a Codespace, you will not be able to access your Codespace. However, any uncommitted changes will be saved. When you reestablish the internet connection, you can access the Codespace in the same state that it was left in when the connection was lost. **NOTE: If you have an unstable internet connection, you should frequently commit and push your changes.** ## Closing or stopping a Codespace -If you exit the Codespace without running the stop command (for example, by closing the browser tab) or leave the Codespace running without interaction, the Codespace and its running processes continue for the duration of the inactivity timeout period. The default inactivity timeout period is 30 minutes. You can define your personal timeout setting for Codespaces you create, but this may be overruled by an organization timeout policy. + +If you exit the Codespace without running the stop command (for example, by closing the browser tab) or leave the Codespace running without interaction, the Codespace and its running processes continue for the duration of the inactivity timeout period. The default inactivity timeout period is 30 minutes. You can define your personal timeout setting for Codespaces you create, but this may be overruled by an organization timeout policy. Only running Codespaces incur CPU charges. A stopped Codespace incurs only storage costs. @@ -67,13 +71,15 @@ You can stop and restart a Codespace to apply changes. For example, if you chang **NOTE: You can also stop Codespace and choose to restart or delete it if you encounter an error or something unexpected.** ## Rebuilding a Codespace + You can rebuild your Codespace to implement changes to your dev container configuration. For most uses, you can create a new Codespace as an alternative to rebuilding a Codespace. When you rebuild your Codespace, images from the cache speed up the rebuild process. You could also perform a full rebuild to clear the cache and rebuilds the container with fresh images. **NOTE: When you rebuild the container in a Codespace, changes you made outside the /workspaces directory are cleared. Changes you made inside the /workspaces directory, including the clone of the repository or template you created the Codespace from, are preserved over a rebuild.** ## Deleting a Codespace + You can create a Codespace for a particular task. After you push your changes to a remote branch, then you can safely delete that Codespace. -If you try to delete a Codespace with unpushed git commits, the editor will notify you that you have changes that have not been pushed to a remote branch. You can push any desired changes and then delete your Codespace. You can also continue to delete your Codespace and any uncommitted changes or export the code to a new branch without creating a new Codespace. +If you try to delete a Codespace with unpushed git commits, the editor will notify you that you have changes that have not been pushed to a remote branch. You can push any desired changes and then delete your Codespace. You can also continue to delete your Codespace and any uncommitted changes or export the code to a new branch without creating a new Codespace. -Stopped Codespaces that remain inactive for a specified amount of time will be deleted automatically. Inactive Codespaces delete after 30 days, but you can customize your Codespace retention intervals. +Stopped Codespaces that remain inactive for a specified amount of time will be deleted automatically. Inactive Codespaces delete after 30 days, but you can customize your Codespace retention intervals. diff --git a/github/github-codespaces/includes/3-personalizing-your-codespace.md b/github/github-codespaces/includes/3-personalizing-your-codespace.md index 8ab5f0ce..e886757a 100644 --- a/github/github-codespaces/includes/3-personalizing-your-codespace.md +++ b/github/github-codespaces/includes/3-personalizing-your-codespace.md @@ -2,7 +2,7 @@ GitHub Codespaces is a dedicated environment for you. You can configure your rep ## What you can customize -There are multultitude of ways for you to customize your Codespace. Let's review each one. +There are a multitude of ways for you to customize your Codespace. Let's review each one. - **Settings Sync:** You can synchronize your Visual Studio Code settings between the desktop application and the VS Code web client. - **Dotfiles:** You can use a dotfiles repository to specify scripts, shell preferences, and other configurations. @@ -18,15 +18,18 @@ There are multultitude of ways for you to customize your Codespace. Let's review - **Set the timeout:** A codespace will stop running after a period of inactivity. By default this period is 30 minutes, but you can specify a longer or shorter default timeout period in your personal settings on GitHub. The updated setting will apply to any new codespaces you create, or to existing codespaces the next time you start them. - **Configuring automatic deletion:** Inactive codespaces are automatically deleted. You can choose how long your stopped codespaces are retained, up to a maximum of 30 days. -For more on how on customization and step by step instructions on how to do everything we reviewed above, check out article titled, "Personalize your codespace" in the Resources section at the end of this module. +For more on how on customization and step by step instructions on how to do everything we reviewed above, check out article titled, "Personalize your codespace" in the Resources section at the end of this module. ## Add to your Codespace with extensions or plugins + You can add plugins and extensions within a Codespace to personalize your experience in JetBrains and VS Code. ### VS Code extensions + If you work on your Codespaces in the VS Code desktop application or the web client, you can add any extensions you need from the Visual Studio Code Marketplace. For information on how extensions run in GitHub Codespaces, see Supporting Remote Development and GitHub Codespaces in the VS Code documentation. If you already use VS Code, you can use Settings Sync to automatically sync extensions, settings, themes, and keyboard shortcuts between your local instance and any Codespaces you create. ### JetBrains plugins + If you work on your codespaces in a JetBrains IDE, you can add plugins from the JetBrains Marketplace. diff --git a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md index 6447f666..70e28c5e 100644 --- a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md +++ b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md @@ -1,6 +1,6 @@ Similar to Codespaces, you can also utilize github.dev. -It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. +It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. One of the main differences between github.dev and GitHub Codespaces is that GitHub Codespaces provides terminal access. @@ -15,16 +15,18 @@ The github.dev editor runs entirely in your browser’s sandbox. The editor do You must be signed in to GitHub.com to use the github.dev editor. ### Codespace vs. github.dev -| | github.dev | GitHub Codespace | -|--------|--------|--------| -| Cost | Free | Free monthly quota of usage for personal accounts | -| Availability | Available to everyone on GitHub.com | Available to everyone on GitHub.com | + +| | github.dev | GitHub Codespace | +|--------|--------|--------| +| Cost | Free | Free monthly quota of usage for personal accounts | +| Availability | Available to everyone on GitHub.com | Available to everyone on GitHub.com | | Startup | Github.dev opens instantly with a key-press and you can start using it right away without having to wait for additional configuration or installation | When you create or resume a codespace, the codespace is assigned a VM and the container is configured based on the contents of a devcontainer.json file. This setup may take a few minutes to create the development environment. | | Compute | There is no associated compute, so you won’t be able to build and run your code or use the integrated terminal. | With GitHub Codespaces, you get the power of a dedicated VM on which you can run and debug your application.| | Terminal access | None | GitHub Codespaces provides a common set of tools by default, meaning that you can use the Terminal exactly as you would in your local environment.| | Extensions | Only a subset of extensions that can run on the web will appear in the Extensions View and can be installed | With GitHub Codespaces, you can use most extensions from the Visual Studio Code Marketplace.| ### Continue working on Codespaces + You can start your workflow in github.dev and continue working on a codespace. If you try to access the Run and Debug View or the Terminal, you'll be notified that they are not available in github.dev. To continue your work in a codespace, click Continue Working on… and select Create New Codespace to create a codespace on your current branch. Before you choose this option, you must commit any changes. From 207f592ec33da0f7ff14abc0a8af8c8629d2f4e7 Mon Sep 17 00:00:00 2001 From: a-a-ron Date: Thu, 13 Jul 2023 09:16:16 -0600 Subject: [PATCH 83/90] Revert "Rename 7-team-synchronization.md to 8-team-synchronization.md" This reverts commit e6b0fc374100e3321fc69169e10d2c0394aa7277. --- .../{8-team-synchronization.md => 7-team-synchronization.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename github/authenticate-authorize-user-identities-github/includes/{8-team-synchronization.md => 7-team-synchronization.md} (100%) diff --git a/github/authenticate-authorize-user-identities-github/includes/8-team-synchronization.md b/github/authenticate-authorize-user-identities-github/includes/7-team-synchronization.md similarity index 100% rename from github/authenticate-authorize-user-identities-github/includes/8-team-synchronization.md rename to github/authenticate-authorize-user-identities-github/includes/7-team-synchronization.md From 60ed19f9106767a18cb321d22539b7a956acbdb7 Mon Sep 17 00:00:00 2001 From: a-a-ron Date: Thu, 13 Jul 2023 09:18:59 -0600 Subject: [PATCH 84/90] Revert "Create 4-about-enterprise-managed-users.md" This reverts commit 9798c9d12d9b951dcbc6b1016e2ea1bd54639788. --- .../includes/4-about-enterprise-managed-users.md | 1 - 1 file changed, 1 deletion(-) delete mode 100644 github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md diff --git a/github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md b/github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md deleted file mode 100644 index 8b137891..00000000 --- a/github/authenticate-authorize-user-identities-github/includes/4-about-enterprise-managed-users.md +++ /dev/null @@ -1 +0,0 @@ - From 2603ba0fb1d97990808f6e16101c5ee1fb09fc27 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 13 Jul 2023 15:43:09 -0500 Subject: [PATCH 85/90] Update 4-githubdev-versus-GitHub-Codespaces.md added transition --- .../includes/4-githubdev-versus-GitHub-Codespaces.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md index 70e28c5e..524c135c 100644 --- a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md +++ b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md @@ -1,12 +1,8 @@ -Similar to Codespaces, you can also utilize github.dev. +In understanding GitHub Codespaces, it is also important we review github.dev, a free, lightweight editing experiences that runs entirely in your browser. It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. -One of the main differences between github.dev and GitHub Codespaces is that GitHub Codespaces provides terminal access. - -Meanwhile, github.dev editor introduces a lightweight editing experience that runs entirely in your browser. With the github.dev editor, you can navigate files and source code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in the editor. Github.dev from a web browser is the best way to quickly modify a batch of files in a repository. - -The github.dev editor is available to everyone for free on GitHub.com. +The main difference between github.dev and GitHub Codespaces is that github.dev has no associated compute, so you won't be able to build and run your code or have terminal access. Meanwhile GitHub Codespaces you get the power of a persoanl Virtual Machine (VM) with terminal access, the same way you could use your local enviornment, just in the cloud. The github.dev editor provides many of the benefits of Visual Studio Code, such as search, syntax highlighting, and a source control view. You can also use Settings Sync to share your own VS Code settings with the editor. From 0e008463a2ee3b091e3b0cba4bac9b6096cf6dc3 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 13 Jul 2023 15:54:05 -0500 Subject: [PATCH 86/90] Update 1-introduction.md Updated last learning objective --- github/github-codespaces/includes/1-introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/1-introduction.md b/github/github-codespaces/includes/1-introduction.md index c35eb82f..a2182b16 100644 --- a/github/github-codespaces/includes/1-introduction.md +++ b/github/github-codespaces/includes/1-introduction.md @@ -9,7 +9,7 @@ In this module, you will learn how to: - Describe GitHub Codespaces - Define the GitHub Codespace lifecycle and how to perform each step - Understand the different customizations you can personalize with GitHub Codespaces -- Discern the differences between GitHub.dev and GitHub Codespaces +- Understand when to use gitHub.dev and GitHub Codespaces ## Pre-requisites - A GitHub Account From 832cb9aac69f2af1ebd1df6debe0f54c846f4123 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 13 Jul 2023 17:19:04 -0500 Subject: [PATCH 87/90] Update 4-githubdev-versus-GitHub-Codespaces.md Reworked the transition into the unit and provided clearer differentiation between the two products. --- .../includes/4-githubdev-versus-GitHub-Codespaces.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md index 524c135c..92b16f83 100644 --- a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md +++ b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md @@ -1,14 +1,10 @@ -In understanding GitHub Codespaces, it is also important we review github.dev, a free, lightweight editing experiences that runs entirely in your browser. +You're probably asking yourself, when should I use GitHub Codespaces and when should I use github.dev? -It is important that you understand the differences between the two types of coding software before you choose which is the best fit for you or your organization. +You can use github.dev to simply navigate files and sources code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in github.dev editor. -The main difference between github.dev and GitHub Codespaces is that github.dev has no associated compute, so you won't be able to build and run your code or have terminal access. Meanwhile GitHub Codespaces you get the power of a persoanl Virtual Machine (VM) with terminal access, the same way you could use your local enviornment, just in the cloud. +If you're wanting to do more heavy lifting like testing your code, you want to use GitHub Codespaces for that since github.dev has no compute associated with it. Because of this you won't be able to build and run your code or have terminal access. Meanwhile GitHub Codespaces you get the power of a persoanl Virtual Machine (VM) with terminal access, the same way you could use your local enviornment, just in the cloud. -The github.dev editor provides many of the benefits of Visual Studio Code, such as search, syntax highlighting, and a source control view. You can also use Settings Sync to share your own VS Code settings with the editor. - -The github.dev editor runs entirely in your browser’s sandbox. The editor doesn’t clone the repository, but instead uses the GitHub Repositories extension to carry out most of the functionality that you will use. Your work is saved in the browser’s local storage until you commit it. You should commit your changes regularly to ensure that they're always accessible. - -You must be signed in to GitHub.com to use the github.dev editor. +Let's review the differences between the two with the table below. ### Codespace vs. github.dev From 0dc6d56419345117d944b99ca47953675306c7b1 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 13 Jul 2023 17:23:15 -0500 Subject: [PATCH 88/90] Update 4-githubdev-versus-GitHub-Codespaces.md fixed "personal" typo --- .../includes/4-githubdev-versus-GitHub-Codespaces.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md index 92b16f83..2716ea45 100644 --- a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md +++ b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md @@ -2,7 +2,7 @@ You're probably asking yourself, when should I use GitHub Codespaces and when sh You can use github.dev to simply navigate files and sources code repositories from GitHub, and make and commit code changes. You can open any repository, fork, or pull request in github.dev editor. -If you're wanting to do more heavy lifting like testing your code, you want to use GitHub Codespaces for that since github.dev has no compute associated with it. Because of this you won't be able to build and run your code or have terminal access. Meanwhile GitHub Codespaces you get the power of a persoanl Virtual Machine (VM) with terminal access, the same way you could use your local enviornment, just in the cloud. +If you're wanting to do more heavy lifting like testing your code, you want to use GitHub Codespaces for that since github.dev has no compute associated with it. Because of this you won't be able to build and run your code or have terminal access. Meanwhile GitHub Codespaces you get the power of a personal Virtual Machine (VM) with terminal access, the same way you could use your local enviornment, just in the cloud. Let's review the differences between the two with the table below. From 04d96b42fbf3a27fb197fd2a2cda7b55cda06684 Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 13 Jul 2023 17:24:43 -0500 Subject: [PATCH 89/90] Update 4-githubdev-versus-GitHub-Codespaces.md defined the transition sentence into the table to say codespaces and github.dev in order to be a bit clearer to the reader --- .../includes/4-githubdev-versus-GitHub-Codespaces.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md index 2716ea45..4298ac50 100644 --- a/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md +++ b/github/github-codespaces/includes/4-githubdev-versus-GitHub-Codespaces.md @@ -4,7 +4,7 @@ You can use github.dev to simply navigate files and sources code repositories fr If you're wanting to do more heavy lifting like testing your code, you want to use GitHub Codespaces for that since github.dev has no compute associated with it. Because of this you won't be able to build and run your code or have terminal access. Meanwhile GitHub Codespaces you get the power of a personal Virtual Machine (VM) with terminal access, the same way you could use your local enviornment, just in the cloud. -Let's review the differences between the two with the table below. +Let's review the differences between Codespaces and github.dev with the table below. ### Codespace vs. github.dev From ae6fdfd1a3ec8007edf172214878d595f35abd0c Mon Sep 17 00:00:00 2001 From: Cami Hernandez Merhar <112580737+camihmerhar@users.noreply.github.com> Date: Thu, 13 Jul 2023 18:02:14 -0500 Subject: [PATCH 90/90] Update 6-exercise.md Implemented truncated version of exercise unit --- .../github-codespaces/includes/6-exercise.md | 24 +------------------ 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/github/github-codespaces/includes/6-exercise.md b/github/github-codespaces/includes/6-exercise.md index 48c1d4de..e0f417e4 100644 --- a/github/github-codespaces/includes/6-exercise.md +++ b/github/github-codespaces/includes/6-exercise.md @@ -1,26 +1,4 @@ -# Code with GitHub Codespaces and Visual Studio Code -Create workflows that enable you to use Continuous Integration (CI) for your projects. - -## Welcome -GitHub Codespaces is a development environment that's hosted in the cloud. - -Who this is for: - -- Developers, DevOps Engineers, Engineering Managers, Product Managers. -- What you'll learn: How to create a codespace, push code from a codespace, select a custom image, and customize a codespace. -- What you'll build: A codespace with devcontainer.json files, customizations, and personalizations. -- Prerequisites: If you need to learn about Visual Studio Code, read Visual Studio Code Docs first. -- How long: This course can be completed in less than an hour. - -In this course, you will: -- Create your first codespace -- Add a custom image -- Customize your codespace -- Personalize your codespace - -## How to start this course - -https://github.com/new?template_owner=skills&template_name=code-with-codespaces&owner=%40me&name=skills-code-with-codespaces&description=My+clone+repository&visibility=public +## How to start this exercise 1. Right-click Start course hyperlink and open the link in a new tab. - In the new tab, most of the prompts will automatically fill in for you.