Add release notes filter for GitHub/Codeberg(#719)

This commit is contained in:
Imran Remtulla
2023-08-05 14:23:23 -04:00
parent aeb0a5d8ea
commit c8e90a755d
14 changed files with 35 additions and 22 deletions

View File

@ -75,6 +75,16 @@ class GitHub extends AppSource {
return regExValidator(value);
}
])
],
[
GeneratedFormTextField('filterReleaseNotesByRegEx',
label: tr('filterReleaseNotesByRegEx'),
required: false,
additionalValidators: [
(value) {
return regExValidator(value);
}
])
]
];
@ -196,6 +206,12 @@ class GitHub extends AppSource {
true
? additionalSettings['filterReleaseTitlesByRegEx']
: null;
String? regexNotesFilter =
(additionalSettings['filterReleaseNotesByRegEx'] as String?)
?.isNotEmpty ==
true
? additionalSettings['filterReleaseNotesByRegEx']
: null;
Response res = await sourceRequest(requestUrl);
if (res.statusCode == 200) {
var releases = jsonDecode(res.body) as List<dynamic>;
@ -264,6 +280,11 @@ class GitHub extends AppSource {
!RegExp(regexFilter).hasMatch(nameToFilter.trim())) {
continue;
}
if (regexNotesFilter != null &&
!RegExp(regexNotesFilter)
.hasMatch(((releases[i]['body'] as String?) ?? '').trim())) {
continue;
}
var apkUrls = getReleaseAPKUrls(releases[i]);
if (apkUrls.isEmpty && additionalSettings['trackOnly'] != true) {
continue;