تخطَّ إلى المحتوى

GitHub

استخدم Matrix في GitHub Issues وPull Requests.

يتكامل Matrix مع سير عمل GitHub لديك. اذكر /matrix أو /oc في تعليقك، وسيقوم Matrix بتنفيذ المهام داخل GitHub Actions runner لديك.


الميزات

  • فرز Issues: اطلب من Matrix الاطلاع على Issue وشرحها لك.
  • إصلاح وتنفيذ: اطلب من Matrix إصلاح Issue أو تنفيذ ميزة. وسيعمل على فرع جديد ويقدّم PR يضم كل التغييرات.
  • آمن: يعمل Matrix داخل GitHub runners لديك.

التثبيت

شغّل الأمر التالي داخل مشروع موجود في مستودع GitHub:

Terminal window
matrix github install

سيأخذك هذا خلال تثبيت GitHub app، وإنشاء workflow، وإعداد secrets.


الإعداد اليدوي

أو يمكنك إعداده يدويًا.

  1. تثبيت GitHub app

    انتقل إلى github.com/apps/matrix-agent. تأكد من تثبيته على المستودع الهدف.

  2. إضافة الـworkflow

    أضف ملف الـworkflow التالي إلى .github/workflows/matrix.yml في مستودعك. تأكد من ضبط model المناسب ومفاتيح API المطلوبة ضمن env.

    .github/workflows/matrix.yml
    name: matrix
    on:
    issue_comment:
    types: [created]
    pull_request_review_comment:
    types: [created]
    jobs:
    matrix:
    if: |
    contains(github.event.comment.body, '/oc') ||
    contains(github.event.comment.body, '/matrix')
    runs-on: ubuntu-latest
    permissions:
    id-token: write
    steps:
    - name: Checkout repository
    uses: actions/checkout@v6
    with:
    fetch-depth: 1
    persist-credentials: false
    - name: Run Matrix
    uses: Y-Square-T3/matrix/github@latest
    env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
    with:
    model: anthropic/claude-sonnet-4-20250514
    # share: true
    # github_token: xxxx
  3. تخزين مفاتيح API ضمن secrets

    في settings الخاصة بالمؤسسة أو المشروع، وسّع Secrets and variables في الشريط الجانبي الأيسر ثم اختر Actions، وأضف مفاتيح API المطلوبة.


الإعدادات

  • model: النموذج الذي سيستخدمه Matrix. يأخذ الصيغة provider/model. هذا مطلوب.

  • agent: الـagent الذي سيتم استخدامه. يجب أن يكون agent أساسيًا. يعود افتراضيًا إلى default_agent من الإعدادات أو "build" إذا لم يُعثر عليه.

  • share: هل تتم مشاركة جلسة Matrix. القيمة الافتراضية true للمستودعات العامة.

  • prompt: موجه مخصص اختياري لتجاوز السلوك الافتراضي. استخدمه لتخصيص كيفية معالجة Matrix للطلبات.

  • token: GitHub access token اختياري لتنفيذ عمليات مثل إنشاء التعليقات، وcommit للتغييرات، وفتح Pull Requests. افتراضيًا يستخدم Matrix installation access token الخاص بـMatrix GitHub App، لذا تظهر commits والتعليقات وPull Requests وكأنها صادرة من التطبيق.

    بدلًا من ذلك، يمكنك استخدام GITHUB_TOKEN المدمج في GitHub Action runner دون تثبيت Matrix GitHub App. فقط تأكد من منح الأذونات المطلوبة في الـworkflow:

    permissions:
    id-token: write
    contents: write
    pull-requests: write
    issues: write

    يمكنك أيضًا استخدام رموز الوصول الشخصية(PAT) إن فضّلت ذلك.


الأحداث المدعومة

يمكن تشغيل Matrix عبر أحداث GitHub التالية:

نوع الحدثيتم تشغيله عبرالتفاصيل
issue_commentتعليق على Issue أو PRاذكر /matrix أو /oc في تعليقك. يقرأ Matrix السياق ويمكنه إنشاء فروع، وفتح PRs، أو الرد.
pull_request_review_commentتعليق على أسطر كود محددة في PRاذكر /matrix أو /oc أثناء مراجعة الكود. يستلم Matrix مسار الملف وأرقام الأسطر وسياق الـdiff.
issuesفتح Issue أو تعديلهاتشغيل Matrix تلقائيًا عند إنشاء Issues أو تعديلها. يتطلب إدخال prompt.
pull_requestفتح PR أو تحديثهتشغيل Matrix تلقائيًا عند فتح PRs أو مزامنتها أو إعادة فتحها. مفيد للمراجعات الآلية.
scheduleجدول يعتمد على Cronتشغيل Matrix وفق جدول. يتطلب إدخال prompt. يذهب الناتج إلى logs وPRs (لا يوجد Issue للتعليق عليها).
workflow_dispatchتشغيل يدوي من واجهة GitHubتشغيل Matrix عند الطلب عبر Actions tab. يتطلب إدخال prompt. يذهب الناتج إلى logs وPRs.

