การกําหนด การติดตาม และการแก้ไขปัญหางานตัวแทนการเข้ารหัส Copilot

เสร็จสมบูรณ์เมื่อ

ตัวแทนการเข้ารหัส GitHub Copilot ทําหน้าที่เป็นเพื่อนร่วมทีมอิสระที่ทํางานโดยตรงภายใน GitHub เมื่อเปิดใช้งานแล้ว คุณสามารถมอบหมายงาน ดูความคืบหน้าแบบเรียลไทม์ และแนะนําการทํางานโดยแสดงความคิดเห็นเกี่ยวกับคําขอดึงข้อมูล หน่วยนี้อธิบายวิธีกําหนดปัญหาให้กับ Copilot โดยใช้ GitHub.com, GitHub Mobile, API หรือ CLI นอกจากนี้ยังแสดงวิธีติดตามงานของตัวแทนและทําซ้ํา และจัดเตรียมคู่มือการแก้ไขปัญหาสําหรับปัญหาทั่วไป

ในตอนท้ายของหน่วยนี้ คุณจะสามารถ:

  • มอบหมายปัญหาให้กับ Copilot โดยใช้ GitHub.com, GitHub Mobile, API หรือ CL
  • ตรวจสอบความคืบหน้าของ Copilot ผ่านไทม์ไลน์คําขอดึงข้อมูลและบันทึกเซสชัน
  • ทําซ้ํางานของ Copilot โดยแสดงความคิดเห็นเกี่ยวกับคําขอดึงข้อมูล
  • ทําความเข้าใจกฎการอนุมัติสําหรับคําขอดึงข้อมูลที่สร้างขึ้นโดยตัวแทน
  • แก้ไขปัญหาทั่วไปเมื่อมอบหมายงานให้กับ Copilot

การมอบหมายปัญหาให้กับ Copilot

เมื่อคุณกําหนดปัญหาให้กับ Copilot ตัวแทนจะรับทราบโดยเพิ่ม 👀 ปฏิกิริยาต่อปัญหา จากนั้นจะสร้างสาขาเฉพาะ copilot/ เปิดคําขอดึงข้อมูลแบบร่างที่เชื่อมโยงกับปัญหา และเริ่มเซสชันตัวแทนภายในสภาพแวดล้อมที่ขับเคลื่อนด้วย GitHub Actions ขณะที่มันทํางาน Copilot จะผลักดันการคอมมิตไปยังสาขาและอัปเดตเนื้อหาคําขอดึงข้อมูลด้วยข้อความสถานะ เมื่องานเสร็จสมบูรณ์ Copilot จะโพสต์กิจกรรม "Copilot ทํางานเสร็จแล้ว" และขอให้คุณตรวจสอบ

สกรีนช็อตของแถบนําทางที่เก็บ GitHub ที่ไฮไลต์แท็บ ปัญหา พร้อมจํานวนปัญหาที่เปิดอยู่ที่แสดง

ใน GitHub.com คุณมอบหมายปัญหาให้กับ Copilot เช่นเดียวกับที่คุณมอบหมายให้กับผู้ใช้รายอื่น ไปที่แท็บ ปัญหา ของที่เก็บ เปิดปัญหาที่คุณต้องการมอบหมาย และในแถบด้านข้างด้านขวาภายใต้ ผู้รับมอบหมาย ให้เลือก Copilot Copilot ได้รับชื่อปัญหา คําอธิบาย และความคิดเห็นที่มีอยู่ ณ เวลาที่ได้รับมอบหมาย ตัวแทนไม่เห็นความคิดเห็นในภายหลังเกี่ยวกับปัญหา ดังนั้นให้เพิ่มข้อมูลใหม่เป็นข้อคิดเห็นโดยตรงในคําขอดึงข้อมูลของตัวแทน

ภาพหน้าจอของแผง GitHub issue Assignees แสดงตัวเลือกในการกําหนด Copilot เป็นโปรแกรมเมอร์คู่ AI

