diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..fff844d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,11 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + + - package-ecosystem: "devcontainers" + directory: "/" + schedule: + interval: "monthly" diff --git a/.github/steps/-step.txt b/.github/steps/-step.txt new file mode 100644 index 0000000..573541a --- /dev/null +++ b/.github/steps/-step.txt @@ -0,0 +1 @@ +0 diff --git a/.github/steps/0-welcome.md b/.github/steps/0-welcome.md new file mode 100644 index 0000000..9ff13a5 --- /dev/null +++ b/.github/steps/0-welcome.md @@ -0,0 +1 @@ + diff --git a/.github/steps/1-first-codespace.md b/.github/steps/1-first-codespace.md new file mode 100644 index 0000000..f517a05 --- /dev/null +++ b/.github/steps/1-first-codespace.md @@ -0,0 +1,64 @@ + + +## Step 1: Create your first codespace and push code + +_Welcome to "Develop code using GitHub Codespaces and Visual Studio Code"! :wave:_ + +**What's the big deal about using a codespace for software development?** A codespace is a development environment that's hosted in the cloud. You can customize your project for GitHub Codespaces by committing configuration files to your repository (also known as configuration-as-code), which creates a repeatable codespace configuration for all users of your project. Each codespace you create is hosted by GitHub in a Docker container that runs on a virtual machine. You can choose the type of machine you want to use depending on the resources you need. + +GitHub offers a range of features to help your development team customize a codespace to reach peak configuration and performance needs. For example, you can: + +- Create a codespace from your repository. +- Push code from the codespace to your repository. +- Use VS Code to develop code. +- Customize the codespace with custom images. +- Manage the codespace. + +To begin developing using GitHub Codespaces, you can create a codespace from a template or from any branch or commit in a repository. When you create a codespace from a template, you can start from a blank template or choose a template suitable for the work you're doing. + +### :keyboard: Activity: Start a codespace + +**We recommend opening another browser tab to work through the following activities so you can keep these instructions open for reference.** + +1. Start from the landing page of your repository. +1. Click the green **Code** button located in the middle of the page. +1. Select the **Codespaces** tab in the box that pops up and then click the **Create codespace on main** button. + + > Wait about 2 minutes for the codespace to spin itself up. + > **Note**: It's a virtual machine spinning up in the background. + +1. Verify your codespace is running. The browser should contain a VS Code web-based editor and a terminal should be present such as the below: + ![codespace1](https://user-images.githubusercontent.com/26442605/207355196-71aab43f-35a9-495b-bcfe-bf3773c2f1b3.png) + +### :keyboard: Activity: Push code to your repository from the codespace + +1. From inside the codespace in the VS Code explorer window, select the `index.html` file. +1. Replace the **h1** header with the below: + + ```html +

Hello from the codespace!

