Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1382 commits
Select commit Hold shift + click to select a range
4f1dece
chore(shard.lock): bump dependencies
stakach Mar 28, 2022
7cc59fc
chore(shard.lock): peg crystal-email due to breaking change
stakach Mar 28, 2022
5050df9
feat(place/bookings): add offline image status
stakach Mar 28, 2022
c1b95ef
fix(place/bookings): use room_image as the setting
stakach Mar 28, 2022
8f46f3c
feat(place/bookings): configure if the room is bookable or not
stakach Mar 29, 2022
b298103
feat(place/bookings): add support for offline image and colour
stakach Mar 29, 2022
0a53229
feat(place/bookings): add custom QR code colour setting
stakach Mar 29, 2022
9f8945c
feat(floorsense/desks_websocket): add missing functions
stakach Mar 29, 2022
77c9db7
chore(.gitignore): add src symlink
stakach Mar 30, 2022
b98e347
chore(helvar/net): fix file permissions
stakach Mar 30, 2022
024aab0
feat(meraki/mqtt): average desk occupancy over time
stakach Mar 31, 2022
d15dbc6
chore(meraki/mqtt): add some comments on plotting points
stakach Mar 31, 2022
0282705
chore: run crystal tool format
stakach Mar 31, 2022
1bfa460
feat(pattr/chat_bot): POC integration driver
stakach Mar 31, 2022
ce352cb
feat: add demo location service
stakach Mar 31, 2022
60f0707
fix(pattr/chat_bot): webhook response not working
stakach Apr 1, 2022
d3316d9
feat: add rhombus security interop (#297)
stakach Apr 4, 2022
f19c343
fix(rhombus\security_mock): doors not exposed
stakach Apr 4, 2022
33fa5d4
feat(staff-api): add utm_source and limit_override params for booking…
cacique-coder Apr 4, 2022
cdb219d
style: lint
w-le Apr 4, 2022
afd822b
chore(deps): bump actions/cache from 2 to 3.0.1 (#299)
dependabot[bot] Apr 4, 2022
d3bea5f
fix(kontakt/contact_tracing): use 6 hour windows
stakach Apr 5, 2022
84f89a9
feat(rhombus/security): make signature optional
stakach Apr 5, 2022
7ea2f38
chore(place/logic_example): add example failure
stakach Apr 5, 2022
e83fc42
feat(place/booking_check_in_helper): improve how ignored bookings are…
stakach Apr 6, 2022
4ae3be1
fix(extron/matrix): poll to maintain connection
stakach Apr 11, 2022
e515063
feat(place/staff_api): add edit and delete event logic
stakach Apr 11, 2022
69883d0
add fields to the user model (#302)
Apr 14, 2022
9dded7d
chore(deps): bump actions/cache from 3.0.1 to 3.0.2 (#303)
dependabot[bot] Apr 18, 2022
72efbef
chore(deps): bump actions/upload-artifact from 2 to 3 (#301)
dependabot[bot] Apr 18, 2022
07bcd1d
fix(floorsense/desks_websocket): obtain locker list when controller i…
stakach Apr 19, 2022
ed90b03
fix(floorsense/User): User.pin and .privacy types
Apr 20, 2022
cc16134
chore(shard.lock): bump deps
stakach Apr 29, 2022
45e0e56
style: maintain docs and fix repository ameba failures (#312)
caspiano May 2, 2022
c0b5a39
ci: use centralised style workflow
caspiano May 2, 2022
a41ca27
add limit/offset to user_list (#322)
May 11, 2022
f07618b
add limit/offset (#324)
May 12, 2022
7e4a9d7
fix(vergesense/room_sensor): sensor state might not be available
stakach May 12, 2022
b11d9bc
fix(vergesense/room_sensor): block return value unknown
stakach May 12, 2022
d221ef3
fix(place/bookings): search for sensors unless a sensor is found
stakach May 12, 2022
6e50b4f
feat(drivers/kontakt_io): add sensor services (#328)
stakach May 19, 2022
97d62a7
feat(staff-api): add merge metadata method (#327)
cacique-coder May 19, 2022
f20898c
fix(kontakt/sensor_service): don't fail if floor mapping is missing
stakach May 20, 2022
611879c
feat(kontakt_io): add location support
stakach May 23, 2022
4dc1492
fix(kontakt_io): location support
stakach May 23, 2022
335fa6c
chore(shard.lock): bump deps
stakach May 26, 2022
62e8b40
feat: build (#238)
caspiano May 27, 2022
72167e2
style(kontakt_io/sensor_service): ameba fix
caspiano May 27, 2022
2e6fc45
feat: add start time to booking and meeting location service requests
stakach May 30, 2022
e00a59c
adding signal method to staff_api (#330)
cacique-coder May 30, 2022
75cf400
chore(shard.lock): bump deps
stakach May 31, 2022
bc3b829
feat(place/calendar): add delegated calendar support
stakach May 31, 2022
d725f52
fix(place/calendar_delegated): error response body
stakach May 31, 2022
090f5af
fix(place/calendar_delegated): listing events
stakach May 31, 2022
c46c634
refactor: split up place/calendar for improved clarity (#323)
stakach May 31, 2022
b015d28
fix(microsoft/graph_api): fix require path
stakach May 31, 2022
f4feb7a
fix(google/workplace_api): fix require path
stakach May 31, 2022
b3d0ef2
feat(place/staff_api): add delete user and create user
stakach May 31, 2022
90030ac
fix(place/staff_api): update event should patch
stakach Jun 1, 2022
30f3bdd
fix(staff_api): compilation issue
stakach Jun 1, 2022
12f7f6b
feat(place/staff_api): add support for reviving users
stakach Jun 1, 2022
ca16afe
fix(place/calendar_delegated): ensure correct system id
stakach Jun 3, 2022
f402f8d
fix(PlaceOS/staff-api): return values for create user and query user …
cacique-coder Jun 7, 2022
4051547
feat(philips): add DyNet 2 protocol (#335)
stakach Jun 9, 2022
ee392ec
chore(philips\dynet_text): add some additional logging
stakach Jun 9, 2022
15ead7f
fix(philips\dynet_text): can respond with leading null byte
stakach Jun 9, 2022
cbf58a8
feat(philips\dynet_text): add support joins
stakach Jun 9, 2022
c3dd69c
feat(bacnet): add datapoints logic for analytics (#336)
stakach Jun 14, 2022
34e4c35
feat: add qbic touch panel (#338)
stakach Jun 15, 2022
8c19185
chore(qbic/touch_panel): change default generic name
stakach Jun 16, 2022
ebe3068
fix(qbic\touch_panel): improve polling
stakach Jun 16, 2022
1b1efda
feat(lutron/vive_bacnet): poll power values
stakach Jun 16, 2022
d36c389
feat(vergesense): add signs of life
stakach Jun 16, 2022
24fd50c
fix(place/bookings): ensure state is correct outside of poll period
stakach Jun 19, 2022
52129d2
feat(place/calendar): improve request throughput
stakach Jun 20, 2022
2597393
fix(vergesense): extract signs_of_life from reports
stakach Jun 20, 2022
45029e1
chore(shard.lock): bump dependencies
stakach Jun 24, 2022
c47d899
feat(place/calendar_delegated): allow acting as another user
stakach Jun 27, 2022
56e0274
fix(docker-compose): set crystal path correctly
stakach Jun 27, 2022
66b8239
chore(place/calendar_delegated): add some logging around act_as
stakach Jun 27, 2022
f871cdf
feat(calendar_common): don't rate limit groups request against graph
stakach Jun 28, 2022
0d635f1
feat(place/calendar_common): work around rate limit requirements
stakach Jun 28, 2022
ff2b229
chore(shard.lock): bump deps
stakach Jun 30, 2022
3fe5fc9
chore(shard.lock): bump driver and log backend
stakach Jun 30, 2022
f93bcb4
fix: driver signal processing
stakach Jun 30, 2022
870a4e9
fix(place/bookings): don't cache more than required
stakach Jun 30, 2022
6b39f53
chore(shard.lock): bump placeos driver
stakach Jul 11, 2022
071f467
Kaiterra API Driver (#343)
pkheav Jul 12, 2022
2b141ea
feat(philips/dynet_text): use the lighting interface
stakach Jul 12, 2022
aee5b21
feat(philips/dynalite): add lighting interface
stakach Jul 12, 2022
adf2662
feat: add lighting interface to dynalite and helvar drivers
stakach Jul 13, 2022
4e9a506
feat(place/meet): add lighting control to meet
stakach Jul 13, 2022
36b74b0
feat(place/meet): ensure mic arrays don't contain nil values
stakach Jul 14, 2022
190e966
feat(place/meet): add support for room accessories
stakach Jul 14, 2022
ee77471
fix(place/meet): don't fail if not all rooms have lighting data
stakach Jul 14, 2022
2c2f94f
fix(philips/dynet_text): correct task name
stakach Jul 14, 2022
6204ca8
feat: use terminated? helper
stakach Jul 15, 2022
001a026
feat(cisco/meraki/dashboard): add camera zones request
stakach Jul 18, 2022
687c394
feat(place/meet_readme): Off is interpreted as false in yaml
stakach Jul 18, 2022
01c17b7
feat(cisco/meraki): use camera zones for desk locations
stakach Jul 20, 2022
2d11733
fix(cisco/meraki): api docs are incorrect
stakach Jul 20, 2022
395e2d7
chore(cisco/meraki/locations): provide methods to inspect state
stakach Jul 20, 2022
77654aa
fix(cisco/meraki/locations): ignore the full frame zone
stakach Jul 20, 2022
39a1b2a
fix(cisco/meraki/locations): ensure expired occupation entries are ig…
stakach Jul 21, 2022
6387e91
chore(shard.lock): bump driver version
stakach Jul 23, 2022
1303ef7
Add Quantum driver (#341)
grkek Jul 25, 2022
d6ecd5b
fix(kaiterra/api): for correct api key param name and data parsing (#…
pkheav Aug 4, 2022
21420e3
fix(place/booking_notifier): action created bookings (#351)
w-le Aug 11, 2022
c3d33ab
Add Stripe driver (#348)
grkek Aug 16, 2022
2618348
chore(shard.lock): bump deps
stakach Aug 17, 2022
3423b56
chore(shard.lock): bump versions
stakach Aug 24, 2022
ebc5dfa
chore(place/staff_api): add some debug logging
stakach Aug 24, 2022
5d57291
chore(rhombus): update documented webhook format
stakach Aug 25, 2022
728928a
chore: bump shards and some docs
stakach Aug 31, 2022
e432795
chore(shard.lock): bump driver version
stakach Aug 31, 2022
ffc6646
feat(crestron): fusion driver (#344)
chillfox Aug 31, 2022
f2e3ac2
fix(crestron/fusion): typos
w-le Sep 1, 2022
e09eec4
fix(crestron\fusion): convert to a HTTP driver
stakach Sep 2, 2022
7c89561
feat(crestron\fusion): remove service url path setting
stakach Sep 2, 2022
b89a950
fix(crestron\fusion): use old ciphers for connections
stakach Sep 2, 2022
e2dd178
fix(crestron/fusion): put signal uses http put
stakach Sep 2, 2022
1ab3e26
feat: add room usage pusher
stakach Sep 5, 2022
a9a4769
feat(lutron/quantum): get occupancy
grkek Sep 13, 2022
321b2ce
feat(siemens): Add Desigo driver (#360)
grkek Sep 13, 2022
dd00816
feat(asiom): Add AxiomXa drivers (#346)
grkek Sep 13, 2022
ad56e0d
style(axiom)
grkek Sep 13, 2022
d032afb
feat(infosilem): Add infosilem driver + RoomSchedule logic
grkek Sep 14, 2022
0292064
faet(axiom/logic): status for analytics
w-le Sep 14, 2022
e90700f
fix(axiom/logic): schedule.clear on update
w-le Sep 14, 2022
e88ac80
feat(bookings): use decline over delete
stakach Sep 15, 2022
c78c00c
fix(booking_check_in_helper): make settings optional
stakach Sep 15, 2022
f25985a
fix(place/booking_check_in_helper): check for url presence
stakach Sep 15, 2022
d20f1ae
fix(place/bookings): delay poll after event change
stakach Sep 15, 2022
94dd0ca
feat(place/bookings): check for stale sensor data
stakach Sep 19, 2022
ea0ca2e
chore(shard.lock): bump version
stakach Sep 20, 2022
2f80d1a
chore(place/usagepusher): Rename to EventAttendanceRecorder
w-le Sep 20, 2022
7b735bb
fix(place): renaming EventAttendanceRecorder
w-le Sep 20, 2022
362027f
chore(place/bookings_spec): adjust to use decline event
stakach Sep 20, 2022
34b6209
fix(cisco/dna_spaces/device): make more fields optional
stakach Sep 20, 2022
a41949f
chore(philips/dynet_text): resolve ameba warning
stakach Sep 20, 2022
694ba4e
chore(shard.lock): bump driver version for better backwards compat
stakach Sep 21, 2022
2e6e76d
fix(cisco): make more dna_spaces fields optional (#372)
chillfox Oct 7, 2022
aa39335
feat(infosilem/logic): ignore container events (#371)
w-le Oct 13, 2022
9a64772
fix(event attendance recorder): record people count (#373)
chillfox Oct 17, 2022
8ec7d1b
feat(cisco/dns_spaces): allow map_id to be nil when dimensions defined
stakach Oct 17, 2022
dc504ad
feat(event_attendance): record data for events that were a no-show
stakach Oct 18, 2022
9be09c3
feat(place\staff_api): add support for getting complete zone info
stakach Oct 21, 2022
c02e76e
feat(place\visitor_mailer): add support for standalone visitors
stakach Oct 21, 2022
2b2d3e2
fix(place/visitor_mailer): remove uri code
stakach Oct 24, 2022
c5b939c
feat(crestron): room methods (#368)
chillfox Oct 24, 2022
ee694c0
chore(shard.lock): bump driver version
stakach Oct 24, 2022
94d17b7
fix(bookings/event_attendance_recorder): set initial count if greater…
stakach Oct 25, 2022
ec24790
fix(place/visitor_mailer): booking_id is an Int64
stakach Oct 26, 2022
afac1a8
fix(event_attendance_recorder): handle nil and float values
stakach Oct 26, 2022
983b03a
Update from XML to JSON using the same Authorization technique
grkek Oct 27, 2022
2b33169
chore(docker-compose): bump build version
stakach Oct 27, 2022
d3abc5a
chore(docker-compose): switch drivers spec runner
stakach Oct 27, 2022
3b35388
feat(infosilem/logic): expose attendee count (#376)
w-le Oct 27, 2022
4bf8777
fix(infosilem/logic): infosilem numbers are strings
w-le Oct 27, 2022
a608b87
feat(infosilem/logic): better container events
w-le Oct 27, 2022
d97acb5
fix(infosilem/logic): better container status
w-le Oct 27, 2022
314678e
feat(interface/camera): update positions to be percentages (#377)
stakach Oct 31, 2022
a43e88e
fix(cres_next): not all devices use XSRF tokens
stakach Oct 31, 2022
79e6267
feat(crestron/cres_next): add interfaces for enumeration
stakach Oct 31, 2022
a6779c6
feat(crestron/nvx_address_manager): use interface query for enumeration
stakach Nov 1, 2022
74c79ee
feat(crestron/nvx): add warning when device mode is unexpected
stakach Nov 1, 2022
27cf5b8
Update Cisco ISE from XML to JSON using the same Authorization techni…
grkek Nov 1, 2022
1faf5c3
Fix merge conflicts
grkek Nov 1, 2022
461314b
fix(place/router): apply routes in the same fiber to enforce ordering
stakach Nov 2, 2022
dc371c2
feat(williams_av): add wave cast driver
stakach Nov 3, 2022
c476099
chore(williams_av\wave_cast_fm): add protocol docs
stakach Nov 3, 2022
6fce297
feat(place\http_pinger): add http status driver
stakach Nov 3, 2022
4553cd8
feat(sony\camera\visca): add powerable interface
stakach Nov 3, 2022
85ce730
feat(crestron\occupancy_sensor): add driver
stakach Nov 3, 2022
58f0ffb
fix(crestron\cres_next): device authentication
stakach Nov 3, 2022
2df9eb0
fix(crestron\occupancy_sensor): doesn't support websockets
stakach Nov 3, 2022
caf6d97
feat(leviton acquisuite): add webhook driver (#378)
camreeves Nov 7, 2022
153b0ca
chore(leviton): add debugging to acquisuite driver (#381)
camreeves Nov 7, 2022
7a7edd9
fix(sony\camera\visca): zoom position on preset recall
stakach Nov 7, 2022
f398cd5
feat(aver/cam520_pro): add aver cam520 driver
stakach Nov 7, 2022
f81141b
chore(aver/cam520_pro): add additional logging
stakach Nov 7, 2022
8108177
fix(aver/cam520_pro): add before_request for setting auth header
stakach Nov 7, 2022
ed229e3
chore(aver/cam520_pro): log the request path
stakach Nov 7, 2022
d8757b6
fix(aver/cam520_pro): fix hostname when not running a spec
stakach Nov 7, 2022
f49f895
feat(infosilem/mock): add mock driver for testing RoomSchedule
w-le Nov 7, 2022
68194fa
fix(infosilem/mock): args for bookings func
w-le Nov 7, 2022
8b991a9
fix(infosilem/mock): bookings? response
w-le Nov 7, 2022
56fe697
fix(leviton): small webhook fixes (#382)
camreeves Nov 7, 2022
d99e441
fix(aver/cam520_pro): http requests shouldn't use the websocket port
stakach Nov 8, 2022
266d38f
fix(aver/cam520_pro): save presets
stakach Nov 8, 2022
3fe34ec
fix(aver/cam520_pro): any stop command will stop movement
stakach Nov 8, 2022
9b21a2a
Revert "fix(aver/cam520_pro): any stop command will stop movement"
stakach Nov 8, 2022
896b199
chore(aver/cam520_pro): debug body data
stakach Nov 8, 2022
d3e18dd
fix(aver/cam520_pro): compare absolute values when moving
stakach Nov 8, 2022
268fd76
Merge branch 'master' of github.com:PlaceOS/drivers
grkek Nov 8, 2022
336476b
feat(crestron/nvx): add virtual switcher
stakach Nov 9, 2022
0995ab4
Test merge for Cisco ISE
grkek Nov 9, 2022
ab13a3d
fix(aver/cam520_pro): ensure presets are exposed on load
stakach Nov 9, 2022
106f92a
Merge branch 'master' of github.com:PlaceOS/drivers
grkek Nov 9, 2022
4263795
fix: camera presets status
stakach Nov 9, 2022
9ce296c
Merge branch 'master' of github.com:PlaceOS/drivers
grkek Nov 10, 2022
1efa02e
feat(place/http_pinger): add curl helper
stakach Nov 15, 2022
046baba
fix(event_attendance_recorder): ensure no concurrent state updates
stakach Nov 15, 2022
ee18146
feat: add kramer RC8 touch pad driver
stakach Nov 17, 2022
b0571f2
chore(event_attendance_recorder): remove old state log output
stakach Nov 17, 2022
07663e8
fix(place\calendar_common): prevent rate limiter error
stakach Nov 17, 2022
e493eab
fix(place\calendar_common): prevent rate limiter error
stakach Nov 17, 2022
5bdfefb
chore(juniper\mist_websocket): update default WS API
stakach Nov 17, 2022
140d151
feat(juniper\mist_websocket): add some debugging logs
stakach Nov 17, 2022
5e4a7a1
fix(juniper\mist_websocket): different host for REST API requests
stakach Nov 17, 2022
3521594
Merge branch 'master' of github.com:PlaceOS/drivers
grkek Nov 18, 2022
cffa731
Remove the webex inbuilt library
grkek Nov 18, 2022
8ca76d7
chore(juniper/mist): fix spec
stakach Nov 24, 2022
bb90d11
fix(juniper\mist_models): mark optional map fields
stakach Nov 24, 2022
fe3ef5a
fix(juniper\mist_models): mark optional client fields
stakach Nov 24, 2022
515b264
fix(juniper\mist_models): fix accuracy
stakach Nov 24, 2022
374b19f
feat(gallagher\rest_api): implement DoorSecurity interface (#386)
stakach Nov 24, 2022
f642661
fix(gallagher\rest_api): use update URL in responses
stakach Nov 24, 2022
df3395b
fix(gallagher\rest_api): may not be using PDFs
stakach Nov 24, 2022
a42f678
fix(gallagher\rest_api): ids are strings
stakach Nov 24, 2022
7241eb9
chore(rhombus\security_interop): add some debugging output
stakach Nov 24, 2022
493f30c
feat(gallagher\rest_api): add some helpful requests
stakach Nov 24, 2022
614dd7d
feat(interface/door_security): allow for custom channel
stakach Nov 25, 2022
ee72dc1
Add webex related logic to handle incomming messages from the webex m…
grkek Nov 29, 2022
8be8b2b
feat(place/visitor_mailer): add option for sending reminder emails
stakach Nov 30, 2022
e2e3381
fix(place/staff_api): zones parents request
stakach Dec 1, 2022
4ff79e1
Add an example comment
grkek Dec 7, 2022
b62fe12
chore(shard.yml): bump version
stakach Dec 8, 2022
90d8e7e
fix(juniper/mist_websocket): data is not always provided
stakach Dec 8, 2022
1701329
feat: add room control sensor shutdown helper
stakach Dec 9, 2022
0298b3c
fix(crestron/occupancy_sensor): expose a sensor interface compatible …
stakach Dec 12, 2022
26f951f
feat(cisco/ise): support ISE REST API v3.1
grkek Dec 13, 2022
c44337a
fix(placeos/staff-api): query_guests
w-le Dec 13, 2022
05f7dcb
fix(visitor_mailer): time format for query_guests
w-le Dec 13, 2022
2189074
fix(placeos/visitor_mailer): zones param of query_guests
w-le Dec 13, 2022
9e83e78
fix(placeos/visitor_mailer): building zone var
w-le Dec 13, 2022
0694251
fix(placeos/visitor_mailer): building_zone safe accessor
w-le Dec 13, 2022
46d9df9
fix(placeos/visitor_mailer): building_zone var ref
w-le Dec 13, 2022
f7ba8b9
fix(Cisco/ise): Exclude optional fields from the Internal User model …
grkek Dec 14, 2022
465d630
fix(cisco/ise): remove custom attributes from ISE (#401)
grkek Dec 14, 2022
5f19067
chore(place/bookings): add function to get calendar id
stakach Dec 15, 2022
38166de
feat(cisco/room_kit): implement sensor interface
stakach Dec 16, 2022
98fc6ef
fix(place/booking_notifier): don't notify unless approved
stakach Dec 16, 2022
72033db
fix(place/booking_notifier): only send email once booking is approved
stakach Dec 16, 2022
7e42391
feat(place/booking_notifier): send cancelled emails
stakach Dec 16, 2022
2f3267e
chore(cisco/room_kit): add useful defaults
stakach Dec 16, 2022
db3ae57
fix(event_attendance_recorder): ensure no negative values
stakach Dec 16, 2022
cca3f38
feat(lenel/openaccess): reader searching, raw lookup, event paginatio…
w-le Dec 18, 2022
288e4fb
Merge branch 'master' of github.com:PlaceOS/drivers into feature/webex
grkek Dec 19, 2022
8e09e81
Run crystal format on the location service spec
grkek Dec 19, 2022
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"
42 changes: 42 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: Build and Publish Drivers
on:
push:
branches: [master]

env:
CRYSTAL_VERSION: 1.4.1

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

# 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 }}
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 }}
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@v3
- 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:
- 1.3.2
- 1.4.1
include:
- stable: false
crystal: nightly
steps:
- id: changes
uses: trilom/file-changes-action@v1.2.4
with:
output: ' '
- uses: actions/checkout@v3
- 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 }}
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:
- 1.3.2
- 1.4.1
include:
- stable: false
crystal: nightly
steps:
- uses: actions/checkout@v3

- 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 }}
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
14 changes: 11 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
doc
lib
*.dwarf
*.rdb
.DS_Store
.crystal
.shards
app
*.dwarf
bin
doc
docs
binaries
lib
.logs
repositories/*
src
File renamed without changes.
1 change: 0 additions & 1 deletion .travis.yml

This file was deleted.

16 changes: 16 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug",
"type": "gdb",
"request": "launch",
"target": "./bin/test-harness",
"cwd": "${workspaceRoot}",
"preLaunchTask": "Compile",
"setupCommands": [
{ "text": "-gdb-set follow-fork-mode child" }
]
}
]
}
Loading