GitHub ประกาศเปิดบริการ Copilot อย่างเป็นทางการ หลังจากเปิดทดสอบวงปิดมาตั้งแต่ปีที่แล้ว โดยผู้ใช้สามารถทดสอบใช้งานได้ฟรี 60 วัน หลังจากนั้นค่าบริการอยู่ที่เดือนละ 10 ดอลลาร์ หรือปีละ 100 ดอลลาร์
ตอนนี้ Copilot รองรับโปรแกรมแก้ไขโค้ดยอดนิยม ได้แก่ Neovim, JetBrains, Visual Studio, และ VSCode สามารถแนะนำโค้ดในภาษาโปรแกรมได้นับสิบภาษา และช่วงทดสอบที่ผ่านมามีผู้ทดสอบถึง 1.2 ล้านคน
ทาง GitHub จะให้บริการฟรีกับนักเรียนและผู้ดูแลโครงการโอเพนซอร์สยอดนิยม ส่วนแพ็กเกจแบบเสียเงินสำหรับองค์กรจะตามมาภายหลัง
ที่มา - GitHub Blog
Atom เป็น text editor ที่ GitHub พัฒนาเพื่อทดแทนโปรแกรมที่ขายอย่าง Sublime หรือ TextMate ตั้งแต่ปี 2014 แต่หลังจากไมโครซอฟท์พัฒนา VSCode อย่างต่อเนื่อง และเข้าซื้อ GitHub ตัวโครงการ Atom ก็ไม่ค่อยมีการพัฒนาอะไรมากมายนัก ล่าสุด GitHub ก็ประกาศยุติการพัฒนาอย่างเป็นทางการ และจะปิดโครงการเก็บเป็นโหมด archive ในวันที่ 15 ธันวาคมนี้
แม้ว่าตัว Atom จะเลิกพัฒนาไปแล้ว แต่ Electron เฟรมเวิร์ครันเว็บแอปพลิเคชั่นแบบเดสก์ทอปที่สร้างขึ้นมาเพื่อ Atom ก็เป็นโครงสร้างสำหรับโครงการจำนวนมากจนทุกวันนี้ รวมถึง VSCode, Slack, และ GitHub Desktop
GitHub เพิ่มฟีเจอร์สอนการใช้งานแบบใหม่ชื่อ GitHub Skills ซึ่งไม่ใช่หน้าเว็บรวมคู่มือหรือคลิปสอนธรรมดาๆ แต่เป็นการจับมือทำในระบบของ GitHub โดยตรง (เรียนรู้แบบ interactive)
เบื้องหลังของ GitHub Skills เขียนอยู่บน GitHub Actions ฟีเจอร์ด้าน workflow ที่มีตั้งแต่ปี 2018 วิธีการเรียนเราสามารถเข้าไปยังหน้า repo ของ skills (ตัวอย่าง) กดปุ่ม "Use this template" เพื่อสร้าง repo ใหม่ของเราเอง จากนั้นทำตามขั้นตอน step-by-step ที่ผู้สอนเตรียมไว้ได้เลย เราจะทำงานต่างๆ บนหน้าจริงๆ ของ GitHub โดยตรง
GitHub รายงานข้อมูลเพิ่มเติมจากเหตุโทเค็น OAuth รั่วไหลเมื่อเดือนเมษายนที่ผ่านมา พบว่าคนร้ายได้รับข้อมูลมากกว่าซอร์สโค้ดของ npm เอง โดยคนร้ายได้ฐานข้อมูล ชื่อผู้ใช้, อีเมล, และค่าแฮชรหัสผ่าน ของผู้ใช้ประมาณ 100,000 คนไปด้วย
ข้อมูลที่หลุดไปอยู่ในไฟล์สำรองข้อมูลของเว็บ skimdb.npmjs.com
ที่สำรองไว้ตั้งแต่วันที่ 7 เมษายน 2021 ในไฟล์ข้อมูลยังมี metadata ของแพ็กเกจส่วนตัวทั้งหมด, และแพ็กเกจภายในขององค์กรสององค์กร
GitHub ประกาศปรับนโยบายการใช้งาน โดยบังคับให้นักพัฒนาที่อัพโหลดโค้ดเข้ามา ต้องเปิดใช้งานการยืนยันตัวตนสองขั้นตอน (2FA) อย่างน้อย 1 วิธีการ มีผลภายในสิ้นปี 2023
Mike Hanley หัวหน้าฝ่ายความปลอดภัยของ GitHub บอกว่าแนวคิดนี้เกิดจากพื้นฐานว่า กระบวนการพัฒนาซอฟต์แวร์ให้มีความปลอดภัยรัดกุมทุกขั้นตอน ต้องเริ่มต้นที่นักพัฒนาเป็นลำดับแรก เพราะบัญชีนักพัฒนาเป็นเป้าหมายแรกของผู้โจมตีในการสอดไส้มัลแวร์เข้าไปในโค้ด
GitHub พบคนร้ายเข้าดาวน์โหลดข้อมูลจากองค์กรเหยื่อ โดยคนร้ายอาศัยโทเค็น OAuth2 ที่ออกให้กับ Heroku และ Travis-CI
ทาง GitHub แจ้งการโจมตีนี้ไปยังทั้ง Heroku และ Travis-CI แล้ว ตอนนี้ทาง Heroku ออกมาประกาศว่าได้ยกเลิกโทเค็นทั้งหมดภายในวันนี้ ส่งผลให้ไม่สามารถ deploy แอปใหม่ผ่านทาง dashboard หรือ automation ได้ ลูกค้าของ Heroku สามารถเชื่อมต่อโค้ดเข้าไปใหม่ได้เหมือนการเชื่อมต่อ Git นอก GitHub
GitHub พบการโจมตีครั้งนี้หลังจากพบว่ากุญแจ AWS ของ npm ถูกใช้งาน จึงตรวจสอบว่าแฮกเกอร์ได้กุญแจไปทางใด และพบว่าคนร้ายดาวน์โหลด repository ภายในของ npm ออกไปจึงได้กุญแจของ AWS ไปด้วย การขยายผลจึงพบว่าน่าจะเกี่ยวข้องกับ Heroku และ Travis-CI
Python ย้ายระบบรายงานปัญหา (issue tracking) จาก Roundup มาเป็น GitHub หลังจากมีข้อเสนอนี้มาตั้งแต่ปี 2018
เหตุผลสำคัญคือระบบซอร์สโค้ดของ Python นั้นย้ายไป GitHub ตั้งแต่ปี 2017 แล้ว การใช้ระบบ issue tracking ในระบบเดียวกันช่วยให้ทำงานง่ายขึ้นมาก และยังมีฟีเจอร์ใหม่ๆ เช่น รองรับ markdown, ระบบ reaction ในความเห็นใช้โหวตได้, รองรับการล็อกอินสองขั้นตอน ที่สำคัญคือลดภาระทีมงานในการซ่อมบำรุงเว็บไซต์
Roundup นั้นเป็นระบบ issue tracking ที่มีมานานตั้งแต่ปี 2003 แม้จะยังมีการพัฒนาอยู่แต่ทุกวันนี้ทีมงานยังใช้ Mercurial พัฒนา และตัวโครงการไม่มีระบบ CI เพื่อทดสอบทำให้การแพตช์ทำได้ลำบาก
GitHub มีเครื่องมือชื่อ Actions เป็นระบบ workflow ช่วยทำงานอัตโนมัติตามเงื่อนไขที่กำหนด เปิดใช้งานมาตั้งแต่ปี 2019 โดยบัญชีฟรีก็ใช้ได้
ล่าสุด GitHub ออกมาแนะนำ action ชื่อ dependency-review-action ที่พัฒนาโดยพนักงานของตัวเอง หน้าที่ของมันคือตรวจสอบหากโค้ดของเรามีการเพิ่ม dependency ใหม่เข้ามา จะวิ่งไปเช็คกับฐานข้อมูล GitHub Advisory Database ว่า dependency นั้นมีช่องโหว่ที่เป็นที่รู้จักอยู่แล้วหรือไม่
action นี้สามารถใช้ได้ฟรีกับโค้ดที่เป็น public ส่วนโค้ดที่เป็น private ต้องซื้อไลเซนส์ Github Advanced Security
GitHub เพิ่มฟีเจอร์ทำภาพไดอะแกรมในไฟล์ Markdown ด้วย Mermaid ชุดแปลงข้อความ Markdown เป็นภาพที่รองรับทั้ง UML, User Journey, และ Gantt Chart
ทาง GitHub ไม่ได้แปลงข้อความเป็นภาพที่ตัวเซิร์ฟเวอร์ แต่ใส่ mermaid.js เข้ามาในเว็บที่เป็น Markdown แล้วแปลงเป็นภาพที่ฝั่งเบราว์เซอร์ผู้ใช้ โดยโค้ดส่วนที่เป็น mermaid นี้จะถูกเรนเดอร์เป็น iframe แยกจากหน้าหลักเพื่อความปลอดภัย
ที่มา - GitHub
GitHub เพิ่มฟีเจอร์ Sponsors-only repositories ให้นักพัฒนาสามารถมอบสิทธิพิเศษสำหรับผู้สนับสนุนได้ชัดเจนมากขึ้น จากเดิมที่มีป้ายแสดงตัวผู้สนับสนุนเป็นหลัก โดยการเปิดส่วนพิเศษสำหรับสปอนเซอร์จะทำให้นักพัฒนาสามารถมอบสิทธิประโยชน์ให้สปอนเซอร์ได้หลายอย่าง เช่น
ฟีเจอร์เหล่านี้ดูแล้วคงคล้ายกับแพลตฟอร์มจำนวนมากในตอนนี้ที่เริ่มพยายามพัฒนาช่องทางจ่ายเงินตรงเข้าหาครีเอเตอร์ และเปิดทางให้ตัวครีเอเตอร์มอบสิทธิพิเศษได้ อย่างไรก็ดีตอนนี้โครงการ GitHub Sponsors ยังอยู่ในช่วงเบต้าวงปิดเท่านั้น
GitHub ประกาศบังคับให้ผู้ดูแลแพ็กเกจ NPM ยอดนิยม 100 ตัวแรก ต้องล็อกอินแบบ 2FA เพื่อเพิ่มระดับความปลอดภัยจากการถูกแฮ็กบัญชี ตามที่เคยประกาศแนวทางไว้
การที่แพ็กเกจ NPM ยอดนิยมถูกใช้งานในวงกว้าง ทำให้เกิดปัญหาผู้ดูแลถูกแฮ็กบัญชี แล้วเปลี่ยนแพ็กเกจที่ยัดไส้มัลแวร์อยู่บ่อยครั้ง สร้างผลกระทบเป็นวงกว้าง หนึ่งในมาตรการของ GitHub คือเพิ่มความปลอดภัยของบัญชีผู้ดูแลก่อน โดยเริ่มจากกลุ่ม Top 100 และขั้นต่อไปคือ GitHub จะบังคับ 2FA กับแพ็กเกจที่มียอดดาวน์โหลดเกิน 1 ล้านครั้งต่อสัปดาห์ หรือมีโครงการอื่นเรียกใช้งานเกิน 500 โครงการ
ยูสเซอร์ Developer-Y ได้สร้าง repository บน GitHub รวมคอร์สเรียนวิทย์คอมและโปรแกรมมิ่งออนไลน์แบบมีวิดีโอเป็นภาษาอังกฤษจากมหาวิทยาลัยชั้นนำทั่วโลกมาไว้ในที่เดียว ตั้งแต่ปี 2016 ปัจจุบันมีคอร์สเรียนกว่า 800 คอร์ส จากผู้มีส่วนร่วม 49 คนที่ช่วยกันอัพเดต
วิชาที่รวมมา มีตั้งแต่บทนำสู่วิทยาศาสตร์คอมพิวเตอร์, โครงสร้างข้อมูลและอัลกอริทึ่ม, แมชชีนเลิร์นนิ่ง, ควอนตัมคอมพิวเตอร์ ไปจนถึงวิชาการเงินเชิงคำนวณ (Computational Finance), ชีวะวิทยาเชิงคำนวณ (Computational Biology), โรโบติกส์ วิชาการพัฒนาบล็อกเชน และอื่นๆ อีกมากมาย
ผู้ใช้ GitHub ชื่อบัญชี Marak เป็นผู้ดูแลโครงการโอเพนซอร์สจำนวนมากและช่วงสัปดาห์ที่ผ่านมาเขาใส่โค้ดรัน infinite loop เข้าไปยังโครงการ color.js (4,300 stars) และ faker.js (795 stars) ส่งผลให้โมดูลและแอปอื่นๆ ที่ใส่โมดูลเหล่านี้เป็น dependency ไม่สามารถทำงานได้ หน้าจอจะค้างและพิมพ์ขยะออกมาไม่หยุด
Marak ไม่ได้แถลงบอกเหตุผลที่เขาทำแบบนี้ไว้โดยตรงแต่เขาแสดงภาพ Aaron Swartz โปรแกรมเมอร์นักกิจกรรมที่ฆ่าตัวตาย หลังถูกจับเนื่องจากเอาคอมพิวเตอร์ไปเชื่อมต่อเครือข่ายของ MIT เพื่อดาวน์โหลดรายงานวิทยาศาสตร์
GitHub ออกตัวช่วยสแกนช่องโหว่ Log4j ในโปรเจคต์ซอฟต์แวร์
ผู้ใช้งานสามารถเปิดใช้ Dependabot ซึ่งเป็นบ็อตช่วยตรวจหาเวอร์ชันของแพ็กเกจซอฟต์แวร์ที่ใช้งาน (เอกสารวิธีเปิดใช้) หากมีแพ็กเกจ Log4j เวอร์ชันที่มีช่องโหว่ ก็จะได้รับคำเตือนให้อัพเกรดเป็นเวอร์ชันที่อุดแพตช์แล้ว
GitHub ออกฟีเจอร์ใหม่ชื่อ Advanced Security Enforcer เป็นสคริปต์เวิร์คโฟลว์ภายใต้ GitHub Actions ที่ช่วยบังคับให้โค้ด repository มีความปลอดภัยสูงขึ้นตั้งแต่แรกเริ่มโครงการ ตามมาตรฐานความปลอดภัยที่ GitHub เตรียมไว้ให้แล้ว
Aidan Marlin นักวิจัยด้านความปลอดภัยรายงานว่านักพัฒนาจำนวนเกือบ 4,500 คนอัพโหลดไฟล์ cookie จากเบราว์เซอร์ที่ตัวเองใช้งานอยู่เข้าไปยัง GitHub ส่งผลให้คนร้ายสามารถสวมรอยแทนนักพัฒนาเหล่านี้ไปยังทุกบริการที่ล็อกอินทิ้งไว้ได้
ไฟล์ฐานข้อมูล cookie ในไฟร์ฟอกซ์คือ cookies.sqlite ปกติแล้วจะอยู่ในโฟลเดอร์ของไฟร์ฟอกซ์เอง ไม่แน่ชัดว่าทำไมนักพัฒนาจำนวนหนึ่งจึงอัพโหลดไฟล์เหล่านี้ขึ้น GitHub
ความนิยมของแพ็กเกจ npm ในโลก JavaScript กลายเป็นช่องโหว่ด้านความปลอดภัยหลายครั้ง เพราะแฮ็กเกอร์สามารถยึดบัญชีนักพัฒนาแพ็กเกจ npm ชื่อดัง แล้วอัพเดตแพ็กเกจที่ฝังมัลแวร์เพื่อแพร่กระจายในวงกว้างอย่างรวดเร็ว (กรณีของ ua-parser-js และ coa)
GitHub ซึ่งปัจจุบันเป็นเจ้าของบริษัท npm Inc. จึงออกมาประกาศมาตรการความปลอดภัยของ npm เพื่อป้องกันปัญหาเหล่านี้ ได้แก่
ปัญหาการฝังรหัสผ่านหรือคีย์ไว้ในซอร์สโค้ด ถือเป็นช่องโหว่ความปลอดภัยที่มักพลาดกันบ่อยๆ ทำให้บริการฝากซอร์สโค้ดอย่าง GitHub มีฟีเจอร์ชื่อ Secret Scanning คอยไล่ตรวจว่าในโค้ดมีการฝังคีย์ลักษณะนี้หรือไม่ (บังคับเฉพาะโค้ดแบบ public ส่วนโค้ดแบบ private เป็นฟีเจอร์แบบเสียเงิน และต้องเลือกเปิดเอง)
วิธีการคือ GitHub ร่วมกับบริษัทดังๆ หลายเจ้า เช่น AWS, Azure, Google Cloud, Dropbox, Slack, Stripe, Shopify, Twilio (รายชื่อทั้งหมด) เพื่อตรวจสอบแพทเทิร์นคีย์ของบริษัทเหล่านี้ และแจ้งเตือนบริษัทผู้ออกคีย์ให้ถอนคีย์ออก หากพบว่ามีคีย์ถูกเผยแพร่ในที่สาธารณะ
GitHub ประกาศเปลี่ยนแปลงตำแหน่งผู้บริหาร โดยซีอีโอ Nat Friedman ได้ลาออกจากตำแหน่ง เพื่อไปทำงานสนับสนุน ให้คำปรึกษา และลงทุนในสตาร์ทอัพใหม่ ๆ
Thomas Dohmke ซึ่งเดิมเป็นหัวหน้าฝ่ายผลิตภัณฑ์ (Chief Product Officer) จะขึ้นมาเป็นซีอีโอคนใหม่ มีผลตั้งแต่วันที่ 15 พฤศจิกายน เป็นต้นไป
ปัจจุบัน GitHub เป็นแผนกของไมโครซอฟท์ภายใต้กลุ่มนักพัฒนา หลังจากการเข้าซื้อกิจการเมื่อปี 2018 ซึ่ง Friedman ที่เป็นรองประธานฝ่ายบริการนักพัฒนาตอนนั้น ก็ถูกแต่งตั้งเป็นซีอีโอ ส่วน Chris Wanstrath ผู้ก่อตั้งและซีอีโอในเวลานั้น เป็น Technical Fellow ของบริษัท
จากข่าวบริษัทเทคโนโลยีชาติตะวันตกหลายราย ทยอยถอนตัวจากจีน ได้แก่ LinkedIn, Fortnite และล่าสุดคือ Yahoo ทำให้นักพัฒนาซอฟต์แวร์ในจีนเริ่มกังวลกันว่า GitHub (ซึ่งปัจจุบันเป็นของไมโครซอฟท์ เหมือนกับ LinkedIn) จะต้องปิดบริการในจีนตามไปด้วย
ปัจจุบัน นักพัฒนาในจีนมีสัดส่วนประมาณ 10% ของนักพัฒนาทั้งหมด 56 ล้านคนบน GitHub และคนจีนเป็นผู้ดูแลโครงการโอเพนซอร์สสำคัญๆ หลายโครงการ แม้ในจีนเองมีแพลตฟอร์ม Gitee แบบเดียวกันเป็นคู่แข่ง แต่ก็มีแค่คนจีนใช้เท่านั้น
โครงการโอเพนซอร์สจำนวนมากอยู่บน GitHub และการที่ GitHub มีฐานนักพัฒนาจำนวนมาก ทำให้การส่งแพตช์เข้าร่วมโครงการทำได้ง่ายขึ้น แต่ในมุมกลับ นักพัฒนาผู้ดูแลโครงการก็เจอปัญหาการสแปม pull request จากนักพัฒนาที่ไม่เคยรู้จักกันมาก่อน
GitHub เลยออกฟีเจอร์ใหม่ให้ผู้ดูแลโครงการสามารถกำหนดผู้ใช้ที่สิทธิ code review (สั่งอนุมัติ pull request) ได้แบบเจาะจงบุคคล เพื่อจำกัดเฉพาะคนที่ไว้วางใจได้ เป็นผู้ตรวจสอบโค้ดที่มีคนส่งเข้ามา
หน้าจอตั้งค่านี้ กำหนดได้ตาม repository ที่ต้องการ หรือเป็นจะทุก repository ขององค์กรก็ได้เช่นกัน
GitHub มีฟีเจอร์ที่เรียกว่า Releases เป็นตัวช่วยจัดการเรื่องออกเวอร์ชันของซอฟต์แวร์ โดยผู้ใช้งานจะเห็นเลขเวอร์ชัน และข้อมูลการเปลี่ยนแปลงของเวอร์ชันนั้นๆ บนหน้าเว็บของโครงการบน GitHub (ตัวอย่างหน้า Releases ของโครงการ Atom)
Releases เป็นฟีเจอร์ที่มีมายาวนานตั้งแต่ปี 2013 แต่เมื่อ GitHub สอบถามนักพัฒนาที่ใช้งานว่าอยากได้อะไร คำตอบคือ "ขี้เกียจเขียน Release Notes" เพื่อบอกว่าในเวอร์ชันนั้นมีอะไรบ้าง
GitHub จึงพัฒนาฟีเจอร์เขียน Release Notes ให้อัตโนมัติ (Auto-generate release notes) โดยดึงข้อมูลจาก pull request ของเวอร์ชันนั้นมาสรุปให้เสร็จสรรพเลย นักพัฒนาเพียงแค่ตรวจสอบความถูกต้องแล้วกดโพสต์เท่านั้น
Google งดเล่นมุก April Fools' Day มาสองปีแล้วเนื่องด้วยสถานการณ์โควิด-19 แต่หากใครยังจำได้ ย้อนกลับไปในปี 2018 Google ประเทศญึ่ปุ่นเล่นมุกหนึ่ง เป็นอุปกรณ์เสริมคีย์บอร์ด ป้อนข้อมูลโดยการลากนิ้วเป็นตัวอักษรบนแป้นพิมพ์
ล่าสุด Google ญี่ปุ่นต่อยอดไอเดีย สร้างแป้นพิมพ์ Gboard ในรูปแบบแก้วชาทรงกระบอกขนาด 125 มิลลิลิตร เพื่อเฉลิมฉลองพิธีชงชาคิตาโนะ ตัวแก้วหุ้มด้วยปุ่มกดทั่วทั้งแก้ว มีช่องเสียบพอร์ต USB-C และที่ว่างข้างในแก้วสามารถใส่ชาลงไปและดื่มได้จริงๆ ตัวปุ่มกดเป็นตัวอักษรเขียนด้วยพู่กันสวยงาม
GitHub เปิดบริการเว็บบอร์ด-ฟอรั่ม GitHub Discussions อย่างเป็นทางการ หลังเปิดตัวครั้งแรกในปี 2020 และเปิดทดสอบมาระยะหนึ่ง
GitHub Discussions เป็นช่องทางสนทนาเกี่ยวกับโครงการซอฟต์แวร์นั้นๆ โดยเจ้าของ repository ต้องเปิดใช้ฟีเจอร์นี้ก่อน (ตัวอย่างหน้า Discussions ของโครงการ Node.js) รูปแบบการใช้งานก็เหมือนเว็บบอร์ดทั่วไป มีการแยกห้องย่อยได้ โหวตกระทู้ แปะป้าย label ให้กระทู้ได้ และฟีเจอร์เฉพาะของ GitHub ที่เชื่อมโยงกับ pull request/issue ได้ด้วย
ที่มา - GitHub
GitHub ประกาศนำกระบวนการพัฒนาตัวเว็บ GitHub.com (github/github) มาอยู่บนผลิตภัณฑ์ใหม่ของตัวเองคือ GitHub Codespaces ทั้งหมดแล้ว
Codespaces คือบริการ IDE ครบวงจร ตั้งแต่ตัว code editor บนเว็บ (เป็น VS Code) และประมวลผลบน VM สมรรถนะสูงบนคลาวด์ (GitHub ใช้คำว่า "faster than your laptop") ทำงานได้จากทุกที่ขอแค่มีเพียงเว็บเบราว์เซอร์