By the end of this post, a pull request that breaks your data will fail in GitHub before anyone can merge it. Most data quality checks run after the data lands. But often, what broke it was a code change approved an hour earlier. So let's check it right there, in the pull request, with three pieces: A data contract in YAML. A Python script that turns it into Great Expectations (GX) checks. A GitHub Actions workflow that runs the script on every pull request. All the files are ...