Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1895 commits
Select commit Hold shift + click to select a range
98caf3e
feat(visitor_mailer): don't email staff as guests
stakach Sep 22, 2023
35a767d
fix(visitor_mailer): downcase guest email
stakach Sep 22, 2023
71f2ba2
fix(placeos/visitor-mailer): determine host name with calendar driver…
w-le Sep 22, 2023
ab9a5ae
feat(placeos/room-events): add list_users func (#461)
w-le Sep 22, 2023
0230e9c
fix(mulesoft): change default ssl settings (#342)
chillfox Sep 22, 2023
c7de061
fix(gallagher): don't fail if doors endpoint unavaialble
stakach Sep 23, 2023
b9d10ff
feat(bookings): add an last_event_notification hook
stakach Sep 26, 2023
78872aa
feat(place/bookings): prevent millisecond unix times
stakach Sep 29, 2023
e73ea45
feat(bookings): allow early check-in
stakach Oct 2, 2023
4466fc0
fix(johnson control) send command headers (#455)
MarioFavalliR Oct 3, 2023
14a6cba
feat(microsoft/graph): new driver for direct ms graph api calls (#410)
w-le Oct 3, 2023
f3449d5
Add Customer endpoint to the Stripe API (#364)
grkek Oct 3, 2023
6f32611
chore: crystal tool format and shards update
stakach Oct 3, 2023
0d9cf5d
feat(keycloak): add keycloak rest api
stakach Oct 3, 2023
86f5017
feat(keycloak): work with passed in token
stakach Oct 4, 2023
9a21320
fix(bookings): ensure we're monitoring the correct sub id [PPT-871]
stakach Oct 6, 2023
fbe6bb6
feat(floorsense): improve error response
stakach Oct 12, 2023
53ed30e
chore(shard.lock): driver version
stakach Oct 12, 2023
def9588
feat(place/llm): implement LLM driver interaction framework
stakach Oct 13, 2023
d3ac196
feat: add example LLM chat capability
stakach Oct 13, 2023
28921a9
fix(place/llm): migrate specs to updated interface
stakach Oct 13, 2023
3474f42
feat(place/llm): expose new_chat via bindings
stakach Oct 17, 2023
b680fba
feat(place/llm): update to LLM interface
stakach Oct 18, 2023
4a53733
feat(place/llm): use status instead of function calls
stakach Oct 18, 2023
9c8ab27
feat(llm/schedule): initial work on user schedules
stakach Oct 18, 2023
c481f43
feat(llm/schedule): add some debugging
stakach Oct 18, 2023
06cc420
feat(llm/schedule): add common calendaring tasks
stakach Oct 19, 2023
5ae08e1
fix(llm/schedule): ensure starting and ending times are set
stakach Oct 19, 2023
d5bd9b1
fix(llm/schedule): ensure starting and ending times are set
stakach Oct 19, 2023
abf2015
chore(llm/schedule): provide debugging
stakach Oct 19, 2023
198386c
chore(llm/schedule): improve debugging
stakach Oct 19, 2023
46846b4
fix(llm/schedule): attempt to resolve event creation
stakach Oct 19, 2023
171880e
fix(llm/schedule): attempt to resolve event creation
stakach Oct 19, 2023
dff1eb9
fix(llm/schedule): allow conference type to be nil
stakach Oct 19, 2023
40353e3
chore(llm/schedule): simplify schedules
stakach Oct 19, 2023
a7ea776
feat(llm/schedule): restructure schedules
stakach Oct 19, 2023
5c953f6
feat(llm/schedule): tweak event creation
stakach Oct 19, 2023
10042bf
fix(llm/schedule): ensure timezone set on start and end times
stakach Oct 19, 2023
cd89fed
fix(llm/schedule): ensure timezone on start and end times
stakach Oct 19, 2023
016e8e4
fix(llm/schedule): updating a meeting to be all day
stakach Oct 19, 2023
c712fda
feat(llm/schedule): add directory lookup for staff members
stakach Oct 19, 2023
e544ae4
fix(llm/schedule): clarify date formats
stakach Oct 19, 2023
3479389
feat(gobright/api): add GET spaces/state request (#465)
w-le Oct 20, 2023
8743bb1
feat(setup_breakdown): add event setup/breakdown driver (#464)
chillfox Oct 23, 2023
f395908
fix(EventSetupBreakdownTime): class name (#466)
chillfox Oct 23, 2023
1043c30
feat(delta/api): add debug
grkek Oct 23, 2023
9e4bd40
fix(delta/api): auth header
grkek Oct 23, 2023
0967072
feat(delta/api): more debug
w-le Oct 23, 2023
353fcf5
chore(delta/api): Accept header
grkek Oct 23, 2023
8736c28
chore(shard.lock): bump driver dep
stakach Oct 23, 2023
e45278d
chore(delta/api): update request path
stakach Oct 23, 2023
c8140b7
Revert "chore(delta/api): update request path"
stakach Oct 23, 2023
55b4e04
feat(shard.lock): bump driver version
stakach Oct 23, 2023
bd7c161
feat(event_setup_breakdown): add event ids to setup/breakdown event b…
chillfox Oct 24, 2023
374bcad
refactor(setup_breakdown_time): change how metadata is updated (#471)
chillfox Oct 25, 2023
f3a5277
refactor(setup_breakdown_time): change how canclled events work (#472)
chillfox Oct 25, 2023
b327182
refactor(setup_breakdown_time): remove setup/breakdown events when ti…
chillfox Oct 25, 2023
c2ff885
'refactor(setup_breakdown_time): use the calendar driver instead of t…
chillfox Oct 25, 2023
e54ae29
refactor(setup_breakdown_time): change event start/end time type (#475)
chillfox Oct 25, 2023
cc9042d
refactor(setup_breakdown_time): change calendar_id (#476)
chillfox Oct 25, 2023
e97d5f4
refactor(setup_breakdown_time): change calendar_id (#477)
chillfox Oct 25, 2023
fb8a30d
feat(visitor_mailer): add template for guest checkin [PPT-985]
stakach Oct 25, 2023
9a2c1da
feat(staff-api): make booking type optional in query_bookings
stakach Oct 25, 2023
e03335e
fix(calendar): update office365 library
stakach Oct 26, 2023
4750318
fix(event_setup_breakdown_time): add attendees to setup/breakdown eve…
chillfox Oct 26, 2023
1936863
fix(event_setup_breakdown_time): skip when no changes (#479)
chillfox Oct 26, 2023
f8e5bc9
chore(event_setup_breakdown_time): capture errors in signal handler
stakach Oct 26, 2023
67721d4
fix(event_setup_breakdown_time): skip when no changes (#480)
chillfox Oct 26, 2023
34dd8f0
fix(shard.lock): bump driver version
stakach Oct 26, 2023
3eb9488
chore(place/meet): fix spec
stakach Oct 26, 2023
25f4833
feat(place/bookings): auto check-in book now
stakach Oct 31, 2023
bf141f4
chore(place/visitor_mailer): crystal tool format
stakach Oct 31, 2023
ec7309b
fix(delta): PROJ-428 Convert ValueProperty class fields from mandator…
grkek Oct 31, 2023
c6d8cd3
fix(delta): PROJ-428 Add missing fields to Delta ValueProperty (#482)
grkek Oct 31, 2023
d97941d
feat(place/llm): add workplace helper
stakach Oct 31, 2023
750d45b
fix(llm/workplace): my bookings
stakach Nov 1, 2023
dd8ac78
fix(llm/workplace): my bookings param type
stakach Nov 1, 2023
fc87101
fix(llm/workplace): add debugging and add additional checks
stakach Nov 1, 2023
ada61d0
fix(llm/workplace): improve capability prompt
stakach Nov 1, 2023
43d20f5
fix(llm/workplace): debug metadata response
stakach Nov 1, 2023
29b20b2
feat(llm/workplace): ensure desk exists for booking
stakach Nov 1, 2023
c2564c6
fix(llm/workplace): ensure level exists for booking
stakach Nov 1, 2023
075fad5
fix(llm/workplace): levels function was not exposed
stakach Nov 1, 2023
f27ede2
fix(llm/workplace): ensure desks are returned properly
stakach Nov 1, 2023
28c94f7
fix(llm): reduce the token count
stakach Nov 1, 2023
21840c9
fix(llm/workplace): properly sample the desks
stakach Nov 1, 2023
0fa40e0
fix(llm/workplace): features to be downcased
stakach Nov 1, 2023
6aeeda8
chore(deps): bump actions/checkout from 3 to 4 (#460)
dependabot[bot] Nov 3, 2023
d272a10
feat: Cloud build service integration related updated to build.yml (#…
naqvis Nov 3, 2023
bdc6a72
fix(visitor_mailer): send checked in to host
stakach Nov 9, 2023
0ba4f87
feat(bookings): notify on end_meeting
stakach Nov 9, 2023
b63b220
fix(visitor_mailer): add option to disable event visitors emails
stakach Nov 13, 2023
da120b6
fix(cisco/dnaspaces): timestamp where no position is provided
stakach Nov 21, 2023
69c7425
fix(cisco/dnaspaces): fix timestamp adjustments
stakach Nov 21, 2023
296cd5f
chore: remove driver
stakach Nov 21, 2023
66c99d4
chore(buid.yml): added env var to use nightly build tag
naqvis Nov 21, 2023
22a7025
feat(delta): simplify API driver
stakach Nov 28, 2023
9dc48c5
fix(harness): fix shell command to invoke build cli (#484)
naqvis Nov 29, 2023
fb3efc6
feat(delta): add uno next sensor interface
stakach Nov 29, 2023
e4e55de
fix(delta): not all devices have a display name
stakach Nov 29, 2023
990cb38
fix(delta): JSON key name incorrect
stakach Nov 29, 2023
6249e06
fix(delta): values stored as strings
stakach Nov 29, 2023
a483509
fix(delta): sensors not in use return blank values
stakach Nov 29, 2023
e96673e
fix(delta): sensor data is sometimes a string sometimes an int
stakach Nov 29, 2023
1355205
fix(llm/workplace): booking ids are integers
stakach Nov 30, 2023
2acf71b
feat(llm/workplace): improve responses with level names
stakach Nov 30, 2023
24edf4b
fix(workplace): level id is optional
stakach Nov 30, 2023
f5f9da8
fix(schedule): provide more hints when looking up staff
stakach Nov 30, 2023
7dbc2af
fix(llm/workplace): relative booking bug
stakach Nov 30, 2023
e85c61b
fix(llm/schedule): encourage GPT not to guess details
stakach Nov 30, 2023
8f7854c
feat(llm): allow offsets and dates to be used
stakach Nov 30, 2023
28a339d
feat(workplace): add date option to more functions
stakach Nov 30, 2023
76a6d54
chore(ci): changed crystal version to latest (#485)
naqvis Nov 30, 2023
f36e40c
feat(place/meet): allow routing a camera input to multiple outputs
stakach Nov 30, 2023
9e61185
feat(delta): uno_next track particles
stakach Nov 30, 2023
cf6a6ce
fix(crestron/virtual_switcher): switch only the selected layers
stakach Nov 30, 2023
20c09bc
feat(place/meet): add join_lockout_secondary config
stakach Dec 4, 2023
44ed7e4
feat(place/meet): add config to hide the join button
stakach Dec 4, 2023
3bf77a7
feat(place/room_booking_approval): Add an alternative driver which ch…
w-le Dec 19, 2023
ebe5ed6
feat(place/room_booking_approval): optionally assume the last attende…
w-le Dec 19, 2023
9fb0360
chore(place/room_booking_approval): Support permissions not required …
w-le Dec 19, 2023
0eae74b
feat: push event notifications to staff-api
stakach Dec 19, 2023
f2ede3f
feat: tweak add some status feedback
stakach Dec 19, 2023
6c0338d
chore: crystal tool format
stakach Dec 19, 2023
b41764c
chore(staff-api): add some debug logging
stakach Dec 20, 2023
e4f2699
fix(bookings): json payload on push events
stakach Dec 20, 2023
d93b12a
chore(placeos/room_booking_approval_alt): assume_last_attendee_is_roo…
w-le Dec 20, 2023
36ad166
feat(placeos/room_booking_approval_alt1): customisable host notificat…
w-le Dec 20, 2023
76125e3
feat(placeos/room_booking_approval_alt1): support BOTH methods of det…
w-le Jan 5, 2024
cfe81cc
feat(clipsal/cbus): port lighting driver
stakach Jan 5, 2024
7f0bd44
feat(knx/baos): add KNX BAOS lighting driver
stakach Jan 30, 2024
46d8eb3
chore: crystal tool format
stakach Jan 30, 2024
a368f6d
feat(embedia/control_point): add driver
stakach Jan 30, 2024
4351cdf
feat(3m/displays): add display
stakach Jan 31, 2024
ba77b52
feat(place/bookings): default image to system [PPT-1173]
stakach Feb 5, 2024
2b639d6
feat(tv_one/corio_master): add driver
stakach Feb 6, 2024
851f709
feat(planar/clarity_matrix): add driver
stakach Feb 7, 2024
69e8851
feat(visitor_mailer): location zone customisable [PPT-1193]
stakach Feb 8, 2024
0435c60
fix(area_management): hydrate sensor where level is unknown
stakach Feb 8, 2024
12aaf26
feat(extron/usb_extender_plus): add endpoint driver
stakach Feb 8, 2024
71efcd9
chore: format and spec runner update
stakach Feb 8, 2024
c5f92d4
feat(usb_extender_plus/virtual_switcher): add driver
stakach Feb 9, 2024
f68bc09
fix(extron\usb_extender_plus\virtual_switcher): add spec
stakach Feb 12, 2024
65e2989
chore(place/area_management): expose internals
stakach Feb 12, 2024
af70abe
Feat/placeos/rbp remote logging (#487)
w-le Feb 14, 2024
0c20436
chore(shard.lock): bump crystal client
stakach Feb 15, 2024
5530c13
fix(shard.lock): placeos models and client versions
stakach Feb 15, 2024
32b7a53
feat(auto_release): [PPT-1154] auto release bookings for absent users…
chillfox Feb 15, 2024
330fa06
feat(place/meet): add set_microphone helper
stakach Mar 7, 2024
e596175
chore(delta/api): add skip and max result params
stakach Mar 11, 2024
8aec8ba
feat(delta/api): paginate list devices
stakach Mar 11, 2024
b2ccc21
fix(delta/api): pagination is unreliable
stakach Mar 11, 2024
212326d
fix(delta/api): handle empty response
stakach Mar 11, 2024
8535392
chore(delta/api): request 1000 results at a time
stakach Mar 11, 2024
fdf6688
feat(locations): add building zone override
stakach Mar 12, 2024
e570660
fix: add sensor modifiers to types
stakach Mar 13, 2024
6309543
feat(visitor_mailer): add campus support [PPT-1286]
stakach Mar 19, 2024
56790f2
feat(area_management): support campus locations
stakach Mar 20, 2024
6f3c5fa
fix(area_management): ensure no variable confusion
stakach Mar 20, 2024
44f1f9a
feat(visitor_mailer): share campus setting with area management
stakach Mar 20, 2024
bb8ae5f
fix(area_management): building tags incorrect on campus
stakach Mar 20, 2024
0acaf22
feat(llm/schedule): provide hints for common mistakes
stakach Mar 21, 2024
14f000a
fix(llm/workplace): clarify function use
stakach Mar 21, 2024
c793780
fix(llm/workplace): improve desk management
stakach Mar 21, 2024
838f34c
fix(gallagher/rest_api): remove card in update
stakach Mar 26, 2024
96321bf
fix(bookings): always decline events
stakach Apr 1, 2024
2dd45e2
fix(delta): unonext data via manager
stakach Apr 3, 2024
0bc7ae9
fix(delta/uno_next): use a cache
stakach Apr 3, 2024
83e6e46
fix(delta/uno_next): air quality data
stakach Apr 3, 2024
00e8e89
fix(delta): fix pagination
stakach Apr 3, 2024
515c7c1
fix(delta/uno_next): fix compilation
stakach Apr 3, 2024
b6e869e
fix(delta/uno_next): memory leak
stakach Apr 5, 2024
b519ab5
feat(delta/zen_pir): add PIR driver
stakach Apr 5, 2024
d60642d
chore(delta/zen): expose an area_id
stakach Apr 8, 2024
a9ae839
fix(delta/zen): add area_id field
stakach Apr 8, 2024
2522c19
fix(delta/uno_next): ensure object index exists
stakach Apr 8, 2024
54a0b64
chore(delta/uno_next): simplify caching
stakach Apr 11, 2024
b753288
Add UbiPark driver according to the specified documents (#490)
grkek Apr 12, 2024
64cbac7
feat(vergesense/location_service): don't notify updates by default
stakach Apr 16, 2024
7eaaffd
chore: disable build service in certain workflows
stakach Apr 23, 2024
3b18c77
feat(inner_range/integriti): add driver (#491)
stakach Apr 24, 2024
3fb05b5
feat(inner_range/integriti): add permission group query
stakach Apr 24, 2024
2818b1f
fix(inner_range/integriti): return user information in card queries
stakach Apr 24, 2024
6986ed0
feat(floorsense): add settings configuration routes
stakach Apr 29, 2024
69d80a6
feat(kontakt_io/kio_cloud): add simple telemetry querying
stakach Apr 30, 2024
4609d0c
feat(kontakt_io/kio_cloud): try and obtain up to date telemetary
stakach Apr 30, 2024
689300f
fix(kontakt_io/kio_cloud): telemetry query
stakach Apr 30, 2024
3a8d5ff
fix(kontakt_io/kio_cloud): time ordering
stakach Apr 30, 2024
1dbcc85
fix(rhombus/security_mock): static door ids
stakach May 2, 2024
10c1db3
feat(kontakt_io): add support for PIR sensors
stakach May 6, 2024
811753f
feat(visitor_mailer): [PPT-1214] add group-event template (#494)
chillfox May 7, 2024
925a314
feat(staff-api): add system_settings query
stakach May 8, 2024
bfe53b2
feat(kontakt_io): collect map room_ids to map_ids
stakach May 8, 2024
b301255
feat(optergy): add p864 driver
stakach May 14, 2024
8834303
fix(optergy): add security to write methods
stakach May 14, 2024
d1dac0b
fix(optergy): default generic name
stakach May 14, 2024
72f5dda
chore(optergy): add some debugging
stakach May 14, 2024
1597085
fix(optery): add content-type headers
stakach May 14, 2024
ded2afe
feat(inner_range/integriti): add bool support for fields
stakach May 15, 2024
7bde3d3
feat(inner_range/integriti): add bool support for fields
stakach May 15, 2024
1b7fa95
fix(cisco/dna_spaces): retry interval is now 2 seconds
stakach May 16, 2024
7cc11da
fix(cisco/dna_spaces): ensure only a single event stream
stakach May 16, 2024
cbe5b65
feat(place/calendar): add pagination to users query
stakach May 24, 2024
e83a735
feat(place/calendar): expose a next_page link
stakach May 25, 2024
fa542ae
feat(place/calendar): add pagination to group members
stakach May 27, 2024
9c9cfa2
fix(place/calendar): office365 users list
stakach May 29, 2024
adfa71b
fix(place/calendar): group membership response
stakach May 29, 2024
21e94e9
chore(place/calendar_spec): add helpful description
stakach May 30, 2024
4634a57
fix(auto_release): [PPT-1392] early release (#496)
chillfox May 31, 2024
8047a94
test(survey): remove temporary fix as staff-api has been fixed (#492)
chillfox Jun 3, 2024
b2f3a32
fix(auto_release): [PPT-1392] correct selection of bookings for relea…
chillfox Jun 3, 2024
7c9d8fb
feat(inner_range/integriti): add custom field support
stakach Jun 3, 2024
b633904
fix(inner_range/integriti): user permission request should not be a s…
stakach Jun 3, 2024
c571f3c
feat(PPT-1303): Update Smartalock with the locker interface (#495)
grkek Jun 3, 2024
f81962a
feat(inner_range/integriti_user_sync): add sync driver
stakach Jun 3, 2024
ec88e49
fix(inner_range\integriti): work around integriti bug
stakach Jun 3, 2024
00476ac
fix(auto_release): [PPT-1155] only release after (#498)
chillfox Jun 4, 2024
f353773
fix(inner_range\integriti_user_sync): ensure users created with a low…
stakach Jun 4, 2024
ba064c3
fix(inner_range/integriti_user_sync): remove integriti group not ad g…
stakach Jun 4, 2024
7d0cb5d
feat(workplace_subscriptions): add generic workplace push events
stakach Jun 5, 2024
cd1faac
fix(workplace_subscriptions): format and protected methods
stakach Jun 5, 2024
2d62dbf
feat(inner_range\integriti_user_sync): subscribe to membership changes
stakach Jun 5, 2024
4629e1d
feat(place/calendar): add email support for group fetch
stakach Jun 5, 2024
bb9ace2
fix(inner_range\integriti_user_sync): fetching group id
stakach Jun 5, 2024
f9d92c2
feat(inner_range\integriti_user_sync): sync on group membership change
stakach Jun 5, 2024
7c66acd
feat(lutron): add room logic (#501)
w-le Jun 5, 2024
cb67682
feat(siemens/desigo): add room logic (#500)
w-le Jun 5, 2024
538e17a
fix(inner_range/integriti_user_sync): debounce MS events
stakach Jun 5, 2024
f12cdfe
fix(inner_range/integriti_user_sync): debounce MS events
stakach Jun 5, 2024
9d32f64
fix(inner_range/integriti_user_sync): sync on missed events too
stakach Jun 5, 2024
2c3183b
feat(integriti_hid_virtual_pass): add driver for requesting a card
stakach Jun 5, 2024
c95d3d8
fix(auto_release): [PPT-1392] flip time comparrison for time_after (#…
chillfox Jun 10, 2024
8960e97
fix(auto_release): handle prefered time crossing midnight in utc, cor…
chillfox Jun 11, 2024
1b11c9e
fix(auto_release): only disable auto_release if both time_before and …
chillfox Jun 11, 2024
d41828a
fix(auto_release): use #enabled? for all enabled checks (#505)
chillfox Jun 12, 2024
75a69d3
feat(place/parking/locations): add driver
stakach Jun 17, 2024
df26648
fix(parking/locations): add specs
stakach Jun 18, 2024
7f553ed
fix(parking/locations): only query for bookings in parking zones
stakach Jun 18, 2024
c66faa0
feat(place/meet): add current_routes helper
stakach Jun 19, 2024
6476545
feat(kaiterra/logic): add driver (#506)
stakach Jun 20, 2024
cc1aadd
chore(shard.lock): bump deps
stakach Jun 20, 2024
b024420
chore(siemens/desigo): bump dependency
stakach Jun 20, 2024
8d62252
chore: bump deps and format
stakach Jun 20, 2024
9a15244
feat(floorsense/desks_websocket): implement desk control interface
stakach Jun 20, 2024
7dd1c55
feat(desk/control): add helper
stakach Jun 20, 2024
47a9059
feat(williams_av/wave_cast_fm): add random join code helper
stakach Jun 20, 2024
c8c803f
chore(shard.lock): bump deps
stakach Jun 21, 2024
e8014f3
chore(williams_av/wave_cast_fm): add a comment
stakach Jun 21, 2024
c1e349c
chore(shard.lock): add support for client certificates
stakach Jun 24, 2024
e8bd237
chore(place/visitor_mailer): Default QR generation to FALSE as that i…
w-le Jun 25, 2024
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@v3
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@v3
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