คุณยังสามารถกําหนดปัญหาให้กับ Copilot ได้จากรายการปัญหาในหน้าปัญหาของที่เก็บ จากโครงการ GitHub หรือโดยใช้ GitHub Mobile สําหรับเวิร์กโฟลว์บรรทัดคําสั่ง คุณสามารถใช้ GitHub CLI (gh issue edit) เพื่อเพิ่ม Copilot เป็นผู้รับมอบหมาย

การมอบหมายผ่าน API

คุณสามารถกําหนดปัญหาให้กับ Copilot โดยทางโปรแกรมผ่าน GraphQL API ขั้นแรก ให้ตรวจสอบว่าตัวแทนการเข้ารหัสพร้อมใช้งานโดยการสืบค้น suggestedActors ที่เก็บและตรวจสอบว่า copilot-swe-agent ปรากฏเป็นนักแสดงที่แนะนํา จากนั้นดึงข้อมูลรหัสที่เก็บ หากต้องการสร้างและกําหนดปัญหาใหม่ ให้ใช้ createIssue การกลายพันธุ์ โดยส่งรหัสที่เก็บและรหัสบอทของ Copilot หากต้องการกําหนดปัญหาที่มีอยู่ ให้ดึงรหัสปัญหา จากนั้นใช้ replaceActorsForAssignable การกลายพันธุ์เพื่อเพิ่ม Copilot เป็นผู้รับมอบหมาย วิธีการนี้มีประโยชน์สําหรับการรวม Copilot เข้ากับเวิร์กโฟลว์อัตโนมัติ

ตรวจสอบห้องว่าง

query {
  repository(owner: "octo-org", name: "octo-repo") {
    suggestedActors(capabilities: [CAN_BE_ASSIGNED], first: 100) {
      nodes { login __typename ... on Bot { id } ... on User { id } }
    }
  }
}

รับรหัสที่เก็บ

query {
  repository(owner: "octo-org", name: "octo-repo") { id }
}

สร้างและมอบหมายปัญหาใหม่

mutation {
  createIssue(
    input: {
      repositoryId: "REPOSITORY_ID",
      title: "Implement comprehensive unit tests",
      body: "DETAILS",
      assigneeIds: ["BOT_ID"]
    }
  ) {
    issue { id title assignees(first: 10) { nodes { login } } }
  }
}

มอบหมายปัญหาที่มีอยู่

query {
  repository(owner: "monalisa", name: "octocat") {
    issue(number: 9000) { id title }
  }
}

mutation {
  replaceActorsForAssignable(
    input: { assignableId: "ISSUE_ID", actorIds: ["BOT_ID"] }
  ) {
    assignable {
      ... on Issue {
        id title
        assignees(first: 10) { nodes { login } }
      }
    }
  }
}

ติดตามความคืบหน้าของ Copilot

