Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
9a99f2d
Bump svelte-check from 4.1.6 to 4.2.1
dependabot[bot] May 16, 2025
9f7dc51
Bump bits-ui from 1.4.6 to 1.8.0
dependabot[bot] May 26, 2025
b0efa90
help me (fix dependabot)
ingoau Jun 4, 2025
6062aea
Bump lucide-svelte from 0.503.0 to 0.512.0
dependabot[bot] Jun 4, 2025
69db6a1
Bump @lucide/svelte from 0.508.0 to 0.512.0
dependabot[bot] Jun 4, 2025
9ed85d8
add url param to enable experimental features
ingoau Jun 6, 2025
065c98e
add scratch nextbots file
ingoau Jun 6, 2025
96e7773
add to gmaes.ts
ingoau Jun 6, 2025
891757b
Merge pull request #332 from EducationalTools/221-gmae-request-scratc…
ingoau Jun 6, 2025
0240b86
add mine sweeper
ingoau Jun 6, 2025
20a96a0
add minesweeper made in scratch
ingoau Jun 6, 2025
b28a203
add more description and url
ingoau Jun 6, 2025
9f4ac21
Merge pull request #333 from EducationalTools/220-gmae-request-mine-s…
ingoau Jun 6, 2025
d080a6a
add coderabbit config
ingoau Jun 6, 2025
d180cdb
disable languagetool
ingoau Jun 6, 2025
00d2001
add files for run3
ingoau Jun 7, 2025
a6ffc38
add to gmaes list
ingoau Jun 7, 2025
e850532
Merge pull request #337 from EducationalTools/336-gmae-request-run-3
ingoau Jun 7, 2025
bef271c
add gmae files
ingoau Jun 7, 2025
ae9f900
add gmaes
ingoau Jun 7, 2025
9a61a46
remove dadish 3 - broken
ingoau Jun 7, 2025
9b320e8
Merge branch 'main' into 319-gmae-request-dadish
ingoau Jun 7, 2025
f9a37d8
Prettified Code!
Jun 7, 2025
8923d97
Merge pull request #339 from EducationalTools/319-gmae-request-dadish
ingoau Jun 7, 2025
02eb344
add subway surfers code
ingoau Jun 7, 2025
8500ead
add gmae
ingoau Jun 7, 2025
18870ae
Merge pull request #341 from EducationalTools/340-gmae-request-subway…
ingoau Jun 7, 2025
16d955f
vibe code scripts
ingoau Jun 7, 2025
5598c40
add manual trigger
ingoau Jun 7, 2025
33ba119
Merge branch 'main' of https://github.com/EducationalTools/src
ingoau Jun 7, 2025
8049156
Prettified Code!
Jun 7, 2025
69902c8
LETS GO (remove workflow dispatch)
ingoau Jun 7, 2025
f039873
Merge branch 'main' of https://github.com/EducationalTools/src
ingoau Jun 7, 2025
c197568
Merge pull request #327 from EducationalTools/dependabot/npm_and_yarn…
ingoau Jun 7, 2025
7351b3d
Merge pull request #326 from EducationalTools/dependabot/npm_and_yarn…
ingoau Jun 7, 2025
0906bd2
Merge pull request #318 from EducationalTools/dependabot/npm_and_yarn…
ingoau Jun 7, 2025
af0e552
Merge pull request #312 from EducationalTools/dependabot/npm_and_yarn…
ingoau Jun 7, 2025
92a24e4
Bump mode-watcher from 1.0.6 to 1.0.7
dependabot[bot] Jun 7, 2025
a52c02c
Merge pull request #299 from EducationalTools/dependabot/npm_and_yarn…
ingoau Jun 7, 2025
0135fdb
disable wrapping and overflow on hover
ingoau Jun 7, 2025
833dcd4
allow sidebar to overflow
ingoau Jun 7, 2025
91d322e
undo that, it doesnt work :(
ingoau Jun 7, 2025
7a6086a
just make the sidebar wider lol
ingoau Jun 7, 2025
d6f0cc0
Merge pull request #342 from EducationalTools/bug-long-names-are-clipped
ingoau Jun 7, 2025
de1b591
add posthog package
ingoau Jun 7, 2025
03dd6a9
implement posthog
ingoau Jun 7, 2025
79af9e6
move
ingoau Jun 7, 2025
62dd384
add catpure execptions thing
ingoau Jun 7, 2025
75ce7f8
add error handling
ingoau Jun 7, 2025
d8708cf
Merge pull request #344 from EducationalTools/343-add-posthog
ingoau Jun 7, 2025
85e39da
add tracker blocker detection
ingoau Jun 7, 2025
459afa7
add dialog
ingoau Jun 7, 2025
0eb5234
format dialog
ingoau Jun 7, 2025
bbd4cc9
add dialog
ingoau Jun 7, 2025
6910fb0
add ok button
ingoau Jun 7, 2025
0f7d822
change button to close
ingoau Jun 7, 2025
cfd8f77
show review status
ingoau Jun 7, 2025
320286f
Merge branch 'main' of https://github.com/EducationalTools/src
ingoau Jun 7, 2025
a4e3443
add don't show again button
ingoau Jun 7, 2025
6503240
Merge pull request #346 from EducationalTools/345-show-notice-when-tr…
ingoau Jun 7, 2025
0941b2a
fix subway surfers
ingoau Jun 8, 2025
23ab04c
fix sidebar width
ingoau Jun 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# yaml-language-server: $schema=https://storage.googleapis.com/coderabbit_public_assets/schema.v2.json
enable_free_tier: true
reviews:
review_status: true
poem: false
profile: chill
path_instructions:
- path: '**/*.*'
instructions: |
Do not correct spelling errors or grammar mistakes.
auto_review:
enabled: true
base_branches:
- main
- prod
tools:
languagetool:
enabled: false
4 changes: 1 addition & 3 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,4 @@ updates:
- package-ecosystem: 'npm' # See documentation for possible values
directory: '/' # Location of package manifests
schedule:
interval: 'daily'
assignees:
- Inglan
interval: 'weekly'
32 changes: 32 additions & 0 deletions .github/workflows/production_deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: 'Move Project Items to Production'

on:
push:
branches:
- prod

jobs:
move_to_production:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Update to the latest checkout action version.

The actions/checkout@v3 action is outdated and may not run properly on current GitHub Actions runners.

-      - uses: actions/checkout@v3
+      - uses: actions/checkout@v4
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- uses: actions/checkout@v3
- uses: actions/checkout@v4
🧰 Tools
🪛 actionlint (1.7.7)

14-14: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue

(action)

🤖 Prompt for AI Agents
In .github/workflows/production_deploy.yml at line 14, update the checkout
action version from actions/checkout@v3 to the latest stable version, such as
actions/checkout@v4, to ensure compatibility and proper execution on current
GitHub Actions runners.

- uses: actions/setup-python@v5
with:
python-version: '3.13'
- uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_PRIVATE_KEY }}
- name: Install dependencies
run: |
python -m venv venv
venv/bin/pip install requests
Comment on lines +24 to +26
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Consider pinning dependency versions for reproducible builds.

