Vibe Coding 實戰課 — Stage 2 · 串 AI
搬家的過程就是學安全的最好時機
按 → 或空白鍵開始
工具能用,但 API Key 存在 GAS Script Properties 裡
只有你自己能用,沒有短網址,沒有版本紀錄
每次執行上限 6 分鐘 — 如果任務要跑更久,GAS 撐不住
以後要搬到 GitHub Actions(M3-4 會教),所以先學會在 GitHub 上管密碼
核心任務
把 M1-4 的 GAS AI 分析工具搬到 GitHub Pages 上線
過程中學會 .gitignore、Secrets、commit、協作
ROUND 1 · 0:00–0:15
GitHub 是公開的,密碼管理是第一步
以為是 private repo,其實是 public
自動化爬蟲 24 小時掃 GitHub 新 commit
一覺醒來帳單 $12,000
看去識別截圖與假 repo 搜尋結果
理解外洩樣貌,不接觸疑似可用憑證
這不是理論 — 這是每天都在發生的事
呼叫 AI 模型用
外洩 = 別人用你的額度
操控你的 Bot 用
外洩 = 別人控制你的 Bot
公開入口
風險 = 被濫用呼叫
前端 HTML → GitHub Pages
後端 API Proxy → 暫時留在 GAS(Key 不外露)
以後 M3-4 學 GitHub Actions 再搬後端
ROUND 2 · 0:15–0:40
防線先建好,再放東西
名稱:vibe-coding-tool
Public 才能用 GitHub Pages 免費託管
防線還沒建好,不要急著放東西
Public repo = 全世界看得到
所以接下來的每一步都跟「保護密碼」有關
# 敏感檔案 .env .env.* *.key *.pem # 系統檔 .DS_Store Thumbs.db
列在這裡的檔案,Git 會自動忽略,不會被上傳
第一步就建好,確保敏感檔案永遠不進 repo
先上傳 .env
再加 .gitignore
.env 已經在 repo 裡了
.gitignore 擋不住已追蹤的檔案
先建 .gitignore
再建 .env
.env 從一開始就被忽略
永遠不會進 repo
一旦檔案被 commit 過,就算後來加到 .gitignore 也沒用
歷史紀錄裡永遠有那個檔案
GROQ_API_KEY=gsk_xxxxxxxxxx TG_BOT_TOKEN=123456:ABCdefGHIjklMNO
本機開發時讀取
因為 .gitignore 已經排除,所以不會被上傳到 GitHub
git status 看看 .env 有沒有出現
如果沒出現 = .gitignore 生效了
這裡是 GitHub 的雲端保險箱
名稱:GROQ_API_KEY / 值:你的 Key
存好之後,值會被遮蔽,看不到原文
GitHub Actions 執行時才讀取,人看不到值
M3-4 會用到,現在先存好
包含 .env / .env.* / *.key
git status 看不到 .env
GROQ_API_KEY + TG_BOT_TOKEN 都看不到值
Ctrl+F 搜尋 gsk_ / key / token,確認沒有硬編碼
| 存放方式 | 位置 | 用途 | 安全性 |
|---|---|---|---|
| Script Properties | GAS 內 | GAS 專用 | 中 |
| .env | 本機 | IDE 開發用 | 高(不上傳) |
| GitHub Secrets | repo Settings | Actions 用 | 高 |
| 程式碼裡 | 任何 .js / .html | — | 零(絕對不行) |
不同場景用不同存放方式
唯一的共同規則:程式碼裡絕對不放密碼
Secrets 存:groq_api_key
程式讀:GROQ_API_KEY
大小寫不同 → 讀不到 → 功能壞掉
但錯誤訊息不會告訴你「名稱打錯了」
Secrets 存:GROQ_API_KEY
程式讀:GROQ_API_KEY
全大寫 + 底線分隔 = 業界慣例
存和讀永遠用同一個名稱
環境變數一律全大寫、底線分隔
GROQ_API_KEY、TG_BOT_TOKEN、DATABASE_URL
.gitignore 守本機、Secrets 守雲端、程式碼裡零密碼
ROUND 3 · 0:40–1:05
功能不變,基礎設施升級
前端搬到 GitHub Pages,有短網址可以分享
後端仍用 GAS,API Key 在 GAS 裡,前端看不到
GAS URL 是公開入口,不是密碼,不承諾無限制使用
最低防線:配額、簡單使用限制,課後關閉或更換 endpoint
上傳 index.html 到 vibe-coding-tool repo
前端 fetch 公開 GAS URL → GAS 帶 Key 呼叫 Groq
等 1-2 分鐘,拿到 https://你的帳號.github.io/vibe-coding-tool/
功能跟 M1-4 一樣,但現在有短網址了
M1-4 的 HTML 裡可能殘留 GAS URL 或 API Key
搬家前用 Ctrl+F 搜尋以下關鍵字
gsk_ → Groq API Key 前綴 sk- → OpenAI Key 前綴 AIza → Google Key 前綴 Bot → TG Bot Token api_key → 任何 key 變數 password → 密碼 secret → 密鑰
搬家 = 不只是複製貼上,要逐行檢查有沒有帶走不該帶的東西
按 F12 開啟 DevTools
搜尋 gsk_ / key / token
看 request 是送到公開 GAS URL,不是直接呼叫 Groq
在網頁原始碼裡看不到 API Key = 第一層正確
GAS 端點仍要配額、限制與課後關閉
功能完全一樣,但基礎設施升級了
搬家 = 不只是換地方放,是升級整個運作方式
前端上 GitHub Pages,後端留 GAS 當 Proxy
密碼安全、版本控制、短網址 — 一次到位
ROUND 4 · 1:05–1:25
從 M2-1 的基礎再深一層
例如加一個深色模式按鈕
不要寫「update」,要寫「加上深色模式切換按鈕」
每次改一個功能,寫一個 commit
這就是版本紀錄的價值
update
fix
test
aaa
一個月後回來看
完全不知道改了什麼
加上深色模式切換按鈕
修正手機版排版溢出
移除殘留的測試 API Key
更新 GAS 端點網址
一個月後回來
每一筆改了什麼一目瞭然
刪掉一段重要的 HTML,上傳
點進去看那個版本的檔案內容
上傳 → 網頁恢復正常
改壞了不用怕 — 歷史紀錄永遠在
有版本控制 = 永遠能回到過去的任何一個時間點
1. 改標題文字
2. 加一個新區塊
3. 調整配色或字級
每次改了什麼
一目瞭然
改壞了不用怕
隨時回到過去
其他人看你的 commit
就知道你做了什麼
ROUND 5 · 1:25–1:45
快速巡覽協作功能,建立認知地圖
標題寫一個你想加的功能,例如「加上資料匯出功能」
enhancement / bug / documentation
像便利貼 — 記錄要做的事、發現的問題、想到的點子
公開的 Issues 讓協作者知道專案的方向
你的帳號下多了一個完整副本
你改的是你的副本,不影響原始 repo
開源世界的運作方式:看到好東西 → Fork → 改 → 提交回去
所有大型開源專案都是這樣協作的
Star 幾個推薦 repo
以後從 Your stars 快速找回
也是對作者的鼓勵
打開你的 GitHub 首頁
別人看到你的 repo、commit 紀錄
這就是你的技術履歷
README 有自我介紹 + 技術標籤 + 代表作品
contribution graph 有持續的綠色方塊 = 持續在寫程式
AI 工具開發者 | Vibe Coding 學員
你的 GitHub Profile 從現在開始建立
每一堂課的作品都是你技術名片上的一筆紀錄
便利貼
記錄待辦
複製副本
安全修改
書籤收藏
快速找回
免費託管
短網址上線
雲端保險箱
密碼安全
自動化流水線
M3-4 會教
提交修改請求
以後學
Pages(託管)+ Secrets(密碼)+ Issues(便利貼)+ Fork(複製)+ Star(書籤)
這五個就覆蓋了日常開發 80% 的 GitHub 操作
ROUND 6 · 1:45–1:55
養成習慣比記住知識更重要
防線在東西進來之前就要到位
Ctrl+F 搜尋 gsk_ / sk- / token / key / password
程式裡用環境變數讀取,不硬編碼
從別的專案複製過來的程式碼最容易殘留
最後一道防線 — 看一眼再按 commit
「建 repo → 寫程式 → 上傳 → 才想到要建 .gitignore」
這時候 .env 可能已經被 commit 了,歷史裡永遠有
防線在第一步就建好
之後所有操作都在防線保護範圍內
| 存放方式 | 位置 | 用途 | 安全性 |
|---|---|---|---|
| Script Properties | GAS 內 | GAS 專用 | 中 |
| .env | 本機 | IDE 開發用 | 高(不上傳) |
| GitHub Secrets | repo Settings | Actions 用 | 高 |
| 程式碼裡 | 任何 .js / .html | — | 零(絕對不行) |
從 M1-4(只有 Script Properties)到 M2-2(三層管理)
密碼管理能力升級了
每一輪解決一個問題,疊加一層能力
安全意識不是額外負擔,是搬家過程中自然學到的
| # | 常見問題 | 學到什麼 |
|---|---|---|
| 1 | API Key 外洩真實案例 | 資安是真的會出事 |
| 2 | 先上傳 .env 再加 .gitignore | 順序重要,防線先建 |
| 3 | Secret 名稱打錯 | 命名一致性 |
| 4 | M1-4 搬家時殘留 Key | 搬家要逐行檢查 |
| 5 | commit message 寫「update」 | 寫有意義的紀錄 |
不只學了什麼,是想法怎麼變了
從「程式碼是草稿」→ 程式碼是有邊界的資產
不是先學安全再搬家
而是在搬家的每一步自然地學會安全
IDE 入門 + SSH
+ 權限管理
用更強的工具開發
AI 幫你操作,你負責判斷
從網頁 AI 升級到
IDE 內建 AI
用指令操作 Git
AI 幫你下指令
安全連線遠端
公鑰私鑰原理
M2-2 完
你的 AI 工具已經在 GitHub 上線了