From f0d1a2f2a1fa27a2586e363452ab5490939a98b0 Mon Sep 17 00:00:00 2001 From: bong-water-water-bong <277547417+bong-water-water-bong@users.noreply.github.com> Date: Sat, 27 Jun 2026 06:17:09 -0300 Subject: [PATCH 1/2] chore: add PR-agent review + upstream issues watch --- .github/workflows/pr-agent-review.yml | 28 +++++++++ .github/workflows/upstream-issues-watch.yml | 67 +++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 .github/workflows/pr-agent-review.yml create mode 100644 .github/workflows/upstream-issues-watch.yml diff --git a/.github/workflows/pr-agent-review.yml b/.github/workflows/pr-agent-review.yml new file mode 100644 index 00000000..27cdcfe6 --- /dev/null +++ b/.github/workflows/pr-agent-review.yml @@ -0,0 +1,28 @@ +name: pr-agent-review + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + issue_comment: + types: [created] + +permissions: + contents: read + pull-requests: write + issues: write + +jobs: + pr_agent_job: + name: PR-Agent (DeepSeek) + runs-on: ubuntu-latest + if: ${{ github.event.sender.type != 'Bot' && secrets.DEEPSEEK_API_KEY != '' }} + steps: + - name: PR Agent review + uses: the-pr-agent/pr-agent@main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEEPSEEK_API_KEY: ${{ secrets.DEEPSEEK_API_KEY }} + config.model: "deepseek/deepseek-chat" + config.fallback_models: '["deepseek/deepseek-chat"]' + pr_reviewer.require_score_review: "false" + pr_reviewer.num_code_suggestions: "4" \ No newline at end of file diff --git a/.github/workflows/upstream-issues-watch.yml b/.github/workflows/upstream-issues-watch.yml new file mode 100644 index 00000000..7538e92b --- /dev/null +++ b/.github/workflows/upstream-issues-watch.yml @@ -0,0 +1,67 @@ +name: upstream-issues-watch + +on: + schedule: + # Daily at 08:00 UTC + - cron: "0 8 * * *" + workflow_dispatch: + +permissions: + contents: write + issues: read + +jobs: + watch: + name: Fetch upstream issues + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + # Need history of UPSTREAM_ISSUES.md to know what's new + fetch-depth: 2 + + - name: Fetch recent issues from upstream + env: + GH_TOKEN: ${{ github.token }} + run: | + # In fork context: fetch from the upstream owner/repo + UPSTREAM="lemonade-sdk/lemon-mlx-engine" + CACHE="UPSTREAM_ISSUES.md" + NOW=$(date -u +"%Y-%m-%dT%H:%M:%SZ") + + # Get all open issues from upstream (API max 100 per page) + echo "# Upstream Issues — ${UPSTREAM}" > "${CACHE}.new" + echo "Last checked: ${NOW}" >> "${CACHE}.new" + echo "" >> "${CACHE}.new" + + curl -s "https://api.github.com/repos/${UPSTREAM}/issues?state=open&per_page=50&sort=created&direction=desc" \ + | jq -r '.[] | select(.pull_request == null) | "- [#\(.number)](\(.html_url)) — \(.title) (\(.created_at))"' \ + >> "${CACHE}.new" 2>/dev/null || echo "_No issues found or API error_" >> "${CACHE}.new" + + # Diff against what we had before + if [ -f "$CACHE" ]; then + OLD_COUNT=$(grep -c '^\- \[' "$CACHE" 2>/dev/null || echo 0) + NEW_COUNT=$(grep -c '^\- \[' "${CACHE}.new" 2>/dev/null || echo 0) + echo "Previous issue count: ${OLD_COUNT}, Current: ${NEW_COUNT}" + + # Find new issues (lines in .new not in old) + NEW_ISSUES=$(comm -13 <(grep '^\- \[' "$CACHE" 2>/dev/null | sort) <(grep '^\- \[' "${CACHE}.new" | sort) || true) + if [ -n "$NEW_ISSUES" ]; then + echo "New issues since last check:" + echo "$NEW_ISSUES" + fi + fi + + mv "${CACHE}.new" "$CACHE" + + - name: Commit updated issue list + run: | + if git diff --quiet UPSTREAM_ISSUES.md; then + echo "No changes to UPSTREAM_ISSUES.md" + exit 0 + fi + git config user.name "github-actions[bot]" + git config user.email "41898282+github-actions[bot]@users.noreply.github.com" + git add UPSTREAM_ISSUES.md + git commit -m "chore: update upstream issue watch [skip ci]" + git push From 27ef67b9e506dec759fdb5956d8d59e9bf60aded Mon Sep 17 00:00:00 2001 From: bong-water-water-bong <277547417+bong-water-water-bong@users.noreply.github.com> Date: Sat, 27 Jun 2026 10:43:05 -0300 Subject: [PATCH 2/2] ci: add Qodo merge review workflow --- .github/workflows/qodo-merge.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/qodo-merge.yml diff --git a/.github/workflows/qodo-merge.yml b/.github/workflows/qodo-merge.yml new file mode 100644 index 00000000..fb4e1014 --- /dev/null +++ b/.github/workflows/qodo-merge.yml @@ -0,0 +1,20 @@ +name: qodo-merge +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + +jobs: + qodo-merge: + if: ${{ secrets.QODO_API_KEY != "" }} + runs-on: ubuntu-latest + permissions: + issues: write + pull-requests: write + contents: read + steps: + - name: Qodo Merge Review + uses: qodo-ai/qodo-merge@main + env: + QODO_API_KEY: ${{ secrets.QODO_API_KEY }} + with: + github_token: ${{ secrets.GITHUB_TOKEN }}