Installing packages without version constraints can lead to inconsistent builds if package versions change.

-        run: |
-          python -m venv venv
-          venv/bin/pip install requests
+        run: |
+          python -m venv venv
+          venv/bin/pip install requests==2.32.3
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
run: |
python -m venv venv
venv/bin/pip install requests
run: |
python -m venv venv
venv/bin/pip install requests==2.32.3
🤖 Prompt for AI Agents
In .github/workflows/production_deploy.yml around lines 24 to 26, the pip
install command installs the requests package without specifying a version,
which can cause inconsistent builds. Modify the pip install command to include a
specific version of the requests package by pinning it to a fixed version
number, ensuring reproducible and stable builds.

- name: Move items from Done to In Production
run: |
venv/bin/python ci/scripts/move_to_production.py \
-t ${{ steps.app-token.outputs.token }} \
-o EducationalTools \
-p 4
152 changes: 152 additions & 0 deletions ci/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
# CI/CD Automation Scripts

This directory contains automation scripts for managing GitHub issues and project boards.

## Scripts Overview

### 1. `issue.py` - Issue Management

Automatically processes GitHub issues, particularly game requests:

- Detects issues with `[Gmae Request]` prefix
- Searches for relevant links on GitHub Pages
- Posts automated comments with search results

### 2. `move_to_production.py` - Project Board Automation

Moves project items from "Done" status to "In Production" status:

- Queries GitHub Projects v2 API using GraphQL
- Finds all items with status "Done"
- Updates them to "In Production" status
- Used for production deployment automation

### 3. `test_production_move.py` - Testing Script

Manual testing script for the production move operation:

- Allows testing the move operation without triggering workflows
- Supports dry-run mode (future enhancement)
- Useful for debugging and validation

## GitHub Workflows

### Issue Management (`.github/workflows/issue.yml`)

Triggers on:

- Issue opened
- Issue edited

Actions:

- Runs `issue.py` script
- Posts automated comments for game requests

### Production Deployment (`.github/workflows/production_deploy.yml`)

Triggers on:

- Push to `prod` branch

Actions:

- Runs `move_to_production.py` script
- Moves all "Done" items to "In Production" in project #4

## Setup Requirements

### GitHub App Configuration

Both workflows use a GitHub App for authentication:

1. **Secrets Required:**

- `GH_APP_ID` - Your GitHub App ID
- `GH_PRIVATE_KEY` - Your GitHub App private key

2. **App Permissions:**
- Issues: Read & Write (for issue comments)
- Projects: Read & Write (for project board updates)
- Repository: Read (for workflow access)

### Project Configuration

The production deployment script assumes:

- Organization: `EducationalTools`
- Project number: `4`
- Status field with options: "Done" and "In Production"

These can be customized by modifying the workflow or script parameters.

## Usage

### Automatic Usage

The workflows run automatically based on their triggers:

- Issue workflow: When issues are opened/edited
- Production workflow: When code is pushed to `prod` branch

### Manual Testing

To test the production move operation manually:

```bash
# Install dependencies
pip install requests

# Test with your GitHub token
python ci/scripts/test_production_move.py --token YOUR_GITHUB_TOKEN

# Test with different organization/project
python ci/scripts/test_production_move.py \
--token YOUR_TOKEN \
--org YourOrganization \
--project 5
```

### Direct Script Usage

You can also run the scripts directly:

```bash
# Process a specific issue
python ci/scripts/issue.py -n 123 -t YOUR_TOKEN

# Move project items to production
python ci/scripts/move_to_production.py -t YOUR_TOKEN -o EducationalTools -p 4
```

## Dependencies

- `requests` - HTTP client for GitHub API calls
- `googlesearch-python` - For searching game links (issue.py only)

## Error Handling

The scripts include error handling for common scenarios:

- Invalid tokens or permissions
- Missing projects or fields
- Network issues
- GraphQL API errors

## GraphQL Queries

The project automation uses GitHub's GraphQL API v4 for efficient data retrieval and mutations. Key operations:

1. **Project Data Query** - Gets project ID and field information
2. **Items Query** - Retrieves all project items with their status values
3. **Update Mutation** - Changes item status from "Done" to "In Production"

## Future Enhancements

Potential improvements:

- Dry-run mode for testing changes
- Support for custom field names
- Better error reporting and logging
- Slack/Discord notifications
- Rollback capabilities
Loading