Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Copilot Code Review: Automatic PR Reviews, Requiring Them with Rulesets, Steering with Instructions and Limits
Copilot code review reads instructions from the pull request's head branch and never looks at some files, such as tsconfig.json and lock files, so a pull request can loosen its own review rules. We showed this with a script in Bookstore. Automatic reviews and a ruleset JSON, effort levels and cost, review instructions and a code-review skill, Copilot approvals and the split with human review.
The Copilot Coding Agent: Assigning Issues, the GitHub Actions Environment, Setup Steps, the Firewall and Reviewing the Resulting PR
No red check on a pull request from the Copilot coding agent does not mean the tests passed: by default workflows do not run on Copilot's pushes and wait for Approve and run workflows. Writing and assigning the issue, a .NET, Node and SQL Server environment with copilot-setup-steps.yml, rules actionlint misses, Agents secrets, the firewall, reviewing the PR and Agent Merge.
Making Review Easy as the Author: Small PRs, Stacked PRs, Good Descriptions and Self-Review
The most effective way to make review easy is to keep each pull request small and single-purpose: 2059 of the 2721 lines in the coupon pull request were generated migration files, and splitting the rest into three stacked pull requests for refactoring, model and behaviour reduced each to one question. The post covers GitHub's native stacked pull requests, the template, drafts and self-review, and review rounds with fixups, --update-refs and range-diff.
Git Interactive Rebase and Squash: Tidying History Before a PR
We turn a messy feature branch into three clean commits with git rebase -i: the todo list, pick, reword, edit, squash, fixup, drop and reordering, the commit --fixup plus --autosquash flow, how it differs from GitHub's squash merge, and the experimental git history reword in Git 2.54.
Pull Requests on GitHub: GitHub Flow, Reviews and Merge Methods
Branch, commit, push and pull request: the six steps of GitHub flow, draft PRs, answering review with new pushes, how the merge commit, squash and rebase methods shape history, the branch-deletion trap after a squash, and keeping a fork in sync with upstream.