Front Automation Hub

i วิธีทำงาน

หน้านี้เป็น static page ล้วน ไม่มี backend — จึงต่อ MongoDB และเรียก Jira API ตรงจากเบราว์เซอร์ไม่ได้ (MongoDB ไม่รองรับการต่อจาก browser โดยตรง ต่อให้ทำได้ก็ไม่ควรฝัง connection string ไว้ในโค้ดที่ทุกคนเปิด view source เห็นได้ และเรียก Jira ตรงจาก browser ก็ไม่ได้เพราะ CORS/credential) วิธีใช้จึงเป็น 3 ขั้นตอน: ดาวน์โหลด script → run บนเครื่องคุณเอง (ใช้ Jira token + Mongo connection string ที่มีอยู่แล้ว) → วางผลลัพธ์กลับมาดูเป็นตารางที่นี่

ตอน run จริง (ไม่ใส่ --dry-run) script จะหา card "Point Sum" ที่ยังเปิดอยู่ทั้งหมด ดึง memberId จาก card แล้วรัน aggregate เดิมที่ทีมใช้เช็คมืออยู่แล้วบน MongoDB (membership.points) ถ้า point ของ 10 record ล่าสุด (ไม่รวม EXPIRED) เท่ากับ totalPoint ของ ACTIVE ทั้งหมด (isEqual = true) จะ assign card ให้ตัวเอง (เฉพาะถ้ายังไม่มี assignee เดิม) comment สรุป แล้วปิด (Close) พร้อมตั้ง Resolution/Fix Version ให้ตามที่ทีมปิดกันด้วยมืออยู่แล้ว ถ้ายังไม่ตรงกัน จะปล่อย card ไว้เฉยๆ ไม่ทำอะไร (ตาม runbook ที่บอกว่า diff ระหว่างวันมักหายเองพอ BigQuery sync ตอนกลางคืน) และ script จะเช็คเวอร์ชัน ตัวเองกับ GitHub ให้ทุกครั้งที่ run — ถ้าเก่าไปจะเตือนให้โหลดใหม่ก่อน

ยังไม่เคยเตรียมเครื่อง หรือรันแล้วเจอ error? ไปที่แท็บ "เตรียมเครื่อง & แก้ปัญหา" ด้านบนก่อนได้เลย

1 ดาวน์โหลด & run script

script จะหา card "Point Sum" ที่ยังไม่ปิดทั้งหมด รัน point-sum aggregate บน MongoDB ให้ทุกใบ แล้ว comment + ปิด card อัตโนมัติเฉพาะใบที่ point ตรงกันแล้ว

ดาวน์โหลด mongo_jira_check_pointsum.py v...

ไฟล์ที่โหลดจะมีเลขเวอร์ชันต่อท้ายชื่อไฟล์ (เช่น mongo_jira_check_pointsum_v1.0.0.py) เพื่อให้เห็นชัดว่าไฟล์ไหนใหม่สุด — เปลี่ยนชื่อไฟล์ยังไงก็รันได้เหมือนกัน ไม่กระทบการทำงาน แค่ต้องพิมพ์คำสั่งให้ตรงกับชื่อไฟล์จริงที่ดาวน์โหลดมา (ก็อปคำสั่งด้านล่างนี้ได้เลย จะตรงกับชื่อไฟล์ให้อัตโนมัติ)

เช็คดูก่อน ไม่แก้ card จริง (dry-run):

python3 mongo_jira_check_pointsum.py --dry-run

run จริง (โพสต์ comment + ปิด card ขึ้น Jira เฉพาะใบที่ point ตรงกัน):

python3 mongo_jira_check_pointsum.py

ทุกครั้งที่ run script จะเช็คเวอร์ชันตัวเองกับเวอร์ชันล่าสุดบน GitHub ให้เอง — ถ้าเจอว่าเก่าจะเตือนและถามก่อนว่าจะรันต่อไหม ไม่ต้องมาเช็คเองว่าไฟล์เก่าหรือยัง

2 วางผลลัพธ์เพื่อดูเป็นตาราง (ไม่บังคับ)

คัดลอก output ทั้งหมดจาก terminal มาวางที่นี่ เพื่อดูสรุปแบบอ่านง่าย — ข้อมูลนี้ประมวลผลในเบราว์เซอร์ของคุณเท่านั้น ไม่ส่งไปที่ไหน

Prerequisites

