refactor: rewrite the exercise with issue based flow#63
refactor: rewrite the exercise with issue based flow#63FidelusAleksander merged 6 commits intoskills:mainfrom
Conversation
* Update workflows * Update readme * Add node_modules to gitignore * feat: initial rewrite of the exercise (#1) * Test run updates * Theory updates (#2) * Test run updates * Revise README for clarity and time estimate Updated the project description and estimated completion time. * Step 1-3 review updates * Apply suggestion from @chriswblake Co-authored-by: Christopher W. Blake <chriswblake@github.com> * fix: update action metadata requirements and workflow example * Apply suggestion from @chriswblake Co-authored-by: Christopher W. Blake <chriswblake@github.com> * Revise monitoring steps for Joke Action workflow Updated instructions for monitoring the Joke Action workflow. * Update exercise copy link in README * Add mona comments for next steps --------- Co-authored-by: Christopher W. Blake <chriswblake@github.com>
Added a follow-up exercise link for AI-Powered Actions.
Added resources for learning about GitHub Actions.
Enhance Step 1 with GitHub Actions resources
There was a problem hiding this comment.
Pull request overview
This PR represents a comprehensive migration and refactoring from the skills-dev organization to the skills organization, transitioning from an older course format to a modernized exercise framework using the skills/exercise-toolkit infrastructure.
Changes:
- Complete rewrite of README.md from "course" to "exercise" terminology with updated prerequisites and template links referencing the
skillsorganization - Full replacement of workflow automation from legacy step-tracking system to modern
skills/exercise-toolkitbased workflows - Complete refresh of step markdown files with updated content, instructions, and terminology aligned with the exercise format
Reviewed changes
Copilot reviewed 34 out of 35 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| README.md | Rewrote from course format to exercise format; updated copyright to 2025; changed template_owner from skills-dev to skills |
| .gitignore | Added comment section header for Node modules configuration |
| .github/workflows/my-workflow.yml | Deleted legacy workflow file |
| .github/workflows/6-trigger-action.yml | Deleted legacy step 6 workflow |
| .github/workflows/6-step.yml | Added new step 6 workflow using exercise-toolkit infrastructure |
| .github/workflows/5-add-action-to-workflow-file.yml | Deleted legacy step 5 workflow |
| .github/workflows/5-step.yml | Added new step 5 workflow with comprehensive validation checks |
| .github/workflows/4-create-javascript-files-for-action.yml | Deleted legacy step 4 workflow |
| .github/workflows/4-step.yml | Added new step 4 workflow for action metadata validation |
| .github/workflows/3-create-metadata-file.yml | Deleted legacy step 3 workflow |
| .github/workflows/3-step.yml | Added new step 3 workflow for build and bundle validation |
| .github/workflows/2-configure-your-action.yml | Deleted legacy step 2 workflow |
| .github/workflows/2-step.yml | Added new step 2 workflow for source file validation |
| .github/workflows/1-initialize-javascript-project.yml | Deleted legacy step 1 workflow |
| .github/workflows/1-step.yml | Added new step 1 workflow with comprehensive dependency and gitignore checks |
| .github/workflows/0-welcome.yml | Deleted legacy welcome workflow |
| .github/workflows/0-start-exercise.yml | Added new exercise start workflow using exercise-toolkit v0.7.3 |
| .github/steps/x-review.md | Added new review/completion step content |
| .github/steps/X-finish.md | Deleted legacy finish step content |
| .github/steps/6-trigger-action.md | Deleted legacy step 6 instructions |
| .github/steps/6-step.md | Added new step 6 instructions for testing the joke action |
| .github/steps/5-add-action-to-workflow-file.md | Deleted legacy step 5 instructions |
| .github/steps/5-step.md | Added new step 5 instructions for creating workflow |
| .github/steps/4-create-javascript-files-for-action.md | Deleted legacy step 4 instructions |
| .github/steps/4-step.md | Added new step 4 instructions for action metadata |
| .github/steps/3-create-metadata-file.md | Deleted legacy step 3 instructions |
| .github/steps/3-step.md | Added new step 3 instructions for bundling |
| .github/steps/2-configure-your-action.md | Deleted legacy step 2 instructions |
| .github/steps/2-step.md | Added new step 2 instructions for creating source files |
| .github/steps/1-initialize-javascript-project.md | Deleted legacy step 1 instructions |
| .github/steps/1-step.md | Added new step 1 instructions with Codespaces setup |
| .github/steps/0-welcome.md | Deleted legacy welcome content |
| .github/steps/-step.txt | Deleted legacy step tracking file |
| .github/dependabot.yml | Deleted dependabot configuration |
| .devcontainer/devcontainer.json | Added dev container configuration with Node.js support |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| Add your open source license, GitHub uses MIT license. | ||
| --> | ||
|
|
||
| # Write JavaScript Actions |
There was a problem hiding this comment.
The PR description states this update only changes references from skills-dev to skills organization, but this PR actually contains a major refactoring that includes:
- Complete rewrite of README.md from "course" to "exercise" terminology
- Deletion of all old workflow files and creation of new ones with different structure
- Complete replacement of step markdown files with new content
- Addition of devcontainer.json
- Deletion of dependabot.yml and -step.txt
- Migration to new skills/exercise-toolkit infrastructure
The PR description should accurately reflect the full scope of changes to help reviewers understand what they're approving.
| with: | ||
| repository: skills/exercise-toolkit | ||
| path: exercise-toolkit | ||
| ref: v0.7.0 |
There was a problem hiding this comment.
Inconsistent version references for skills/exercise-toolkit. Line 22 uses v0.7.3 for the reusable workflow, but line 44 uses v0.7.0 when checking out the repository for templates. This inconsistency could lead to unexpected behavior if there are differences between these versions. Consider using the same version (v0.7.3) throughout for consistency.
| ref: v0.7.0 | |
| ref: v0.7.3 |
| id: get-joke | ||
| uses: ./ | ||
| - name: Create comment | ||
| uses: peter-evans/create-or-update-comment@v5 |
There was a problem hiding this comment.
The workflow example uses the third-party action peter-evans/create-or-update-comment@v5 pinned only to a mutable major version tag, which creates a supply chain risk if that tag is moved or the upstream repository is compromised. Because this action runs in your workflow with issues: write and contents: read permissions, a malicious update to the v5 tag could exfiltrate the GITHUB_TOKEN, modify issues, or alter repository contents. To reduce this risk, pin third-party actions like peter-evans/create-or-update-comment to a specific immutable commit SHA and update it deliberately when you choose to trust a new version.
This pull request modernizes and streamlines the JavaScript GitHub Actions tutorial by updating the learning flow, instructions, and environment setup. It replaces the previous step-based markdown files with a new, Codespaces-first workflow, updates dependencies and project structure, and introduces best practices for building and bundling JavaScript actions.
Key changes include:
Learning Flow and Documentation Improvements:
.github/steps/1-initialize-javascript-project.md,.github/steps/2-configure-your-action.md,.github/steps/3-create-metadata-file.md,.github/steps/4-create-javascript-files-for-action.md) with new, concise, and modernized step files (.github/steps/1-step.md,.github/steps/2-step.md,.github/steps/3-step.md) that focus on using GitHub Codespaces and current JavaScript action best practices. [1] [2] [3] [4] [5] [6] [7]Development Environment and Project Initialization:
.devcontainer/devcontainer.jsonfile to enable seamless project setup in GitHub Codespaces, ensuring Node.js is available and pre-configured.Project Structure and Build Process:
src/directory for source files and introduced bundling with@vercel/ncc, including guidance for adding a build script and generating a single distributable file indist/. [1] [2] [3]Dependency and Configuration Cleanup:
.github/dependabot.yml,.github/steps/-step.txt, and.github/steps/0-welcome.md, to reduce clutter and avoid confusion. [1] [2] [3]These updates provide a more modern, user-friendly, and maintainable approach for learning how to build JavaScript GitHub Actions.