مثال للجدولة

شغّل Matrix وفق جدول لتنفيذ مهام آلية:

.github/workflows/matrix-scheduled.yml
name: Scheduled Matrix Task
on:
schedule:
- cron: "0 9 * * 1" # Every Monday at 9am UTC
jobs:
matrix:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
with:
persist-credentials: false
- name: Run Matrix
uses: Y-Square-T3/matrix/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
prompt: |
Review the codebase for any TODO comments and create a summary.
If you find issues worth addressing, open an issue to track them.

بالنسبة لأحداث schedule، يكون إدخال prompt مطلوبًا لعدم وجود تعليق لاستخراج التعليمات منه. تعمل عمليات الـworkflow المجدولة دون سياق مستخدم للتحقق من الأذونات، لذا يجب أن يمنح الـworkflow صلاحيات contents: write وpull-requests: write إذا كنت تتوقع أن ينشئ Matrix فروعًا أو PRs.


مثال Pull Request

راجع PRs تلقائيًا عند فتحها أو تحديثها:

.github/workflows/matrix-review.yml
name: matrix-review
on:
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
jobs:
review:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
pull-requests: read
issues: read
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
- uses: Y-Square-T3/matrix/github@latest
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
model: anthropic/claude-sonnet-4-20250514
use_github_token: true
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements

بالنسبة لأحداث pull_request، إذا لم يتم توفير prompt، فإن Matrix يراجع Pull Request افتراضيًا.


مثال فرز Issues

قم بفرز Issues الجديدة تلقائيًا. يقوم هذا المثال بتصفية الحسابات الأقدم من 30 يومًا لتقليل الرسائل المزعجة:

.github/workflows/matrix-triage.yml
name: Issue Triage
on:
issues:
types: [opened]
jobs:
triage:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
pull-requests: write
issues: write
steps:
- name: Check account age
id: check
uses: actions/github-script@v7
with:
script: |
const user = await github.rest.users.getByUsername({
username: context.payload.issue.user.login
});
const created = new Date(user.data.created_at);
const days = (Date.now() - created) / (1000 * 60 * 60 * 24);
return days >= 30;
result-encoding: string
- uses: actions/checkout@v6
if: steps.check.outputs.result == 'true'
with:
persist-credentials: false
- uses: Y-Square-T3/matrix/github@latest
if: steps.check.outputs.result == 'true'
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
with:
model: anthropic/claude-sonnet-4-20250514
prompt: |
Review this issue. If there's a clear fix or relevant docs:
- Provide documentation links
- Add error handling guidance for code examples
Otherwise, do not comment.

بالنسبة لأحداث issues، يكون إدخال prompt مطلوبًا لعدم وجود تعليق لاستخراج التعليمات منه.


الموجهات المخصصة

قم بتجاوز الموجه الافتراضي لتخصيص سلوك Matrix ضمن الـworkflow لديك.

.github/workflows/matrix.yml
- uses: Y-Square-T3/matrix/github@latest
with:
model: anthropic/claude-sonnet-4-5
prompt: |
Review this pull request:
- Check for code quality issues
- Look for potential bugs
- Suggest improvements

يفيد ذلك في فرض معايير مراجعة محددة، أو معايير كتابة الكود، أو مجالات تركيز تناسب مشروعك.


أمثلة

إليك بعض الأمثلة على كيفية استخدام Matrix في GitHub.

  • شرح Issue

    أضف هذا التعليق داخل GitHub Issue.

    /matrix explain this issue

    سيقرأ Matrix كامل النقاش، بما في ذلك جميع التعليقات، ويرد بشرح واضح.

  • إصلاح Issue

    داخل GitHub Issue، اكتب:

    /matrix fix this

    وسيُنشئ Matrix فرعًا جديدًا، وينفّذ التغييرات، ويفتح PR يتضمنها.

  • مراجعة PRs وإجراء تغييرات

    اترك التعليق التالي على GitHub PR.

    Delete the attachment from S3 when the note is removed /oc

    سينفّذ Matrix التغيير المطلوب ويعمل له commit إلى نفس PR.

  • مراجعة أسطر كود محددة

    اترك تعليقًا مباشرة على أسطر الكود في تبويب “Files” داخل PR. يكتشف Matrix تلقائيًا الملف وأرقام الأسطر وسياق الـdiff لتقديم ردود دقيقة.

    [Comment on specific lines in Files tab]
    /oc add error handling here

    عند التعليق على أسطر محددة، يستلم Matrix:

    • الملف الدقيق الذي تتم مراجعته
    • أسطر الكود المحددة
    • سياق الـdiff المحيط
    • معلومات أرقام الأسطر

    يسمح ذلك بطلبات أكثر تحديدًا دون الحاجة لذكر مسارات الملفات أو أرقام الأسطر يدويًا.