Skip to content

Commit c208c8a

Browse files
authored
Merge pull request #614 from macadmins/development
v2.0.5
2 parents 89f000e + 500e317 commit c208c8a

13 files changed

+209
-45
lines changed

.github/workflows/build_nudge_pr.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,20 @@ jobs:
1111

1212
steps:
1313
- name: Checkout nudge repo
14-
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
14+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
1515
with:
1616
ref: ${{ github.event.pull_request.head.sha }}
1717
fetch-depth: 0
1818

1919
- name: Install Apple Xcode certificates
20-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
20+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2121
with:
2222
keychain-password: ${{ github.run_id }}
2323
p12-file-base64: ${{ secrets.APP_CERTIFICATES_P12_MAOS }}
2424
p12-password: ${{ secrets.APP_CERTIFICATES_P12_PASSWORD_MAOS }}
2525

2626
- name: Install Apple Installer certificates
27-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
27+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2828
with:
2929
create-keychain: false # do not create a new keychain for this value
3030
keychain-password: ${{ github.run_id }}
@@ -41,7 +41,7 @@ jobs:
4141
echo "NUDGE_MAIN_VERSION=$(/bin/cat ./build_info_main.txt)" >> $GITHUB_ENV
4242
4343
- name: Upload zip archive
44-
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
44+
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
4545
with:
4646
name: packages
4747
path: outputs/

.github/workflows/build_nudge_prerelease.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ jobs:
1919

2020
steps:
2121
- name: Checkout nudge repo
22-
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
22+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
2323
with:
2424
fetch-depth: 0
2525

2626
- name: Install Apple Xcode certificates
27-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
27+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2828
with:
2929
keychain-password: ${{ github.run_id }}
3030
p12-file-base64: ${{ secrets.APP_CERTIFICATES_P12_MAOS }}
3131
p12-password: ${{ secrets.APP_CERTIFICATES_P12_PASSWORD_MAOS }}
3232