ต้องมี 3 อย่างนี้ก่อน script จะรันได้ครับ:

  • มี pymongo — เปิด Terminal พิมพ์ pip3 install pymongo ครั้งเดียวจบ
  • มี Jira token ของตัวเอง — ถ้าคุณใช้ Claude Code + mcp-atlassian อยู่แล้ว หรือเคยตั้งไว้แล้วสำหรับ RSP Sync Check ข้ามข้อนี้ไปได้เลย (script ดึงให้อัตโนมัติ) ถ้ายังไม่มี ให้ทำตามการ์ด "ถ้า run แล้ว error: Jira credentials not found" ด้านล่างนี้ก่อน 1 รอบ
  • มี MongoDB connection string — ไปเอาจาก Confluence "Tooling Onboarding Checklist" (space TOOK) ดูการ์ด "ถ้า run แล้ว error: MongoDB connection string not found" ด้านล่างนี้

ถ้า pip3 install pymongo แล้วเจอ error "externally-managed-environment"

เจอบ่อยบน Mac ที่ลง Python ผ่าน Homebrew — Homebrew ล็อกไม่ให้ pip ติดตั้ง package ทับ Python ของระบบตรงๆ (ตาม PEP 668) แก้โดยรันคำสั่งนี้แทน (ติดตั้งแบบ user-level เฉพาะบัญชีตัวเอง ไม่กระทบ Python ของระบบ):

pip3 install --user --break-system-packages pymongo

แล้ว run python3 mongo_jira_check_pointsum.py --dry-run ใหม่อีกครั้ง (ชื่อไฟล์ให้ดูจากที่ดาวน์โหลดจริงในแท็บ "วิธีใช้งาน")

ถ้า run แล้ว error "Jira credentials not found"

ขึ้นครั้งแรกที่ run เพราะยังไม่เคยตั้ง Jira token ของตัวเองไว้บนเครื่องนี้ (ปกติสำหรับคนที่ไม่ได้ใช้ Claude Code) — ทำตามนี้ครั้งเดียวจบ:

  1. เข้า jira.tdshop.io → คลิก avatar มุมขวาบน → Profile → Personal Access Tokens → Create token → copy token ที่ได้ไว้ (โผล่ให้เห็นครั้งเดียว)
  2. เปิด Terminal แล้วรันคำสั่งนี้ (แทนที่ PASTE_TOKEN_HERE ด้วย token ที่ copy มา):
cat > ~/.mongo_jira_check.json << 'EOF' {"jira_url": "https://jira.tdshop.io/", "jira_token": "PASTE_TOKEN_HERE"} EOF

แล้ว run python3 mongo_jira_check_pointsum.py --dry-run ใหม่อีกครั้ง (ชื่อไฟล์ให้ดูจากที่ดาวน์โหลดจริงในแท็บ "วิธีใช้งาน")

ถ้า run แล้ว error "MongoDB connection string not found"

ต้องเอา connection string แบบ read-only ของ PROD มาตั้งไว้บนเครื่องเองครั้งเดียว — ห้าม commit หรือแชร์ค่านี้ที่ไหนเด็ดขาด เพราะมี username/password ฝังอยู่ในเส้นเดียวกัน:

  1. เปิด Confluence "Tooling Onboarding Checklist" (space TOOK) → หาหัวข้อ "Setup MongoDB Connection to PROD and NEST BETA" → copy connection string ช่อง PROD (Local) มาทั้งเส้น (มี host คั่นด้วย comma 3 ตัว)
  2. แทนที่ {UserName} ใน appName=... ด้วยชื่อตัวเอง
  3. เปิด Terminal แล้วรันคำสั่งนี้ (แทนที่ YOUR_CONNECTION_STRING ด้วยเส้นที่ copy มา):
cat > ~/.mongo_jira_check.json << 'EOF' {"mongo_uri": "YOUR_CONNECTION_STRING"} EOF

ถ้าเคยตั้ง jira_token ไว้ในไฟล์นี้แล้วจากขั้นตอนก่อนหน้า ให้ใส่ทั้ง jira_url/jira_token/mongo_uri ลงใน JSON เดียวกัน (ไฟล์นี้แก้ทับได้ ไม่ต้องมีสองไฟล์แยกกัน) แล้ว run python3 mongo_jira_check_pointsum.py --dry-run ใหม่อีกครั้ง

ถ้า run แล้ว error "CERTIFICATE_VERIFY_FAILED"

เจอบ่อยบน Mac ที่ลง Python จาก python.org ตรง — ตัว Python ไม่มี CA certificate ติดมาให้ครบ ต้องรันตัวติดตั้งของ Python เองอีกครั้ง (ปลอดภัย ไม่กระทบอะไรอื่น):

open "/Applications/Python 3.13/Install Certificates.command"

ถ้าเวอร์ชัน Python ไม่ใช่ 3.13 ให้แก้เลขในคำสั่งให้ตรงกับโฟลเดอร์จริงใน /Applications/ — เช็คเวอร์ชันตัวเองด้วย python3 --version