Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2254 commits
Select commit Hold shift + click to select a range
6fce553
fix(cisco/spaces): update seen locations
stakach Oct 31, 2024
a26fc09
fix(juniper/mist): origin coordinates are floats
stakach Nov 1, 2024
288ccfa
fix(floorsense\desks_websocket): remove lockers interface
stakach Nov 3, 2024
23c48a9
fix(cisco/meraki): add missing port state
stakach Nov 4, 2024
f100972
fix: S2Cell indexing
stakach Nov 4, 2024
468ccc9
feat(floorsense): implement locker location service
stakach Nov 4, 2024
3887378
fix(floorsense/locker_location_service): use PlaceLocker object
stakach Nov 4, 2024
db11077
fix(floorsense/locker_location_service): controllers binding
stakach Nov 4, 2024
f7af00a
fix(floorsense/locker_location_service): controllers binding
stakach Nov 5, 2024
e180362
fix(floorsense): consistent controller id typing
stakach Nov 5, 2024
42ca3b9
feat(vergesense/room_sensor): fix last_seen for people count
stakach Nov 6, 2024
e9664c4
feat(template_mailer): send email using metadata templates (#512)
chillfox Nov 6, 2024
cd0d00e
feat(place/desk_bookings): expand bookings with multiple assets
stakach Nov 6, 2024
e35c4f3
fix: harness (#522)
viv-4 Nov 7, 2024
6af4053
chore(shard.lock): bump deps
stakach Nov 7, 2024
5280940
feat(knx/lighting): bump add motion detection support
stakach Nov 7, 2024
93eace4
chore(cisco): trigger room_kit build (#523)
viv-4 Nov 8, 2024
8a48825
chore(place/logic_example): add comment
stakach Nov 10, 2024
e2046df
fix: remove deprecated spawn calls with same_thread: true
stakach Nov 11, 2024
7ee987a
fix(place/meet): joining rooms with merged outputs
stakach Nov 11, 2024
7a03793
fix(place/meet): joining rooms with merged outputs
stakach Nov 11, 2024
a0f5504
chore(shard.lock): bump ssh2 version
stakach Nov 12, 2024
1af7992
chore(shard.lock): bump dependencies
stakach Nov 13, 2024
f5193c9
feat(place\demo\test_ssh): example ssh usage
stakach Nov 14, 2024
7d94b84
feat(gallagher/zone_schedule): retry and record any errors
stakach Nov 14, 2024
5989cc2
fix(template_mailer): [PPT-1688] proxy qrcode methods (#524)
chillfox Nov 14, 2024
31c2805
feat(gallagher/zone_schedule): remain unlocked if there are people in…
stakach Nov 18, 2024
a9fbc11
chore(gallagher/zone_schedule): update door zone setting
stakach Nov 18, 2024
51bcb4d
fix(place/bookings): improve defaults
stakach Nov 18, 2024
1621355
chore(place/area_management): cast vs using not_nil!
stakach Nov 18, 2024
2d257be
fix(gallagher/zone_schedule): add sensor delayed lock timeout
stakach Nov 18, 2024
79b4c96
fix(place/area_management): filter out sensors without a position
stakach Nov 18, 2024
a2edf94
feat(cisco/spaces_room): driver for room local sensor data
stakach Nov 19, 2024
ba918d8
fix(cisco/spaces_room): compilation issues
stakach Nov 19, 2024
45e561b
fix(cisco/spaces_room): filter for current room
stakach Nov 19, 2024
6caeed9
feat(inner_range/integriti): fix site user created in
stakach Nov 20, 2024
7bb3d30
fix(inner_range/integriti): ensure partition id is set when creating …
stakach Nov 20, 2024
fc1cede
fix(inner_range/integriti): ensure partition id is set when updating
stakach Nov 20, 2024
303f7bd
chore(extron/matrix): fix spec
stakach Nov 20, 2024
f7a1667
feat(place/booking_check_in_helper): simplify system configuration
stakach Nov 20, 2024
66c391a
feat(place/bookings): add support for multiple calendars
stakach Nov 25, 2024
5f27e5d
feat(place/smtp): update mailer interface
stakach Nov 27, 2024
4ae9f69
feat(PPT-1348): Add functionality to fetch list of guests (#514)
grkek Nov 27, 2024
a0db099
fix(global_cache/gc_100): some devices don't respond to get_NET
stakach Nov 28, 2024
3c496d4
fix(global_cache/gc_100): change polling function
stakach Nov 28, 2024
22cdb77
fix(global_cache/gc_100): don't wait for response
stakach Nov 28, 2024
8042229
feat(place/room_booking_approval): always fetch from MS by default
w-le Nov 28, 2024
999ca9f
fix(place/room_booking_approval): rely on MSG subscriptions instead o…
w-le Nov 28, 2024
4c55f6d
revert(global_cache/gc_100): don't wait for response
stakach Nov 28, 2024
d5febe5
fix(place/attendee_scanner): testing external collection
stakach Dec 2, 2024
0d84a27
chore(inner_range/integriti): modify some routes
stakach Dec 2, 2024
47453b8
fix(global_cache/projector_screen): fix settings config
stakach Dec 3, 2024
1d23c5a
chore(ms/graph_api): default uri to graph.microsoft.com (no impact on…
w-le Dec 3, 2024
649229e
fix(place/attendee_scanner): invite guests as required
stakach Dec 3, 2024
ad918ab
chore: crystal tool format
stakach Dec 3, 2024
01189c6
fix(place/attendee_scanner): query should send unix times
stakach Dec 3, 2024
f78dd0f
fix(panasonic/camera/he_series): save % zoom
stakach Dec 3, 2024
f4089a9
fix(panasonic/camera/he_series): zoom should be a float
stakach Dec 3, 2024
e99c325
fix(place/attendee_scanner): ignore events that have ended
stakach Dec 3, 2024
9dbd0a7
fix(place/attendee_scanner): improve stats
stakach Dec 3, 2024
068a9d4
fix(place/attendee_scanner): add spec and fix booking creation
stakach Dec 3, 2024
aba2677
chore(place/attendee_scanner): use new driver version
stakach Dec 3, 2024
562ee26
fix(place/attendee_scanner): add on_load
stakach Dec 3, 2024
ee050f1
fix(place/attendee_scanner): use new driver version
stakach Dec 3, 2024
9ad0e00
chore: on_update is now called implicitly
stakach Dec 3, 2024
db18732
fix(inner_range/integriti): get user email
stakach Dec 4, 2024
cc9b529
fix(inner_range/integriti): don't error if no email configured
stakach Dec 4, 2024
0d1b929
fix(PPT-1540): Update settings with proper names (#521)
grkek Dec 4, 2024
05f9faf
fix(inner_range/integriti): use user routes for everything
stakach Dec 4, 2024
96db1e4
fix(panasonic/camera/he_series): zoom speeds
stakach Dec 6, 2024
eb8a2d4
feat(place/meet): add some configurable behaviours
stakach Dec 6, 2024
7159d5d
fix(place/meet): fix default mute
stakach Dec 6, 2024
6d9cd69
fix(place/meet): fix default mute
stakach Dec 6, 2024
0dd6f74
chore(place/meet): crystal tool format
stakach Dec 10, 2024
f5ca9cd
feat(place/bookings): basic custom_qr_url templating
stakach Dec 10, 2024
43111a9
chore(meet_readme.md): clarify joining modes
stakach Dec 10, 2024
2eb3e2d
fix(gallagher/rest_api): href not always returned
stakach Dec 10, 2024
0c2d6ce
fix(gallagher/rest_api): href not always returned
stakach Dec 11, 2024
25c13c5
fix(floorsense/locker_locations): use controller id instead of bank
stakach Dec 11, 2024
0e0c01b
fix(floorsense/locker_locations): ignore user provided bank_id
stakach Dec 11, 2024
83ff03a
feat(place/bookings): expose desired configuration
stakach Dec 11, 2024
2a0a850
feat(inner_range/integriti): add review functions
stakach Dec 11, 2024
8a646d6
fix(inner_range/integriti): sort by generated time
stakach Dec 11, 2024
86eebb0
fix(place/meet): warn about failed routing attempts
stakach Dec 11, 2024
dde9536
feat(floorsense/desks_websocket): improve debugging and desk info
stakach Dec 12, 2024
3a740f6
fix(mailers): #template_fields timezone handling (#526)
chillfox Dec 16, 2024
c8daf57
fix(template_mailer): handle Int64 (updated_at/created_at) when parsi…
chillfox Dec 16, 2024
d7b16ab
fix(template_mailer): default to using mailers zones for template loo…
chillfox Dec 17, 2024
059e6dc
feat(booking_notifier): unique template names (#529)
chillfox Dec 18, 2024
cf64272
feat(booking_notifier): unique template fields names (#530)
chillfox Dec 18, 2024
11219bc
feat(place/attendee_scanner): less redirection
stakach Dec 19, 2024
586b6a8
feat(place/demo/lockers): implement a virtual locker system
stakach Dec 19, 2024
94e9d6a
fix(place/demo/lockers): add debugging info
stakach Dec 19, 2024
6a04e85
fix(place/demo/lockers): raise on error
stakach Dec 19, 2024
c0dbfd7
fix(place/booking_notifier): filter booking_type on event based actions
w-le Dec 19, 2024
b7bac48
fix(place/demo/lockers): locker_id optional
stakach Dec 19, 2024
d9d0695
feat(auto_release_locker): [PPT-1725] auto release lockers on specifi…
naqvis Jan 7, 2025
a651523
chore(workflow): update artifact action version (#533)
viv-4 Jan 8, 2025
92b6804
feat(visitor_mailer): [PPT-1430] notify on induction accepted/decline…
chillfox Jan 9, 2025
8c0ea80
chore(floorsense/locker_location_service): require ordering
stakach Jan 9, 2025
059208e
chore(place/demo/lockers): metadata changes
stakach Jan 9, 2025
62f8c24
chore(place/logic_example): use all helper
stakach Jan 12, 2025
30ee5f2
chore(place/logic_example): add a default
stakach Jan 13, 2025
a512b7f
chore(place/logic_example): add webhook handler
stakach Jan 13, 2025
c630e96
feat(booking_approval_workflows): unique template names (#534)
chillfox Jan 14, 2025
078a53d
feat(gallagher): add group access helper functions
stakach Jan 15, 2025
3b64744
feat(gallagher/rest_api): improve debugging
stakach Jan 15, 2025
8ad6245
fix(gallagher/rest_api_models): access group fields
stakach Jan 15, 2025
9938e18
feat(gallagher/rest_api): add zone access interface
stakach Jan 15, 2025
886e138
fix(place/meet): don't simulate on remote systems
stakach Jan 16, 2025
e0e4fe6
fix(place/meet): send simulate to remote systems
stakach Jan 16, 2025
cf2af31
fix(place/meet): hint if called from joining room
stakach Jan 16, 2025
3ec57c5
fix(place/meet): ensure rooms are powered on
stakach Jan 16, 2025
deafc45
fix(gallagher/rest_api): add access group href
stakach Jan 16, 2025
6d03821
feat(gallagher/rest_api): update interface
stakach Jan 16, 2025
1b3720b
feat(bookings/grant_area_access): add driver
stakach Jan 16, 2025
4273ab2
fix(bookings/grant_area_access): query level metadata
stakach Jan 16, 2025
36170e7
chore(place/area_management): better defaults
stakach Jan 17, 2025
c61ccfe
fix(place/desk_bookings_locations): improve defaults
stakach Jan 17, 2025
aa992a3
chore(place/location_services): better defaults
stakach Jan 17, 2025
31aabe8
fix(place/desk_bookings_locations): reduce chances of failure
stakach Jan 17, 2025
8ae7604
fix(place/staff_api): systems in building should only map level zones
stakach Jan 17, 2025
b4be9a3
fix(place/room_booking_approval_alt): Always notify Host when room ac…
w-le Jan 17, 2025
d2307e4
chore(crestron): minor refactor
stakach Jan 20, 2025
08d6325
fix(gallagher/rest_api): get_access_group_members
stakach Jan 20, 2025
df915c1
fix(place/bookings/grant_area_access): ensure users can access office…
stakach Jan 20, 2025
b896185
feat(bookings/grant_area_access): minimize event processing
stakach Jan 20, 2025
a8810fd
fix(bookings/grant_area_access): logging and on_update on load
stakach Jan 20, 2025
e3cea43
fix(knx/baos_lighting): area is an integer
stakach Jan 21, 2025
f4b3ad9
feat(gallagher/rest_api): add user emails to events
stakach Jan 21, 2025
705ae90
fix(place/booking_notifier): filter booking_type on event based actio…
KesterJJ Jan 23, 2025
77b9c6c
feat(bookings/grant_area_access): add username lookup setting
stakach Jan 28, 2025
43066b5
chore(place/booking_approval_workflows): format
stakach Jan 28, 2025
86b2b6e
feat(inner_range/integriti): add csv sync field
stakach Jan 28, 2025
62997d2
feat(inner_range/integriti_user_sync): apply CSV sync field
stakach Jan 30, 2025
2000554
chore(shard.lock): bump deps
stakach Feb 3, 2025
9297e86
feat(place/staff_api): deleted flag on query bookings
stakach Feb 3, 2025
5f7bb52
fix(place/booking_model): include additional fields
stakach Feb 3, 2025
8ff676d
fix(template_mailer): reduce noise in logs (#537)
chillfox Feb 4, 2025
41af5b5
feat(at_capacity_mailer): [PPT-1721] assets fully booked email notifi…
chillfox Feb 4, 2025
5b64be3
feat: update locker interface
stakach Feb 4, 2025
0aa35b8
feat(place/staff_api): add support for booking instances
stakach Feb 4, 2025
809f9c9
fix(bookings/locker_booking_sync): fix owner lookup
stakach Feb 4, 2025
da28965
fix(bookings/locker_booking_sync): fix booking creation
stakach Feb 5, 2025
4894ee3
fix(bookings/locker_booking_sync): compilation error
stakach Feb 5, 2025
6f20c14
fix(bookings/locker_booking_sync): only sync when necessary
stakach Feb 5, 2025
6c9d1b7
feat(auto_release): [PPT-1835] skip_created_after_start and skip_same…
chillfox Feb 5, 2025
5c552b6
fix(locker_booking_sync): use check-in helper
stakach Feb 5, 2025
6ab16f4
chore(locker_booking_sync): improve logging
stakach Feb 5, 2025
f64068d
feat(bookings): [PPT-1823] use event visibility to control exposure (…
naqvis Feb 6, 2025
b9f8125
chore(booking_check_in_helper_readme): improve docs
stakach Feb 6, 2025
3ccfd49
fix(locker_booking_sync): only release if there is no new allocation
stakach Feb 7, 2025
91735ea
fix(place/auto_release): take into account booking instance
stakach Feb 7, 2025
19645bd
chore(locker_booking_sync): make allocation_id unique on demo lockers
stakach Feb 7, 2025
9ca913f
fix(demo/lockers): improve uniqueness
stakach Feb 7, 2025
73523d5
feat(locker_booking_sync_spec): initial work on spec
stakach Feb 9, 2025
45cc877
fix(place/booking_approver): don't approve if rejected
stakach Feb 9, 2025
94679be
chore(locker_booking_sync): initial specs
stakach Feb 10, 2025
cbb7388
fix(inner_range/integriti_hid_virtual_pass): add spec
stakach Feb 10, 2025
da61624
feat(integriti_hid_virtual_pass): add account check
stakach Feb 10, 2025
8cbbc57
fix(integriti_hid_virtual_pass): login_name sometimes empty
stakach Feb 10, 2025
d70f5cb
fix(integriti_hid_virtual_pass): user presence check
stakach Feb 10, 2025
70ba430
chore(locker_booking_sync_spec): add additional tests
stakach Feb 10, 2025
bb7e5ea
feat(auto_release_locker): simplify deployment requirements
stakach Feb 10, 2025
4b84e30
feat(inner_range/integriti): add license custom field
stakach Feb 10, 2025
347bfd5
feat(inner_range/integriti): add card number exclusions
stakach Feb 11, 2025
94bb937
feat(staff_api): add auth_authority request
stakach Feb 11, 2025
0094c17
feat(place/attendee_scanner): reduce config required
stakach Feb 11, 2025
3e2f89d
chore(attendee_scanner): update description
stakach Feb 11, 2025
33c8e58
feat(room_at_capacity_mailer): [PPT-1721|PPT-1852] notify when people…
chillfox Feb 12, 2025
3846226
chore(shard.lock): bump dependencies
stakach Feb 13, 2025
7fa2a60
feat(integriti_user_sync): ensure number plate configured
stakach Feb 14, 2025
11ee7fd
feat(inner_range/integriti): add name filters to user query
stakach Feb 14, 2025
c8784bf
feat(integriti_user_sync): add car park access details
stakach Feb 14, 2025
16e5a00
feat(place/meet): function with disabled devices
stakach Feb 14, 2025
ceb7ada
feat(inner_range/integriti): add details to guest access response
stakach Feb 17, 2025
1b3bc3a
feat(integriti_visitor_access): initial commit
stakach Feb 17, 2025
a7ad840
chore: update harness message
stakach Feb 17, 2025
4f5124e
chore(shard.lock): bump deps
stakach Feb 17, 2025
dce6973
fix(integriti_visitor_access): split models into a separate file
stakach Feb 17, 2025
250a45e
fix(place/bookings): improve defaults
stakach Feb 18, 2025
4571ee0
fix(at_capacity_mailer): #check_capacity (#541)
chillfox Feb 18, 2025
fd11c14
feat(integriti_booking_check_in): add driver
stakach Feb 19, 2025
a9d4758
fix(inner_range/integriti): review filter values need to be integers
stakach Feb 19, 2025
aeef0ea
feat(security_booking_check_in): add driver
stakach Feb 20, 2025
324031a
fix(floorsense/locker_location_service): support staff can manage loc…
stakach Feb 26, 2025
04b7022
feat(bookings): expose next host email
stakach Feb 27, 2025
6ff2503
chore(inner_range/integriti): document event ids
stakach Feb 27, 2025
5c4038d
feat(gallagher/zone_schedule): grant hosts zone control
stakach Feb 27, 2025
2caccf4
feat(place/bookings): allow templated QR codes
stakach Feb 27, 2025
6b69c8a
fix(inner_range/integriti): guest may not enter a last name
stakach Feb 27, 2025
d1c8fb4
fix(place/bookings): use @calendar_id as it may differ from system.email
stakach Feb 28, 2025
32e985b
feat(cloud_xapi): PPT-1818 added webx cloud xapi driver (#542)
naqvis Feb 28, 2025
8e4cf17
feat(place/booking_notifier): pass booking instance
stakach Mar 3, 2025
2118e0b
feat(place/booking_approval_workflows): pass booking instance
stakach Mar 3, 2025
f6fe8ba
fix(place/booking_approver): take into account booking instance
stakach Mar 3, 2025
822d78f
fix(gallagher/zone_schedule): add cardholder id
stakach Mar 3, 2025
c5905ac
feat(gallagher/rest_api): return access zone details
stakach Mar 3, 2025
a9d5909
feat(gallagher/rest_api): add get_access_zone and door requests
stakach Mar 3, 2025
47e7858
fix(gallagher/zone_schedule): need to use access_groups not access_zones
stakach Mar 3, 2025
05496e4
feat(place/staff-api): add booking extension data update
stakach Mar 4, 2025
c0a8e28
feat(locker_booking_sync): use ext data instead of process_state
stakach Mar 4, 2025
8b0b5d1
feat(inner_range/integriti_user_sync): users can have multiple number…
stakach Mar 5, 2025
45160b2
fix(inner_range/integriti_user_sync): limit to a single number plate …
stakach Mar 5, 2025
1bea20d
feat(inner_range/integriti_user_sync): store last result of run
stakach Mar 5, 2025
652f087
fix(inner_range/integriti_user_sync): handle missing keys
stakach Mar 6, 2025
618b958
fix(inner_range/integriti_user_sync): registered licence plates shoul…
stakach Mar 6, 2025
d5eefe8
feat(floorsense/locker_location_service): add release all function
stakach Mar 6, 2025
fea02d8
feat(place/demo/lockers): add release_all_lockers function
stakach Mar 6, 2025
5135bc2
fix(place/booking_approver): approve recurring master
stakach Mar 6, 2025
157b44b
fix(locker_booking_sync): staff api user may not exist
stakach Mar 9, 2025
ed1cf8d
fix(floorsense/locker_location): fix active status flag
stakach Mar 10, 2025
29b6ae4
fix(place/booking_approver): only approve master bookings
stakach Mar 10, 2025
d4d2ab7
feat(bookings/grant_area_access): adds support for whitelisting secur…
stakach Mar 10, 2025
c4c898b
feat(cloud_xapi): PPT-1818 phase#2 added UI extension commands (#543)
naqvis Mar 10, 2025
367f999
feat(floorsense/desks_websocket): add desk_details function
stakach Mar 11, 2025
5be759a
feat(place/meet): expose channel details
stakach Mar 11, 2025
16901a6
chore(avedia_player/m93xx): strip out channel_details
stakach Mar 11, 2025
f08c8b6
feat(auto_release): [PPT-1905|PPT-1802] improve logging, notify after…
chillfox Mar 12, 2025
1e900c9
fix(room_at_capacity_mailer): [PPT-1902] json parse type error (#544)
chillfox Mar 13, 2025
a2361a6
refactor: [PPT-1818] added response body in raised exception
naqvis Mar 13, 2025
a945571
feat(meet): mute on shutdown
stakach Mar 13, 2025
dff9428
feat(comm_box/v3x_v4): add driver
stakach Mar 13, 2025
8aac830
refactor: [PPT-1818] added debug payload setting to toggline payload …
naqvis Mar 17, 2025
d169828
fix(cloud_xapi/models): Capitalize argument and value
naqvis Mar 17, 2025
ce92ee3
fix(cloud_xapi/models): Capitalize argument and value
naqvis Mar 17, 2025
ca964c4
feat: PPT-1818 added configuration get/set methods
naqvis Mar 17, 2025
3da0d01
fix(cloud_xapi): updated content-type for patch calls
naqvis Mar 17, 2025
f57cadc
fix(exterity/r93xx): login process
stakach Mar 18, 2025
e7ef778
fix(avedia_player/r93xx): add some additional debugging
stakach Mar 18, 2025
0cfedfc
fix(place/staff_api): resolve deprecation warning
stakach Mar 18, 2025
36b76c9
fix(crestron/occupancy_sensor): improve long polling
stakach Mar 19, 2025
3fecd4d
fix(crestron/occupancy_sensor): reduce memory usage
stakach Mar 19, 2025
db9eca2
chore: test new interface
stakach Mar 20, 2025
f4577e1
chore(crestron/occupancy_sensor): add memory profiling
stakach Mar 21, 2025
c2b0ba0
chore: update sensor interface
stakach Mar 21, 2025
50f2466
chore(crestron/occupancy_sensor): memory profiling
stakach Mar 21, 2025
a303971
fix(crestron/occupancy_sensor): prefer connection reuse
stakach Mar 21, 2025
09670d8
chore: bump dependencies with shared tls context
stakach Mar 24, 2025
95fbdc1
chore(place/staff_api): add memory tooling
stakach Mar 24, 2025
c9635aa
fix(place/staff_api): share a placeos client
stakach Mar 24, 2025
dee79c1
fix(place/staff_api): prevent race condition configuring placeos_client
stakach Mar 25, 2025
0ec1238
fix(place/staff_api): remove on_load callback
stakach Mar 25, 2025
37cd591
chore(place/staff_api): remove perf_tools
stakach Mar 25, 2025
7b781cf
feat(gallagher/zone_schedule): add feature to disable unlock
stakach Mar 26, 2025
0d54e46
feat(bookings/grant_area_access): optionally email any issues
stakach Mar 26, 2025
dcb3ea1
fix(bookings/grant_area_access): email formatting
stakach Mar 26, 2025
0ed91eb
chore(gallagher/zone_schedule): add more logging
stakach Mar 27, 2025
24cfe58
fix(gallagher/zone_schedule): key check algorithm
stakach Mar 27, 2025
34f6d62
feat: PPT-1828 add teams channel message integration
naqvis Mar 27, 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
  •  
  •  
  •  
61 changes: 61 additions & 0 deletions .ameba.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
Excluded:
- repositories/**/*.cr

Lint/DebugCalls:
Excluded:
- drivers/**/*_spec.cr

# NOTE: These should all be reviewed on an individual basis to see if their
# complexity can be reasonably reduced.
Metrics/CyclomaticComplexity:
Description: Disallows methods with a cyclomatic complexity higher than `MaxComplexity`
MaxComplexity: 10
Excluded:
- drivers/helvar/net.cr
- drivers/mulesoft/booking_api.cr
- drivers/samsung/displays/mdc_protocol.cr
- drivers/cisco/dna_spaces.cr
- drivers/cisco/meraki/dashboard.cr
- drivers/cisco/switch/snooping_catalyst.cr
- drivers/gantner/relaxx/protocol_json.cr
- drivers/place/bookings.cr
- drivers/place/area_management.cr
- drivers/place/smtp.cr
- drivers/hitachi/projector/cp_tw_series_basic.cr
- drivers/panasonic/projector/nt_control.cr
- drivers/lumens/dc193.cr
Enabled: false
Severity: Convention

Lint/UselessAssign:
Description: Disallows useless variable assignments
# NOTE: Not enabled due to the extremely large hit count.
# Discussion with driver authors on whether this pattern is intended.
Enabled: false
Severity: Warning

Style/VerboseBlock:
Description: Identifies usage of collapsible single expression blocks.
ExcludeCallsWithBlock: false
ExcludeMultipleLineBlocks: true
ExcludeOperators: false
ExcludePrefixOperators: false
ExcludeSetters: true
Enabled: false
Severity: Convention

Style/VariableNames:
Description: Enforces variable names to be in underscored case
# NOTE: Not enabled due to the extremely large hit count.
# Discussion with driver authors on whether this pattern is intended.
Enabled: false
Severity: Convention

# NOTE: These appear to be triggered by assignment in case expressions, could be an ameba bug
Lint/ShadowingOuterLocalVar:
Description: Disallows the usage of the same name as outer local variables for block
or proc arguments.
Excluded:
- drivers/cisco/switch/snooping_catalyst.cr
Enabled: true
Severity: Warning
33 changes: 33 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
name: Bug report
about: Create a report to help us improve
title: 'Bug: A concise description of the behaviour'
labels: bug
assignees: ''

---

**Describe the bug**

A clear and concise description of what the bug is.

**To Reproduce**

Steps to reproduce the behaviour or a minimal code snippet that demonstrates the behaviour.

**Expected behaviour**

A clear and concise description of what you expected to happen.

**Screenshots or a paste of terminal output**

If applicable, add screenshots to help explain your problem.

**Versions (please complete the following information):**

- Output of `$ crystal version`
- Driver version [e.g. 3.x]

**Additional context**

Add any other context about the problem here.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/driver_migration.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: Driver Migration
about: Migrate existing Ruby Engine Driver to Crystal
title: 'Driver Migration: Migrate existing Ruby driver'
labels: driver
assignees: ''

---

**Driver to be Migrated**

Information about the driver to be migrated.

**Link to Existing Driver**

Link to existing Driver on Ruby Drivers Repo.

**Additional context**

Add any other context about the problem here.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/driver_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Driver Request
about: Request a new driver to be created
title: 'Driver Request: Information required to create a new driver'
labels: driver
assignees: ''

---

**Driver Type**

Logic/Device/SSH/Websocket

**Manufacturer**

Manufacturer of device, software or service

**Model/Service**

Model or Service

**Link to or Attach Device API or Protocol**

If applicable, add screenshots to help explain your problem.

**Describe any desired functionality**

- Control all aspects of device

**Additional context**

Add any other context about the driver request here.
24 changes: 24 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: Feature request
about: Suggest an idea for this project
title: 'RFC: Concise description of desired feature'
labels: ''
assignees: ''

---

**Is your feature request related to a problem? Please describe.**

A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

**Describe the solution you'd like**

A clear and concise description of what you want to happen.

**Describe alternatives you've considered**

A clear and concise description of any alternative solutions or features you've considered.

**Additional context**

Add any other context or screenshots about the feature request here.
6 changes: 6 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
48 changes: 48 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build and Publish Drivers
on:
push:
branches: [master]

env:
CRYSTAL_VERSION: latest
PLACE_BUILD_TAG: nightly

jobs:
build:
name: Build
runs-on: ubuntu-latest
environment: Build
steps:
- uses: actions/checkout@v4

# Binary Cache Logic
#############################################################################################

- uses: actions/cache@v3
with:
path: binaries
key: drivers-${{ env.CRYSTAL_VERSION }}-${{ github.run_id }}
restore-keys: drivers-${{ env.CRYSTAL_VERSION }}-

#############################################################################################

- uses: FranzDiebold/github-env-vars-action@v2 # https://github.com/github/feedback/discussions/5251
- name: Build Drivers
run: |
./harness build \
--discover \
--strict-driver-info \
--repository-uri https://github.com/${{ github.repository }} \
--repository-path ./repositories/local \
--ref ${{ github.sha }} \
--branch ${{ github.ref_name }}
env:
CRYSTAL_VERSION: ${{ env.CRYSTAL_VERSION }}
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_SECRET: ${{ secrets.AWS_SECRET }}
AWS_KEY: ${{ secrets.AWS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}
# CLOUD_BUILD_SERVER: CLOUD_BUILD_SERVICE_ROOT_ENDPOINT
# GIT_TOKEN: GIT_TOKEN_FOR_PRIVATE_REPO_IF_REQUIRED
PLACE_BUILD_TAG: ${{ env.PLACE_BUILD_TAG }}
BUILD_SERVICE_DISABLED: false
136 changes: 136 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
name: CI

on:
push:
branches: [master]
pull_request:
branches: [master]
schedule:
- cron: "0 6 * * 1"

env:
PARALLEL_TESTS: 10
PARALLEL_BUILDS: 2

jobs:
docs:
if: false # Temporarily disable as docs just _do not work_ for a driver
name: "Crystal Docs"
runs-on: ubuntu-latest
continue-on-error: true
container: crystallang/crystal
steps:
- uses: actions/checkout@v4
- name: Install Shards
run: shards install --ignore-crystal-version
- name: Docs
run: crystal docs

style:
name: "Style"
uses: PlaceOS/.github/.github/workflows/crystal-style.yml@main

subset-report:
name: "Subset Report - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }}"
runs-on: ubuntu-latest
continue-on-error: ${{ !matrix.stable }}
strategy:
fail-fast: false
matrix:
stable: [true]
crystal:
- latest
include:
- stable: false
crystal: nightly
steps:
- id: changes
uses: trilom/file-changes-action@v1.2.4
with:
output: ' '
- uses: actions/checkout@v4
- name: Cache shards
uses: actions/cache@v3
with:
path: lib
key: ${{ hashFiles('shard.lock') }}
- name: Driver Report
# Skip subset report if dependencies have changed
if: ${{ !contains(steps.changes.outputs.files, 'shard.yml') && !contains(steps.changes.outputs.files, 'shard.lock') }}
run: |
./harness \
report \
--verbose \
--tests=${{ env.PARALLEL_TESTS }} \
--builds=${{ env.PARALLEL_BUILDS }} \
${{ steps.changes.outputs.files }}
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_REGION: ${{ secrets.AWS_REGION }}
BUILD_SERVICE_DISABLED: true
CRYSTAL_VERSION: ${{ matrix.crystal }}
- name: Upload failure logs
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: logs-${{ matrix.crystal }}-${{ github.sha }}
path: .logs/*.log

full-report:
name: "Full Report - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }}"
needs: subset-report
runs-on: ubuntu-latest
continue-on-error: ${{ !matrix.stable }}
strategy:
fail-fast: false
matrix:
stable: [true]
crystal:
- latest
include:
- stable: false
crystal: nightly
steps:
- uses: actions/checkout@v4

- name: Cache shards
uses: actions/cache@v3
with:
path: lib
key: ${{ hashFiles('shard.lock') }}

# Binary Cache Logic
#############################################################################################

- uses: actions/cache@v3
with:
path: binaries
key: drivers-${{ env.CRYSTAL_VERSION }}-${{ github.run_id }}
restore-keys: drivers-${{ env.CRYSTAL_VERSION }}-

#############################################################################################

- name: Driver Report
run: |
./harness \
report \
--verbose \
--tests=${{ env.PARALLEL_TESTS }} \
--builds=${{ env.PARALLEL_BUILDS }}
env:
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_REGION: ${{ secrets.AWS_REGION }}
BUILD_SERVICE_DISABLED: false
CRYSTAL_VERSION: ${{ matrix.crystal }}
- name: Show build container logs
if: ${{ failure() }}
run: docker compose logs build
- name: Show drivers container logs
if: ${{ failure() }}
run: docker compose logs drivers
- name: Upload failure logs
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: logs-${{ matrix.crystal }}-${{ github.sha }}
path: .logs/*.log
24 changes: 24 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Deploy docs

on:
push:
branches: [ master ]

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: crystal-lang/install-crystal@v1
with:
crystal: latest
- name: "Install shards"
run: shards install --skip-postinstall --skip-executables
- name: "Generate docs"
run: crystal docs
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
Loading