Skip to content

Commit 18f8233

Browse files
committed
Insert any missing shields links when checking status
1 parent 792a5be commit 18f8233

3 files changed

Lines changed: 42 additions & 5 deletions

File tree

css/main.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,10 @@ main {
295295
}
296296

297297
.upstream-issues {
298+
img[src*="shields.io"] {
299+
vertical-align: middle;
300+
}
301+
298302
h2 {
299303
margin-bottom: 0;
300304
}

tool/check_upstream_issue_status.dart

Lines changed: 37 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,45 @@ Future<void> main() async {
88
Directory.current = dirname(Platform.script.toFilePath());
99

1010
final upstreamIssuesFile = File('../upstream-issues.md');
11-
final linkRegex = RegExp(r'\((https://github\.com/.*/issues/\d+)\)');
12-
final links = linkRegex.allMatches(upstreamIssuesFile.readAsStringSync());
11+
var content = upstreamIssuesFile.readAsStringSync();
12+
final linkRegex = RegExp(
13+
r'\((https://github\.com/([^/]+)/([^/]+)/issues/(\d+))\)([ \t]*!\[GitHub issue status\]\([^)]+\))?');
14+
final matches = linkRegex.allMatches(content);
15+
16+
final updates = <(int, String)>[];
17+
final issuesToCheck = <String>[];
18+
19+
for (final match in matches) {
20+
final url = match.group(1)!;
21+
final owner = match.group(2)!;
22+
final repo = match.group(3)!;
23+
final number = match.group(4)!;
24+
final existingBadge = match.group(5);
25+
26+
if (existingBadge == null) {
27+
final badgeUrl =
28+
'https://img.shields.io/github/issues/detail/state/$owner/$repo/$number?label=%20';
29+
final badgeMarkdown = ' ![GitHub issue status]($badgeUrl)';
30+
updates.add((match.end, badgeMarkdown));
31+
}
32+
33+
issuesToCheck.add(url);
34+
}
35+
36+
if (updates.isNotEmpty) {
37+
updates.sort((a, b) => b.$1.compareTo(a.$1));
38+
for (final update in updates) {
39+
final index = update.$1;
40+
final text = update.$2;
41+
content = content.substring(0, index) + text + content.substring(index);
42+
}
43+
upstreamIssuesFile.writeAsStringSync(content);
44+
print('Added ${updates.length} missing status badges.');
45+
}
1346

1447
final issuesByState = <String, List<String>>{};
15-
for (final link in links) {
16-
final uri = Uri.parse(link.group(1)!);
48+
for (final link in issuesToCheck) {
49+
final uri = Uri.parse(link);
1750
final apiUri =
1851
uri.replace(host: 'api.github.com', path: '/repos${uri.path}');
1952
final json = await fetchJson(apiUri.toString());

upstream-issues.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ Although the debug adapter protocol has support for stepping by line or instruct
129129
## Syntax Highlighting in Code Completion Details
130130
[github.com/microsoft/language-server-protocol#1115](https://github.com/microsoft/language-server-protocol/issues/1115) ![GitHub issue status](https://img.shields.io/github/issues/detail/state/microsoft/language-server-protocol/1115?label=%20)
131131

132-
A lack of guidance about the use of `detail`/`documentation` makes it difficult to provide [syntax-highlighted details](https://github.com/Dart-Code/Dart-Code/issues/2792) on code completion items.
132+
A lack of guidance about the use of `detail`/`documentation` makes it difficult to provide [syntax-highlighted details](https://github.com/Dart-Code/Dart-Code/issues/2792) ![GitHub issue status](https://img.shields.io/github/issues/detail/state/Dart-Code/Dart-Code/2792?label=%20) on code completion items.
133133

134134

135135
## Code Folding Hides Closing Braces

0 commit comments

Comments
 (0)