diff --git a/packages/crud/.gitignore b/packages/crud/.gitignore
deleted file mode 100644
index af50cbc..0000000
--- a/packages/crud/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.DS_Store
-/.cache/
-/coverage/
-/docs/
-/tools/
-/vendor/
diff --git a/packages/oauth2-server/.gitignore b/packages/oauth2-server/.gitignore
deleted file mode 100644
index af50cbc..0000000
--- a/packages/oauth2-server/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.DS_Store
-/.cache/
-/coverage/
-/docs/
-/tools/
-/vendor/
diff --git a/packages/phpunit-sessions/.gitattributes b/packages/phpunit-sessions/.gitattributes
new file mode 100644
index 0000000..cf4b4c7
--- /dev/null
+++ b/packages/phpunit-sessions/.gitattributes
@@ -0,0 +1,3 @@
+/.github export-ignore
+/phpunit.xml export-ignore
+/tests export-ignore
\ No newline at end of file
diff --git a/packages/phpunit-sessions/.github/workflows/ci.yml b/packages/phpunit-sessions/.github/workflows/ci.yml
new file mode 100644
index 0000000..94d4681
--- /dev/null
+++ b/packages/phpunit-sessions/.github/workflows/ci.yml
@@ -0,0 +1,23 @@
+name: CI
+on: [push]
+jobs:
+ build-test:
+ runs-on: ubuntu-latest
+ environment: actions
+ steps:
+ - uses: actions/checkout@master
+ - uses: actions/checkout@v3
+ - uses: php-actions/composer@v6
+ - uses: php-actions/phpunit@v3
+ env:
+ XDEBUG_MODE: coverage
+ with:
+ bootstrap: vendor/autoload.php
+ configuration: phpunit.xml
+ php_extensions: xdebug
+ coverage_clover: coverage.xml
+ - if: success() || failure()
+ uses: codecov/codecov-action@v4
+ with:
+ files: coverage.xml
+ token: ${{ secrets.CODECOV_TOKEN }}
diff --git a/packages/phpunit-sessions/.gitignore b/packages/phpunit-sessions/.gitignore
deleted file mode 100644
index af50cbc..0000000
--- a/packages/phpunit-sessions/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.DS_Store
-/.cache/
-/coverage/
-/docs/
-/tools/
-/vendor/
diff --git a/packages/phpunit-sessions/phpunit.xml b/packages/phpunit-sessions/phpunit.xml
new file mode 100644
index 0000000..57cc989
--- /dev/null
+++ b/packages/phpunit-sessions/phpunit.xml
@@ -0,0 +1,25 @@
+
+
+
+
+ tests
+
+
+
+
+
diff --git a/packages/user-session/.gitattributes b/packages/user-session/.gitattributes
new file mode 100644
index 0000000..cf4b4c7
--- /dev/null
+++ b/packages/user-session/.gitattributes
@@ -0,0 +1,3 @@
+/.github export-ignore
+/phpunit.xml export-ignore
+/tests export-ignore
\ No newline at end of file
diff --git a/packages/user-session/.github/workflows/ci.yml b/packages/user-session/.github/workflows/ci.yml
new file mode 100644
index 0000000..94d4681
--- /dev/null
+++ b/packages/user-session/.github/workflows/ci.yml
@@ -0,0 +1,23 @@
+name: CI
+on: [push]
+jobs:
+ build-test:
+ runs-on: ubuntu-latest
+ environment: actions
+ steps:
+ - uses: actions/checkout@master
+ - uses: actions/checkout@v3
+ - uses: php-actions/composer@v6
+ - uses: php-actions/phpunit@v3
+ env:
+ XDEBUG_MODE: coverage
+ with:
+ bootstrap: vendor/autoload.php
+ configuration: phpunit.xml
+ php_extensions: xdebug
+ coverage_clover: coverage.xml
+ - if: success() || failure()
+ uses: codecov/codecov-action@v4
+ with:
+ files: coverage.xml
+ token: ${{ secrets.CODECOV_TOKEN }}
diff --git a/packages/user-session/.gitignore b/packages/user-session/.gitignore
deleted file mode 100644
index af50cbc..0000000
--- a/packages/user-session/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.DS_Store
-/.cache/
-/coverage/
-/docs/
-/tools/
-/vendor/
diff --git a/packages/user-session/phpunit.xml b/packages/user-session/phpunit.xml
new file mode 100644
index 0000000..57cc989
--- /dev/null
+++ b/packages/user-session/phpunit.xml
@@ -0,0 +1,25 @@
+
+
+
+
+ tests
+
+
+
+
+