<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">
                                        Yes. The biggest issue is, though, that we have no simple way to get the DateAndTime of the latest build job. I have to parse the HTML page ... -.-"<div><br></div><div>Setting up an account-specific API key seems not worth the effort for such a little piece of information.</div><div><br></div><div>In TravisCI, that info was free like the badge.</div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div>
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 22.11.2021 11:08:09 schrieb Thiede, Christoph <christoph.thiede@student.hpi.uni-potsdam.de>:</p><div style="font-family:Arial,Helvetica,sans-serif">


<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: #000000;font-family: Calibri,Helvetica,sans-serif">
<p>Ah. You did not use the badge URL from GitHub itself <<a href="https://github.com/squeak-smalltalk/squeak-app/actions/workflows/bundle.yml/badge.svg?branch=squeak-trunk" class="x_OWAAutoLink" id="LPlnk647736">https://github.com/squeak-smalltalk/squeak-app/actions/workflows/bundle.yml/badge.svg?branch=squeak-trunk</a>>
 because they only offer SVGs as of today. Yeah, maybe we should have an SVG solution right in the Trunk at someday... :-)</p>
<p><br>
</p>
<p>Best,</p>
<p>Christoph</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><span style="font-family: Calibri, sans-serif;color: #000000"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von commits@source.squeak.org <commits@source.squeak.org><br>
<b>Gesendet:</b> Montag, 22. November 2021 10:12:00<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org<br>
<b>Betreff:</b> [squeak-dev] The Trunk: System-mt.1248.mcz</span>
<div> </div>
</div>
</div>
<span style="font-size: 10pt"><span style="font-size: 10pt">
<div class="PlainText">Marcel Taeumel uploaded a new version of System to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/System-mt.1248.mcz">http://source.squeak.org/trunk/System-mt.1248.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: System-mt.1248<br>
Author: mt<br>
Time: 22 November 2021, 10:11:55.950785 am<br>
UUID: 26002484-3fff-e74e-8a15-9cf025fe7395<br>
Ancestors: System-mt.1247<br>
<br>
Fixes CI status in update dialog.<br>
<br>
=============== Diff against System-mt.1247 ===============<br>
<br>
Item was added:<br>
+ ----- Method: SystemVersion>>ciBranch (in category 'continuous integration') -----<br>
+ ciBranch<br>
+        "Convert the receiver into the corresponding branch name on github.com/squeak-smalltalk/squeak-app."<br>
+ <br>
+        | branch |<br>
+        branch := 'squeak-{1}{2}{3}' format: {<br>
+                self isRelease ifTrue: [self majorVersionNumber] ifFalse: [''].<br>
+                self isRelease ifTrue: ['.'] ifFalse: ['trunk'].<br>
+                self isRelease ifTrue: [self minorVersionNumber] ifFalse: [''] }.<br>
+ <br>
+        ^ branch!<br>
<br>
Item was changed:<br>
  ----- Method: SystemVersion>>ciStatusBadgeUrl (in category 'continuous integration') -----<br>
  ciStatusBadgeUrl<br>
+        "shields.io needs a workflow's descriptive name, not the name of the .yml file."<br>
- <br>
-        | branch |<br>
-        branch := 'squeak-{1}{2}{3}' format: {<br>
-                self isRelease ifTrue: [self majorVersionNumber] ifFalse: [''].<br>
-                self isRelease ifTrue: ['.'] ifFalse: ['trunk'].<br>
-                self isRelease ifTrue: [self minorVersionNumber] ifFalse: [''] }.<br>
         <br>
+        ^ '<a href="https://raster.shields.io/github/workflow/status/squeak-smalltalk/squeak-app/{1}/{2}?style=flat&logo=github">https://raster.shields.io/github/workflow/status/squeak-smalltalk/squeak-app/{1}/{2}?style=flat&logo=github</a>'<br>
+                format: {self ciWorkflowName encodeForHTTP. self ciBranch}!<br>
-        ^ '<a href="https://api.travis-ci.com/squeak-smalltalk/squeak-app.png?branch=">https://api.travis-ci.com/squeak-smalltalk/squeak-app.png?branch=</a>', branch!<br>
<br>
Item was changed:<br>
  ----- Method: SystemVersion>>ciStatusPageUrl (in category 'continuous integration') -----<br>
  ciStatusPageUrl<br>
-        "In a release image, let the user see the overview of branches to choose from. I am not aware of a permanent link for a specific branch. In a trunk image, just let Travis report the state of the main branch, which is usually for trunk builds."<br>
  <br>
+        ^ '<a href="https://github.com/squeak-smalltalk/squeak-app/actions/workflows/{1}?query=branch%3A{2}+is%3Acompleted+event%3Aschedule">https://github.com/squeak-smalltalk/squeak-app/actions/workflows/{1}?query=branch%3A{2}+is%3Acompleted+event%3Aschedule</a>'<br>
+                format: {self ciWorkflow. self ciBranch}!<br>
-        ^ '<a href="http://travis-ci.com/squeak-smalltalk/squeak-app{1}">http://travis-ci.com/squeak-smalltalk/squeak-app{1}</a>' format: {<br>
-                self isRelease ifFalse: [''] ifTrue: ['/branches'] }!<br>
<br>
Item was changed:<br>
  ----- Method: SystemVersion>>ciStatusTimestamp (in category 'continuous integration') -----<br>
  ciStatusTimestamp<br>
+        "Slow. Fetch HTML page, extract first occurrence of<br>
+                ... <time-ago datetime='2021-08-04T14:24:20Z' ... "<br>
  <br>
+        | statusPage begin end dateAndTime |<br>
+        statusPage := (WebClient httpGet: self ciStatusPageUrl) content.<br>
+        begin := statusPage findString: 'datetime' startingAt: 100000. "Skip the first X bytes decoration."<br>
+        end := statusPage findString: 'Z' startingAt: begin.<br>
+        dateAndTime := DateAndTime readFrom: (statusPage copyFrom: begin + 10 to: end) readStream.<br>
-        | stamp " 'Mon, 05 Jul 2021 17:52:11 GMT' " dateAndTime |<br>
-        stamp := (WebClient httpGet: self ciStatusBadgeUrl) headerAt: 'last-modified'.<br>
-        stamp ifEmpty: [^ stamp].<br>
-        dateAndTime := DateAndTime readFrom: (((stamp allButFirst: 4) allButLast: 4), ' Z') readStream.<br>
         ^ String streamContents: [:s |<br>
                 dateAndTime asDate = Date today<br>
                         ifTrue: [s nextPutAll: 'Today' translated, ',']<br>
                         ifFalse: [dateAndTime asDate = Date yesterday<br>
                                 ifTrue: [s nextPutAll: 'Yesterday' translated, ',']<br>
                                 ifFalse: [dateAndTime printYMDOn: s]].<br>
                 s space.<br>
                 dateAndTime printHMSOn: s]!<br>
<br>
Item was added:<br>
+ ----- Method: SystemVersion>>ciWorkflow (in category 'continuous integration') -----<br>
+ ciWorkflow<br>
+        "See <a href="https://github.com/squeak-smalltalk/squeak-app/tree/squeak-trunk/.github/workflows">
https://github.com/squeak-smalltalk/squeak-app/tree/squeak-trunk/.github/workflows</a>"<br>
+        <br>
+        ^ 'bundle.yml'!<br>
<br>
Item was added:<br>
+ ----- Method: SystemVersion>>ciWorkflowName (in category 'continuous integration') -----<br>
+ ciWorkflowName<br>
+        "See 'name' in #ciWorkflow .yml file. Case sensitive."<br>
+        <br>
+        ^ 'Bundle'!<br>
<br>
<br>
</div>
</span></span>
</div></blockquote></div>