Skip to content

馃懛(ci) lint a pull request before its run is approved - #1594

Draft
davd-gzl wants to merge 7 commits into
suitenumerique:mainfrom
davd-gzl:fix/checks-for-outside-contributors
Draft

馃懛(ci) lint a pull request before its run is approved#1594
davd-gzl wants to merge 7 commits into
suitenumerique:mainfrom
davd-gzl:fix/checks-for-outside-contributors

Conversation

@davd-gzl

@davd-gzl davd-gzl commented Aug 13, 2026

Copy link
Copy Markdown
Contributor

A first contribution shows no automated result. Every run waits at action_required until a maintainer approves it, and a held run produces no check, so the pull request reads green off whatever third-party checks it has. suitenumerique/meet#1517 has sat since 2026-07-20 with three lint jobs red and none of them reported.

The wait is there because a pull_request run executes the branch with this repository's token. Four checks never do, they read it: lint-git, check-changelog, lint-changelog and the format half of lint-front. They move into static-checks.yml, on pull_request_target, which is not held. They keep their names, so required contexts still match, and they now report for every contributor.

That leaves the workflows split on whether they run a branch or read it, so meet.yml is renamed build-and-test.yml after the half it keeps.

--config .prettierrc is a security control. Without it prettier searches upward from every file it formats and loads a prettier.config.js the branch left among its sources.

A first contribution shows no result until a maintainer approves
the run. The checks that read the branch rather than run it do
not need that wait: the format check, both changelog checks and
the commit lint, each with the tooling taken from this repository.
The print and fixup steps were dropped for no reason: both read
text and neither runs the branch. The changelog match now reads
the same as check-changelog, the format check calls the script
package.json defines, and a pull request from here is skipped.
The changelog length check is inline shell over one file, so it
reads that file from the API and skips the clone. The commit job
keeps the whole graph and drops its blobs, and the install is
cached rather than paid cold on every run.
They were a second copy of lint-git, check-changelog, lint-changelog
and the format half of lint-front, so the rules lived in two files
and had already drifted apart. They now live once, under a trigger
no approval holds, and report for every contributor.
One runs it and one reads it, which is the line the split is on.
Every file in the repository is a meet file, so the old name
carried no information where it sat.
@davd-gzl

davd-gzl commented Aug 13, 2026

Copy link
Copy Markdown
Contributor Author

I have to fix CI + change title

Renaming meet.yml made SonarCloud read the whole file as new code,
so nineteen findings it already carries counted against this
branch. The four that are ours are fixed: permissions per job,
no lifecycle scripts on install, and wheels only at pinned
versions.
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant