GitHub CLI ตอนนี้เก็บเทเลเมทรีแบบนามแฝงแล้ว
(cli.github.com/telemetry)- GitHub CLI จะส่ง เทเลเมทรีแบบนามแฝง โดยมีเป้าหมายเพื่อเพิ่มการมองเห็นการใช้งานฟีเจอร์และช่วยปรับปรุงผลิตภัณฑ์
- ใช้ข้อมูลเรื่อง การนำ subcommand ไปใช้งาน และรูปแบบการใช้ flags เพื่อกำหนดลำดับความสำคัญของงาน ประเมินว่าตอบโจทย์ผู้ใช้หรือไม่ และนำไปทบทวน discoverability กับ design
- เป็น การติดตั้งใช้งานแบบโอเพนซอร์ส จึงสามารถตรวจสอบโค้ดเทเลเมทรีได้โดยตรงในรีโพซิทอรี
cli/cliและใช้ logging mode เพื่อดู JSON payload ก่อนส่งจริงได้ - การปิดการส่งข้อมูลแบบ opt-out ทำได้ด้วยตัวแปรสภาพแวดล้อม
GH_TELEMETRY=false,DO_NOT_TRACK=trueหรือgh config set telemetry disabledโดยตัวแปรสภาพแวดล้อมจะมีลำดับความสำคัญสูงกว่าค่า config - อีเวนต์เทเลเมทรีจะถูกส่งไปยัง โครงสร้างพื้นฐานการวิเคราะห์ภายในของ GitHub และหน้านี้กล่าวถึงเฉพาะการเก็บข้อมูลฝั่งไคลเอนต์ของ
ghเท่านั้น โดย extensions และ Copilot CLI เป็นคนละส่วน
เทเลเมทรี
- GitHub CLI ส่ง เทเลเมทรีแบบนามแฝง เพื่อช่วยปรับปรุงผลิตภัณฑ์
- ให้ข้อมูลเพื่อให้ผู้ใช้เข้าใจว่ามีการส่งข้อมูลอะไรบ้างและส่งไปด้วยเหตุผลใด
เหตุผลที่เก็บเทเลเมทรี
- กล่าวถึงความจำเป็นในการมองเห็น การใช้งานฟีเจอร์ของ GitHub CLI โดยเฉพาะเมื่อการใช้งานเชิง agentic เพิ่มขึ้น จึงต้องการเข้าใจรูปแบบการใช้งานจริง
- ทีมงานใช้ข้อมูลนี้ในการกำหนดลำดับความสำคัญของงาน
- ใช้ประเมินว่าฟีเจอร์ต่าง ๆ ตอบสนองความต้องการของผู้ใช้จริงหรือไม่
- ระบุชัดว่าต้องการตรวจสอบ การนำ subcommand ใหม่ไปใช้งานหลังเปิดตัว
- หากแทบไม่มีผู้ใช้ อาจต้องทบทวน discoverability หรือ design ของฟีเจอร์นั้น
- หากพบการใช้งานสูงร่วมกับ flags บางรายการ ก็จะช่วยชี้จุดที่ควรลงทุนเพื่อสร้างประสบการณ์ที่ดีกว่าเดิม
การตรวจสอบเทเลเมทรี
- GitHub CLI เป็น โอเพนซอร์ส และสามารถตรวจสอบการติดตั้งใช้งานเทเลเมทรีได้โดยตรงในรีโพซิทอรี
cli/cli - หากต้องการดูข้อมูลที่จะถูกส่งโดยไม่ส่งจริง สามารถใช้ logging mode ได้
- รองรับการตั้งค่าผ่านตัวแปรสภาพแวดล้อม
export GH_TELEMETRY=log
- รองรับการตั้งค่าผ่าน CLI
gh config set telemetry log
- รองรับการตั้งค่าผ่านตัวแปรสภาพแวดล้อม
- ใน logging mode จะพิมพ์ JSON payload ที่ปกติจะถูกส่งออกไปยัง stderr
- ผู้ใช้สามารถตรวจดูแต่ละฟิลด์ก่อนตัดสินใจว่าจะเปิดใช้เทเลเมทรีต่อหรือไม่
- ยกตัวอย่างคำสั่ง
GH_TELEMETRY=log gh repo list --archived
- ระบุข้อมูลอีเวนต์ที่รวมอยู่ใน payload ตัวอย่าง
- ประเภทอีเวนต์
command_invocation - ใน dimensions มี
agent,architecture,command,device_id,flags,invocation_id,is_tty,os,timestamp,version - ตัวอย่างค่า เช่น
architecture: arm64,command: gh repo list,flags: archived,os: darwin,version: 2.91.0
- ประเภทอีเวนต์
- คำสั่งดังกล่าวสามารถบันทึกได้เฉพาะเทเลเมทรีของ คำสั่งและบริบทที่ถูกรันจริงเท่านั้น
- หากเปลี่ยนตัวแปรสภาพแวดล้อม events และ event dimensions ที่รวมอยู่ใน payload ก็อาจเปลี่ยนตาม
- หากเปลี่ยนบัญชีที่ยืนยันตัวตนแล้ว รายการข้อมูลที่รวมอยู่ก็อาจต่างออกไปเช่นกัน
วิธี opt-out
- สามารถ opt-out จากเทเลเมทรีที่ตรวจสอบผ่าน logging mode ได้
- รองรับการตั้งค่าผ่านตัวแปรสภาพแวดล้อม
export GH_TELEMETRY=false- ใช้ค่าที่ตีความเป็น false ได้ เช่น
0,false,disabled, สตริงว่าง - รองรับธรรมเนียม
DO_NOT_TRACKด้วย โดยมีตัวอย่างexport DO_NOT_TRACK=true
- รองรับการตั้งค่าผ่าน CLI
gh config set telemetry disabled
- ตัวแปรสภาพแวดล้อมมีลำดับความสำคัญ สูงกว่าค่า config
ข้อมูลถูกส่งไปที่ใด
- อีเวนต์เทเลเมทรีถูกส่งไปยัง โครงสร้างพื้นฐานการวิเคราะห์ภายใน ของ GitHub
- หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีประมวลผลข้อมูล ให้ดู GitHub General Privacy Statement
ข้อมูลเพิ่มเติม
- GitHub CLI รองรับการเพิ่มความสามารถผ่านการติดตั้ง extensions ของ GitHub และ บุคคลที่สาม รวมถึง agents
- extensions เหล่านี้อาจเก็บข้อมูลการใช้งานของตนเองได้
- ไม่ถูกควบคุมด้วยการตั้งค่า opt-out นี้
- ควรตรวจสอบเอกสารของแต่ละ extension เพื่อดูวิธีรายงานเทเลเมทรีและดูว่าสามารถปิดได้หรือไม่
- หน้านี้กล่าวถึงเฉพาะ การเก็บข้อมูลฝั่งไคลเอนต์ ของ GitHub CLI
gh- ไม่ครอบคลุม GitHub Copilot และ Copilot CLI
- Copilot CLI มีการจัดการการเก็บข้อมูลแยกต่างหาก
- มีการแนะนำแหล่งข้อมูลที่เกี่ยวข้องคือ
Using GitHub Copilot CLI,Responsible Use of the GitHub Copilot CLI
ยังไม่มีความคิดเห็น