3333
- name: Install Apple Installer certificates
34-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
34+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
3535
with:
3636
create-keychain: false # do not create a new keychain for this value
3737
keychain-password: ${{ github.run_id }}
@@ -89,7 +89,7 @@ jobs:
8989
files: ${{github.workspace}}/outputs/*.pkg
9090

9191
- name: Upload packages
92-
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
92+
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
9393
with:
9494
name: packages
9595
path: outputs/

.github/workflows/build_nudge_prerelease_manual.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ jobs:
1111

1212
steps:
1313
- name: Checkout nudge repo
14-
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
14+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
1515
with:
1616
fetch-depth: 0
1717

1818
- name: Install Apple Xcode certificates
19-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
19+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2020
with:
2121
keychain-password: ${{ github.run_id }}
2222
p12-file-base64: ${{ secrets.APP_CERTIFICATES_P12_MAOS }}
2323
p12-password: ${{ secrets.APP_CERTIFICATES_P12_PASSWORD_MAOS }}
2424

2525
- name: Install Apple Installer certificates
26-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
26+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2727
with:
2828
create-keychain: false # do not create a new keychain for this value
2929
keychain-password: ${{ github.run_id }}
@@ -81,7 +81,7 @@ jobs:
8181
files: ${{github.workspace}}/outputs/*.pkg
8282

8383
- name: Upload packages
84-
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
84+
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
8585
with:
8686
name: packages
8787
path: outputs/

.github/workflows/build_nudge_release.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,19 @@ jobs:
1919

2020
steps:
2121
- name: Checkout nudge repo
22-
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
22+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
2323
with:
2424
fetch-depth: 0
2525

2626
- name: Install Apple Xcode certificates
27-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
27+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2828
with:
2929
keychain-password: ${{ github.run_id }}
3030
p12-file-base64: ${{ secrets.APP_CERTIFICATES_P12_MAOS }}
3131
p12-password: ${{ secrets.APP_CERTIFICATES_P12_PASSWORD_MAOS }}
3232

3333
- name: Install Apple Installer certificates
34-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
34+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
3535
with:
3636
create-keychain: false # do not create a new keychain for this value
3737
keychain-password: ${{ github.run_id }}
@@ -89,7 +89,7 @@ jobs:
8989
files: ${{github.workspace}}/outputs/*.pkg
9090

9191
- name: Upload packages
92-
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
92+
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
9393
with:
9494
name: packages
9595
path: outputs/

.github/workflows/build_nudge_release_manual.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ jobs:
1111

1212
steps:
1313
- name: Checkout nudge repo
14-
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4.0
14+
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
1515
with:
1616
fetch-depth: 0
1717

1818
- name: Install Apple Xcode certificates
19-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
19+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2020
with:
2121
keychain-password: ${{ github.run_id }}
2222
p12-file-base64: ${{ secrets.APP_CERTIFICATES_P12_MAOS }}
2323
p12-password: ${{ secrets.APP_CERTIFICATES_P12_PASSWORD_MAOS }}
2424

2525
- name: Install Apple Installer certificates
26-
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
26+
uses: apple-actions/import-codesign-certs@63fff01cd422d4b7b855d40ca1e9d34d2de9427d # v3.0.0
2727
with:
2828
create-keychain: false # do not create a new keychain for this value
2929
keychain-password: ${{ github.run_id }}
@@ -81,7 +81,7 @@ jobs:
8181
files: ${{github.workspace}}/outputs/*.pkg
8282

8383
- name: Upload packages
84-
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3.1.2
84+
uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4
8585
with:
8686
name: packages
8787
path: outputs/

CHANGELOG.md

+37
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,43 @@ All notable changes to this project will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [2.0.5] - 2024-07-24
8+
Requires macOS 12.0 and higher.
9+
10+
### Added
11+
- To artificially change the `requredInstallationDate` to honor a previous macOS minor version, set `minorVersionRecalculationThreshold` under `osVersionRequirement` in amount of minor versions.
12+
- Ex: `minorVersionRecalculationThreshold` is set to 1 and SOFA feed has macOS 14.5 available
13+
- macOS device is 14.0: Required OS: 14.5 - Target macOS 14.4.1 requiredInstallationDate of 2024-04-08 00:00:00 +0000
14+
- macOS device is 14.1: Required OS: 14.5 - Target macOS 14.4.1 requiredInstallationDate of 2024-04-08 00:00:00 +0000
15+
- macOS device is 14.2: Required OS: 14.5 - Target macOS 14.4.1 requiredInstallationDate of 2024-04-08 00:00:00 +0000
16+
- macOS device is 14.3: Required OS: 14.5 - Target macOS 14.4.1 requiredInstallationDate of 2024-04-08 00:00:00 +0000
17+
- macOS device is 14.4: Required OS: 14.5 - Target macOS 14.4.1 requiredInstallationDate of 2024-04-08 00:00:00 +0000
18+
- macOS device is 14.4.1: Required OS: 14.5 - Target macOS 14.4.1 requiredInstallationDate of 2024-04-15 00:00:00 +0000
19+
- This device's requiredInstallationDate is different than the others as there is no active exploit on 14.4.1
20+
- macOS device is 14.5: Required OS: 14.5 - Fully updated
21+
- Ex: `minorVersionRecalculationThreshold` is set to 2 and SOFA feed has macOS 14.5 available
22+
- macOS device is 14.0: Required OS: 14.5 - Target macOS 14.4 requiredInstallationDate of 2024-03-21 00:00:00 +0000
23+
- macOS device is 14.1: Required OS: 14.5 - Target macOS 14.4 requiredInstallationDate of 2024-03-21 00:00:00 +0000
24+
- macOS device is 14.2: Required OS: 14.5 - Target macOS 14.4 requiredInstallationDate of 2024-03-21 00:00:00 +0000
25+
- macOS device is 14.3: Required OS: 14.5 - Target macOS 14.4 requiredInstallationDate of 2024-03-21 00:00:00 +0000
26+
- macOS device is 14.4: Required OS: 14.5 - Target macOS 14.4 requiredInstallationDate of 2024-03-21 00:00:00 +0000
27+
- macOS device is 14.4.1: Required OS: 14.5 - Target macOS 14.4.1 requiredInstallationDate of 2024-04-15 00:00:00 +0000
28+
- macOS device is 14.5: Required OS: 14.5 - Fully updated
29+
- Addresses [612](https://github.com/macadmins/nudge/issues/612)
30+
31+
### Changed
32+
- The `Actively Exploited` logic internally within Nudge and the UI on the left sidebar will show `True` if any previous updates missing on the device had active exploits.
33+
- **WARNNG BREAKING CHANGE** - This changes the SLA computation and will result in a different `requiredInstallationDate` than offered in Nudge v2.0 -> v2.01.
34+
- Ex: Device is on 14.3 and needing to go to 14.5.
35+
- While 14.4.1 -> 14.5 are not under active exploit, 14.4 contains fixes for 14.3 that were under active exploit.
36+
- Addresses [610](https://github.com/macadmins/nudge/issues/610) and [613](https://github.com/macadmins/nudge/issues/613)
37+
- When `showRequiredDate` is set to `True` and the admin is using the default values for `requiredInstallationDisplayFormat`, Nudge will attempt to understand the current locale and display the menu item appropriately.
38+
- Addresses [615](https://github.com/macadmins/nudge/issues/615)
39+
40+
### Fixed
41+
- Several components in the Github Actions were triggering deprecation warnings. These have been addressed by updating to the latest version of these components
42+
- Addresses [616](https://github.com/macadmins/nudge/issues/616)
43+
744
## [2.0.4] - 2024-07-23
845
Requires macOS 12.0 and higher.
946

Nudge.xcodeproj/project.pbxproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -698,7 +698,7 @@
698698
"@executable_path/../Frameworks",
699699
);
700700
MACOSX_DEPLOYMENT_TARGET = 12.0;
701-
MARKETING_VERSION = 2.0.4;
701+
MARKETING_VERSION = 2.0.5;
702702
PRODUCT_BUNDLE_IDENTIFIER = com.github.macadmins.Nudge;
703703
PRODUCT_NAME = "$(TARGET_NAME)";
704704
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -729,7 +729,7 @@
729729
"@executable_path/../Frameworks",
730730
);
731731
MACOSX_DEPLOYMENT_TARGET = 12.0;
732-
MARKETING_VERSION = 2.0.4;
732+
MARKETING_VERSION = 2.0.5;
733733
PRODUCT_BUNDLE_IDENTIFIER = com.github.macadmins.Nudge;
734734
PRODUCT_NAME = "$(TARGET_NAME)";
735735
PROVISIONING_PROFILE_SPECIFIER = "";

Nudge/Info.plist

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
<key>CFBundlePackageType</key>
1616
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>2.0.4</string>
18+
<string>2.0.5</string>
1919
<key>CFBundleVersion</key>
20-
<string>2.0.4</string>
20+
<string>2.0.5</string>
2121
<key>LSApplicationCategoryType</key>
2222
<string>public.app-category.utilities</string>
2323
<key>LSMinimumSystemVersion</key>

Nudge/Preferences/DefaultPreferencesNudge.swift

+6
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,12 @@ struct OSVersionRequirementVariables {
233233
""
234234
}
235235

236+
static var minorVersionRecalculationThreshold: Int {
237+
osVersionRequirementsProfile?.minorVersionRecalculationThreshold ??
238+
osVersionRequirementsJSON?.minorVersionRecalculationThreshold ??
239+
0
240+
}
241+
236242
static var nonActivelyExploitedCVEsMajorUpgradeSLA: Int {
237243
osVersionRequirementsProfile?.nonActivelyExploitedCVEsMajorUpgradeSLA ??
238244
osVersionRequirementsJSON?.nonActivelyExploitedCVEsMajorUpgradeSLA ??

Nudge/Preferences/PreferencesStructure.swift

+4
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ struct OSVersionRequirement: Codable {
151151
var activelyExploitedCVEsMajorUpgradeSLA: Int?
152152
var activelyExploitedCVEsMinorUpdateSLA: Int?
153153
var majorUpgradeAppPath: String?
154+
var minorVersionRecalculationThreshold: Int?
154155
var nonActivelyExploitedCVEsMajorUpgradeSLA: Int?
155156
var nonActivelyExploitedCVEsMinorUpdateSLA: Int?
156157
var requiredInstallationDate: Date?
@@ -170,6 +171,7 @@ extension OSVersionRequirement {
170171
self.activelyExploitedCVEsMajorUpgradeSLA = fromDictionary["activelyExploitedCVEsMajorUpgradeSLA"] as? Int
171172
self.activelyExploitedCVEsMinorUpdateSLA = fromDictionary["activelyExploitedCVEsMinorUpdateSLA"] as? Int
172173
self.majorUpgradeAppPath = fromDictionary["majorUpgradeAppPath"] as? String
174+
self.minorVersionRecalculationThreshold = fromDictionary["minorVersionRecalculationThreshold"] as? Int
173175
self.nonActivelyExploitedCVEsMajorUpgradeSLA = fromDictionary["nonActivelyExploitedCVEsMajorUpgradeSLA"] as? Int
174176
self.nonActivelyExploitedCVEsMinorUpdateSLA = fromDictionary["nonActivelyExploitedCVEsMinorUpdateSLA"] as? Int
175177
self.requiredMinimumOSVersion = fromDictionary["requiredMinimumOSVersion"] as? String
@@ -248,6 +250,7 @@ extension OSVersionRequirement {
248250
activelyExploitedCVEsMajorUpgradeSLA: Int? = nil,
249251
activelyExploitedCVEsMinorUpdateSLA: Int? = nil,
250252
majorUpgradeAppPath: String? = nil,
253+
minorVersionRecalculationThreshold: Int? = nil,
251254
nonActivelyExploitedCVEsMajorUpgradeSLA: Int? = nil,
252255
nonActivelyExploitedCVEsMinorUpdateSLA: Int? = nil,
253256
requiredInstallationDate: Date? = nil,
@@ -265,6 +268,7 @@ extension OSVersionRequirement {
265268
activelyExploitedCVEsMajorUpgradeSLA: activelyExploitedCVEsMajorUpgradeSLA ?? self.activelyExploitedCVEsMajorUpgradeSLA,
266269
activelyExploitedCVEsMinorUpdateSLA: activelyExploitedCVEsMinorUpdateSLA ?? self.activelyExploitedCVEsMinorUpdateSLA,
267270
majorUpgradeAppPath: majorUpgradeAppPath ?? self.majorUpgradeAppPath,
271+
minorVersionRecalculationThreshold: minorVersionRecalculationThreshold ?? self.minorVersionRecalculationThreshold,
268272
nonActivelyExploitedCVEsMajorUpgradeSLA: nonActivelyExploitedCVEsMajorUpgradeSLA ?? self.nonActivelyExploitedCVEsMajorUpgradeSLA,
269273
nonActivelyExploitedCVEsMinorUpdateSLA: nonActivelyExploitedCVEsMinorUpdateSLA ?? self.nonActivelyExploitedCVEsMinorUpdateSLA,
270274
requiredInstallationDate: requiredInstallationDate ?? self.requiredInstallationDate,

0 commit comments

Comments
 (0)