หลังจากที่คุณกําหนดปัญหาให้กับ GitHub Copilot ตัวแทนจะให้สัญญาณที่มองเห็นได้เพื่อให้คุณสามารถติดตามงานได้ตั้งแต่ต้นจนจบ

  • การยืนยันทันที หลังจากที่คุณกําหนดปัญหาได้ไม่นาน Copilot จะ 👀 เพิ่มปฏิกิริยาต่อปัญหา

    ภาพหน้าจอของคําอธิบายปัญหา GitHub ที่แสดงขั้นตอนในการทําซ้ําและตัวเลือกในการสร้างปัญหาย่อย

  • การสร้างคําขอดึงข้อมูลแบบร่าง ภายในไม่กี่วินาที Copilot จะเปิดคําขอดึงข้อมูลแบบร่างที่เชื่อมโยงกับปัญหาเดิม เหตุการณ์ใหม่จะปรากฏในไทม์ไลน์ของปัญหาที่แสดงคําขอดึงข้อมูล

    ภาพหน้าจอของความคิดเห็นเกี่ยวกับปัญหา GitHub ที่ Copilot กล่าวถึงปัญหาที่เกี่ยวข้องพร้อมลิงก์ไปยังหมายเลขปัญหา 1123

  • เซสชันตัวแทนที่ใช้งานอยู่ Copilot เริ่มเซสชันตัวแทนเพื่อแก้ไขปัญหาของคุณ คุณจะเห็นเหตุการณ์ "Copilot เริ่มทํางาน" ในไทม์ไลน์คําขอดึงข้อมูล ขณะที่ทํางาน Copilot จะอัปเดตเนื้อหาคําขอดึงข้อมูลด้วยข้อความสถานะปกติและส่งคอมมิตไปยังสาขาเฉพาะ

    สกรีนช็อตของไทม์ไลน์ปัญหา GitHub ที่ Copilot เริ่มทํางานในนามของผู้ใช้

  • บันทึกเซสชันสด เซสชันทั้งหมดของคุณในอดีตและปัจจุบันจะมองเห็นได้จากหน้าตัวแทน คลิก ดูเซสชัน ในคําขอดึงข้อมูลเพื่อเปิดโปรแกรมดูบันทึกเซสชันสดและดูการดําเนินการของ Copilot แบบเรียลไทม์ หากคุณต้องการหยุด Copilot ให้คลิก หยุดเซสชัน ในโปรแกรมดู

  • เสร็จสิ้นและทบทวน เมื่อ Copilot ทํางานเสร็จ เซสชันตัวแทนจะสิ้นสุดลงโดยอัตโนมัติ เหตุการณ์ "Copilot ทํางานเสร็จแล้ว" จะปรากฏในไทม์ไลน์คําขอดึงข้อมูล และ Copilot ขอให้ตรวจสอบจากคุณ ซึ่งจะทริกเกอร์การแจ้งเตือน

    สกรีนช็อตของไทม์ไลน์ปัญหา GitHub ที่ Copilot ทํางานในนามของผู้ใช้เสร็จหลังจากร้องขอการตรวจสอบ

การทําซ้ําด้วย Copilot

คุณแนะนํางานของ Copilot ในลักษณะเดียวกับที่คุณแนะนําผู้ร่วมให้ข้อมูลที่เป็นมนุษย์ผ่านความคิดเห็นและบทวิจารณ์ กล่าวถึง @copilot ในความคิดเห็นคําขอดึงข้อมูลเพื่อขอการเปลี่ยนแปลง เฉพาะความคิดเห็นจากผู้ใช้ที่มีสิทธิ์เขียนไปยังที่เก็บเท่านั้นที่จะได้รับการประมวลผล Copilot โพสต์ 👀 ปฏิกิริยาต่อความคิดเห็นของคุณเพื่อยืนยันว่าได้รับคําขอแล้ว จากนั้นเพิ่ม "Copilot เริ่มทํางาน" ลงในไทม์ไลน์คําขอดึงข้อมูลเมื่อดําเนินการต่อ สิ่งนี้ทําให้คุณสามารถทําซ้ํางานของ Copilot ได้โดยไม่ต้องออกจากเวิร์กโฟลว์การตรวจสอบตามปกติ

การอนุมัติและเวิร์กโฟลว์

คําขอดึงข้อมูลที่สร้างโดย Copilot จะอยู่ในสถานะแบบร่างเสมอ พวกเขาต้องการการอนุมัติจากมนุษย์ก่อนที่จะผสาน และเวิร์กโฟลว์ GitHub Actions ที่ทริกเกอร์โดยตัวแทนจะไม่ทํางานโดยอัตโนมัติ หากต้องการเรียกใช้เวิร์กโฟลว์ตามคําขอดึงข้อมูล Copilot ให้คลิก อนุมัติและเรียกใช้เวิร์กโฟลว์ ในกล่องผสาน นักพัฒนาซอฟต์แวร์ที่ขอให้ Copilot สร้างคําขอดึงข้อมูลไม่สามารถอนุมัติได้ ซึ่งจะรักษากฎ "การตรวจสอบที่จําเป็น" ของที่เก็บของคุณและรับรองการตรวจสอบที่เป็นอิสระก่อนที่จะรวม

