Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
319 commits
Select commit Hold shift + click to select a range
9555f5e
FEAT Adding Port 9003 to Docker-compose to open XDEBUG ports for host
DEberhardt Aug 9, 2025
656b428
Revert "FEAT Adding Port 9003 to Docker-compose to open XDEBUG ports …
DEberhardt Aug 9, 2025
9ec054b
FIX Update Models Seat, Ticket, User, Theme, LinkedAccount and EmailA…
DEberhardt Aug 9, 2025
d775e99
FIX Update Models Event to include all writable properties in the $fi…
DEberhardt Aug 9, 2025
6eff88b
FIX Update Models SocialProvider to include all writable properties i…
DEberhardt Aug 9, 2025
72cc1f5
adding remaining tests for polices - commented out
DEberhardt Aug 9, 2025
8efed97
FIX Update Model Ticket* to include all writable properties in the $f…
DEberhardt Aug 9, 2025
afbcd92
commenting out remaining tests that have structural issues
DEberhardt Aug 9, 2025
c0e9857
FIX: removing ID from fillable array for all but class user
DEberhardt Aug 10, 2025
1053219
FIX: Kernel - Added description to Commands to make them testable
DEberhardt Aug 10, 2025
9b6fcbf
FIX: SeatingPlan ToStringName to return an empty String if Null
DEberhardt Aug 10, 2025
f61b329
updating test for Jobs
DEberhardt Aug 10, 2025
e7062bb
fixing up multiple files
DEberhardt Aug 10, 2025
205e1cd
FIX Migrations to ensure sqllite compatibility (not dropping foreignK…
DEberhardt Aug 10, 2025
9d2d856
FIX Updated User and Email Factory to fix ClanMemberShipControllerTests
DEberhardt Aug 10, 2025
cd5c8d7
FIX Providers increasing testability by adding a public getter functi…
DEberhardt Aug 11, 2025
f915b16
FIX feature tests
DEberhardt Aug 11, 2025
fbc70f3
FIX feature tests
DEberhardt Aug 12, 2025
8b29fff
FIX: SyncTicketTest - Update to TicketProvider Getter and FakeProvider
DEberhardt Aug 19, 2025
dc3d3e5
FIX: Ticketprovider Tests by adding WebhookException function and upd…
DEberhardt Aug 19, 2025
a7521ac
FIX: SyncDiscordRolesTest
DEberhardt Aug 19, 2025
72ca9dc
FIX: UpdateEventSeatingLockTest
DEberhardt Aug 19, 2025
0e62b7d
FIX: Small issues after re-testing everything
DEberhardt Aug 19, 2025
f51a94b
FIX: Replacing Deprecated Function Calls
DEberhardt Aug 19, 2025
b6e769e
FIX: Replacing Deprecated Function Calls
DEberhardt Aug 19, 2025
7738e8d
FIX: DiscordApiServiceProviderTests
DEberhardt Aug 19, 2025
bd782ad
FIX: Addressing Warnings of empty test files - replaced with skipped …
DEberhardt Aug 19, 2025
c81a25f
FIX: AbstractTicketProviderTest
DEberhardt Aug 19, 2025
9ba0d66
FIX: DiscordApiServiceProviderTests - Unit Test
DEberhardt Aug 19, 2025
0101f71
FIX: Replacing Deprecated Function Calls
DEberhardt Aug 19, 2025
8f33b2f
CHORE: Cleanup
DEberhardt Aug 19, 2025
955942d
FIX ClanControllerTest
DEberhardt Aug 19, 2025
5fd539f
FIX: Updating Packages to close a few vulnerabilities - Update Packag…
DEberhardt Aug 20, 2025
9c9c82c
FIX: EmailAddressControllerTest(s)
DEberhardt Aug 20, 2025
d1209fc
FIX: ClanControllerTest and ClanMembershipControllerTest
DEberhardt Aug 20, 2025
79fcda2
FIX: ClanControllerTest and ClanMembershipControllerTest
DEberhardt Aug 20, 2025
55418b5
FIX: LinkedAccountController correctly redirecting to Route with User ID
DEberhardt Aug 20, 2025
cba93e8
FIX EventControllerTest
DEberhardt Aug 20, 2025
b6471d5
FIX EventMappingControllerTest
DEberhardt Aug 20, 2025
18f5076
FIX EventTicketProviderControllerTest
DEberhardt Aug 20, 2025
894a033
FEAT Buildout HomeControllerTest(s)
DEberhardt Aug 20, 2025
814488a
FEAT Buildout ControllerTest
DEberhardt Aug 20, 2025
ca7adfa
FIX: TelescopeServiceProviderTest
DEberhardt Aug 20, 2025
7939df9
FIX: WebhookControllerTest
DEberhardt Aug 20, 2025
538d1bd
FIX: BroadcastServiceProviderTest
DEberhardt Aug 20, 2025
564ae4d
FIX: TicketPolicyTest
DEberhardt Aug 20, 2025
ea0d93d
FIX: Observers Tests
DEberhardt Aug 20, 2025
4165014
FIX: Services Tests
DEberhardt Aug 20, 2025
d8f6286
FIX AppServiceProviderTest
DEberhardt Aug 20, 2025
03fcfa8
FIX: SeatingPlanControllerTest(s)
DEberhardt Aug 20, 2025
d075ea6
FIX: TicketControllerTest
DEberhardt Aug 20, 2025
43218e0
FIX: UserControllerTest
DEberhardt Aug 20, 2025
99e598f
FIX: UserSignupRequestTest
DEberhardt Aug 20, 2025
139167a
FIX: Update ClanRequestTest to restore and enhance code rule closure …
DEberhardt Aug 20, 2025
4bade0e
FIX: Enhance AuthenticateTest with additional null and empty request …
DEberhardt Aug 20, 2025
f702b04
FIX: Refactor ClanMembershipRequestTest to restore and enhance code r…
DEberhardt Aug 20, 2025
55cb882
FIX: Enhance VerifyCsrfTokenTest with additional tests for 'except' p…
DEberhardt Aug 20, 2025
34c9e8d
FIX: Refactor PruneClansTest to remove unused tearDown method and enh…
DEberhardt Aug 20, 2025
ee38125
FIX: Refactor KernelTest to ensure database refresh and restore funct…
DEberhardt Aug 20, 2025
2f6529b
FIX: Refactor TicketImportTest to use model factories and improve ins…
DEberhardt Aug 20, 2025
7471232
FIX: Enhance EventMappingUpdateRequestTest with additional tests for …
DEberhardt Aug 20, 2025
35b459e
FIX: Refactor TicketTypeMappingUpdateRequestTest to implement externa…
DEberhardt Aug 20, 2025
cb53997
FIX: Update TicketImportRequest to include CSV mime types in validati…
DEberhardt Aug 20, 2025
ba2f56c
FIX: Add getProvider method to SocialProvider and enhance tests with …
DEberhardt Aug 20, 2025
d24270b
FIX: Refactor SettingUpdateRequestTest to remove mocks and use real S…
DEberhardt Aug 20, 2025
c30d545
FIX: Refactor AbstractSocialProviderTest to remove Mockery and use a …
DEberhardt Aug 20, 2025
a553ae6
FIX: Refactor EventUpdateRequestTest to remove mocks and use database…
DEberhardt Aug 20, 2025
a714a5a
FIX: Refactor GenericTicketProviderTest to remove mocks and use real …
DEberhardt Aug 20, 2025
dcf788d
FIX: Refactor TicketTest to replace mocks with objects for type and e…
DEberhardt Aug 20, 2025
2519fa7
FIX: Restore and activate testDefaultValues in EmailVerificationExcep…
DEberhardt Aug 20, 2025
c9a33db
FIX: Restore and activate testDefaultValues in SocialProviderExceptio…
DEberhardt Aug 20, 2025
97f029e
FIX: Update EmailAddressControllerTest to use Sanctum for user authen…
DEberhardt Aug 20, 2025
4c52fed
FIX: Enhance VerifyEmailTest with additional tests for envelope, cont…
DEberhardt Aug 20, 2025
a09f8cd
FIX: Revive and enhance TwitchProviderTest with proper provider setup…
DEberhardt Aug 20, 2025
7f3aa89
FIX: Revive and enhance SteamProviderTest with proper provider setup …
DEberhardt Aug 20, 2025
7d81956
FIX: Revive and enhance ClanPolicyTest with proper user and clan setu…
DEberhardt Aug 20, 2025
908f197
FIX: Revive and enhance DiscordProviderTest with proper provider setu…
DEberhardt Aug 21, 2025
04c5933
FIX: Revive and enhance ClanMembershipPolicyTest with proper user and…
DEberhardt Aug 21, 2025
725945e
FIX: Revive and enhance LaravelPassportProviderTest with proper provi…
DEberhardt Aug 21, 2025
15a54c8
FIX: Correct logic for incrementing revision in SeatingPlanObserver a…
DEberhardt Aug 21, 2025
4b7f9f2
FIX: Refactor TicketTest to use model factories for event and user re…
DEberhardt Aug 21, 2025
8789a13
FIX: Update EventFactory to ensure unique event names and codes, prev…
DEberhardt Aug 21, 2025
32658b3
FIX: Enhance OpenTelemetry integration by adding SpanHelper class for…
DEberhardt Aug 21, 2025
27b5eca
FIX: Update UserSignupRequestTest to ensure unique email addresses an…
DEberhardt Aug 21, 2025
d92ca07
FIX: ClanObserverTest - Correct logic for incrementing revision in Se…
DEberhardt Aug 21, 2025
a9a1f44
FIX: Update EmailAddressControllerTest to ensure proper verification …
DEberhardt Aug 21, 2025
fe00324
FIX: Update ExampleTest to ensure proper user authentication and prev…
DEberhardt Aug 21, 2025
583aba2
FIX: Update phpunit.xml to enhance coverage reporting with HTML and C…
DEberhardt Aug 21, 2025
1ea20f8
Merge pull request #2 from DEberhardt/DE/novel-pike
DEberhardt Aug 21, 2025
d324007
FEAT Updated Documentation for improved readability and maintainability
DEberhardt Aug 21, 2025
10676e0
Merge pull request #3 from DEberhardt/DE/novel-pike
DEberhardt Aug 21, 2025
b92d549
FIX: Addressing Comments
DEberhardt Aug 21, 2025
fd3aa2b
REFAC: Revert SetupDiscord command by removing unused prompt properti…
DEberhardt Aug 21, 2025
2843841
Merge pull request #57 from DEberhardt/DE/representative-wildcat
mintopia Sep 1, 2025
1684d59
Fix tests that specify the user ID on a user object.
mintopia Sep 1, 2025
fcc38ea
Move descriptions for commands into the command themselves.
mintopia Sep 1, 2025
9c9d33a
Some refactoring based on the tests
mintopia Sep 1, 2025
824ca30
Merge pull request #59 from DEberhardt/develop
mintopia Sep 1, 2025
8069d5b
CHORE: Add scope for Phase 2 of Unit Testing: Test coverage above 50%
DEberhardt Sep 2, 2025
688eb67
TEST: Add deferred binding test for DiscordApi in DiscordApiServicePr…
DEberhardt Sep 2, 2025
75fbd0c
TEST: Migrate AbstractTicketProvider tests from Feature to Unit direc…
DEberhardt Sep 2, 2025
5ce8d14
TEST: Migrate TicketTailorProvider tests from Feature to Unit directo…
DEberhardt Sep 2, 2025
a4636a9
TEST: Migrate WooCommerceProvider tests from Feature to Unit director…
DEberhardt Sep 2, 2025
431b1c8
CHORE: Add Copilot Instructions
DEberhardt Sep 2, 2025
e2a4844
TEST: Add DummyTicketTailorProvider to expose protected methods and e…
DEberhardt Sep 2, 2025
3c027c3
TEST: Enhance process_webhook test to verify processTicket invocation…
DEberhardt Sep 2, 2025
f294716
TEST: Add DummyGenericTicketProvider to expose protected methods for …
DEberhardt Sep 2, 2025
2922420
TEST: Enhance TicketTailorProviderTest with additional tests for clie…
DEberhardt Sep 2, 2025
c9d6585
TEST: Fix and enhance WooCommerceProviderTest with additional tests f…
DEberhardt Sep 2, 2025
31287a6
TEST: Refactor DiscordApiTest to use SocialProvider factory and add g…
DEberhardt Sep 2, 2025
a16067a
TEST: Add tests for ticket synchronization and user email handling in…
DEberhardt Sep 4, 2025
452f484
TEST: Add comprehensive unit tests for SeatingPlan, Ticket, ClanRole,…
DEberhardt Sep 4, 2025
fb486c8
TEST: Add additional tests for ClanController methods including creat…
DEberhardt Sep 4, 2025
9be9dc3
TEST: Add verification and deletion tests for EmailAddressController …
DEberhardt Sep 4, 2025
941149b
TEST: Enhance SeatingPlanControllerTest with additional coverage for …
DEberhardt Sep 4, 2025
5d3c6d8
TEST: Add unit tests for signup, edit, and login functionalities in U…
DEberhardt Sep 4, 2025
afac389
TEST: Fix indentation in testSignupShowsView method in UserController…
DEberhardt Sep 4, 2025
b006474
TEST: Add additional tests for ClanMembershipController, EmailAddress…
DEberhardt Sep 4, 2025
ed3b722
TEST: Add tests for ordering members by name in ClanController and ha…
DEberhardt Sep 4, 2025
44fa49b
TEST: Add unit tests for Seat, SeatGroup, SeatingPlan, Setting, Socia…
DEberhardt Sep 4, 2025
f2f1fde
TEST: Add filtering and ordering tests for ClanController, EmailAddre…
DEberhardt Sep 4, 2025
20ba63e
TEST: Add tests for SetupDiscord and SyncDiscordRoles commands to ver…
DEberhardt Sep 4, 2025
292019a
TEST: Add unit tests for ClanController, EmailAddressController, Even…
DEberhardt Sep 4, 2025
b9d850c
TEST: Add policy tests for ClanMembershipPolicy and ClanPolicy to val…
DEberhardt Sep 4, 2025
02d00ac
TEST: Add tests for DiscordApiServiceProvider and PrometheusServicePr…
DEberhardt Sep 4, 2025
c54772c
TEST: Add tests for SetupDiscord and SyncDiscordRoles commands to ver…
DEberhardt Sep 4, 2025
b0c126f
TEST: Add unit tests for SeatController, SeatGroupController, and Sea…
DEberhardt Sep 4, 2025
2749c85
FEAT: Update UserControllerTest adding Fillable array to ROLE
DEberhardt Sep 4, 2025
94f8cf2
TEST: Enhance TicketTypeMappingControllerTest with provider stubs and…
DEberhardt Sep 5, 2025
3789648
TEST: Refactor TicketProviderControllerTest to separate tests for edi…
DEberhardt Sep 5, 2025
d2c3ce1
FIX: Update EventController and EventControllerTest to validate index…
DEberhardt Sep 5, 2025
14d9701
TEST: Enhance TicketControllerTest and TicketProviderControllerTest w…
DEberhardt Sep 5, 2025
ea6d353
TEST: Enhance various controller tests with additional filtering, val…
DEberhardt Sep 5, 2025
5acb2d7
TEST: Enhance DummyTicketTailorProvider and DummyWooCommerceProvider …
DEberhardt Sep 5, 2025
2a00613
TEST: Add comprehensive tests for GenericTicketProvider, TicketTailor…
DEberhardt Sep 5, 2025
0ca3e6c
FIX: SeatingPlanController show / Enhance unseat functionality in Sea…
DEberhardt Sep 5, 2025
5db447e
TEST: Enhance AbstractSocialProviderTest and TicketTailorProviderTest…
DEberhardt Sep 5, 2025
7980013
TEST: Enhance observer tests with additional scenarios for ClanMember…
DEberhardt Sep 5, 2025
b77665e
REFAC: Update Event model and tests to enhance event mapping function…
DEberhardt Sep 5, 2025
4968230
TEST: Enhance Setting and Ticket models with additional test cases fo…
DEberhardt Sep 5, 2025
ed75adb
TEST: Enhance RedirectIfAuthenticatedTest and PrometheusServiceProvid…
DEberhardt Sep 5, 2025
aa816ec
TEST: Adding new tests for Models
DEberhardt Sep 5, 2025
174c60c
TEST: Add ProviderSettingTest and enhance SettingTest with database f…
DEberhardt Sep 5, 2025
b6a769c
TEST: Enhance SeatingPlanTest and ThemeObserverTest with additional a…
DEberhardt Sep 5, 2025
ec51ec2
TEST: Enhance ClanTest, EmailAddressTest, SettingTest, and UserTest w…
DEberhardt Sep 5, 2025
8cb7532
TEST: Enhance ClanControllerTest with improved filtering for index me…
DEberhardt Sep 5, 2025
e4d4212
FIX: Refactor EventTest to enhance ticket and event mapping validatio…
DEberhardt Sep 5, 2025
46ee749
TEST: Add tests for SetupDiscord and SyncDiscordRoles commands; ensur…
DEberhardt Sep 5, 2025
024ba34
REFactor SettingController to extract Discord provider methods for im…
DEberhardt Sep 5, 2025
cc1ffe1
Add tests for Discord role synchronization, clan filtering, user role…
DEberhardt Sep 5, 2025
325d7e7
TEST: Add unit tests for ClanController, SeatingPlanController, UserC…
DEberhardt Sep 5, 2025
251bb18
TEST: Enhance SeatingPlanControllerTest with seat reassignment logic;…
DEberhardt Sep 5, 2025
5555699
TEST: Add unit tests for SeatingPlanController select method; cover s…
DEberhardt Sep 5, 2025
4d86573
TEST: Add feature tests for SeatingPlanExtra and AbstractSocialProvid…
DEberhardt Sep 6, 2025
a3bc5c1
REFINE: Update install method in AbstractSocialProvider for idempoten…
DEberhardt Sep 6, 2025
9dd0fc6
TEST: Add unit tests for SeatingPlanController and Seat model; cover …
DEberhardt Sep 6, 2025
b75c8b1
TEST: Add feature tests for AbstractTransformerExtra; cover user admi…
DEberhardt Sep 6, 2025
18dabae
TEST: Add no-op tests for observer handlers in various observer test …
DEberhardt Sep 6, 2025
bc42029
TEST: Update observer tests to assert empty handlers are no-ops; Cleanup
DEberhardt Sep 6, 2025
7c4e422
TEST: Added test for AbstractTransformer to hit 100% coverage
DEberhardt Sep 6, 2025
6a8d46c
TEST: Fix canPick method to treat empty ticket collection as false; u…
DEberhardt Sep 6, 2025
349ca5b
TEST: Add test for getTicketTypes to handle indexed array of arrays; …
DEberhardt Sep 6, 2025
2b213a2
TEST: Refactor exception handling tests for user account associations…
DEberhardt Sep 6, 2025
0b1139d
TEST: Enhance import method validation; add tests for skipping empty …
DEberhardt Sep 6, 2025
5743a80
TEST: Add observer test to ensure disassociation of seats in differen…
DEberhardt Sep 6, 2025
fae8ea1
REFAC TelescopeServiceProvider - function register to be better testa…
DEberhardt Sep 6, 2025
ecb7e42
Some refactoring based on the tests
mintopia Sep 6, 2025
7dd0009
Fix some of the application logic that had been broken.
mintopia Sep 6, 2025
4a2c76d
Rename controller methods to meet PSR standards for code formatting
mintopia Sep 6, 2025
695d248
Merge pull request #61 from DEberhardt/DE/voluntary-caterpillar
mintopia Sep 6, 2025
b2b7100
Add code quality workflow
mintopia Sep 7, 2025
572aa52
Add code quality workflow
mintopia Sep 7, 2025
48833c5
Enable for all branches on push
mintopia Sep 7, 2025
c0b671b
Add GRPC extension
mintopia Sep 7, 2025
8b66e40
Add Open Telemetry extension
mintopia Sep 7, 2025
9085962
Restructure so docker image build and push is only done on successful…
mintopia Sep 7, 2025
bb87785
Move docker build and push to separate job
mintopia Sep 7, 2025
d7beccf
Refactoring some tests, updating tests to mostly meet PSR-12
mintopia Sep 7, 2025
0539406
Update phpunit to use phpunit.xml
mintopia Sep 7, 2025
d707c13
Generate app key when running tests
mintopia Sep 7, 2025
091ce11
Create initial .env file
mintopia Sep 7, 2025
f9e3eb9
Set app key in phpunit config
mintopia Sep 7, 2025
d42b415
Add vite build
mintopia Sep 7, 2025
cbea2de
Remove npm from setup-php tools
mintopia Sep 7, 2025
39f7932
Fix docker build maybe?
mintopia Sep 7, 2025
25265cb
Pass secrets to called workflow
mintopia Sep 7, 2025
02b18e2
Use code coverage token
mintopia Sep 7, 2025
58608b8
Update PHP version to 8.2
mintopia Sep 7, 2025
72d783f
Update PHP version to 8.2
mintopia Sep 7, 2025
cbb30f4
Remove windows
mintopia Sep 7, 2025
42fc40c
Update PHP 8.5 to update dependencies
mintopia Sep 7, 2025
bdc76bf
Update PHP 8.5 to update dependencies
mintopia Sep 7, 2025
8678774
Use stable and pre-release in matrix
mintopia Sep 7, 2025
cd7b2fb
Add php-versions
mintopia Sep 7, 2025
93569df
Force 8.4
mintopia Sep 7, 2025
89a656b
Update code-quality.yml
mintopia Sep 7, 2025
ee72091
Update code-quality.yml
mintopia Sep 7, 2025
1b0d028
Give up on Matrix builds. We're targeting 8.4. Deal with it.
mintopia Sep 7, 2025
d3171be
Merge remote-tracking branch 'origin/develop' into develop
mintopia Sep 7, 2025
5a5ac78
Refactor test method names for consistency and clarity across various…
DEberhardt Sep 7, 2025
0271c19
Add basic codecov file
mintopia Sep 8, 2025
35ceb17
Set threshold for PRs
mintopia Sep 8, 2025
1fb9626
Update readme to include coverage
mintopia Sep 8, 2025
2f52ab8
Allow workflow for PRs with just md changes
mintopia Sep 8, 2025
3f4b01a
Merge pull request #63 from mintopia/feature/coverage
mintopia Sep 8, 2025
364f702
Fix code coverage
mintopia Sep 8, 2025
f1f9c25
Ignore md and docs from workflows
mintopia Sep 8, 2025
dc1b381
Merge pull request #64 from mintopia/feature/coverage
mintopia Sep 8, 2025
0baa103
Refactor test method names for consistency and clarity
DEberhardt Sep 8, 2025
4c45ea1
Fix spacing in anonymous class instantiations for consistency (runnin…
DEberhardt Sep 8, 2025
995e1f5
Refactor test methods to directly invoke protected toStringName() and…
DEberhardt Sep 8, 2025
bcc246f
Add basic codecov file
mintopia Sep 8, 2025
b2ffb07
Set threshold for PRs
mintopia Sep 8, 2025
8735755
Update readme to include coverage
mintopia Sep 8, 2025
398092a
Allow workflow for PRs with just md changes
mintopia Sep 8, 2025
9cb94f8
Fix code coverage
mintopia Sep 8, 2025
d6198ff
Ignore md and docs from workflows
mintopia Sep 8, 2025
9c2dc3f
Refactor AbstractTransformerTest: replace DummyObject and DummyTransf…
DEberhardt Sep 8, 2025
dda2a0d
Refactor AbstractTicketProviderTest: replace DummyTicketProvider with…
DEberhardt Sep 8, 2025
c81cb63
Refactor tests: replace DummyTicketProvider and DummySocialProvider w…
DEberhardt Sep 8, 2025
0cc8142
Refactor tests: replace DummySocialProvider with inline class and sim…
DEberhardt Sep 8, 2025
2e9379e
Refactor tests: remove DummySocialProvider classes to simplify test s…
DEberhardt Sep 8, 2025
01db214
Refactor tests: replace DummyGenericTicketProvider with makeTicketPro…
DEberhardt Sep 8, 2025
ac28294
Refactor tests: replace DummyDiscordProvider with makeDummyDiscordPro…
DEberhardt Sep 8, 2025
d2a30f8
Refactor tests: replace DummyTicketTailorProvider with makeTicketTail…
DEberhardt Sep 8, 2025
5f39f65
Refactor tests: replace DummyWooCommerceProvider with makeWooCommerce…
DEberhardt Sep 8, 2025
cc89627
Refactor tests: replace direct method calls with callProtected helper…
DEberhardt Sep 8, 2025
cfe39fa
Refactor tests: replace Closure::bind with Closure::call for improved…
DEberhardt Sep 8, 2025
a06395a
Refactor tests: deprecate DummyTicketTailorProvider, DummyGenericTick…
DEberhardt Sep 8, 2025
dbd1a7c
Remove now unused Dummy Class files
DEberhardt Sep 8, 2025
467d4f9
Refactor tests: streamline constructor syntax for anonymous classes a…
DEberhardt Sep 8, 2025
e5dacfd
Refactor tests: add base URI to Guzzle client instantiation for consi…
DEberhardt Sep 8, 2025
c96b894
Add getTicketTypes method to ProviderTestHelpers for improved test co…
DEberhardt Sep 8, 2025
297975d
Refactor tests: update constructor syntax for anonymous classes and r…
DEberhardt Sep 8, 2025
5b05431
Refactor tests: remove DummyDiscordProvider and update SocialProvider…
DEberhardt Sep 8, 2025
4d567e1
Refactor tests: replace makeTicketProvider with basicProviderStub for…
DEberhardt Sep 8, 2025
593ac1e
Refactor tests: update constructor syntax for anonymous classes in Ti…
DEberhardt Sep 8, 2025
91053f5
Refactor tests: update provider service initialization in AbstractSoc…
DEberhardt Sep 8, 2025
dac95f7
Refactor tests: enhance admin property precedence logic in AbstractTr…
DEberhardt Sep 8, 2025
5581734
Refactor tests: remove unused dummy provider classes and stubs; repla…
DEberhardt Sep 8, 2025
b32f0eb
Refactor tests: replace ResolveDummyProvider with a closure-based fac…
DEberhardt Sep 8, 2025
4a948bf
Refactor tests: merge extra tests from GenericTicketProviderExtraTest…
DEberhardt Sep 8, 2025
f0249dd
Refactor testProcessWebhookCallsProcessTicketAndReturnsTrue to improv…
DEberhardt Sep 8, 2025
93a8f81
Remove rule from phpcs.xml
mintopia Sep 9, 2025
dbcf2c2
Merge pull request #65 from DEberhardt/DE/breezy-marmot
mintopia Sep 9, 2025
98fdd59
Add Events endpoint to API
mintopia Sep 29, 2026
ba778b5
Update nodejs version
mintopia Sep 29, 2026
32bc9dd
Update route permissions
mintopia Sep 29, 2026
b34541d
Mitigate RCE
mintopia Oct 21, 2026
57ca685
Fix formatting in Dockerfile for session upload progress
mintopia Oct 21, 2026
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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost

LOG_CHANNEL=stack
LOG_CHANNEL=daily
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,7 @@
name: Publish Docker Images

on:
push:
paths-ignore:
- README.md
- LICENSE
- .env.example
branches:
- master
- develop
tags: [ 'v*.*.*' ]
workflow_call:
workflow_dispatch:

env:
Expand All @@ -28,23 +20,28 @@ jobs:
id-token: write

steps:
- name: Checkout repository
- name: Force linux line endings
run: |
git config --global core.autocrlf false
git config --global core.eol lf

- name: Checkout
uses: actions/checkout@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3.0.0
uses: docker/setup-buildx-action@v3

- name: Log into registry ${{ env.REGISTRY }}
if: github.event_name != 'pull_request'
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d # v3.0.0
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@96383f45573cb7f253c731d3b3ab81c87ef81934 # v5.0.0
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
Expand All @@ -54,7 +51,7 @@ jobs:

- name: Build and push Docker image
id: build-and-push
uses: docker/build-push-action@0565240e2d4ab88bba5387d719585280857ece09 # v5.0.0
uses: docker/build-push-action@v6
with:
file: docker/production/Dockerfile
context: .
Expand All @@ -63,3 +60,4 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/amd64,linux/arm64
90 changes: 90 additions & 0 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
name: Code Quality
on:
workflow_call:
workflow_dispatch:
pull_request:
branches:
- master
- develop
paths-ignore:
- '**.md'
- 'docs/**'
push:
branches:
- master
- develop
paths-ignore:
- '**.md'
- 'docs/**'
jobs:
code-quality:
runs-on: ubuntu-latest
steps:
- name: Force linux line endings
run: |
git config --global core.autocrlf false
git config --global core.eol lf
- name: Checkout
uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.4
extensions: mbstring, json, grpc, opentelemetry
ini-values: post_max_size=512M, max_execution_time=180
coverage: xdebug
tools: phpcs, phpstan, phpunit
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Setup problem matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"

- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

- name: Cache dependencies
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: ${{ runner.os }}-composer-${{ matrix.php-versions }}

- name: Install dependencies
run: composer install --prefer-dist --dev

- name: Build Vite manifest
run: |
npm install
npm run build

- name: Run PHP Codesniffer
run: phpcs

- name: Run tests and collect coverage
run: vendor/bin/phpunit --coverage-clover coverage.xml

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}

build-and-push-docker:
needs: code-quality
uses: ./.github/workflows/build-and-push-docker.yml
secrets: inherit
permissions:
contents: read
packages: write
id-token: write
# Only build docker images on pushes to master, develop and tags
if:
(
startsWith(github.ref, 'refs/tags') ||
github.ref == format('refs/heads/{0}', 'master') ||
github.ref == format('refs/heads/{0}', 'develop')
) &&
github.event_name != 'pull_request'

4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,7 @@ yarn-error.log
/.idea
/.vscode
/docker-compose.override.yml
/html-coverage
clover.xml
coverage.txt
.github/copilot-instructions.md
100 changes: 78 additions & 22 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
# Control
[![codecov](https://codecov.io/github/mintopia/control/graph/badge.svg?token=UH1Y6FBHQW)](https://codecov.io/github/mintopia/control)

## Introduction

LAN Party user accounts, ticket management and seat picker. It is designed to work with multiple social authentication providers and ticket providers.
LAN Party user accounts, ticket management and seat picker. It is designed to work with multiple social authentication
providers and ticket providers.

### Social Provider Support

- Discord
- Steam (No authentication, just account linking)
- Twitch
- Discord
- Steam (No authentication, just account linking)
- Twitch

These are using Laravel Socialite, so any provider supported by Socialite can be integrated.

### Ticket Provider Support

- Ticket Tailor
- WooCommerce
- Internal

These are custom integrations but more can be added and used if people develop them. The Internal provider allows you to manually issue tickets to users.
- Ticket Tailor
- WooCommerce
- Internal

These are custom integrations but more can be added and used if people develop them. The Internal provider allows you to
manually issue tickets to users.

## Technology

Expand Down Expand Up @@ -64,6 +66,19 @@ I'm running this with an external docker network called `frontend` with Caddy ru
need to add a network section for the `control` service to add it to the `frontend` network if you
want to do this.

The Caddyfile config I'm using for this is:

```Caddyfile
control.example.com {
@websockets {
header Connection *Upgrade*
header Upgrade websocket
}
reverse_proxy @websockets control-reverb-1
reverse_proxy control-control-1
}
```

You will need to make a logs directory and chmod it 777 as I still need to sort permissions out.

To bring up the site, run the following:
Expand All @@ -80,29 +95,71 @@ You should now be able to visit the site and login. From here you can use the ad

## Observability

Control supports basic observability functionality in using an OpenTelemetry collector. It can support traces, logs
and metrics. If enabled, it will create traces for all HTTP requests. To enable it, add the following to your `.env`:
The docker images from the project have the [Open Telemetry PHP extension](https://github.com/open-telemetry/opentelemetry-php-instrumentation/releases) and the project includes the appropriate Open
Telemetry libraries from Packagist. You can use Protobuf or GRPC transport if needed. You should just be able to
configure it using ENV variables and run a collector container. eg.

```dotenv
OPENTELEMETRY_ENABLED=true
OTEL_PHP_AUTOLOAD_ENABLED=true
OTEL_SERVICE_NAME=control
OTEL_EXPORTER_OTLP_ENDPOINT=http://collector:4317
```

For logging output, a logger is defined and can be used. I suggest you use this with your usual logger, eg. `daily`.
You can specify this logging with the following environment variables:
The docker container already sets `OTEL_PHP_EXCLUDED_URLS` to remove common URLs that are used a lot and add no value
to monitoring. The default value is:

```dotenv
LOG_CHANNEL=stack
LOG_STACK=opentelemetry,daily
OTEL_PHP_EXCLUDED_URLS="pulse,telescope/.*,horizon/.*,api/v1/ping,_ignition/.*,_debugbar/.*"
```

By default it is configured to send to an OpenTelemetry container running with the name `collector`. An example config
is supplied with placeholders for sending data to [Honeycomb](https://www.honeycomb.io/).
For the container:

The plan will be to add further spans within individual requests and have spans for the jobs and queued actions.
```yaml
collector:
image: otel/opentelemetry-collector-contrib
volumes:
- ./collector.yml:/etc/otelcol-contrib/config.yaml
```

And finally the config in `collector.yml`, adapt this as you need.

```yaml
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
http:
endpoint: 0.0.0.0:4318

processors:
batch:

exporters:
debug:

service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [debug]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [debug]
logs:
receivers: [otlp]
processors: [batch]
exporters: [debug]
```

## Contributing

It's an open source project and I'm happy to accept pull requests. I am terrible at UI and UX, which is why this is entirely using server-side rendering. If someone wants to use Vue/Laravel Livewire - please go ahead!
It's an open source project and I'm happy to accept pull requests. I am terrible at UI and UX, which is why this is
entirely using server-side rendering. If someone wants to use Vue/Laravel Livewire - please go ahead!

We have 100% test coverage, and would like to remain that way.

## Roadmap

Expand All @@ -111,8 +168,7 @@ The following features are on the roadmap:
- Better UI/UX. I'm currently using [tabler.io](https://tabler.io) and entirely server-side rendering.
- Full-featured API. There's a basic one to support seating plan refreshes. I need to refactor it and improve it.
- UI Customisation from Admin Pages. Currently the UI colours, branding is all either in the `.env` or compiled into the CSS at build.
- Unit Tests. This was very rapidly developed, I'm sorry!
- PHPCS and PHPStan. Should be aiming for PSR-12 and level 8 PHPStan.
- Static Analysis - We should be aiming for level 8 in PHPStan.

## Thanks

Expand Down
2 changes: 2 additions & 0 deletions app/Casts/SettingValue.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ class SettingValue implements CastsAttributes
*
* @param array<string, mixed> $attributes
*/

public function get(Model $model, string $key, mixed $value, array $attributes): mixed
{
if ($model->encrypted && $value !== null) {
Expand All @@ -26,6 +27,7 @@ public function get(Model $model, string $key, mixed $value, array $attributes):
*
* @param array<string, mixed> $attributes
*/

public function set(Model $model, string $key, mixed $value, array $attributes): mixed
{
if ($model->encrypted && $value !== null) {
Expand Down
2 changes: 0 additions & 2 deletions app/Console/Commands/SyncDiscordRoles.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@

namespace App\Console\Commands;

use App\Models\Event;
use App\Models\LinkedAccount;
use App\Models\SocialProvider;
use App\Models\TicketType;
use App\Models\User;
use App\Services\DiscordApi;
use Carbon\Carbon;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;

Expand Down
2 changes: 0 additions & 2 deletions app/Console/Commands/SyncTickets.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,7 @@

namespace App\Console\Commands;

use App\Models\LinkedAccount;
use App\Models\TicketProvider;
use App\Models\TicketType;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Log;

Expand Down
2 changes: 2 additions & 0 deletions app/Console/Commands/UpdateEventSeatingLock.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ class UpdateEventSeatingLock extends Command
* @var string
*
*/
protected $description = 'Update Event Seating Locks';

public function handle()
{
Event::where('seating_opens_at', '<=', Carbon::now())->chunk(100, function ($chunk) {
Expand Down
Loading
Loading