在 Azure Repo 設定 Pull Request Template

建立良好規範與開發者的互動 當團隊開始 Pull Request 順暢後,慢慢的也會討論出一些規範與 Pull Request 的重點, 如果在建立的時候,能有一些 Checklist 讓新工程師自我檢查,或者是讓每個工程師都能遵循相同的寫法,讓同事快速理解這次審核的目的與重點,這時就能利用 Template 來標準化 建立第一個 Pull Request Template Template 檔案可以是 .md 或 .txt 的檔案類型,預設的範本放置以下的路徑即可生效 (則一即可) <repository root>/.azuredevops/pull_request_template/ <repository root>/.vsts/pull_request_template/ <repository root>/docs/pull_request_template/ <repository root>/pull_request_template/ 以下直接用 Azure Repo 的 UI 來做示範: 建立一個 Folder 建立一個 docs/pull_request_template 資料夾, 並直接新增 Default-PR-Template.md 檔案 撰寫一個範本並 Commit **將這支 PR 所做的事情,取代這段文字,描述越詳細越好。** 提交 PR 前,請先檢查以下是否已完成: - [ ] 是否已將此 PR 綁定相關 Ticket - [ ] 請先自行 rebase/merge - [ ] 是否撰寫單元測試 - [ ] 這支 PR 是否有明確的標題、內容描述 ----------------- 補充說明: 建立一個 Branch 並針對任一檔案做異動...

2023-02-01 · 1 min · Kyle

透過 docker 發行 FastAPI 到 Azure

前言 除了 Azure 外,還有很多公有雲的服務可以做選擇,譬如AWS/GCP/heroku…等等,甚至可能不採用公有雲服務,自己架設伺服器也是有可能,基於以上這些不同環境,我會建議將服務都包成 docker,讓所開發的應用程式比較不會受到伺服器環境的影響,本篇就來介紹從一個基本的 FastAPI 包成 docker,並發佈的 Azure 服務上 docker 環境安裝 Docker 是一種軟體平台,可讓您快速地建立、測試和部署應用程式。Docker 將軟體封裝到名為容器的標準化單位,其中包含程式庫、系統工具、程式碼和執行時間等執行軟體所需的所有項目。使用 Docker,您可以將應用程式快速地部署到各種環境並加以擴展,而且知道程式碼可以執行 — from AWS 的介紹 https://aws.amazon.com/tw/docker/ 關於 docker 環境的安裝,網路上教學應該很多了,此篇文章就不再介紹,如果安裝成功,應該在命令列透過 docker — version 指令可以看到版本 建立一個基本的 FastAPI 本篇再以一個最基本的 API 來做包成 docker 的介紹 requirements.txt fastAPI uvicorn main.py from typing import Optional from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: Optional[str] = None): return {"item_id": item_id, "q": q} 執行以下指令 pip install -r requirement....

2023-01-15 · 2 min · Kyle

將 Line Liff App 發佈到免費的 Azure Static Web App

Azure Static Web App 是什麼? 在今年 5 月 Azure 推出了 Azure Static Web App 的服務,如果要一句話來說,建立此服務時,可以一併設定與 Github or Azure DevOps 連結,在每次 Commit 的時候,就能直接將前端應用程式佈署到Azure,大大的增加開發體驗。除了靜態的 HTML、CSS、JavaScript,支援主流框架 React/Angular/Vue.js,也支援用 C# 撰寫 SPA 的框架 Blazor,支援的前端框架可以到此連結,後端可搭配 Azure 的 Serverless 服務 (Azure Function) 來實現 Api 的串接,透過 Reverse-Proxy 也省去的 CORS 的設定 Azure Static Web App 的價格 在免費的方案,即提供 SSL 的 Hosting,及 2 個自訂網域,可於 DNS Server 設定 cname,也可佈署你的後端程式於 Azure Function 搭配前後端串接,享有 100 萬個 Request 的免費額度 發佈 LINE Liff App 到 Azure Static Web App LIFF 全名是 LINE Front-end Framework,一個可以在 LINE App 內運作的網頁程式,可以將一些不適合對話式的情境,結合於 Line App 裡面,達成一致的體驗,也因為是 Liff App 是全前端實現,所以很適合發佈到 Azure Static Web App,以下用官方的 Liff Starter 來做一個部屬示範 https://github....

2021-08-17 · 2 min · Kyle

Line Message Api Postman Collections

這是我自己整理的 Line Message Api Postman Collections 任何人只要 Import 後修改即可直接調用測試 詳細內容請見我的 Github Repo: https://github.com/kyleap/line-message-api-postman

2021-07-21 · 1 min · Kyle

Line Flex Message 傳送動畫訊息,讓訊息更生動

Flex Message 是 Line 透過 JSON 格式所實現的動態訊息,可以組出各種訊息格式,且比起 Template Message,Flex Message 也支援 Line 電腦版,故現在在寫 Line Bot 的時候,第一考量就會用 Flex 來自訂一些較特別的訊息,官網提供兩個 GUI 工具來快速拉 Flex 的訊息: Bot Designer Flex Simulator 我自己比較常用是第二個,官網已經很多的範本提供套入 且目前支援很方便的功能,可以直接發到手機裝置瀏覽結果 在 Flex 的 image 類型是可支援放入 .APNG 格式圖片的動畫,透過以下網站可以將 Git 轉成 .APNG 格式 https://ezgif.com/gif-to-apng Demo Flex 範例 { "type": "bubble", "body": { "type": "box", "layout": "vertical", "contents": [ { "type": "image", "url": "https://apng.onevcat.com/assets/elephant.png", "size": "full", "aspectMode": "cover", "aspectRatio": "1:1", "gravity": "center" }, { "type": "box", "layout": "vertical", "contents": [], "position": "absolute", "background": { "type": "linearGradient", "angle": "0deg", "endColor": "#00000000", "startColor": "#00000099" }, "width": "100%", "height": "40%", "offsetBottom": "0px", "offsetStart": "0px", "offsetEnd": "0px" }, { "type": "box", "layout": "horizontal", "contents": [ { "type": "box", "layout": "vertical", "contents": [ { "type": "box", "layout": "horizontal", "contents": [ { "type": "text", "text": "APNG Demo", "size": "xl", "color": "#ffffff" } ] } ], "spacing": "xs" } ], "position": "absolute", "offsetBottom": "0px", "offsetStart": "0px", "offsetEnd": "0px", "paddingAll": "20px" } ], "paddingAll": "0px" } } –...

2021-07-11 · 1 min · Kyle