
A client says the build passed, or says the commit never reported. Tonight, three proofs, in a repository the agency or the client can open. Name the check that commit reported: the check-run id, the name, and the conclusion. If the conclusion is still null, write null, and write the status that is actually stored. Show a different check whose id, or whose head SHA, is not this one. Show another client's repository that does not list this check. If any of the three needs the person who installed the app, you have not named the check. You have a green mark and a guess.
This is the check on one commit. It is not the required gate. Name the check the merge required is the context a ruleset demands before a merge. A required context name is not this check-run id. It is not the workflow. Which workflow did that run execute? is a workflow run. A workflow run can be queued while this check's conclusion is already set, and a workflow id is not a check-run id. It is not the milestone. Which milestone did that issue join? is a number, a title, and a state on an issue. A milestone number is not a conclusion. It is not the intent a charge opened, and it is not the message a run appended. Those are different objects, and they are not this id.
None of what follows is a finding that this check is the right one for the client, and none of it is legal advice. The fields below are one host's current description of a check run, and the request and the response examples are not one run's history. The counts below that are a 2017 paper about failing builds in open-source projects and in one bank. A conclusion on an example is not a census of this client's commits. A model that never opened the repository cannot name the conclusion on the commit you opened tonight. They do tell you which numbers people mix up when they try to sound precise about a check they have not opened.
GitHub's in-progress create request sends name mighty_readme, 13 characters, head SHA ce587453ced02b1526dfb4cb910479d431683101, 40 characters, status in_progress, external_id 42, and started_at 2018-05-04T01:14:52Z. The output title is Mighty Readme report, 20 characters. The output summary is an empty string. The output text is an empty string. Empty is not a conclusion. The published response for that example prints id 4, the same SHA, node_id MDg6Q2hlY2tSdW40, 16 characters, external_id 42, status in_progress, and conclusion null. completed_at is null. A null conclusion is not a missing check. The output summary on that response is There are 0 failures, 2 warnings, and 1 notice. 47 characters. The request sent an empty summary. Empty is not 47 characters. annotations_count is 2. The request did not send annotations. 2 is not a count you can read off the empty request. check_suite id is 5. 5 is not 4. The app id is 1, the owner id is 1, and the slug is octoapp, 7 characters. 1 is not 4, and 7 is not 13. The API version on the page is 2026-03-10, 10 characters. It is not the integer 4 (GitHub, REST API endpoints for check runs).
The completed request is a second example, and it does not match the completed response. The request sends the same name and the same 40-character SHA, status completed, conclusion success, started_at 2017-11-30T19:39:10Z, and completed_at 2017-11-30T19:49:10Z. The gap is 10 minutes. 2017 is not 2018. The summary on that request is There are 0 failures, 2 warnings, and 1 notices. 48 characters. 48 is not 47. notices is not notice. The response pages that print a completed object do not print conclusion success. They print id 4 again, conclusion neutral, external_id an empty string, started_at 2018-05-04T01:14:52Z, and completed_at the same timestamp. The gap on that response is 0. 0 is not 10 minutes. Empty external_id is not 42. neutral is not success, and neutral is not null. Three published values sit on id 4: null, success on a request, and neutral on a response. They are examples. They are not one check's history. A request that says success is not a stored conclusion.
The pull request on the same response is not the check. The URL ends in pulls/1. The id field is 1934. The number field is 3956. 3956 is not 1, and 1934 is not 4. The head ref is say-hello. The head SHA is 3dca65fa3e8d4b3da3f3d056c59aee1c50f41390, also 40 characters, and not the check's head SHA. The base ref is master. The base SHA is e7fdf7640066d71ad16a86fbcbb9c6a10a18af4f, also 40 characters, and not the head SHA. A pull number is not a check-run id. An annotation on the completed request points at README.md, lines 2 through 2, with the message Check your spelling for 'banaas', 33 characters. start_line equals end_line. The image URL on that request ends in 42. 42 is the external_id string on the in-progress example, and 42 is not the check id 4. The page says a check suite limits runs with the same name to 1000, after which older runs are deleted. 1000 is not 4. Annotations are limited to 50 per request. GitHub Actions are limited to 10 warning annotations and 10 error annotations per step. 10 is not 50, and 10 is not 2. A maximum of three actions is accepted. 3 is not 50. Summary and text each allow 65535 characters. 47 is not 65535, and 48 is not 65535.
The status names and the conclusion names are different lists, and the schema line does not copy the body line. Status can be queued, in_progress, completed, waiting, requested, or pending. Six names. The default is queued. Only GitHub Actions can set waiting, pending, or requested. Conclusion, on the create body, can be action_required, cancelled, failure, neutral, success, skipped, stale, or timed_out. Eight names. The spelling is cancelled, two ls. Providing a conclusion sets status to completed. You cannot set stale yourself. Only GitHub can. One response-schema line lists success, failure, neutral, cancelled, skipped, timed_out, action_required, and null. Seven names plus null. That line does not name stale. Eight is not seven. stale is not null. null is a stored conclusion on the in-progress response, and it is not the word failure. A fork push is a further mismatch the page names: the Checks API does not see a push to a fork, and the pull_requests array comes back empty. Empty is not the one pull on the sample. Do not fill an empty array with number 3956 because a different example had a pull.
The study people reach for when they want a failure rate did not open this repository. Carmine Vassallo, Gerald Schermann, Fiorella Zampetti, Daniele Romano, Philipp Leitner, Andy Zaidman, Massimiliano Di Penta, and Sebastiano Panichella compare failing builds in 349 Java open-source projects and 418 projects at ING. The abstract says 34,182 failing builds, 26% of the observed builds. 349 plus 418 is 767. The paper does not print 767. 26% of a whole build count is not an integer the paper prints, and 34,182 divided by 0.26 is not a whole number the paper prints. Do not invent the missing total. ING is the part they count separately: 12,871 builds, 3,390 failing, which they call approximately 26%. 3,390 of 12,871 is not 26 percent. 26% of 12,871 is 3,346.46. The paper does not print 3,346.46. 3,390 is not 3,346.46 (Vassallo, Schermann, Zampetti, Romano, Leitner, Zaidman, Di Penta, and Panichella, A Tale of CI Build Failures).
The classification arithmetic is printed, and then a later sentence rounds past it. They classify 3,390 minus 779, which is 2,611 ING logs, and 30,792 minus 9,774, which is 21,018 open-source logs. 3,390 plus 30,792 is 34,182. The addition matches the abstract's failing-build count. 779 plus 9,774 is 10,553. 2,611 plus 21,018 is 23,629. 10,553 plus 23,629 is 34,182. The paper prints the two subtractions. It does not print 10,553 or 23,629. Production-code compilation is 4.2% at ING and 7.1% in the open-source set. Test-code compilation is 2.3% at ING and 1.8% in the open-source set. 4.2 plus 2.3 is 6.5. A later section says compilation-related failures are 6.5% at ING and 9% in open source. 6.5 matches the ING addition. 7.1 plus 1.8 is 8.9. 8.9 is not 9. The discussion's 9 is not the sum of the two open-source cells it is summarizing.
The other rates in the same paper are not 26, and they are not each other. Unit testing is 28% of open-source failures and 5.2% at ING. Integration testing is 13.3% at ING and 5.0% in open source. 28 is not 5.2. 13.3 is not 5.0. 28 is not 13.3. They contrast 26% with Kerzazi at 17.9%, Miller at 13%, and Seo's Google study at 35%. 26 is not 17.9, 17.9 is not 13, and 13 is not 35. Miller's own count, as they describe it, is 66 failures out of 515 builds over 100 days. 13% of 515 is 66.95. 66 is not 66.95. Their comparison then says 13k builds against those 515, and 3,390 failures against those 66. The ING build count they printed earlier is 12,871. 12,871 is not 13,000. 3,390 is not 66. Rausch, whom they cite, looked at 14 projects and found test failures above 80%. 14 is not 349, and 80 is not 28. Four build servers are not 418 projects. A date range from 21 March 2014 to 1 October 2015 is not a conclusion.
Do the three proofs on one real check, in the repository that actually holds it. First, the binding. Copy the check-run id, the name, the head SHA, the status, the conclusion, and the external_id. If the conclusion is null, write null. If external_id is empty, write empty. If the request you sent said success and the stored conclusion says neutral, write both. Do not paste success onto id 4 because a request example used that word. Do not paste 3956 onto the check because a pull on the same page has that number. Second, the other check. A different check, with a different id, or a different head SHA, is not this one. The pull's head SHA is already a 40-character string that is not the check's SHA. A chart of failing builds is not that second check. If you cannot show a check that is not this one, you have a counter, not a record. Third, the other repository. A list that belongs to another client does not contain this check-run id. If the only installation is a single shared app and you cannot say whose repository it is, write that. A tenant you cannot name is the finding.
Three moves feel like the proof and are a second problem. Rerunning the check because the conclusion was embarrassing, before you have copied the id. The page says a rerequest resets the suite to queued and clears the conclusion, and that the check run itself is not updated. The rerun is a new fact. It does not tell you what the previous conclusion was if you did not copy it. Quoting 26% or 9% because one of them looks precise, while the check you were asked about is one row, and the 34,182 failures that produced those phrases had not opened this commit. Asking a model which of the eight conclusions it was. The model will pick a plausible name, including the stale value you are not allowed to set. It will not open the check. A workflow you have not kept, while the client is arguing about a red X, is which workflow did that run execute?. Opening that screen does not name the check-run id.
The path is ordinary when an operator can open one client's repository without opening the next client's repository as the way to prove it. Cove consolidates an operator portal, a content system, and a marketing platform into one operator experience. The shape that matters here is one client's systems, distinct from the next client's. That case is not a check-run ledger. Nothing in that sentence is a headcount, a duration, or a result figure. If the only control on the screen changes every client's builds together, you do not have this proof. You have a totals page.
There is a version of this afternoon where taking the work is the wrong purchase. The work is not sold under the agency's name. The client asked to meet the builders, and a hidden bench is the thing they said they did not buy. The room only has a slide, and the repository is not one you can open. The buyer only wants a template. Or the buyer wants a legal opinion about what a green check promises. Those are not this proof. The terms on a white label software development partner page are the arrangement itself: the work stays in the client's repositories, under the agency's name. The page is the offer. It does not name this commit, and it does not turn 26% into a conclusion.
When the commit is real and the repository cannot name the check, the missing object is specific. A read, in a repository the agency or the client can open, that shows one check-run id, one name, and one conclusion or an explicit null, shows a different check that is not that one, and shows another client's repository without it. A white label software development partner that expects this will have put that read in the client's organization before the first commit, because a conclusion that lives on a laptop the client cannot open cannot be defended by the person whose name is on the invoice. One that can only describe the check by forwarding a screenshot is telling you who holds the app. If the next slice is one capability, an AI integration sprint is the shape where the acceptance sentence can include the three proofs. If you do not yet know which checks the current engagements already use, a two-week AI readiness assessment maps them. The findings are yours. They are not a promise that a paper's percentage applies, and they are not 4.
The intent a charge opened, and the message a run appended, are different objects: which intent did that charge open? and which message did that run append?. Do not record either on this page. A payment intent id is not a check-run id. A message id is not a conclusion.
Before you tell them the commit passed, do the three proofs and write the conclusion. Name the check, the name, and the conclusion, or write that the conclusion was null. Show a different check that is not that one. Show another repository that does not hold it. Do not rerequest a check to avoid reading the conclusion, and do not ask a model which of the eight it was. A paper can tell you how failing builds were grouped in other projects, including the 9 that is not the sum of 7.1 and 1.8. The binding is the check you can defend.
Questions
Three records, in a repository the agency or the client can open. The check-run id, the name, and the conclusion, or a written line that the conclusion is still null. A different check whose id or head SHA is not this one. Another client's repository that does not list this check. If the request said success and the stored conclusion is neutral, write both.
No. A percentage of failing builds in other people's projects is not the id on this check. A check you can defend is the id, the name, and the conclusion on this commit, or a written line that the conclusion was null. 26% of one study's builds is not conclusion success, and 4 on a sample is not your client's check.
When the work is not sold under the agency's name, when the client asked to meet the builders, when the room only has a slide, when the buyer only wants a template, or when the buyer wants a legal opinion.
Find this useful? Tell Google to show you more of it.
