Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use Regex for app exclussion in split tunneling #74

Open
wants to merge 379 commits into
base: dependabot/nuget/src/ProtonVPN.App/Newtonsoft.Json-13.0.2
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
379 commits
Select commit Hold shift + click to select a range
e90c241
Increase app version to 3.1.0
Aug 3, 2023
75529dd
Improve test stability
Aug 4, 2023
7548325
B2B code improvements [VPNWIN-1630]
eaproton Aug 4, 2023
e2f6e3f
i18n: Upgrade translations from crowdin (75483257).
proton-ci Aug 7, 2023
c7f5f2e
Add client performance monitoring in UI tests [VPNWIN-1665]
Aug 10, 2023
3ff34d6
Remove API call /events [VPNWIN-1639]
eaproton Aug 10, 2023
9439dfb
Increase timeout for windows refresh after app launch
Aug 11, 2023
89cebb7
Check also if uninstaller path exists
Aug 14, 2023
a8011bb
i18n: Upgrade translations from crowdin (9439dfba).
proton-ci Aug 14, 2023
7b1923f
Reduce number of calls to ClientConfig API [VPNWIN-1662]
eaproton Aug 4, 2023
097c104
Increase app version to 3.1.0
Aug 3, 2023
d0704a9
Delete old installers [VPNWIN-1660]
eaproton Aug 17, 2023
62c5d91
Implement rollout percentage for releases [VPNWIN-1466]
eaproton Aug 17, 2023
9e73ea4
Merge branch 'release/3.1.0'
Aug 17, 2023
d322535
i18n: Upgrade translations from crowdin (62c5d913).
proton-ci Aug 21, 2023
6b63643
Change Logical Features type from sbyte to ulong to support feature f…
eaproton Aug 8, 2023
7251a31
Fix Human Verification WebView size, margin, and background color [VP…
eaproton Aug 23, 2023
d58c126
Increase app version to 3.1.1
Aug 23, 2023
341882a
i18n: Upgrade translations from crowdin (7251a311).
proton-ci Aug 28, 2023
113019a
Add BTI build job [VPNWIN-1694]
Aug 31, 2023
96a70d8
Implement free plan rescope
Aug 31, 2023
f6801f0
Fetch logicals on free plan rescope
Sep 1, 2023
ceedf03
i18n: Upgrade translations from crowdin (f6801f07).
proton-ci Sep 4, 2023
c31d0a0
Fix random failures when UI is closed in UI tests
Sep 5, 2023
c99be0b
Merge branch 'release/3.1.1'
Sep 8, 2023
f8a864b
Merge branch 'release/3.1.1' into develop
Sep 8, 2023
360bffc
Add custom URI scheme handling, with support for account refresh and …
eaproton Sep 8, 2023
5f53399
Add driver list to bug reports [VPNWIN-1692]
eaproton Aug 29, 2023
754d99d
Fix free rescope UI issues [VPNWIN-1700]
Sep 7, 2023
e64d1f7
i18n: Upgrade translations from crowdin (5f53399d).
proton-ci Sep 11, 2023
cfe0bb2
Fix settings not being saved after restarting the application [VPNWIN…
Sep 13, 2023
9e9fbcc
Update client config on vpn plan change
Sep 12, 2023
55947ec
Increase app version to 3.2.1
Sep 14, 2023
1af393b
Create different commits for release and debug [VPNWIN-1690]
eaproton Sep 14, 2023
e83575b
i18n: Upgrade translations from crowdin (1af393b0).
proton-ci Sep 25, 2023
6810774
Implement statistical events for upsell [VPNWIN-1669]
eaproton Sep 26, 2023
6f1b29b
Fix/server list
Sep 26, 2023
a1090f8
Increase app version to 3.2.2
Sep 26, 2023
e6152f8
Change Statistical Events from Lock to Async Semaphore
eaproton Sep 28, 2023
9aa4fc1
Merge branch 'release/3.2.1' into develop
Sep 28, 2023
d7c6aee
Merge branch 'release/3.2.1'
Sep 29, 2023
4798399
Disable local agent features for free user [VPNWIN-1718]
Sep 28, 2023
2f1b297
Add option to install Proton Drive when installing Proton VPN [VPNWIN…
Oct 2, 2023
1f98532
Fix profiles color in the sidebar [VPNWIN-1721]
Oct 2, 2023
c5cfa15
Update OpenVPN config [VPNWIN-1712]
Oct 2, 2023
d80b1dc
Add installer option to disable auto updates [VPNWIN-1722]
Oct 2, 2023
450cb66
i18n: Upgrade translations from crowdin (9aa4fc1c). Adds Georgian lan…
proton-ci Oct 3, 2023
6f914d4
Improve performance testing
Oct 3, 2023
97af6b5
Improve BTI build script
Oct 3, 2023
50b6985
Add API status code to logs in case of 4xx response [VPNWIN-1733]
Oct 3, 2023
35d15f9
Add upgrade modals [VPNWIN-1672]
Oct 5, 2023
713f332
i18n: Upgrade translations from crowdin (35d15f9c).
proton-ci Oct 9, 2023
bf6e170
Localize Proton Drive string in the installer [VPNWIN-1761]
Oct 9, 2023
1e93ca7
Fix app installation path [VPNWIN-1805]
Oct 11, 2023
090caa4
Implement country list notification (Welcome Offer) [VPNWIN-1645]
eaproton Oct 12, 2023
886a7f5
Call Display with UpgradeAttempt on sidebar Announcement Banner click…
eaproton Oct 12, 2023
751b94f
Disable auto update in UI tests
Oct 12, 2023
3a245fc
Catch API exceptions at StatisticalEventSender
eaproton Oct 12, 2023
f6d46c1
Move ProtonVPN.App project to be the first in the solution
eaproton Oct 12, 2023
f868b12
Update runner for create-release job
Oct 13, 2023
217bf56
Merge branch 'release/3.2.2'
Oct 16, 2023
b533908
Merge branch 'release/3.2.2' into develop
Oct 16, 2023
fa52a5a
Fix duplicate app items in system notification settings [VPNWIN-1684]
Oct 11, 2023
7de9fd3
One-time notifications should one be shown to all users and between s…
eaproton Oct 17, 2023
4fca2f1
Increase app version to 3.2.4
Oct 17, 2023
b8c2218
Change updates folder permissions [VPNWIN-1735]
Oct 19, 2023
6a85c59
Merge branch 'release/3.2.4'
Oct 20, 2023
bdf3d16
Merge branch 'release/3.2.4' into develop
Oct 20, 2023
59138ce
i18n: Upgrade translations from crowdin (bdf3d16a).
proton-ci Oct 23, 2023
5e8a219
Black Friday 2023
Oct 24, 2023
8eeca9e
Fix taskbar icon overlay [VPNWIN-1819]
Oct 18, 2023
22bf0fc
Add Japanese language to the installer
Oct 25, 2023
f16e61e
Small fixes on announcements
Oct 25, 2023
fcb8372
Fix duplicate taskbar checkmark icon
Oct 26, 2023
58885f4
Migrate to new runner for signing the app
Oct 31, 2023
c40315d
Store all images from notifications locally
Nov 3, 2023
8930ac5
Fix installer path when removing previous old versions [VPNWIN-1836]
Nov 2, 2023
ce60072
Increase app version to 3.2.7
Nov 3, 2023
28b11ae
i18n: Upgrade translations from crowdin (fcb8372a).
proton-ci Oct 30, 2023
ad171f6
i18n: Upgrade translations from crowdin (28b11ae9).
proton-ci Nov 6, 2023
497db1b
Update gitlab internal release script
Nov 10, 2023
e87f368
i18n: Upgrade translations from crowdin (ad171f64).
proton-ci Nov 13, 2023
f30c156
Remove runner dependency on nethost
Nov 13, 2023
a8a3546
Merge branch 'release/3.2.7'
Nov 14, 2023
2ef861b
Merge branch 'release/3.2.7' into develop
Nov 14, 2023
daea2f2
Fix missing display telemetry event
Nov 15, 2023
8d8dbbb
Fix BTI installer build after migration to new runner
Nov 16, 2023
29964d2
i18n: Upgrade translations from crowdin (daea2f29).
proton-ci Nov 20, 2023
f05f3c5
Add development suffix to x-pm-appversion [VPNWIN-1842]
eaproton Nov 20, 2023
078178c
Replace Source Generators and fix config file being overwritten [VPNW…
eaproton Nov 23, 2023
530a2b2
i18n: Upgrade translations from crowdin (078178c7).
proton-ci Nov 27, 2023
3c67a66
Unauth sessions and SSO login support [VPNWIN-1742]
Nov 28, 2023
7f25304
Remove unused nuget packages and upgrade outdated versions [VPNWIN-1834]
Nov 29, 2023
19f4c5f
Fix feature flags app crash
Nov 30, 2023
ab00b6f
Implement first scheduled BTI tests [VPNWIN-1893]
Dec 1, 2023
a2e9f86
Fix issues from regression tests [VPNWIN-1894]
Dec 4, 2023
e9738c6
Ignore bti-test job on release and master branches
eaproton Dec 4, 2023
6e125d0
Increase app version to 3.2.8
Dec 4, 2023
53cfe37
i18n: Upgrade translations from crowdin (ab00b6fd).
proton-ci Dec 6, 2023
271e56c
Fix outdated app handler [VPNWIN-1901]
Dec 6, 2023
6a6973f
Improve check for Base Filtering Engine [VPNWIN-1878]
Dec 7, 2023
54ea7df
Improve rules for BTI jobs
Dec 11, 2023
fe6c491
Expand BTI test cases
Dec 8, 2023
0b72876
Merge branch 'release/3.2.8'
Dec 15, 2023
093bb21
Merge branch 'release/3.2.8' into develop
Dec 15, 2023
4851a1f
i18n: Upgrade translations from crowdin (6a6973f0).
proton-ci Dec 15, 2023
bd9eac2
Fix spanish strings
Dec 18, 2023
9813bd7
Increase app version to 3.2.9
Dec 18, 2023
1bb72c5
i18n: Upgrade translations from crowdin (4851a1fc).
proton-ci Dec 18, 2023
a855b9d
Fix human verification on DoH [VPNWIN-1273]
Dec 27, 2023
2cbafdf
Fix slack announcements
Dec 28, 2023
ed3d52d
i18n: Upgrade translations from crowdin (2cbafdf3).
proton-ci Jan 1, 2024
a8792d8
Merge branch 'release/3.2.9'
Jan 4, 2024
a8a7234
Merge branch 'release/3.2.9' into develop
Jan 4, 2024
fc24808
Remove updates folder deletion for old app versions [VPNWIN-1948]
Jan 5, 2024
f653c71
i18n: Upgrade translations from crowdin (fc24808c).
proton-ci Jan 8, 2024
4137c7a
Use different runner for github mirror
Jan 8, 2024
b4cc862
i18n: Upgrade translations from crowdin (4137c7a3).
proton-ci Jan 15, 2024
f58b2f5
Fix setup version check (v3) [VPNWIN-1970]
eaproton Jan 16, 2024
e0440e8
Improve uninstall script
Oct 9, 2023
5400e16
i18n: Upgrade translations from crowdin (e0440e8d).
proton-ci Jan 22, 2024
e84b5dc
i18n: Upgrade translations from crowdin (5400e167).
proton-ci Jan 29, 2024
6d12891
Prevent user from selecting the installation path [VPNWIN-1963] [VPNW…
Jan 29, 2024
2e4e250
Fix drive installer path
Jan 30, 2024
753c39d
Fix installer version check
Feb 1, 2024
e1f4018
Increase app version to 3.2.10
Feb 1, 2024
bc98b4f
i18n: Upgrade translations from crowdin (753c39d0).
proton-ci Feb 5, 2024
4f6385c
i18n: Upgrade translations from crowdin (bc98b4f6).
proton-ci Feb 12, 2024
97c9d80
i18n: Upgrade translations from crowdin (4f6385c8).
proton-ci Feb 19, 2024
9ef8b62
Merge branch 'release/3.2.10'
Feb 22, 2024
797f11a
Merge branch 'release/3.2.10' into develop
Feb 22, 2024
c805d93
i18n: Upgrade translations from crowdin (797f11af).
proton-ci Mar 4, 2024
4c83d4b
New country map coordinates [VPNWIN-2067]
eaproton Mar 6, 2024
5683499
i18n: Upgrade translations from crowdin (4c83d4bd).
proton-ci Mar 11, 2024
db39bf9
i18n: Upgrade translations from crowdin (56834996).
proton-ci Mar 18, 2024
88c1f35
Increase app version to 3.2.11
Mar 19, 2024
1647b8a
Merge branch 'release/3.2.11'
Apr 11, 2024
e0c8dfa
i18n: Upgrade translations from crowdin (db39bf9d).
proton-ci Apr 15, 2024
39b0513
Update signature for ProtonVPN callout driver [VPNWIN-2156]
Apr 18, 2024
b5db966
i18n: Upgrade translations from crowdin (e0c8dfad).
proton-ci Apr 15, 2024
3e72ff2
i18n: Upgrade translations from crowdin (b5db9668).
proton-ci Apr 22, 2024
0d4376c
i18n: Upgrade translations from crowdin (3e72ff26).
proton-ci Apr 29, 2024
c7a848e
i18n: Upgrade translations from crowdin (0d4376c9).
proton-ci May 6, 2024
f1eed8a
Publish executable projects individually instead of publishing solution
May 10, 2024
53f1622
i18n: Upgrade translations from crowdin (f1eed8ae).
proton-ci May 13, 2024
fbe8232
i18n: Upgrade translations from crowdin (53f1622f).
proton-ci May 20, 2024
1129b03
Update Proton Drive installer to use new json structure
May 20, 2024
89b512b
Update OpenVPN to 2.6.10 [VPNWIN-1696]
Apr 26, 2024
d65b374
i18n: Upgrade translations from crowdin (89b512b0).
proton-ci May 27, 2024
96af865
Fix restricted account tests
May 28, 2024
2ae2df9
i18n: Upgrade translations from crowdin (96af8657).
proton-ci Jun 3, 2024
66bb4d5
Adjust permissions for installer launched processes [VPNWIN-2201]
Jun 13, 2024
66601a0
Increase app version to 3.2.12
Jun 13, 2024
3a96afd
i18n: Upgrade translations from crowdin (66bb4d53).
proton-ci Jun 17, 2024
e8a312a
i18n: Upgrade translations from crowdin (3a96afd0).
proton-ci Jun 24, 2024
7b9401b
i18n: Upgrade translations from crowdin (e8a312af).
proton-ci Jul 1, 2024
1e57195
Merge branch 'release/3.2.12'
Jul 10, 2024
37b4182
Merge branch 'release/3.2.12' into develop
Jul 10, 2024
f998d54
Prevent installing Proton Drive in silent mode [VPNWIN-2252]
Jul 12, 2024
efdacc2
i18n: Upgrade translations from crowdin (f998d547).
Jul 22, 2024
3b901fa
Deploy binaries and json to nexus/s3
Jul 23, 2024
ca995b1
Implement WireGuard TCP/TLS [VPNWIN-2248]
Jul 25, 2024
e81b9e1
Delete local app data folder on uninstall [VPNWIN-2268]
Jul 25, 2024
b8577b6
i18n: Upgrade translations from crowdin (e81b9e1c).
Jul 29, 2024
c56b250
Use timestamps with logicals API requests [VPNWIN-2259]
eaproton Jul 29, 2024
dcc068e
Use protocol from app settings on reconnect
Jul 29, 2024
30a2a4c
Increase app version to 3.3.0
Jul 29, 2024
dd61560
i18n: Upgrade translations from crowdin (dcc068e2).
Aug 5, 2024
8aa61aa
Use Stealth for Guest Hole [VPNWIN-2299]
Aug 6, 2024
3afe246
Merge branch 'release/3.3.0'
Aug 7, 2024
1f833bc
Merge branch 'release/3.3.0' into develop
Aug 7, 2024
cc7cd50
Fix tcp ping before connecting to VPN [VPNWIN-2300]
Aug 8, 2024
f0cd648
Remove job for deploying metadata
Aug 9, 2024
2a60f0a
Add x-pm-country header for clientconfig request [VPNWIN-2304]
Aug 9, 2024
48cd9e7
Increase app version to 3.3.2
Aug 9, 2024
f29b797
i18n: Upgrade translations from crowdin (2a60f0a4).
Aug 19, 2024
b5d3efd
i18n: Upgrade translations from crowdin (f29b7975).
Aug 26, 2024
0137c33
Merge branch 'release/3.3.2'
Aug 27, 2024
8bc27ab
Merge branch 'release/3.3.2' into develop
Aug 27, 2024
c818ebe
i18n: Upgrade translations from crowdin (8bc27ab6).
Sep 2, 2024
5242a5b
Change timestamp server to sectigo
Sep 4, 2024
dc00b6e
Implement client config Smart Protocol property [VPNWIN-2059]
eaproton Sep 16, 2024
5ec1590
i18n: Upgrade translations from crowdin (5242a5b7).
Sep 16, 2024
a496653
gRPC named pipes implementation for v3 [VPNWIN-2336]
eaproton Sep 17, 2024
760653c
i18n: Upgrade translations from crowdin (a4966532).
Sep 23, 2024
96d2a21
i18n: Upgrade translations from crowdin (760653c0).
Sep 30, 2024
32d732a
Add arm64 build, OpenVPN 2.6.12
Oct 3, 2024
57f7415
Implement Proton products installer [VPNWIN-2271]
Oct 4, 2024
e6082ac
Add a timeout to all gRPC calls
eaproton Oct 11, 2024
0194b0b
i18n: Upgrade translations from crowdin (e6082ace).
Oct 14, 2024
ac910f2
Change rollout percentage for Proton Pass
Oct 11, 2024
051ebf7
Fix guest holes
Oct 14, 2024
da5fd85
Remove local app data on uninstall
Oct 15, 2024
6e73f94
Fix bti build
Oct 18, 2024
fea9c15
Add processor architecture to logs, bug report request and crash repo…
Oct 21, 2024
f547854
Change Smart protocol priority to have all WireGuard before OpenVPN […
eaproton Oct 21, 2024
9b20506
Whenever there is a gRPC communication error, check if the pipe name …
eaproton Oct 21, 2024
6055cb8
Add OS architecture to x-pm-appversion; Centralize OS architecture calls
eaproton Oct 22, 2024
b29f880
Fix ApiResponseResult potential NullReferenceException
eaproton Oct 25, 2024
7cf7476
Fix NullReferenceException on VpnReconnector
eaproton Oct 28, 2024
7415db5
i18n: Upgrade translations from crowdin (b29f8802).
Oct 28, 2024
a150a1f
Remove gRPC event viewer logs
eaproton Oct 28, 2024
f6e7f53
i18n: Upgrade translations from crowdin (a150a1f9).
Nov 4, 2024
e46b9e3
Implement RetryId for StartAutoUpdate gRPC requests; Do not attempt t…
eaproton Nov 4, 2024
dbfbd84
Increase app version to 3.4.3
Nov 4, 2024
a679629
i18n: Upgrade translations from crowdin (e46b9e3b).
Nov 11, 2024
9e82466
i18n: Upgrade translations from crowdin (a679629a).
Nov 18, 2024
e3f5049
Merge branch 'release/3.4.3'
Nov 19, 2024
b93a165
Merge branch 'release/3.4.3' into develop
Nov 19, 2024
bb8061d
Fix callout driver
Nov 19, 2024
19274b6
Change jitter to be positive only [VPNWIN-2483]
eaproton Nov 20, 2024
94473f5
Change streamed state logs from Debug to Info [VPNWIN-2500]
eaproton Nov 21, 2024
8a41a2c
Log API headers
eaproton Nov 21, 2024
8604aa2
Reset Logicals timestamp when client has no servers on app start [VPN…
eaproton Nov 22, 2024
75cab12
Implement relays; Add x-pm-country header to Logicals and Loads [VPNW…
eaproton Nov 22, 2024
ac85c7e
i18n: Upgrade translations from crowdin (75cab129).
Nov 25, 2024
6dc6c26
Remove network interface disabler/enabler
eaproton Nov 15, 2024
8376dbf
Fix duplicated IP pinging [VPNWIN-2478]
eaproton Nov 25, 2024
d444da4
Increase app version to 3.5.0
Nov 25, 2024
44e98c1
Fix P2P profile instability UI tests
Nov 27, 2024
c5e3de0
i18n: Upgrade translations from crowdin (44e98c1b).
Dec 2, 2024
bddc9f2
i18n: Upgrade translations from crowdin (c5e3de08).
Dec 9, 2024
f04c03e
Disable Proxy in gRPC [VPNWIN-2555]
eaproton Dec 10, 2024
e57ece1
Disable smart protocols when requested by API [VPNWIN-2502]
eaproton Nov 28, 2024
757f03e
Safe language set
eaproton Dec 9, 2024
8ad283b
Increase app version to 3.5.1
Dec 11, 2024
1f34807
i18n: Upgrade translations from crowdin (757f03e9).
Dec 16, 2024
3bfedb3
Merge branch 'release/3.5.0'
Dec 18, 2024
c2f01b3
Merge branch 'release/3.5.0' into develop
Dec 18, 2024
8dfd531
Remove sign folder
Dec 23, 2024
4d4eeba
i18n: Upgrade translations from crowdin (c2f01b3e).
Dec 23, 2024
e6efc91
i18n: Upgrade translations from crowdin (4d4eeba5).
Dec 30, 2024
2ae1ce1
i18n: Upgrade translations from crowdin (e6efc912).
Jan 6, 2025
d358074
Fix some unobserved task exceptions
Dec 27, 2024
e43d124
Ignore zero assigned connections test
Jan 9, 2025
da36f1a
Merge branch 'release/3.5.1'
Jan 20, 2025
93ce6ca
Merge branch 'release/3.5.1' into develop
Jan 20, 2025
15363c9
i18n: Upgrade translations from crowdin (e43d1243).
Jan 20, 2025
df68e42
i18n: Upgrade translations from crowdin (15363c9c).
Jan 27, 2025
91836a6
Implement server count API endpoint [VPNWIN-2506]
eaproton Jan 29, 2025
f24f899
DEVOPS-2971: Add CODEOWNERS.
eaproton Jan 31, 2025
237fd95
Add Proton Drive support for arm64 installation [VPNWIN-2600]
Jan 27, 2025
85aa9c1
i18n: Upgrade translations from crowdin (237fd956).
Feb 3, 2025
926f7a7
Restart client or service when a version mismatch is detected by gRPC…
eaproton Feb 4, 2025
34c0573
i18n: Upgrade translations from crowdin (926f7a7a).
Feb 10, 2025
84ce9ac
Use new file upload method from slack sdk
Feb 13, 2025
a0012c2
i18n: Upgrade translations from crowdin (84ce9ac0).
Feb 17, 2025
b123cde
Fix short notation paths being unauthorized [VPNWIN-2627]
eaproton Feb 17, 2025
1498ca1
Increase app version to 3.5.3
Feb 17, 2025
086a489
Merge branch 'release/3.5.3'
Mar 6, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
56 changes: 42 additions & 14 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -212,55 +212,83 @@ insert_final_newline=false
tab_width=4

# http://kent-boogaart.com/blog/editorconfig-reference-for-c-developers#dotnet_naming_
# dotnet_naming_symbols.private_field_symbol.applicable_kinds = field
# dotnet_naming_symbols.private_field_symbol.applicable_accessibilities = private
# dotnet_naming_style.private_field_style.capitalization = camel_case
# dotnet_naming_rule.private_fields_are_camel_case.severity = error
# dotnet_naming_rule.private_fields_are_camel_case.symbols = private_field_symbol
# dotnet_naming_rule.private_fields_are_camel_case.style = private_field_style

# Private fields
dotnet_naming_symbols.private_field_symbol.applicable_kinds = field
dotnet_naming_symbols.private_field_symbol.applicable_accessibilities = private
dotnet_naming_style.private_field_style.capitalization = camel_case
dotnet_naming_style.private_field_style.required_prefix=_
dotnet_naming_rule.private_fields_must_be_prefixed_with__.severity = error
dotnet_naming_rule.private_fields_must_be_prefixed_with__.symbols = private_field_symbol
dotnet_naming_rule.private_fields_must_be_prefixed_with__.style = private_field_style

# Constant fields
dotnet_naming_symbols.constant_field.applicable_kinds = field
dotnet_naming_symbols.constant_field.applicable_accessibilities = *
dotnet_naming_symbols.constant_field.required_modifiers = const
dotnet_naming_style.uppercase.word_separator = _
dotnet_naming_style.uppercase.capitalization = all_upper
dotnet_naming_rule.constant_field_should_be_uppercase.severity = error
dotnet_naming_rule.constant_field_should_be_uppercase.symbols = constant_field
dotnet_naming_rule.constant_field_should_be_uppercase.style = uppercase

# Non private fields
dotnet_naming_symbols.non_private_field_symbol.applicable_kinds=field
dotnet_naming_symbols.non_private_field_symbol.applicable_accessibilities=public,internal,friend,protected,protected_internal,protected_friend
dotnet_naming_style.non_private_field_style.capitalization=pascal_case
dotnet_naming_rule.non_private_fields_are_pascal_case.severity=error
dotnet_naming_rule.non_private_fields_are_pascal_case.symbols=non_private_field_symbol
dotnet_naming_rule.non_private_fields_are_pascal_case.style=non_private_field_style

# Parameters
dotnet_naming_symbols.parameter_symbol.applicable_kinds=parameter
dotnet_naming_style.parameter_style.capitalization=camel_case
dotnet_naming_rule.parameters_are_camel_case.severity=error
dotnet_naming_rule.parameters_are_camel_case.symbols=parameter_symbol
dotnet_naming_rule.parameters_are_camel_case.style=parameter_style

# Classes, struct, enums..
dotnet_naming_symbols.non_interface_type_symbol.applicable_kinds=class,struct,enum,delegate
dotnet_naming_style.non_interface_type_style.capitalization=pascal_case
dotnet_naming_rule.non_interface_types_are_pascal_case.severity=error
dotnet_naming_rule.non_interface_types_are_pascal_case.symbols=non_interface_type_symbol
dotnet_naming_rule.non_interface_types_are_pascal_case.style=non_interface_type_style

# Interfaces
dotnet_naming_symbols.interface_type_symbol.applicable_kinds=interface
dotnet_naming_style.interface_type_style.capitalization=pascal_case
dotnet_naming_style.interface_type_style.required_prefix=I
dotnet_naming_rule.interface_types_must_be_prefixed_with_i.severity=error
dotnet_naming_rule.interface_types_must_be_prefixed_with_i.symbols=interface_type_symbol
dotnet_naming_rule.interface_types_must_be_prefixed_with_i.style=interface_type_style

# Methods, Properties and events
dotnet_naming_symbols.member_symbol.applicable_kinds=method,property,event
dotnet_naming_style.member_style.capitalization=pascal_case
dotnet_naming_rule.members_are_pascal_case.severity=error
dotnet_naming_rule.members_are_pascal_case.symbols=member_symbol
dotnet_naming_rule.members_are_pascal_case.style=member_style

# Constant Fields Should Be PascalCase
dotnet_naming_rule.constant_fields_should_be_upper_case.severity=warning
dotnet_naming_rule.constant_fields_should_be_upper_case.symbols=constant_fields
dotnet_naming_rule.constant_fields_should_be_upper_case.style=pascal_case_style
dotnet_naming_symbols.constant_fields.applicable_kinds=field
dotnet_naming_symbols.constant_fields.required_modifiers=const
dotnet_naming_style.pascal_case_style.capitalization=pascal_case
# Async Methods
dotnet_naming_symbols.async_method.applicable_kinds = method
dotnet_naming_symbols.async_method.applicable_accessibilities = *
dotnet_naming_symbols.async_method.required_modifiers = async
dotnet_naming_style.ends_with_async.required_prefix =
dotnet_naming_style.ends_with_async.required_suffix = Async
dotnet_naming_style.ends_with_async.word_separator =
dotnet_naming_style.ends_with_async.capitalization = pascal_case
dotnet_naming_rule.async_method_should_be_ends_with_async.severity = suggestion
dotnet_naming_rule.async_method_should_be_ends_with_async.symbols = async_method
dotnet_naming_rule.async_method_should_be_ends_with_async.style = ends_with_async

# ReSharper inspection severities
resharper_arrange_this_qualifier_highlighting=hint

# IDE1006: Naming Styles
dotnet_diagnostic.ide1006.severity=warning

# Ignore that our code is compatible only with Windows
# CA1416: Validate platform compatibility
dotnet_diagnostic.CA1416.severity = none

# IDE0058: Remove unnecessary expression value
csharp_style_unused_value_expression_statement_preference = discard_variable:none
95 changes: 95 additions & 0 deletions .gitlab-ci-templates.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
.test_execution_script:
stage: ui-test
needs:
- job: build-installer-debug-x64
optional: true
- job: build-installer-release-x64
optional: true
hooks:
pre_get_sources_script:
- Get-Process | Where-Object { $_.Name -like "proton*" } | Stop-Process -Force
tags:
- e2e-tests
before_script:
- ci\test-scripts\uninstall-app.ps1
script:
- ci\test-scripts\install-the-app.ps1
- dotnet build src/Tests/ProtonVPN.UI.Tests/ProtonVPN.UI.Tests.csproj --arch x64 -o src/bin
- VSTest.Console.exe src\bin\ProtonVPN.UI.Tests.dll /Settings:ci/test-scripts/TestRun/test-run-settings.xml /TestCaseFilter:"Category=${CATEGORY}"
after_script:
- ci\test-scripts\uninstall-app.ps1
artifacts:
when: always
name: "result-ui"
paths:
- $TEST_ARTIFACT_PATH
expire_in: 1 weeks

.build-script:
stage: build
tags:
- windows-dot-net
script:
- echo "Building native dependencies..."
- nuget restore ProtonVPN.InstallActions.sln
- cmd.exe /c BuildDependencies.bat ${DEPENDENCIES}
- python ci\build-scripts\main.py add-commit-hash $env:CI_COMMIT_SHORT_SHA
- python ci\build-scripts\main.py defaultConfig
- dotnet build src\Builds\ProtonVPN.Builds.ConsoleJob\ProtonVPN.Builds.ConsoleJob.csproj
- echo "Injecting CI variables"
- src\bin\ProtonVPN.Builds.ConsoleJob.exe
- echo "Publishing ${TYPE}..."
- dotnet publish src/ProtonVPN.App/ProtonVPN.App.csproj -c ${TYPE} -r win-${PLATFORM} --self-contained -o $BUILD_PATH
- dotnet publish src/ProtonVPN.Service/ProtonVPN.Service.csproj -c ${TYPE} -r win-${PLATFORM} --self-contained -o $BUILD_PATH
- dotnet publish src/ProtonVPN.WireguardService/ProtonVPN.WireguardService.csproj -c ${TYPE} -r win-${PLATFORM} --self-contained -o $BUILD_PATH
- dotnet publish src/ProtonVPN.TlsVerify/ProtonVPN.TlsVerify.csproj -c ${TYPE} -r win-${PLATFORM} --self-contained -o $BUILD_PATH
- dotnet publish src/ProtonVPN.Launcher/ProtonVPN.Launcher.csproj -c ${TYPE} -r win-${PLATFORM} --self-contained -o $BUILD_PATH
- dotnet publish src/ProtonVPN.RestoreInternet/ProtonVPN.RestoreInternet.csproj -c ${TYPE} -r win-${PLATFORM} --self-contained -o $BUILD_PATH
- dotnet publish src/ProtonInstaller/ProtonInstaller.csproj -c ${TYPE} -r win-${PLATFORM} --self-contained -o $BUILD_PATH
- msbuild src\ProtonVPN.NativeHost\NativeHost.vcxproj /p:Configuration=Release /p:Platform=${PLATFORM}
artifacts:
expire_in: 1 day
paths:
- $BUILD_PATH
- src/ProtonVPN.NativeHost/bin/
variables:
GIT_SUBMODULE_STRATEGY: normal

.build-installer:
stage: build-installer
tags:
- windows-vpn-signer
script:
- python ci\build-scripts\main.py update-gh-list
- python ci\build-scripts\main.py app-installer $env:CI_COMMIT_SHORT_SHA ${PLATFORM}
artifacts:
paths:
- Setup/Installers/
expire_in: 4 weeks
variables:
FF_USE_FASTZIP: "true"
TRANSFER_METER_FREQUENCY: "2s"
ARTIFACT_COMPRESSION_LEVEL: "fastest"
CACHE_COMPRESSION_LEVEL: "fastest"
FASTZIP_ARCHIVER_BUFFER_SIZE: 128

.tests:
stage: test
script:
- cmd.exe /c BuildDependencies.bat bin
- dotnet build src\Builds\ProtonVPN.Builds.ConsoleJob\ProtonVPN.Builds.ConsoleJob.csproj
- echo "Injecting CI variables"
- src\bin\ProtonVPN.Builds.ConsoleJob.exe
- dotnet restore ProtonVpn.sln
- dotnet build ProtonVpn.sln
- coverlet src\bin --target "dotnet" --targetargs "test ProtonVpn.sln -l ""console;verbosity=normal"" --filter ""TestCategory!=UI&TestCategory!=Connection&TestCategory!=Performance&TestCategory!=BTI"" --no-restore --no-build" --format cobertura --output .\coverage-reports --exclude "[*.Tests*]*" --exclude "[ProtonVPN.MarkupValidator]*" --exclude "[TestTools*]*" --exclude "[*.Installers]*"
- powershell -Command "(gc coverage-reports.cobertura.xml) -replace '\\', '/' | Out-File -encoding UTF8 cobertura.xml"
- ReportGenerator.exe "-reports:cobertura.xml" "-targetdir:.\code-coverage-report-html"
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: cobertura.xml
coverage: '/Total.*?([0-9]{1,3}.[0-9]{1,3})%/'
variables:
GOSRPONLY: "true"
Loading