Workflow automatyzacji Pull Request
Proces PR w twoim zespole stał się wąskim gardłem. PR-y czekają dwa dni na recenzję. Gdy recenzje wreszcie następują, wyłapują problemy wymagające drugiej rundy. Kolejne commity psują CI, co wymaga kolejnego cyklu recenzji. Pojedyncza funkcja potrzebuje tygodnia od “ready for review” do “merged”. Z Codex możesz zautomatyzować każdy krok: tworzyć PR-y z worktree, otrzymywać natychmiastową recenzję AI, naprawiać awarie CI bez opuszczania GitHub i przygotowywać PR-y do finalnej ludzkiej recenzji z wszystkimi problemami wstępnie rozwiązanymi.
Co wyniesiesz z tej lekcji
Dział zatytułowany „Co wyniesiesz z tej lekcji”- Pipeline worktree-do-PR tworzący PR-y bezpośrednio z Codex App
- Wzorce
@codexdo naprawiania awarii CI i zamawiania recenzji na GitHub - Workflow GitHub Action do automatycznej recenzji na każdym PR
- Techniki łączenia automatycznej i ludzkiej recenzji
Workflow
Dział zatytułowany „Workflow”Krok 1: Twórz PR-y z wątków Worktree
Dział zatytułowany „Krok 1: Twórz PR-y z wątków Worktree”Gdy wątek worktree Codex zakończy swoje zadanie, możesz przejść od diffa do otwartego PR bez opuszczania App. To najszybsza droga od implementacji do recenzji.
W Codex App, po zakończeniu wątku worktree:
- Przejrzyj diff w panelu recenzji. Dodaj zmiany, które chcesz, cofnij te, których nie chcesz.
- Kliknij Create branch here, aby zamienić worktree w nazwaną gałąź.
- Commituj dodane zmiany z opisową wiadomością.
- Wypchnij gałąź na remote za pomocą przycisku push.
- Otwórz pull request bezpośrednio z App.
Aby PR był tworzony automatycznie, możesz też zlecić to Codex:
Krok 2: Automatyczna recenzja z @codex
Dział zatytułowany „Krok 2: Automatyczna recenzja z @codex”Gdy PR jest otwarty na GitHub, otrzymaj natychmiastowy feedback bez czekania na ludzkiego recenzenta.
Skomentuj PR:
@codex reviewCodex reaguje emoji oczu, analizuje cały diff i publikuje standardową recenzję kodu GitHub z komentarzami inline. Recenzja obejmuje poprawność, bezpieczeństwo i utrzymywalność na podstawie wytycznych recenzji z twojego AGENTS.md.
Dla ukierunkowanych recenzji dodaj instrukcje:
@codex review with focus on:- Database query performance (check for missing indexes and N+1 patterns)- Error handling completeness- API backward compatibilityKrok 3: Naprawiaj awarie CI bez opuszczania GitHub
Dział zatytułowany „Krok 3: Naprawiaj awarie CI bez opuszczania GitHub”Gdy CI nie przejdzie na twoim PR, nie musisz pobierać gałęzi lokalnie, szukać co się zepsuło, naprawiać i wypychać ponownie. Skomentuj PR:
Codex tworzy zadanie chmurowe, które:
- Czyta diff PR i logi awarii CI
- Identyfikuje przyczynę źródłową
- Proponuje poprawkę
- Publikuje wyniki z powrotem na PR z linkiem do zadania chmurowego
Jeśli poprawka obejmuje zmiany w kodzie, możesz utworzyć nowy PR z zadania chmurowego celujący w twoją gałąź funkcji. Lub otwórz zadanie chmurowe, przejrzyj diff i zastosuj zmiany ręcznie.
Dla konkretnych awarii CI:
@codex The TypeScript type check fails because the new NotificationPreference interface is missing the updatedAt field that the migration added. Fix the type definition and any related code.Krok 4: Sprzątanie przed recenzją z Codex App
Dział zatytułowany „Krok 4: Sprzątanie przed recenzją z Codex App”Przed poproszeniem o ludzką recenzję użyj Codex App do wyczyszczenia typowych problemów. Otwórz wątek Local z twoją gałęzią funkcji:
Review all changes on this branch compared to main. Check for:
1. Any TODO comments that should be resolved before merging2. Console.log or debugging statements left in production code3. Missing or incomplete test coverage for new functions4. Unused imports or dead code5. Inconsistent error handling patterns
Fix any issues you find. Run the test suite after each fix.Następnie użyj /review w CLI, aby zweryfikować sprzątanie:
/review Focus on merge readiness. Is this PR ready for human review? Flag anything a reviewer would send back for changes.Krok 5: Zautomatyzuj cały pipeline
Dział zatytułowany „Krok 5: Zautomatyzuj cały pipeline”Połącz GitHub Action z @codex review dla w pełni zautomatyzowanego pipeline PR:
name: PR Pipelineon: pull_request: types: [opened, synchronize, reopened]
jobs: # Step 1: Standard CI checks ci: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - run: npm ci - run: npm run type-check - run: npm run lint - run: npm test
# Step 2: Codex review (runs in parallel with CI) codex-review: runs-on: ubuntu-latest permissions: contents: read pull-requests: write steps: - uses: actions/checkout@v5 with: ref: refs/pull/${{ github.event.pull_request.number }}/merge - name: Fetch refs run: | git fetch --no-tags origin \ ${{ github.event.pull_request.base.ref }} \ +refs/pull/${{ github.event.pull_request.number }}/head - uses: openai/codex-action@v1 with: openai-api-key: ${{ secrets.OPENAI_API_KEY }} prompt-file: .github/codex/prompts/review.md sandbox: read-only safety-strategy: drop-sudo
# Step 3: Post combined results summary: needs: [ci, codex-review] if: always() runs-on: ubuntu-latest permissions: pull-requests: write steps: - name: Post status summary uses: actions/github-script@v7 with: script: | const ci = '${{ needs.ci.result }}'; const review = '${{ needs.codex-review.result }}'; const body = `## PR Pipeline Summary\n\n` + `| Check | Status |\n|---|---|\n` + `| CI (lint, types, tests) | ${ci} |\n` + `| Codex Review | ${review} |\n`; await github.rest.issues.createComment({ ...context.repo, issue_number: context.payload.pull_request.number, body });Włączanie automatycznych recenzji
Dział zatytułowany „Włączanie automatycznych recenzji”Dla zespołów, które chcą recenzji na każdym PR bez ręcznych komentarzy @codex review, włącz Automatic reviews w ustawieniach Codex na chatgpt.com/codex/settings/code-review. Po włączeniu Codex publikuje recenzję na każdym PR otwartym do recenzji, zachowując się jak dedykowany recenzent zespołowy.
Gdy coś się nie uda
Dział zatytułowany „Gdy coś się nie uda”Recenzja Codex i ludzka recenzja są sprzeczne. Jeśli Codex mówi “to jest ok”, a ludzki recenzent mówi “zmień to”, człowiek wygrywa. Sprecyzuj to w procesie zespołu: recenzja Codex wyłapuje oczywiste problemy wcześnie; ludzka recenzja zajmuje się osądami architektonicznymi i poprawnością logiki biznesowej.
Tworzenie PR z worktree nie udaje się z powodu konfliktów gałęzi. Jeśli twój worktree został utworzony z gałęzi, która od tamtej pory otrzymała nowe commity, PR może mieć konflikty. Przed utworzeniem PR zsynchronizuj worktree z najnowszą gałęzią bazową za pomocą zintegrowanego terminala: git fetch origin main && git rebase origin/main.
@codex fix tworzy poprawkę na złej gałęzi. Zadania chmurowe domyślnie korzystają z domyślnej gałęzi repozytorium. Gdy komentujesz @codex fix na PR, Codex powinien pracować na gałęzi PR, ale zweryfikuj, czy powstałe zmiany celują w odpowiednią gałąź.
Zbyt wiele automatycznych komentarzy na jednym PR. Jeśli zarówno GitHub Action, jak i @codex review się uruchamiają, plus Codex publikuje propozycje poprawek, PR może stać się hałaśliwy. Wybierz jeden mechanizm recenzji: albo GitHub Action dla recenzji zintegrowanej z CI, albo @codex review (lub automatyczne recenzje) dla recenzji na żądanie. Nie uruchamiaj obu jednocześnie.