Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2342 commits
Select commit Hold shift + click to select a range
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
42a4be7
chore(shard.lock): bump dependencies
stakach Mar 27, 2025
f857ee9
chore(shard.lock): bump dependencies
stakach Mar 28, 2025
9e0ce97
chore(demo/lockers): security level is support
stakach Mar 28, 2025
f7dae49
fix(shard.lock): driver dependency
stakach Mar 28, 2025
1a28482
chore(shard.lock): fix issue with driver lib
stakach Mar 28, 2025
7485277
feat(place/meet): improve node already exists error
stakach Mar 28, 2025
b590b58
fix(floorsense/desk_list): handle controllers lacking desk api (#550)
viv-4 Mar 28, 2025
49f38fd
feat: add booking_checkin_notifier driver
stakach Mar 31, 2025
ab38095
chore(place/staff_api): add some debugging output
stakach Mar 31, 2025
6537a8a
feat(place/staff_api): add asset_id and limit params to query_bookings
stakach Mar 31, 2025
ace2366
feat(place/staff_api): add period_end_default_in_min setting
stakach Mar 31, 2025
8a7acb2
fix(floorsense/desks_websocket): sync_locker_list ignoring desks wher…
stakach Apr 2, 2025
614ddbe
feat(auto_release): [PPT-1903|PPT-1901|PPT-1900|MT-346] more settings…
chillfox Apr 2, 2025
5af2b74
feat(cisco/xapi): only fetch new auth token when needed, add workspac…
naqvis Apr 2, 2025
c8f41b6
fix(qsc/q_sys_remote): better handling of mutes
stakach Apr 2, 2025
875ba67
feat(place/meet): add support for modules with a . in the name
stakach Apr 3, 2025
80ba1b6
chore(bookings/grant_area_access): ensure latest driver lib
stakach Apr 4, 2025
ffbec18
chore(place/staff_api): add queue size to introspection
stakach Apr 7, 2025
fcdf823
feat(place/desk_bookings_locations): include map_ids
stakach Apr 7, 2025
eef752d
fix(gallagher/zone_schedule): only apply changes in zone state
stakach Apr 10, 2025
26d4e49
feat(cisco/led_sync): New logic driver to sync Cisco Webex Nagivator …
w-le Apr 10, 2025
5dde342
feat(place/staff_api): add domain helper
stakach Apr 14, 2025
12b18af
fix(shard.lock): bump crystal client
stakach Apr 14, 2025
856320b
fix(crestron/nvx_tx): improve sync detection feedback
stakach Apr 15, 2025
7186894
Revert "fix(crestron/nvx_tx): improve sync detection feedback"
stakach Apr 15, 2025
d808aa0
chore(crestron): bump versions
stakach Apr 15, 2025
e3dafdc
chore(calendar): bump version
stakach Apr 15, 2025
249a17f
feat: update to use decimal codes and start from checkin time
stakach Apr 16, 2025
1ac2fc5
chore(place/room_booking_approval): delete useless alternate version
w-le Apr 16, 2025
71f947b
chore: bump driver version
stakach Apr 16, 2025
dd69e4a
feat(crestron): nvx osd and updates parsing
stakach Apr 16, 2025
77a21bc
fix(gallagher/zone_schedule): don't save current state
stakach Apr 16, 2025
2dc3f90
feat(williams_av/wave_cast_fm): add hearing notice text
stakach Apr 17, 2025
f060078
feat(place/meet): route on join and mic room mutes
stakach Apr 17, 2025
07b9d6b
feat(place/meet): add a local_inputs status
stakach Apr 17, 2025
0fc45b8
feat(place/meet): provide bindings for local camera lists
stakach Apr 17, 2025
f666d69
feat(epson/proj): optionally poll video/audio mute. As it is unsoppor…
w-le May 5, 2025
74498ff
feat(epson/proj): handle lamp hrs responses with a space
w-le May 5, 2025
856448c
chore(epson/proj): Clearer logging and var names
w-le May 5, 2025
2597079
revert(0fc45b8): local camera bindings need e2e test first. See PR
w-le May 5, 2025
3b7fd1e
feat(place/meet): power on preview_outputs on startup (#556)
w-le May 6, 2025
64dd48f
feat(epson/proj): optionally disable muting. potentially fix scope bu…
w-le May 6, 2025
4232c51
fix(epson/proj): handle buggy '::::PWR' response from device
w-le May 6, 2025
d28ac75
feat(place/meet): provide bindings for local camera lists (#558)
w-le May 12, 2025
4341c27
feat(place/meet): mute microphones on shutdown
stakach May 12, 2025
3c50c17
feat(place/meet): filter available cameras to cam type inputs
stakach May 12, 2025
9be386f
feat(place/meet): ensure video unmuted on route
stakach May 12, 2025
76614fb
feat(place/meet): new room accessory format
stakach May 13, 2025
66e272c
feat(place/meet): add accessory execution helper
stakach May 13, 2025
71622c4
feat(place/meet): add breakdown actions on join modes
stakach May 13, 2025
0296aef
feat(tv_one): add window stacker logic
stakach May 14, 2025
75fb1a2
feat(place/bookings): syllabus_plus helper to detect config errors
stakach May 14, 2025
abc91e1
fix(place/bookings): syllabus_plus_resource_check add rand sleep
stakach May 14, 2025
87c2bac
fix(place/bookings): improve syllabus plus check error message
stakach May 14, 2025
5d965a1
chore(shard.lock): bump driver shard
stakach May 15, 2025
dc8ed95
fix(place/meet): expose room mutes to mic controls
stakach May 15, 2025
6f05b6c
chore(place/meet_readme): document join breakdowns
stakach May 16, 2025
827fe4f
fix(shard.lock): bump driver lib
stakach May 16, 2025
39e5174
chore(README): update notes on driver dev tooling url
stakach May 19, 2025
8399527
feat(vergesense_api): fix last reported sensor timestamp
stakach May 20, 2025
014bdf3
feat(vergesense_api): fix space timestamp
stakach May 20, 2025
f9bcb52
feat(exterity/avedia_player/m93xx): add menu shell support
stakach May 20, 2025
bb5224c
fix(amx/svsi): enumerate virtual switcher properly
stakach May 21, 2025
8e8cc53
feat(crestron): add basic series4 monitoring driver
stakach May 21, 2025
b4bda03
feat(visitor_mailer): [PPT-2012] visitor jwt + kiosk url (#557)
chillfox May 22, 2025
ad81990
fix: update libssh2 for better event loop compatibility
stakach May 26, 2025
f055578
fix(exterity/m93): bump libssh2
stakach May 26, 2025
c7d2d98
fix(philips/dynalite): don't retry comms
stakach May 26, 2025
a0beb40
fix(tv_one/window_stacker): display binding name
stakach May 27, 2025
65ab0d0
feat(place/meet): add unroute_all, exec accessories on source system
stakach May 27, 2025
1b4d273
fix(place/meet): available_accessories needs to be stored locally
stakach May 27, 2025
ccb6296
fix(place/meet): missing return in accessory exec
stakach May 27, 2025
5146435
fix(place/meet): mic_room_selection should search available mics
stakach May 28, 2025
21337ea
feat(place/meet): allow multiple mutes for room control
stakach May 28, 2025
cb3f779
fix(place/meet): merged outputs should not be displayed
stakach May 28, 2025
b878a98
fix(place/booking_check_in_helper): use calendar module to get user d…
stakach May 29, 2025
23aea60
fix(visitor_mailer.cr): use calendar over staff_api driver
stakach May 29, 2025
b8cf6aa
Revert "fix(visitor_mailer.cr): use calendar over staff_api driver"
stakach May 29, 2025
f2428a0
feat: add middle_atlantic/rack_link driver (#559)
stakach Jun 2, 2025
a60e5f2
chore(middle_atlantic/rack_link): add documentation link
stakach Jun 2, 2025
81ecae9
feat(bookings/grant_area_access): add some whitelist helpers
stakach Jun 3, 2025
40f4335
fix(bookings/grant_area_access): minor tweaks to helpers
stakach Jun 3, 2025
23ce499
fix(bookings/grant_area_access): ensure no duplicates in whitelist
stakach Jun 3, 2025
913ff6e
fix(bookings/grant_area_access): sorting whitelist
stakach Jun 3, 2025
2206b28
fix(place/meet): volume changes should be proxied to remote rooms
stakach Jun 4, 2025
a552267
feat(sony): add Bravia REST API driver
Jun 11, 2025
0297419
fix specs
stakach Jun 13, 2025
672621f
fix: use `status?` helper so the value is the correct type
stakach Jun 13, 2025
d31815a
fix(sony/bravia): move to correct folder
w-le Jul 28, 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