Repository navigation
ci: a commit speaks for its author alone, and CI reads it - #24
Merged
Merged
Conversation
CI read the code and never the words that travel with it: a commit message, and the title and body of a pull request, which become the commit when it is squashed. The message gate now reads them, as a step of the job that branch protection already requires, so a refused text blocks the merge the way a failing test does. The gate is the family's one copy and lives in getmilpa/devtools. It refuses a co-author trailer for an identity the house does not list, a generator signature and a session reference, and it ends red when it cannot read. Three things change around it. CI also runs when a pull request is edited, because its text can change after the last push. The token may read pull requests. And there is one run per pull request, so a newer event replaces the run it makes stale.
… squash carries Grouping runs by pull request let a run for an older commit, started later by a re-run or an approval, cancel the run of the newest commit and leave its checks cancelled. The group is now the pull request and its head commit: an edit of the title or the body still replaces the run it makes stale, and a run for another commit is left alone. The comment on `edited` said the body becomes the squashed commit. It no longer does: the title does, and the body stays public beside it, which is why the gate still reads both.
…ys finishes Branch protection takes, for each check, the run of the latest event on a commit. Grouping runs to cancel the stale one could cancel that very run: when two events reached the same commit within a second, the run of the earlier one sometimes survived, and the pull request stayed blocked with a green run on its head. It happened in 2 of the 37 pull requests of this change. Without the group every run finishes and the latest event decides, which is what was wanted in the first place.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
CI read the code and never the words that travel with it: a commit
message, and the title and body of a pull request. The title becomes
the commit when the pull request is squashed, and the body stays
public beside it. The message gate now reads them, as a step of the
job that branch protection already requires, so a refused text blocks
the merge the way a failing test does.
The gate is the family's one copy and lives in getmilpa/devtools. It
refuses a co-author trailer for an identity the house does not list, a
generator signature and a session reference, and it ends red when it
cannot read.
Two things change around it. CI also runs when a pull request is
edited, because its text can change after the last push. And the token
may read pull requests.