Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1651 commits
Select commit Hold shift + click to select a range
302074e
fix(placeos/mailers): password for new network users
w-le Jan 24, 2023
937b785
Merge branch 'master' of github.com:PlaceOS/drivers
w-le Jan 24, 2023
605d558
feat(visitor_mailer): multiple templates (#417)
chillfox Jan 24, 2023
7fe1aa4
fix(cisco/dna_spaces): improve location search when no map available
stakach Jan 24, 2023
1e9b8db
fix(event_attendance_recorder): delay initial value
stakach Jan 25, 2023
7e1452d
feat(place/bookings): add options to hide details
stakach Jan 30, 2023
c7f3495
fix(leviton): allow for gzip decompression in log files (#411)
camreeves Jan 30, 2023
b235440
feat(qsc/q_sys_control): add support for percentage based faders
stakach Jan 31, 2023
a2e80a2
feat(qsc/q_sys_control): expose history data
stakach Jan 31, 2023
0d15ab8
fix(place/staff_api): add nil defaults to get_survey_invites
stakach Feb 1, 2023
06d40cf
fix(survey_mailer): update sent status (#420)
chillfox Feb 1, 2023
091eafd
fix(staff_api): check sent for not nil in #get_survey_invites (#421)
chillfox Feb 1, 2023
04c08d2
fix(event_attendance_recorder): ensure counts reset if metadata save …
stakach Feb 5, 2023
1c93ef7
chore(shard.lock): bump place driver
stakach Feb 6, 2023
9c96f95
chore(shard.lock): bump driver version
stakach Feb 6, 2023
72d58d7
chore(shard.lock): bump versions
stakach Feb 7, 2023
e9d00d6
chore(cisco/dna_spaces): update default values
stakach Feb 7, 2023
e24f099
fix(cisco/dna_spaces): map_id is used for grouping results
stakach Feb 8, 2023
2b68a6e
feat: add auto desk checkin helper
stakach Feb 8, 2023
74a18a3
fix(leviton): ensure right file is unzipped (#425)
camreeves Feb 8, 2023
ad06b36
feat(area_management): add area capacity to areas
stakach Feb 9, 2023
93cf126
fix(leviton): update data format (#426)
camreeves Feb 9, 2023
3307757
fix(acquisuite): rstrip new line chars from result
stakach Feb 9, 2023
608801f
fix(leviton): update webhook logging to warn and output b64 before de…
camreeves Feb 13, 2023
1132b3f
feat(bookings): expose some fields for analytics
stakach Feb 14, 2023
f906c39
fix(bookings): all_day_event flag reversed
stakach Feb 14, 2023
c11793c
feat(desk_bookings_locations): add duration for analytics
stakach Feb 14, 2023
522993e
feat(area_management): add a summary of desk bookings
stakach Feb 14, 2023
501b20d
test(staff_api): #get_survey_invites (#430)
chillfox Feb 14, 2023
50651d6
feat(survey): dedupe emails (#432)
chillfox Feb 15, 2023
0501b75
feat(acquisuite): add timestamp hint
stakach Feb 15, 2023
c64ba55
feat(webex/instant_connect): add webex guest JWT
stakach Feb 16, 2023
f7aef6b
fix(docker-compose): update redis and install-shards image to multi-a…
naqvis Feb 16, 2023
debf062
feat: add health chat rooms (#431)
stakach Feb 20, 2023
2593643
feat(visitor_mailor): all day event time PPT-107 (#424)
chillfox Feb 21, 2023
e9d51fd
fix(chat/health): don't raise if not recently disconnected
stakach Feb 21, 2023
42ab588
feat(leviton/acquisuite): persist last error to help with debugging
stakach Feb 22, 2023
614b09e
feat(password_generator): [PPT-90] add configurable password generato…
chillfox Feb 23, 2023
4844d9d
fix(crestron/nvx_rx): don't downcase stream names
stakach Feb 23, 2023
9dcbbc0
fix(crestron/nvx_rx): compilation issue
stakach Feb 23, 2023
3b4c1a5
feat(chat/health_rooms): add room summaries
stakach Feb 26, 2023
96525b6
fix(chat/health_rooms): room summary wait time
stakach Feb 26, 2023
b076cf9
fix(chat/health_rooms): wait time update check
stakach Feb 26, 2023
2566ad2
feat(chat/health_rooms_models): add text chat only flag to participants
stakach Feb 27, 2023
48a908c
feat: add samsung reduced mdc protocol display
stakach Feb 27, 2023
8dac15d
feat(samsung/reduced_mdc_protocol): add whiteboard clear function
stakach Feb 28, 2023
9468051
feat(chat/health_rooms): implement user exit signal
stakach Feb 28, 2023
96aa0e0
feat(harness): ensure code & images are up to date
stakach Feb 28, 2023
b267157
fix(meraki/dashboard): webhook response code
stakach Feb 28, 2023
e045fdc
feat(place/area_management): obtain building id from system config
stakach Mar 1, 2023
f30a5ce
fix(chat/health_rooms): ensure users are cleaned up
stakach Mar 1, 2023
6dae862
feat(bookings): add ended at field for simplified analytics
stakach Mar 2, 2023
7e55593
feat(chat/health_rooms): provide empty arrays when chat ends
stakach Mar 6, 2023
ad5e71e
fix(leviton): ensure config list is loaded from settings (#435)
camreeves Mar 6, 2023
9671b2d
feat: add johnson_controls metasys
stakach Mar 6, 2023
8f4f01f
fix(place/event_mailer): saving of state event metadata (#436)
w-le Mar 7, 2023
5083f89
feat(crestron/cres_next): added WS manual send function
stakach Mar 7, 2023
720fb49
Merge branch 'master' of https://github.com/PlaceOS/drivers
stakach Mar 7, 2023
62b876e
fix(crestron\nvx_rx): use websocket update method
stakach Mar 7, 2023
d10f4b5
feat(crestron/virtual_switcher): add support for muting outputs
stakach Mar 7, 2023
842c60e
revert(cisco/ise/guest): left for client compatibility
stakach Mar 7, 2023
9458ea6
chore(cisco/ise/guest): rename to avoid history clash
stakach Mar 7, 2023
aa9701a
feat: add globalcache ir (#437)
w-le Mar 7, 2023
86f321f
fix(levtion): allow for null values in readings (#438)
camreeves Mar 8, 2023
f95a407
fix(leviton): Allow for readings to use the correct datatype (#439)
camreeves Mar 8, 2023
b4f3667
fix(globalcache/ir_tv): add a delay between IR commands
w-le Mar 10, 2023
d9bbf3c
chore(globalcache/ir_tv): expose ir commands
w-le Mar 10, 2023
f423242
feat(place/bookings): add host_override option
stakach Mar 14, 2023
70dc930
feat(place/staff-api): add metadata query function
stakach Mar 14, 2023
fc04349
feat(staff_api): add get_event function
stakach Mar 15, 2023
d9a4d75
fix(place/calendar): rate limiter fiber exit
stakach Mar 16, 2023
263deab
chore: fix generation of crystal docs
stakach Mar 16, 2023
d95f896
limit meetings to 4 hours of age
stakach Mar 16, 2023
0db6777
fix(health_rooms): disconnection validation check
stakach Mar 17, 2023
8a009d8
feat(chat/health_rooms): save and restore state on update / recovery
stakach Mar 19, 2023
7fb95dd
fix(place/meet): lighting independent setting
stakach Mar 21, 2023
2f60330
chore: bump driver lighting interface
stakach Mar 21, 2023
5a14558
feat(philips/dynet_text): add generic data send
stakach Mar 21, 2023
4b30b31
feat(philips/dynalite): add link_area function
stakach Mar 21, 2023
499debd
fix(philips\dynalite): fix join byte
stakach Mar 21, 2023
489b401
feat(philips/dynalite): improve unlink area
stakach Mar 21, 2023
d954bb6
feat(place/meet): improve light linking
stakach Mar 21, 2023
3d3f931
fix(place/bookings): potential for inaccurate status flag
stakach Mar 21, 2023
c35f989
feat(place/staff_api): add ical_uid param to metadata patching
stakach Mar 22, 2023
ecd561e
fix(infosilem/room_schedule): current_event_attendees = 0 instead of …
w-le Mar 22, 2023
1346da8
Add Vecos driver PPT-73 (#440)
grkek Mar 23, 2023
939a852
Add GoBright driver PPT-35 (#428)
grkek Mar 23, 2023
8a6ac5e
feat(gobright): simplify driver
stakach Mar 30, 2023
1881b4b
chore(shard.lock): bump versions
stakach Mar 30, 2023
352d058
fix(gobright/api): invalidate token if unauthorised response
stakach Mar 30, 2023
789a9b6
fix(gobright/api): spaces request can support multiple types
stakach Mar 30, 2023
533967a
fix(gobright/api): don't filter types by default
stakach Mar 30, 2023
c709629
feat: add GoBright location service
stakach Mar 30, 2023
bcf9940
fix(gobright/api): spaces request to return space object
stakach Mar 30, 2023
ce0662f
fix(gobright/api): live occupancy requires a location id
stakach Mar 30, 2023
885f235
fix(gobright/locations): return unoccupied spaces
stakach Mar 30, 2023
18fe645
feat(place/chat): add entry notifications (#442)
stakach Mar 31, 2023
a261d98
chore(health_rooms): add debugging log output
stakach Mar 31, 2023
fc90359
chore(health_rooms): add debugging helper
stakach Mar 31, 2023
a1b086b
chore(health_rooms): expose internals in debugging helper
stakach Mar 31, 2023
6c16113
fix(health_rooms): notification metadata extraction
stakach Mar 31, 2023
4dcc5e8
chore(health_rooms): load notification settings when inspecting
stakach Mar 31, 2023
15bd2e3
feat(gobright/api): add bookings
stakach Apr 3, 2023
9fa47a8
feat(gobright/api): allow data in response to be null
stakach Apr 3, 2023
55b2308
fix(gobright/api): response might return data or items
stakach Apr 3, 2023
b089c2b
feat(gobright/location): include bookings in occupied status
stakach Apr 3, 2023
a752760
fix(releezme/vecos): don't require an external library
stakach Apr 4, 2023
169be4d
feat(releezme/vecos): implement required sections of the API
stakach Apr 4, 2023
ff887e4
feat(bookings): add disable_book_now_host binding
stakach Apr 4, 2023
9a7330b
chore: rename releezme to vecos
stakach Apr 4, 2023
d1b48ee
chore(vecos): crystal tool format
stakach Apr 4, 2023
488100f
feat(vecos/releezme): fix nullable fields
stakach Apr 4, 2023
05b8b9b
fix(gobright): not all spaces have a location id
stakach Apr 4, 2023
760e15e
feat(vecos/releezme): implement lockers interface
stakach Apr 5, 2023
cf69a69
fix(vecos/releezme): update models
stakach Apr 5, 2023
66ac33b
feat(vecos/releezme): implement location services
stakach Apr 6, 2023
c958a68
fix(vecos\releezme_locations): update floor mappings key
stakach Apr 6, 2023
c78bb5a
fix: unique keys for location services
stakach Apr 6, 2023
3ba838f
fix(vecos\releezme_locations): change floor mapping key
stakach Apr 6, 2023
23ca3a2
chore(shard.lock): bump version
stakach Apr 6, 2023
fec2bd4
feat(vecos/releezme_locations): skip fetching user if using email as id
stakach Apr 6, 2023
5177d23
fix(vecos/releezme_locations): skip fetching user if using email as id
stakach Apr 6, 2023
65280aa
chore: update lockers interface
stakach Apr 7, 2023
2b803ad
feat: add open ai chatgpt support
stakach Apr 8, 2023
ddb9f23
fix(open_ai/gpt): listing available models
stakach Apr 8, 2023
16d4fe3
feat(open_ai/gpt): make org optional and record usage stats
stakach Apr 9, 2023
0ba10d2
feat: add voice control template for LLM usage
stakach Apr 11, 2023
f5f20a6
feat(open_ai/voice_control): provide access to status data
stakach Apr 11, 2023
8bcd8af
fix(place/meet): default mute feedback is audio_mute
stakach Apr 12, 2023
7f99bdf
chore(shard.lock): bump driver version
stakach Apr 12, 2023
4657e61
fix(nec/display): resolve some common issues
stakach Apr 12, 2023
8539cb4
chore(nec/display): add some debug logging
stakach Apr 12, 2023
cc39b8f
fix(nec/display): multiple lengths for save response
stakach Apr 12, 2023
06148a0
Add 25Live Pro driver PPT-106 (#441)
grkek Apr 12, 2023
61f04fd
chore(shard.lock): bump driver version
stakach Apr 14, 2023
14dfddd
fix(place/desk_bookings_locations): filter on location type
stakach Apr 14, 2023
9074094
chore(placeos/booking_checkin_helper): clearer func names for auto ca…
w-le Apr 14, 2023
39ca011
fix(floorsense/desks_websocket): poll to detect dead socket
stakach Apr 18, 2023
5afc71d
feat(nec/display): fix volume and mute feedback
stakach Apr 19, 2023
5679019
chore(place/booking_checin_helper): comment only
w-le Apr 19, 2023
15518d1
feat(gobright/location_service): add support for desk bookings
stakach Apr 19, 2023
f1d5cb4
chore(shard.lock): bump versions
stakach Apr 20, 2023
d3ad553
Bump items per page from 10 to 100 for 25 Live Pro API (#443)
grkek Apr 21, 2023
ea9b5d9
Finish Delta driver (#444)
grkek Apr 21, 2023
4e45d60
feat: add zencontrol classic tpi
stakach Apr 26, 2023
341c311
feat: add zencontrol using advanced TPI
stakach Apr 26, 2023
3fcdc5f
chore(shard.lock): bump versions
stakach May 1, 2023
95890fb
feat(place/bookings): custom config for exposing data
stakach May 2, 2023
6895639
feat(desk_bookings_locations): can add custom keys
stakach May 2, 2023
0827e7c
chore(place\bookings): fix code comment
stakach May 2, 2023
bf3ccc4
fix(lenel): may not have an email
stakach May 2, 2023
e5b53ba
fix(leviton): add SUCCESS to body of responses (#445)
camreeves May 8, 2023
c8b22ee
fix(amber_tech): can return a N/A state value
stakach May 9, 2023
b7c456f
chore(shard.lock): bump deps
stakach May 9, 2023
d3ec623
feat(cisco/dna_spaces): skip validation as JWT is not signed correctly
stakach May 15, 2023
696b2e0
chore(shard.lock): bump versions
stakach May 16, 2023
95ab60c
feat: add docs workflow
stakach May 16, 2023
2934a25
chore(README): update documentation links
stakach May 17, 2023
c8f3048
fix(meet): project screen control in joining modes
stakach May 25, 2023
7ae561a
fix(esc_vp21): ensure power target not cleared early
stakach May 25, 2023
12e14a3
fix(esc_vp21): ignore nil values on power_target
stakach May 25, 2023
9183cdb
fix(esc_vp21): improve power state tracking
stakach May 25, 2023
f5c382f
fix(esc_vp21): separate power state from power status
stakach May 25, 2023
74ed1eb
fix(esc_vp21): refactor power state checking
stakach May 25, 2023
25c6166
fix(esc_vp21): fix compiling
stakach May 25, 2023
a546973
fix(esc_vp21): change some priorities and expose state
stakach May 25, 2023
a473e6b
fix(esc_vp21): use power_actual to store state
stakach May 25, 2023
4b32276
feat(bookings): add support for resource subscriptions (#447)
stakach May 29, 2023
fa5a9fc
fix(calendar_common): compilation issues
stakach May 29, 2023
9508adf
fix(place/bookings): graph API subscriptions max expiry
stakach May 30, 2023
16057e0
fix(gobright/location_service): fix case where booking has no owner
stakach May 30, 2023
d232084
chore(shard.lock): bump calendar
stakach May 30, 2023
3b28399
chore(shard.lock): bump calendar
stakach May 30, 2023
275883f
fix(gobright/api): include organizer and attendees
stakach Jun 1, 2023
002c9c4
fix(gobright/location_service): bookings map_id exposed properly
stakach Jun 1, 2023
ca6ccf4
chore(shard.lock): bump place calendar
stakach Jun 6, 2023
46699bb
feat(place/calendar_common): add support for ical_uid filtering
stakach Jun 8, 2023
c65ec99
feat(place/calendar_common): add get_event helper method
stakach Jun 8, 2023
cbce0bc
Update the functionality with additional endpoints (#449)
grkek Jun 26, 2023
f8fd3d7
Feat/25 live pro/space id body param (#450)
MarioFavalliR Jun 26, 2023
7d82c2b
feat(approval): event/booking approval driver PPT-518 (#448)
chillfox Jun 26, 2023
aad98d0
Feat/25live/space reservations endpoint (#452)
MarioFavalliR Jul 3, 2023
3d6f7c8
feat(bookings): improve memory usage
stakach Jul 4, 2023
50b8aa2
chore(shard.lock): bump deps
stakach Jul 4, 2023
57896e9
fix(booking_approval): #approve_event (#454)
chillfox Jul 5, 2023
a4d1943
chore(place\bookings): additional debug logs for notify events
stakach Jul 5, 2023
c4f2d6d
chore(place\bookings): debug logs for notify events
stakach Jul 5, 2023
02cf663
fix(place\bookings): notify events can be batched
stakach Jul 5, 2023
126e31d
fix(place\bookings): sync changes to notification settings
stakach Jul 5, 2023
88fa1f0
feat(place/bookings): distribute polling more effectively
stakach Jul 5, 2023
79355aa
fix(kontakt_io): sensors might not have a location
stakach Jul 6, 2023
d782bc7
feat(place/bookings): use new notifications channels
stakach Jul 7, 2023
200e78f
fix(bookings): improve subscription management
stakach Jul 7, 2023
d31a673
chore(bookings): remove staff api change notification hook
stakach Jul 12, 2023
3029a91
fix(area_management): add support for 3rd party desk bookings
stakach Jul 12, 2023
efc4fda
fix(area_management): ignore bookings that don't have a map_id set
stakach Jul 13, 2023
312748b
chore(desks_websocket): debug output for response parsing failures
stakach Jul 17, 2023
8c11a23
fix(models): booking status doesn't always return the key data
stakach Jul 17, 2023
2bf6b41
fix(desks_websocket): don't disconnect on failed WS command
stakach Jul 17, 2023
ba384b9
feat(lenel/openaccess): add lookup_cardholderS : [] (#456)
w-le Jul 17, 2023
8b85aec
feat(place/bookings): remove redundant setting
stakach Jul 17, 2023
8b49dc3
fix(place\bookings): ensure we ignore invalid secrets
stakach Jul 17, 2023
8696c78
fix: invalid accessor use leading to compilation errors
stakach Jul 19, 2023
ff0dbcb
fix(place/bookings): prevent overlapping ad-hoc bookings
stakach Jul 24, 2023
cefe8b3
fix(place/bookings): cannot decline an active meeting
stakach Jul 24, 2023
2dd3898
chore(shard.lock): bump calendar version
stakach Jul 24, 2023
679ecd4
fix(place/bookings): book_now in_use check
stakach Jul 24, 2023
babf6df
fix(cisco/dna_spaces): yaml type confusion parsing tenant_id
stakach Jul 25, 2023
687166e
fix(place/bookings): prevent potential type confusion in YAML settings
stakach Jul 25, 2023
f294e36
fix(place/bookings): prevent type confusion in YAML settings
stakach Jul 25, 2023
0dc45b9
fix(place/booking): prevent type confusion errors
stakach Jul 25, 2023
3f5c1d0
chore(demo/display): add a test helper
stakach Jul 26, 2023
d521085
chore(shard.lock): bump driver
stakach Jul 26, 2023
8b975b7
chore(shard.lock): revert driver change
stakach Jul 26, 2023
7651063
fix(place/bookings): radically reduce subscription lifetime
stakach Jul 31, 2023
58f613f
fix(place/bookings): rate limit forced subscription renewal
stakach Jul 31, 2023
465b38f
fix(gobright): add other pagination methods
stakach Aug 1, 2023
57b685e
fix(gobright): paging count should be optional
stakach Aug 1, 2023
89205f3
fix(releezme/api): auth domain is a setting not hardcoded (#457)
w-le Aug 3, 2023
f85c5cb
feat(vecos\releezme_locations): add name to id mappings
stakach Aug 3, 2023
45c888e
feat(place/staff-api): implement bookings query pagination
stakach Aug 13, 2023
01c05f3
chore(vecos/releezme): fix format
stakach Aug 13, 2023
0144fa1
feat(place/bookings): add owner to booking in app permissions
stakach Aug 14, 2023
56a654e
fix(staff_api): prevent possible infinite loop
stakach Aug 18, 2023
5fad3b0
fix(staff-api): stop fetching bookings if more than 10k returned
stakach Aug 18, 2023
b30412e
feat(staff-api): fail fast if misconfigured
stakach Aug 18, 2023
1a1c94d
fix(gallagher): short name is limited to 16 chars
stakach Aug 20, 2023
7134e46
feat(booking_approver): improve logging and add fallback
stakach Aug 22, 2023
ffe9fab
feat(user_group_mappings): added a sync all users
stakach Aug 22, 2023
584eb00
feat(user_group_mappings): return a list of users that could not be m…
stakach Aug 22, 2023
14ed4a7
fix(user_group_mappings): filter users by authority
stakach Aug 22, 2023
ce65117
fix(booking_approver): query should pass unix time
stakach Aug 22, 2023
959c3de
feat(smtp): add support for reply-to header
stakach Aug 23, 2023
88ba572
fix(booking_approver): simplify filters so updates are not skipped
stakach Aug 23, 2023
c63dfbd
fix(booking-approval): check for bookings in the next 8 weeks
stakach Aug 24, 2023
de45f6b
fix(booking_approver): ensure we don't have an update loop
stakach Aug 24, 2023
dde4c75
fix(booking_aprover): ignore cancelled bookings
stakach Aug 24, 2023
f2f99a4
fix(survey_mailer): make sent nilable (#458)
chillfox Aug 25, 2023
f710ad7
fix(gobright): apply desk mappings when locating users
stakach Aug 29, 2023
f3a39fa
feat(bookings): add a min and max ad-hoc duration
stakach Sep 4, 2023
6274f0a
feat(meraki/mqtt): add line crossing counts
stakach Sep 4, 2023
ee3bb20
feat(meraki/mqtt): reset line counts once a day
stakach Sep 4, 2023
129508c
feat(globalcache): Add projector screen logic driver (#459)
w-le Sep 6, 2023
e6bf6b4
feat: add enable_end_meeting_button status
stakach Sep 18, 2023
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
f3c2eac
feat(placeos/visitor-deleter): new driver deletes Guests, Visitor Boo…
w-le Sep 22, 2023
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 }}
135 changes: 135 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
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.8.2
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
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@v3
- 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