+ ``` + +1. Save the file. + > **Note**: The file should autosave. +1. Use the VS Code terminal to commit the file change by entering the following commit message: + + ```shell + git commit -a -m "Adding hello from the codespace!" + ``` + +1. Push the changes back to your repository. From the VS Code terminal, enter: + + ```shell + git push + ``` + +1. Your code has been pushed to your repository! +1. Switch back to the homepage of your repository and view the `index.html` to verify the new code was pushed to your repository. +1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. diff --git a/.github/steps/2-custom-image.md b/.github/steps/2-custom-image.md new file mode 100644 index 0000000..74586b8 --- /dev/null +++ b/.github/steps/2-custom-image.md @@ -0,0 +1,54 @@ + + +## Step 2: Add a custom image to your codespace! + +_Nice work! :tada: You created your first codespace and pushed code using VS Code!_ + +You can configure the development container for a repository so that any codespace created for that repository will give you a tailored development environment, complete with all the tools and runtimes you need to work on a specific project. + +**What are development containers?** Development containers, or dev containers, are Docker containers that are specifically configured to provide a fully featured development environment. Whenever you work in a codespace, you are using a dev container on a virtual machine. + +A dev container file is a JSON file that lets you customize the default image that runs your codespace, VS code settings, run custom code, forward ports and much more! + +Let's add a `devcontainer.json` file and add a custom image. + +### :keyboard: Activity: Add a .devcontainer.json file to customize your codespace + +1. Navigating back to your **Code** tab of your repository, click the **Add file** drop-down button, and then click `Create new file`. +1. Type or paste the following in the empty text field prompt to name your file. + + ``` + .devcontainer/devcontainer.json + ``` + +1. In the body of the new **.devcontainer/devcontainer.json** file, add the following content: + + ```jsonc + { + // Name this configuration + "name": "Codespace for Skills!", + // Use the base codespace image + "image": "mcr.microsoft.com/vscode/devcontainers/universal:latest", + + "remoteUser": "codespace", + "overrideCommand": false + } + ``` + +1. Click **Commit changes** and then select **Commit changes directly to the `main` branch**. +1. Create a new codespace by navigating back to the **Code** tab of your repository. +1. Click the green **Code** button located in the middle of the page. +1. Click the **Codespaces** tab on the box that pops up. +1. Click the **Create codespace on main** button OR click the `+` sign on the tab. This will create a new codespace on the main branch. (Notice your other codespace listed here.) + + > Wait about **2 minutes** for the codespace to spin itself up. + +1. Verify that your new codespace is is running, as you did previously. + + Note the image being used is the default image provided for GitHub Codespaces. It includes runtimes and tools for Python, Node.js, Docker, and more. See the full list here: https://aka.ms/ghcs-default-image. Your development team can use any custom image that has the necessary prerequisites installed. For more information, see [codespace image](https://aka.ms/configure-codespace). + +1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. diff --git a/.github/steps/3-customize-codespace.md b/.github/steps/3-customize-codespace.md new file mode 100644 index 0000000..3b07dc8 --- /dev/null +++ b/.github/steps/3-customize-codespace.md @@ -0,0 +1,73 @@ + + +## Step 3: Customize your codespace! + +_Nice work! :tada: You created a codespace with a custom image!_ + +You can customize your codespace by adding VS code extensions, adding features, setting host requirements, and much more. + +Let's customize some settings in the `devcontainer.json` file! + +### :keyboard: Activity: Add customizations to the `devcontainer` file + +1. Navigate to the `.devcontainer/devcontainer.json` file. +1. Add the following customizations to the body of the file before the last `}`. + + ```jsonc + , + // Add the IDs of extensions you want installed when the container is created. + "customizations": { + "vscode": { + "extensions": [ + "GitHub.copilot" + ] + }, + "codespaces": { + "openFiles": [ + "codespace.md" + ] + } + } + ``` + +1. Click **Commit changes** and then select **Commit changes directly to the `main` branch**. +1. Create a new codespace by navigating to the landing page of your repository. +1. Click the **Code** button located in the middle of the page. +1. Click the **Codespaces** tab on the box that pops up. +1. Click the **Create codespace on main** button. + + > Wait about **2 minutes** for the codespace to spin itself up. + +1. Verify your codespace is running, as you did previously. +1. The `codespace.md` file should show up in the VS Code editor. +1. The `copilot` extension should show up in the VS Code extension list. + + This will add a VS Code extension as well as open a file on start up of the codespace. + +Next lets add some code to run upon creation of the codespace! + +### :keyboard: Activity: Execute code upon creation of the codespace + +1. Edit the `.devcontainer/devcontainer.json` file. +1. Add the following postCreateCommand to the body of the file before the last `}`. + + ```jsonc + , + "postCreateCommand": "echo '# Writing code upon codespace creation!' >> codespace.md" + ``` + +1. Click **Commit changes** and then select **Commit changes directly to the `main` branch**. +1. Create a new codespace by navigating to the landing page of your repository. +1. Click the **Code** button located in the middle of the page. +1. Click the **Codespaces** tab on the box that pops up. +1. Click the **Create codespace on main** button. + + > Wait about **2 minutes** for the codespace to spin itself up. + +1. Verify your codespace is running, as you did previously. +1. Verify the `codespace.md` file now has the text `Writing code upon codespace creation!`. +1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. diff --git a/.github/steps/4-personalize-codespace.md b/.github/steps/4-personalize-codespace.md new file mode 100644 index 0000000..00eb18f --- /dev/null +++ b/.github/steps/4-personalize-codespace.md @@ -0,0 +1,80 @@ + + +## Step 4: Personalize your codespace! + +_Nicely done customizing your codespace!_ :partying_face: + +When using any development environment, customizing the settings and tools to your preferences and workflows is an important step. GitHub Codespaces offers two main ways of personalizing your codespace: `Settings Sync` with VS Code and `dotfiles`. + +`Dotfiles` will be the focus of this activity. + +**What are `dotfiles`?** Dotfiles are files and folders on Unix-like systems starting with . that control the configuration of applications and shells on your system. You can store and manage your dotfiles in a repository on GitHub. + +Let's see how this works! + +### :keyboard: Activity: Enable a `dotfile` for your codespace + +1. Start from the landing page of your repository. +1. In the upper-right corner of any page, click your profile photo, and then click **Settings**. +1. In the **Code, planning, and automation** section of the sidebar, click **Codespaces**. +1. Under **Dotfiles**, select **Automatically install dotfiles** so that GitHub Codespaces automatically installs your dotfiles into every new codespace you create. +1. Click **Select repository** and then choose your current skills working repository as the repository from which to install dotfiles. + +### :keyboard: Activity: Add a `dotfile` to your repository and run your codespace + +1. Start from the landing page of your repository. +1. Click the **Code** button located in the middle of the page. +1. Click the **Codespaces** tab on the box that pops up. +1. Click the **Create codespace on main** button. + + > Wait about **2 minutes** for the codespace to spin itself up. + +1. Verify your codespace is running. The browser should contain a VS Code web-based editor and a terminal should be present such as the below: + + ![codespace1](https://user-images.githubusercontent.com/26442605/207355196-71aab43f-35a9-495b-bcfe-bf3773c2f1b3.png) + +1. From inside the codespace in the VS Code explorer window, create a new file `setup.sh`. +1. Add the following code inside of the file: + + ```bash + #!/bin/bash + + sudo apt-get update + sudo apt-get install sl + ``` + +1. Save the file. + > **Note**: The file should autosave. +1. Commit the file changes. From the VS Code terminal enter: + + ```shell + git add setup.sh --chmod=+x + git commit -m "Adding setup.sh from the codespace!" + ``` + +1. Push the changes back to your repository. From the VS Code terminal, enter: + + ```shell + git push + ``` + +1. Switch back to the homepage of your repository and view the `setup.sh` to verify the new code was pushed to your repository. +1. Close the codespace web browser tab. +1. Click the **Create codespace on main** button. + + > Wait about **2 minutes** for the codespace to spin itself up. + +1. Verify your codespace is running, as you did previously. +1. Verify the `setup.sh` file is present in your VS Code editor. +1. From the VS Code terminal, type or paste: + + ```shell + /usr/games/sl + ``` + +1. Enjoy the show! +1. Wait about 20 seconds then refresh this page (the one you're following instructions from). [GitHub Actions](https://docs.github.com/en/actions) will automatically update to the next step. diff --git a/.github/steps/X-finish.md b/.github/steps/X-finish.md new file mode 100644 index 0000000..42f801d --- /dev/null +++ b/.github/steps/X-finish.md @@ -0,0 +1,33 @@ + + +## Finish + +_Congratulations friend, you've completed this course!_ + +celebrate + +Here's a recap of all the tasks you've accomplished in your repository: + +- You learned how to create a codespace and push code to your repository from the codespace. +- You learned how to use custom images in your codespace. +- You learned how to customize your codespace. +- You learned how to personalize your codespace. + +### Additional learning and resources + +- [Developing in a codespace](https://docs.github.com/en/codespaces/developing-in-codespaces/developing-in-a-codespace). Learn how to delete a codespace, open an existing codespace, connect to a private network, forward ports, and much more. +- [Set up your repository](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers). Learn how to set minimum machine specs for a codespace, add badges, set up a template repo, and much more. +- [Personalize and customize GitHub Codespaces](https://docs.github.com/en/codespaces/customizing-your-codespace/personalizing-github-codespaces-for-your-account). Learn how to use setting sync for your codespace, add dotfiles, set the default region, set the default editor, and much more. +- [Prebuild your codespace](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/about-github-codespaces-prebuilds) +- [Manage your codespace](https://docs.github.com/en/codespaces/managing-codespaces-for-your-organization/enabling-github-codespaces-for-your-organization) + +### What's next? + +- Learn more about securing your supply chain by reading: [GitHub Codespaces overview](https://docs.github.com/en/codespaces/overview). +- [We'd love to hear what you thought of this course](https://github.com/orgs/skills/discussions/categories/code-with-codespaces). +- [Learn another GitHub skill](https://github.com/skills). +- [Read the Get started with GitHub docs](https://docs.github.com/en/get-started). +- To find projects to contribute to, check out [GitHub Explore](https://github.com/explore). diff --git a/.github/workflows/0-welcome.yml b/.github/workflows/0-welcome.yml new file mode 100644 index 0000000..513691e --- /dev/null +++ b/.github/workflows/0-welcome.yml @@ -0,0 +1,63 @@ +name: Step 0, Welcome + +# This step triggers after the learner creates a new repository from the template. +# This workflow updates from step 0 to step 1. + +# This will run every time we create push a commit to `main`. +# Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows +on: + push: + branches: + - main + workflow_dispatch: + +# Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication +permissions: + # Need `contents: read` to checkout the repository. + # Need `contents: write` to update the step metadata. + contents: write + +jobs: + # Get the current step to only run the main job when the learner is on the same step. + get_current_step: + name: Check current step number + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - id: get_step + run: | + echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT + outputs: + current_step: ${{ steps.get_step.outputs.current_step }} + + on_start: + name: On start + needs: get_current_step + + # We will only run this action when: + # 1. This repository isn't the template repository. + # 2. The step is currently 0. + # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts + # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions + if: >- + ${{ !github.event.repository.is_template + && needs.get_current_step.outputs.current_step == 0}} + + # We'll run Ubuntu for performance instead of Mac or Windows. + runs-on: ubuntu-latest + + steps: + # We'll need to check out the repository so that we can edit the README. + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Let's get all the branches. + + # In README.md, switch step 0 for step 1. + - name: Update to step 1 + uses: skills/action-update-step@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + from_step: 0 + to_step: 1 diff --git a/.github/workflows/1-first-codespace.yml b/.github/workflows/1-first-codespace.yml new file mode 100644 index 0000000..543b230 --- /dev/null +++ b/.github/workflows/1-first-codespace.yml @@ -0,0 +1,70 @@ +name: Step 1, Create codespace and push code + +# This step triggers after push to main. +# This workflow updates from step 1 to step 2. + +# This will run every time we push to main. +# Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows +on: + workflow_dispatch: + push: + branches: + - main + +# Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication +permissions: + # Need `contents: read` to checkout the repository. + # Need `contents: write` to update the step metadata. + contents: write + +jobs: + # Get the current step to only run the main job when the learner is on the same step. + get_current_step: + name: Check current step number + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - id: get_step + run: | + echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT + outputs: + current_step: ${{ steps.get_step.outputs.current_step }} + + on_add_dependency: + name: On Add dependency + needs: get_current_step + + # We will only run this action when: + # 1. This repository isn't the template repository. + # 2. The step is currently 1. + # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts + # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions + if: >- + ${{ !github.event.repository.is_template + && needs.get_current_step.outputs.current_step == 1 }} + + # We'll run Ubuntu for performance instead of Mac or Windows. + runs-on: ubuntu-latest + + steps: + # We'll need to check out the repository so that we can edit the README. + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Let's get all the branches. + + # Verify the learner added the file contents + - name: Check workflow contents, jobs + uses: skills/action-check-file@v1 + with: + file: "index.html" + search: "Hello from the codespace" + + # In README.md, switch step 1 for step 2. + - name: Update to step 2 + uses: skills/action-update-step@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + from_step: 1 + to_step: 2 diff --git a/.github/workflows/2-custom-image.yml b/.github/workflows/2-custom-image.yml new file mode 100644 index 0000000..aafd854 --- /dev/null +++ b/.github/workflows/2-custom-image.yml @@ -0,0 +1,70 @@ +name: Step 2, Custom image check + +# This step triggers after First Codespace. +# This workflow updates from step 2 to step 3. + +# This will run every time we push to main. +# Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows +on: + workflow_dispatch: + push: + branches: + - main + +# Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication +permissions: + # Need `contents: read` to checkout the repository. + # Need `contents: write` to update the step metadata. + contents: write + +jobs: + # Get the current step to only run the main job when the learner is on the same step. + get_current_step: + name: Check current step number + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - id: get_step + run: | + echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT + outputs: + current_step: ${{ steps.get_step.outputs.current_step }} + + on_DependabotPrCreated: + name: On Creation of a PR + needs: get_current_step + + # We will only run this action when: + # 1. This repository isn't the template repository. + # 2. The step is currently 2. + # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts + # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions + if: >- + ${{ !github.event.repository.is_template + && needs.get_current_step.outputs.current_step == 2 }} + + # We'll run Ubuntu for performance instead of Mac or Windows. + runs-on: ubuntu-latest + + steps: + # We'll need to check out the repository so that we can edit the README. + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Let's get all the branches. + + # Verify the devcontainer.json has an image. + - name: Check devcontainer.json + uses: skills/action-check-file@v1 + with: + file: ".devcontainer/devcontainer.json" + search: "mcr\\.microsoft\\.com/vscode/devcontainers/universal:latest" + + # In README.md, switch step 2 for step 3. + - name: Update to step 3 + uses: skills/action-update-step@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + from_step: 2 + to_step: 3 diff --git a/.github/workflows/3-customize-codespace.yml b/.github/workflows/3-customize-codespace.yml new file mode 100644 index 0000000..b1ba71c --- /dev/null +++ b/.github/workflows/3-customize-codespace.yml @@ -0,0 +1,70 @@ +name: Step 3, Customize Codespace + +# This step triggers after we push to main. +# This workflow updates from step 3 to step 4. + +# This will run every time. +# Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows +on: + workflow_dispatch: + push: + branches: + - main + +# Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication +permissions: + # Need `contents: read` to checkout the repository. + # Need `contents: write` to update the step metadata. + contents: write + +jobs: + # Get the current step to only run the main job when the learner is on the same step. + get_current_step: + name: Check current step number + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - id: get_step + run: | + echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT + outputs: + current_step: ${{ steps.get_step.outputs.current_step }} + + on_DependabotSecurityUpdates: + name: On Dependabot Security Updates + needs: get_current_step + + # We will only run this action when: + # 1. This repository isn't the template repository. + # 2. The step is currently 3. + # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts + # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions + if: >- + ${{ !github.event.repository.is_template + && needs.get_current_step.outputs.current_step == 3 }} + + # We'll run Ubuntu for performance instead of Mac or Windows. + runs-on: ubuntu-latest + + steps: + # We'll need to check out the repository so that we can edit the README. + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Let's get all the branches. + + # Verify the postCreateCommand was added. + - name: Check for postCreateCommand + uses: skills/action-check-file@v1 + with: + file: ".devcontainer/devcontainer.json" + search: "postCreateCommand" + + # In README.md, switch step 3 for step 4. + - name: Update to step 4 + uses: skills/action-update-step@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + from_step: 3 + to_step: 4 diff --git a/.github/workflows/4-personalize-codespace.yml b/.github/workflows/4-personalize-codespace.yml new file mode 100644 index 0000000..928fe98 --- /dev/null +++ b/.github/workflows/4-personalize-codespace.yml @@ -0,0 +1,72 @@ +name: Step 4, Personalize your Codespace + +# This step triggers after push to main#setup.sh. +# This workflow updates from step 4 to step X. + +# This will run every time we push to main#setup.sh. +# Reference: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows +on: + workflow_dispatch: + push: + branches: + - main + paths: + - "setup.sh" + +# Reference: https://docs.github.com/en/actions/security-guides/automatic-token-authentication +permissions: + # Need `contents: read` to checkout the repository. + # Need `contents: write` to update the step metadata. + contents: write + +jobs: + # Get the current step to only run the main job when the learner is on the same step. + get_current_step: + name: Check current step number + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - id: get_step + run: | + echo "current_step=$(cat ./.github/steps/-step.txt)" >> $GITHUB_OUTPUT + outputs: + current_step: ${{ steps.get_step.outputs.current_step }} + + on_update_setup: + name: On update setup + needs: get_current_step + + # We will only run this action when: + # 1. This repository isn't the template repository. + # 2. The step is currently 4. + # Reference: https://docs.github.com/en/actions/learn-github-actions/contexts + # Reference: https://docs.github.com/en/actions/learn-github-actions/expressions + if: >- + ${{ !github.event.repository.is_template + && needs.get_current_step.outputs.current_step == 4}} + + # We'll run Ubuntu for performance instead of Mac or Windows. + runs-on: ubuntu-latest + + steps: + # We'll need to check out the repository so that we can edit the README. + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Let's get all the branches. + + # Verify the setup.sh added the file contents. + - name: Check workflow contents, jobs + uses: skills/action-check-file@v1 + with: + file: "setup.sh" + search: "install sl" + + # In README.md, switch step 4 for step X. + - name: Update to step X + uses: skills/action-update-step@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + from_step: 4 + to_step: X diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..773bfd6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,37 @@ +# Compiled source # +################### +*.com +*.class +*.dll +*.exe +*.o +*.so + +# Packages # +############ +# it's better to unpack these files and commit the raw source +# git has its own built in compression methods +*.7z +*.dmg +*.gz +*.iso +*.jar +*.rar +*.tar +*.zip + +# Logs and databases # +###################### +*.log +*.sql +*.sqlite + +# OS generated files # +###################### +.DS_Store +.DS_Store? +._* +.Spotlight-V100 +.Trashes +ehthumbs.db +Thumbs.db diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6c5bc3d --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright (c) GitHub, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..5e34903 --- /dev/null +++ b/README.md @@ -0,0 +1,76 @@ +
+ + + +# Code with GitHub Codespaces and Visual Studio Code + +_Develop code using GitHub Codespaces and Visual Studio Code!_ + +
+ + + +## 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](https://code.visualstudio.com/docs) first. +- **How long**: This course can be completed in less than an hour. + +In this course, you will: + +1. Create your first codespace +2. Add a custom image +3. Customize your codespace +4. Personalize your codespace + +### How to start this course + + + +[![start-course](https://user-images.githubusercontent.com/1221423/235727646-4a590299-ffe5-480d-8cd5-8194ea184546.svg)](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** and open the link in a new tab. +2. 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](https://docs.github.com/en/billing/managing-billing-for-github-actions/about-billing-for-github-actions). + - 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. + + diff --git a/codespace.md b/codespace.md new file mode 100644 index 0000000..164ef5b --- /dev/null +++ b/codespace.md @@ -0,0 +1 @@ +### You are learning about codespaces! diff --git a/index.html b/index.html new file mode 100644 index 0000000..b7a0e2d --- /dev/null +++ b/index.html @@ -0,0 +1,3 @@ + +

Hello

+