Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1274 commits
Select commit Hold shift + click to select a range
65ad34a
Revert "fix(cisco ui extender): monitor placeos namespace"
stakach Nov 17, 2021
62fd054
fix(cisco ui extender): delay rebinding after a subscription clear
stakach Nov 17, 2021
c63002d
fix(cisco ui extender): don't block subscription reactor
stakach Nov 18, 2021
8117388
fix(place area management): have both people count average and sum
stakach Nov 18, 2021
8778dc1
fix(cisco collaboration endpoint): clear flags before blocking callback
stakach Nov 18, 2021
d5a135a
fix(cisco collaboration endpoint): check if tokeniser set
stakach Nov 18, 2021
36d0f9c
fix(cisco collaboration endpoint): fix missing type preventing compil…
stakach Nov 18, 2021
4bbda3c
Revert "fix(cisco ui extender): delay rebinding after a subscription …
stakach Nov 18, 2021
51b3728
fix(ashrae bacnet): improve polling requests
stakach Nov 18, 2021
2d7b490
fix(cisco collaboration endpoint): ensure successful init
stakach Nov 18, 2021
8d59ff6
fix(cisco ui extender): don't mark a failed connection ready
stakach Nov 18, 2021
7beda2b
fix(cisco collaboration endpoint): request JSON output as early as po…
stakach Nov 18, 2021
a4eeebc
fix(cisco/meraki): Client.vlan is now a String not Int32 (#270)
w-le Nov 18, 2021
e540d1d
fix(cisco collaboration endpoint): ensure we have schedules in place
stakach Nov 18, 2021
8f87e1f
fix(cisco collab): don't use queue for setting output mode
stakach Nov 18, 2021
f41172d
fix(cisco collab): wait a small amount of time before after login
stakach Nov 18, 2021
cb5d08b
fix(cisco collab): randomise connection of driver on load
stakach Nov 18, 2021
f6ab6fc
fix(cisco collab): reduce the delay time
stakach Nov 18, 2021
5fe6969
fix(cisco collab): don't sleep on_load
stakach Nov 18, 2021
0c8b4c7
chore(shard.lock): bump driver version
stakach Nov 18, 2021
6f0888d
chore(shard.lock): bump driver version
stakach Nov 19, 2021
ea335c3
chore(shard.lock): bump driver version
stakach Nov 20, 2021
6fcf218
fix(place meet): camera input selection type
stakach Nov 22, 2021
c5b1e56
fix(place meet): when merging tabs, merge the unmapped JSON
stakach Nov 22, 2021
a553ad0
fix(vergesense/mqttt_export): remove root topic (#271)
pkheav Nov 22, 2021
6a547d2
chore(drivers): run crystal tool format (#272)
pkheav Nov 22, 2021
8742f4c
feat(location services): downcase emails for lookup
stakach Nov 23, 2021
25ba3ab
feat(floorsense desks): add locker sharing functions
stakach Nov 23, 2021
2eabcd1
feat(floorsense desks): add method for setting privacy
stakach Nov 23, 2021
fb5a81e
fix(floorsense custom booking sync)
stakach Nov 24, 2021
34f52d5
Revert "fix(vergesense/mqttt_export): remove root topic (#271)" (#274)
pkheav Nov 24, 2021
c4fbf94
fix(floorsense custom booking sync): improper place release
stakach Nov 24, 2021
e94cf92
chore(floorsense): crystal tool format
stakach Nov 24, 2021
d0a5227
fix(place meet): mixer mute
stakach Nov 24, 2021
22022be
feat(vergesense location service): add desk sensor values to location…
stakach Nov 25, 2021
1fe4914
fix(floorsense custom booking sync): mark bookings are checked out
stakach Nov 25, 2021
76e6ef4
feat(floorsense desks websocket): add privacy and locker functions
stakach Nov 26, 2021
57705fe
feat(vergesense location service): optionally return empty spaces
stakach Nov 30, 2021
8bca763
fix(cisco meraki): close rate limiter on unload
stakach Dec 2, 2021
6a86221
chore(place staff api): fix spelling
stakach Dec 2, 2021
283e4df
fix(vergesense location service): make return_empty_spaces optional
stakach Dec 3, 2021
7125c83
fix(place staff api): fix issue with `default_verify_param`
stakach Dec 6, 2021
ae1147a
feat(juniper mist): add mist driver (#275)
stakach Dec 6, 2021
8a96127
feat(place meet): add QSC dialling extension
stakach Dec 7, 2021
08bc2ea
Vive leap (#276)
stakach Dec 20, 2021
16e1348
chore(docs): fix crystal docs generation (#244)
stakach Dec 20, 2021
f0792ec
fix(place router spec): broken in `crystal docs` fix up
stakach Dec 20, 2021
079b1e0
fix(place router): when muting a route, only mute the appropriate layer
stakach Dec 21, 2021
277a982
fix(place meet): order of operations
stakach Dec 21, 2021
a299c0b
feat(place area management): add measurement hints
stakach Dec 22, 2021
e73f01e
feat(floorsense desks): add desk control, group and setting listing
stakach Jan 10, 2022
bc6af1c
Fixing property type on Floorsense::UserGroup (#279)
cacique-coder Jan 12, 2022
cdf3017
feat(place booking check in): add auto cancellation support
stakach Jan 13, 2022
9b2390a
fix(place bookings checkin helper): use bookings namespace for emails
stakach Jan 13, 2022
c6718f4
feat: SecureOS driver (#278)
chillfox Jan 18, 2022
dc1dcd5
fix(vergesense): space_ref_id can be nil
stakach Jan 24, 2022
6b2a966
feat: add Meraki mqtt driver (#280)
stakach Jan 25, 2022
7baaf52
fix(meraki mqtt): handle differences in topic key names
stakach Jan 25, 2022
f959b43
fix(mqtt): bump dependencies
stakach Jan 25, 2022
57da38e
feat(drivers): add place demo drivers
stakach Jan 27, 2022
3e4a16e
feat(meraki mqtt): enable toggling of empty desks
stakach Jan 27, 2022
893d5b1
fix(place area management): check at location count
stakach Jan 31, 2022
4365424
chore(shards.lock): bump dependencies
stakach Feb 11, 2022
554a5d9
chore(place bookings): add debugging to change notifications
stakach Feb 14, 2022
9655f6f
fix(place bookings): don't clear subscriptions on sensor check
stakach Feb 14, 2022
8056992
feat: add kontakt io driver
stakach Feb 16, 2022
8ea4867
feat(kontakt.io): test streaming API
stakach Feb 16, 2022
b6a5910
fix(konkat.io): add undocumented fields for eventHub
stakach Feb 16, 2022
16152b4
fix(place meet): ensure driver loads functions correctly
stakach Feb 20, 2022
f836d9c
Improvements/floorsense reservation lockers (#281)
cacique-coder Feb 21, 2022
12070ed
feat(place checkin helper): add spec, additional logging
stakach Feb 22, 2022
356adec
chore(shard.yml): bump versions
stakach Feb 22, 2022
7bd6530
fix(place bookings): pending set once meeting checked in
stakach Feb 22, 2022
b07f244
chore(shard.lock): bump dependencies
stakach Feb 23, 2022
4f4be27
fix(amber tech grandview): increase delay between requests
stakach Feb 23, 2022
86b4480
fix(ambertech grandview): requires a 2 second delay between requests
stakach Feb 24, 2022
b897e78
chore(amber_tech grandview): add default setting
stakach Feb 24, 2022
8d4ae79
feat(meraki dashboard): add bluetooth location support
stakach Feb 24, 2022
3ca81ca
chore(amber_tech grandview): formatting
stakach Feb 24, 2022
53a34d9
fix(meraki scanning): nearest_ap_tags is optional
stakach Feb 24, 2022
3939485
fix(floorsense): Add missing query string symbol to split slave-list …
cacique-coder Feb 25, 2022
5c52248
feat(kontakt): add mac to username mappings
stakach Feb 28, 2022
5416e34
feat(place check in helper): setting to ignore long meetings
stakach Feb 28, 2022
a4a2edd
feat(kontakt): add contact tracing reporting
stakach Mar 2, 2022
725a923
feat(kontakt cloud): improve logging for debugging
stakach Mar 2, 2022
66a7c2e
fix(kontakt cloud): doesn't like encoded params
stakach Mar 2, 2022
1f678f1
chore(kontakt cloud): improve spec
stakach Mar 2, 2022
884665d
fix(kontakt tracing): checking ownership
stakach Mar 2, 2022
25b718f
fix(place meet): not cloning tab presentation source
stakach Mar 7, 2022
f0b3381
chore(deps): bump actions/checkout from 2 to 3 (#286)
dependabot[bot] Mar 7, 2022
5c1ddb1
build: update for broken shard reference
caspiano Mar 9, 2022
88d7192
feat: add Webex InstantConnect driver (#283)
tassja Mar 14, 2022
b88e85c
feat(place staff api): add support for API keys
stakach Mar 14, 2022
9c6af59
feat(juniper mist): simplify driver settings
stakach Mar 14, 2022
a36f972
feat(juniper mist): add site list helper function
stakach Mar 14, 2022
e845212
adding desk_scan and activate booking into floorsense driver (#290)
cacique-coder Mar 14, 2022
7204c17
chore(webex instant connect): fix formatting
stakach Mar 14, 2022
90b17c9
feat: add crestron nvx drivers (#289)
stakach Mar 15, 2022
d8797c5
feat(place meet): power on inputs on tab selection
stakach Mar 15, 2022
19a1988
feat(place bookings): add checkin helper
stakach Mar 16, 2022
04de541
feat: add philips dynalite driver (#292)
stakach Mar 21, 2022
2d897a7
Add Webex bot drivers (#285)
grkek Mar 22, 2022
5a9301d
feat(kontaktio): propagate errors in contact tracing
stakach Mar 23, 2022
3e89066
feat(kontakt io tracing): query 1 day at a time to avoid errors
stakach Mar 23, 2022
e48c2e7
feat(kontakt io tracing): remove duplicates from the report
stakach Mar 23, 2022
10dcf89
fix(kontakt io tracing): remove duplicates from the report
stakach Mar 23, 2022
2d3c336
feat(vergesense location services): allow for custom desk space types
stakach Mar 24, 2022
154ccf7
feat(place bookings): add booking notifier (#282)
stakach Mar 24, 2022
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
a643ab3
fix(cisco): dna spaces #activate
chillfox Oct 3, 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