การแก้ไขปัญหาตัวแทนการเข้ารหัส Copilot

  • Copilot ไม่อยู่ในรายชื่อ "ผู้รับมอบหมาย"

    ตรวจสอบให้แน่ใจว่าคุณใช้แผนที่มีสิทธิ์ (Pro, Pro+, Business, Enterprise) ยืนยันว่าตัวแทนไม่ได้ถูกปิดใช้งานที่ระดับองค์กร/ที่เก็บ ยืนยันในหน้าคุณสมบัติของคุณ: github.com/settings/copilot/features.

  • ที่เก็บส่วนบุคคลของผู้ใช้ที่มีการจัดการ (EMU) ขององค์กร

    ไม่มีตัวแทน; ใช้ที่เก็บขององค์กร (ต้องใช้ตัวเรียกใช้ที่โฮสต์ GitHub)

  • "สร้างคําขอดึงข้อมูลไม่ได้" จาก Chat

    ตรวจสอบให้แน่ใจว่าตัวแทนพร้อมใช้งาน ใน IDE ให้กล่าวถึง @github ในข้อความแจ้งของคุณ (ไม่จําเป็นใน GitHub.com)

  • มอบหมายปัญหาแต่ไม่มีอะไรเกิดขึ้น

    ฟื้นฟู; มองหา 👀 ปฏิกิริยา จากนั้นจึงร่างประชาสัมพันธ์

  • สร้างการประชาสัมพันธ์แล้ว แต่ไม่มีความคืบหน้า

    ตรวจสอบไทม์ไลน์การประชาสัมพันธ์สําหรับ "Copilot เริ่มทํางาน"; เปิด ดูบันทึกเซสชัน

  • ตัวแทนไม่ตอบกลับความคิดเห็นด้านการประชาสัมพันธ์

    ยืนยันว่าคุณมีสิทธิ์เขียนและกล่าวถึง @copilot ในการประชาสัมพันธ์ของตัวแทน

  • ดูเหมือนจะค้าง

    มันอาจฟื้นตัว เซสชันหมดเวลาหลังจากหนึ่งชั่วโมง ลองอีกครั้งโดยยกเลิกการมอบหมาย/มอบหมายปัญหาใหม่ หรือโพสต์ความคิดเห็นอีกครั้ง

  • การดําเนินการไม่ทํางาน

    คลิก อนุมัติและเรียกใช้เวิร์กโฟลว์ ในกล่องผสาน

  • การผลักดันไม่ผ่าน CI

    ให้คําแนะนําระดับ repo ที่ชัดเจนผ่าน .github/copilot-instructions.md เพื่อให้ตัวแทนสามารถตรวจสอบความถูกต้องด้วยตนเองด้วยการทดสอบ/linters

  • คําเตือนไฟร์วอลล์

    อินเทอร์เน็ตถูกจํากัดโดยค่าเริ่มต้น คําเตือนจะแสดงรายการที่อยู่และคําสั่งที่ถูกบล็อก ปรับต่อ การปรับแต่งหรือปิดใช้งานไฟร์วอลล์สําหรับตัวแทนการเข้ารหัส GitHub Copilot

  • ภาพไม่ถูกหยิบขึ้นมา

    ขนาดภาพสูงสุดคือ 3.00 MiB; รูปภาพขนาดใหญ่จะถูกลบออก

ด้วยลูปการมอบหมาย-ติดตาม-วนซ้ําที่เชื่อถือได้ คุณจะสามารถเพิ่มความสอดคล้องและความเร็วได้โดยการปรับแต่งสภาพแวดล้อมของเอเจนต์