From be3f18fbc218dda08c22348478032af5dc0f3598 Mon Sep 17 00:00:00 2001 From: Simon Leary Date: Tue, 8 Apr 2025 21:44:22 -0400 Subject: [PATCH 1/7] add simple test cases --- .github/workflows/phpunit.yml | 11 +++++++++++ phpunit.xml | 13 +++++++++++++ test/unit/UnitySiteTest.php | 25 +++++++++++++++++++++++++ test/unit/bootstrap.php | 14 ++++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 .github/workflows/phpunit.yml create mode 100644 phpunit.xml create mode 100644 test/unit/UnitySiteTest.php create mode 100644 test/unit/bootstrap.php diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml new file mode 100644 index 00000000..95702594 --- /dev/null +++ b/.github/workflows/phpunit.yml @@ -0,0 +1,11 @@ +name: CI + +on: [push] + +jobs: + build-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: php-actions/composer@v6 + - uses: php-actions/phpunit@v4 diff --git a/phpunit.xml b/phpunit.xml new file mode 100644 index 00000000..b3ac75ad --- /dev/null +++ b/phpunit.xml @@ -0,0 +1,13 @@ + + + + test/unit + + + diff --git a/test/unit/UnitySiteTest.php b/test/unit/UnitySiteTest.php new file mode 100644 index 00000000..945809cc --- /dev/null +++ b/test/unit/UnitySiteTest.php @@ -0,0 +1,25 @@ +assertEquals($expected, $SITE->testValidSSHKey($key)); + } +} diff --git a/test/unit/bootstrap.php b/test/unit/bootstrap.php new file mode 100644 index 00000000..b3b0df2f --- /dev/null +++ b/test/unit/bootstrap.php @@ -0,0 +1,14 @@ + Date: Tue, 8 Apr 2025 21:47:56 -0400 Subject: [PATCH 2/7] downgrade phpunit workflow --- .github/workflows/phpunit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml index 95702594..a1101213 100644 --- a/.github/workflows/phpunit.yml +++ b/.github/workflows/phpunit.yml @@ -8,4 +8,4 @@ jobs: steps: - uses: actions/checkout@v3 - uses: php-actions/composer@v6 - - uses: php-actions/phpunit@v4 + - uses: php-actions/phpunit@v3 From 5e71d6b9a4fcb624ebabf4cf0cbc23d0b4bdc53f Mon Sep 17 00:00:00 2001 From: Simon Leary Date: Tue, 8 Apr 2025 21:50:53 -0400 Subject: [PATCH 3/7] fix style --- test/unit/UnitySiteTest.php | 13 +++++++++---- test/unit/bootstrap.php | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/test/unit/UnitySiteTest.php b/test/unit/UnitySiteTest.php index 945809cc..f5339553 100644 --- a/test/unit/UnitySiteTest.php +++ b/test/unit/UnitySiteTest.php @@ -1,9 +1,13 @@ assertEquals($expected, $SITE->testValidSSHKey($key)); } diff --git a/test/unit/bootstrap.php b/test/unit/bootstrap.php index b3b0df2f..92837256 100644 --- a/test/unit/bootstrap.php +++ b/test/unit/bootstrap.php @@ -1,4 +1,5 @@ Date: Tue, 8 Apr 2025 22:12:21 -0400 Subject: [PATCH 4/7] phpcbf --- resources/init.php | 18 ++++++++---------- webroot/panel/new_account.php | 6 ++---- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/resources/init.php b/resources/init.php index 00858ceb..c1f8fd79 100644 --- a/resources/init.php +++ b/resources/init.php @@ -4,16 +4,14 @@ * init.php - Initialization script that is run on every page of Unity */ -use UnityWebPortal\lib\{ - UnityConfig, - UnityLDAP, - UnityMailer, - UnitySQL, - UnitySSO, - UnityUser, - UnityRedis, - UnityWebhook -}; +use UnityWebPortal\lib\UnityConfig; +use UnityWebPortal\lib\UnityLDAP; +use UnityWebPortal\lib\UnityMailer; +use UnityWebPortal\lib\UnitySQL; +use UnityWebPortal\lib\UnitySSO; +use UnityWebPortal\lib\UnityUser; +use UnityWebPortal\lib\UnityRedis; +use UnityWebPortal\lib\UnityWebhook; // // Initialize Session diff --git a/webroot/panel/new_account.php b/webroot/panel/new_account.php index 4129e699..51ddbb9f 100644 --- a/webroot/panel/new_account.php +++ b/webroot/panel/new_account.php @@ -2,10 +2,8 @@ require_once "../../resources/autoload.php"; -use UnityWebPortal\lib\{ - UnitySite, - UnityGroup -}; +use UnityWebPortal\lib\UnitySite; +use UnityWebPortal\lib\UnityGroup; require_once $LOC_HEADER; From 6c8753ba413514d093afb925269a5da61fb12ef7 Mon Sep 17 00:00:00 2001 From: Simon Leary Date: Tue, 8 Apr 2025 22:12:44 -0400 Subject: [PATCH 5/7] setup pre-commit --- .pre-commit-config.yaml | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..edd13ed3 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,48 @@ +# intentionally malformed files +# pre-commit automatically excludes submodules +exclude: | + (?x)^( + .*\.dist| + roles/ood-head/files/auto-copy/var/www/ood/apps/common/common_attributes.yml| + roles/ood-head/files/auto-copy/var/www/ood/apps/sys/dashboard/config/locales/en.yml| + inventory.d/ipv4.py| + files/shibboleth/filtered-incommon-metadata.xml.j2| + )$ + +repos: + # auto formatters (no work required) ############################################################# + # - repo: https://github.com/pre-commit/pre-commit-hooks + # rev: v5.0.0 + # hooks: + # - id: trailing-whitespace + # - id: end-of-file-fixer + - repo: local + hooks: + - id: phpcbf + name: PHP Code Beautifier and Fixer + entry: phpcbf + language: system + files: \.php$ + args: [--standard=PSR2, --colors] + + # linters (work required) ######################################################################## + # - repo: https://github.com/pre-commit/pre-commit-hooks + # rev: v5.0.0 + # hooks: + # - id: check-yaml + # - id: check-json + # - id: check-xml + # - id: check-added-large-files + # - id: check-executables-have-shebangs + # - repo: https://github.com/gitleaks/gitleaks + # rev: v8.23.1 + # hooks: + # - id: gitleaks + - repo: local + hooks: + - id: phpcs + name: PHP CodeSniffer + entry: phpcs + language: system + files: \.php$ + args: [--standard=PSR2, --colors, --warning-severity=0] From e6811f92faab49a69b620b08228c8d835c90cb06 Mon Sep 17 00:00:00 2001 From: Simon Leary Date: Tue, 8 Apr 2025 22:14:52 -0400 Subject: [PATCH 6/7] warnings are fatal, disable for long lines --- .pre-commit-config.yaml | 2 +- test/unit/UnitySiteTest.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index edd13ed3..fee724eb 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -45,4 +45,4 @@ repos: entry: phpcs language: system files: \.php$ - args: [--standard=PSR2, --colors, --warning-severity=0] + args: [--standard=PSR2, --colors] diff --git a/test/unit/UnitySiteTest.php b/test/unit/UnitySiteTest.php index f5339553..8eb06480 100644 --- a/test/unit/UnitySiteTest.php +++ b/test/unit/UnitySiteTest.php @@ -16,8 +16,10 @@ public static function SSHKeyProvider() [false, '{"key": "value"}'], [true, "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+XqO25MUB9x/pS04I3JQ7rMGboWyGXh0GUzkOrTi7a"], [true, " ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB+XqO25MUB9x/pS04I3JQ7rMGboWyGXh0GUzkOrTi7a "], + //phpcs:disable [true, "ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJNqo8NKTfXgCsaE3ly0tDCfwFuFgJiftup0bIZnRi5bP5QgDN5BFeJfEUPSY/s/GL2hUAjkz3ytGqvadt84W7w="], [true, "ssh-rsa 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"], + //phpcs:enable ]; } From e30a68e5dd9cfdb35cf2ba05c8169541cdb6cbd6 Mon Sep 17 00:00:00 2001 From: Simon Leary Date: Tue, 8 Apr 2025 22:17:23 -0400 Subject: [PATCH 7/7] rename workflow --- .github/workflows/phpunit.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml index a1101213..5481a007 100644 --- a/.github/workflows/phpunit.yml +++ b/.github/workflows/phpunit.yml @@ -1,9 +1,9 @@ -name: CI +name: phpunit on: [push] jobs: - build-test: + phpunit: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3