neewer-cli 0.1.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,27 @@
1
+ # Code of Conduct
2
+
3
+ ## Our Standards
4
+
5
+ Participants in this project are expected to:
6
+
7
+ - be respectful and constructive
8
+ - focus on technical substance
9
+ - accept and provide feedback professionally
10
+ - avoid harassment, personal attacks, and discriminatory language
11
+
12
+ ## Scope
13
+
14
+ This Code of Conduct applies to:
15
+
16
+ - repository issues, pull requests, and discussions
17
+ - project-related communication spaces
18
+
19
+ ## Enforcement
20
+
21
+ Project maintainers may remove comments, reject contributions, or restrict participation for behavior that violates this Code of Conduct.
22
+
23
+ ## Reporting
24
+
25
+ Report unacceptable behavior privately to the maintainer via GitHub direct contact:
26
+
27
+ - https://github.com/SergeDubovsky
@@ -0,0 +1,38 @@
1
+ # Contributing
2
+
3
+ Thanks for contributing to `neewer-cli`.
4
+
5
+ ## Local Setup
6
+
7
+ ```bash
8
+ git clone https://github.com/SergeDubovsky/neewer-cli.git
9
+ cd neewer-cli
10
+ python -m pip install -U pip
11
+ python -m pip install ".[dev]"
12
+ ```
13
+
14
+ ## Run Checks
15
+
16
+ ```bash
17
+ python -m ruff check .
18
+ python -m pytest -q
19
+ python -m build
20
+ python -m twine check dist/*
21
+ ```
22
+
23
+ ## Scope
24
+
25
+ - Keep changes focused and testable.
26
+ - Add/adjust tests for logic changes.
27
+ - For BLE behavior changes, prefer preserving compatibility with existing Neewer models.
28
+ - Use PRs against `main` (direct pushes should be avoided for normal changes).
29
+
30
+ ## Developer Docs
31
+
32
+ - [docs/developer-guide.md](docs/developer-guide.md)
33
+ - [docs/wiki/Configuration.md](docs/wiki/Configuration.md)
34
+
35
+ ## Attribution
36
+
37
+ This project is derived from NeewerLite-Python by Zach Glenwright.
38
+ Please preserve attribution and licensing metadata when changing related code.
@@ -0,0 +1,22 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021-2022 Zach Glenwright
4
+ Copyright (c) 2026 Sergei Dubovsky
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in all
14
+ copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
+ SOFTWARE.
@@ -0,0 +1,10 @@
1
+ include README.md
2
+ include CONTRIBUTING.md
3
+ include RELEASING.md
4
+ include SECURITY.md
5
+ include SUPPORT.md
6
+ include CODE_OF_CONDUCT.md
7
+ include LICENSE
8
+ include NOTICE
9
+ include neewer.example.json
10
+ recursive-include docs *.md
@@ -0,0 +1,8 @@
1
+ This project contains work derived from:
2
+
3
+ NeewerLite-Python
4
+ Copyright (c) 2021-2022 Zach Glenwright
5
+ https://github.com/taburineagle/NeewerLite-Python
6
+
7
+ Modifications and standalone CLI refactor:
8
+ Copyright (c) 2026 Sergei Dubovsky
@@ -0,0 +1,251 @@
1
+ Metadata-Version: 2.4
2
+ Name: neewer-cli
3
+ Version: 0.1.1
4
+ Summary: Standalone Neewer BLE CLI utility
5
+ Author: Sergei Dubovsky
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/SergeDubovsky/neewer-cli
8
+ Project-URL: Repository, https://github.com/SergeDubovsky/neewer-cli
9
+ Project-URL: Issues, https://github.com/SergeDubovsky/neewer-cli/issues
10
+ Keywords: neewer,ble,bluetooth,lighting,cli
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3 :: Only
14
+ Classifier: Programming Language :: Python :: 3.9
15
+ Classifier: Programming Language :: Python :: 3.10
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Environment :: Console
20
+ Classifier: Topic :: Utilities
21
+ Requires-Python: >=3.9
22
+ Description-Content-Type: text/markdown
23
+ License-File: LICENSE
24
+ License-File: NOTICE
25
+ Requires-Dist: bleak>=0.20
26
+ Provides-Extra: yaml
27
+ Requires-Dist: PyYAML>=6.0; extra == "yaml"
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=8.0; extra == "dev"
30
+ Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
31
+ Requires-Dist: build>=1.2; extra == "dev"
32
+ Requires-Dist: twine>=5.0; extra == "dev"
33
+ Requires-Dist: ruff>=0.6; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # neewer-cli
37
+
38
+ [![CI](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/ci.yml)
39
+ [![Release](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/release.yml/badge.svg)](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/release.yml)
40
+ [![License: MIT](https://img.shields.io/github/license/SergeDubovsky/neewer-cli)](LICENSE)
41
+
42
+ Standalone Neewer BLE command-line utility focused on fast and reliable control without a GUI.
43
+
44
+ ## Why This Tool
45
+
46
+ - CLI-only workflow for scripting and automation.
47
+ - Reliability controls for unstable BLE environments (retries, passes, bounded parallelism).
48
+ - Fast fixed-rig operation with config-driven `--skip-discovery`.
49
+ - Presets, groups, and per-light command overrides keyed by MAC.
50
+
51
+ ## Attribution
52
+
53
+ This project is based on and derives protocol/model support from:
54
+
55
+ - **NeewerLite-Python** by **Zach Glenwright**
56
+ - https://github.com/taburineagle/NeewerLite-Python
57
+
58
+ ## Requirements
59
+
60
+ - Python `3.9+`
61
+ - Bluetooth adapter with BLE support
62
+
63
+ The runtime BLE dependency (`bleak`) is installed automatically by package install commands below.
64
+
65
+ ## Installation
66
+
67
+ Current recommended install (GitHub source):
68
+
69
+ ```bash
70
+ # one-time install of pipx
71
+ python -m pip install --user pipx
72
+ python -m pipx ensurepath
73
+
74
+ # install neewer-cli from GitHub
75
+ pipx install git+https://github.com/SergeDubovsky/neewer-cli.git
76
+ ```
77
+
78
+ Alternative user install:
79
+
80
+ ```bash
81
+ python -m pip install --user git+https://github.com/SergeDubovsky/neewer-cli.git
82
+ ```
83
+
84
+ After install:
85
+
86
+ ```bash
87
+ neewer-cli --help
88
+ neewer-cli --version
89
+ ```
90
+
91
+ PyPI publishing is handled by GitHub Actions using Trusted Publishing (OIDC).
92
+
93
+ ## Quick Start
94
+
95
+ ```bash
96
+ # 1) discover lights
97
+ neewer-cli --list
98
+
99
+ # 2) copy example config to default config path
100
+ # Windows (PowerShell/CMD)
101
+ copy neewer.example.json %USERPROFILE%\.neewer
102
+
103
+ # macOS/Linux
104
+ cp neewer.example.json ~/.neewer
105
+
106
+ # 3) run presets
107
+ neewer-cli --preset all_on
108
+ neewer-cli --preset all_off
109
+ neewer-cli --preset key_cct_5600_30
110
+ ```
111
+
112
+ ## Common Commands
113
+
114
+ ```bash
115
+ # turn configured lights on/off quickly
116
+ neewer-cli --preset all_on
117
+ neewer-cli --preset all_off
118
+
119
+ # send direct command to specific MACs
120
+ neewer-cli --light D2:E2:75:8B:36:45,F8:46:85:EF:47:70 --mode CCT --temp 5600 --bri 30
121
+
122
+ # fast fixed-rig mode (no scan)
123
+ neewer-cli --light group:studio --preset all_on --skip-discovery
124
+
125
+ # persistent low-latency mode (keep connections open)
126
+ neewer-cli --serve --light group:studio --skip-discovery --debug
127
+ ```
128
+
129
+ ## Configuration
130
+
131
+ Default config path:
132
+
133
+ - `~/.neewer` (Windows: `%USERPROFILE%\.neewer`)
134
+
135
+ Top-level config keys:
136
+
137
+ - `defaults`: default CLI flags
138
+ - `lights`: per-MAC metadata (`name`, `cct_only`, `infinity_mode`, `hw_mac`, optional feature flags)
139
+ - `groups`: named MAC sets
140
+ - `presets`: reusable command sets
141
+ - `presets.<name>.per_light`: per-light command overrides in one run
142
+
143
+ Optional per-light feature flags in `lights`:
144
+
145
+ - `supports_status_query`: override model detection for `--status` query commands
146
+ - `supports_extended_scene`: override model detection for extended scene payloads
147
+
148
+ Reference material:
149
+
150
+ - Example config: [neewer.example.json](neewer.example.json)
151
+ - Wiki configuration guide: https://github.com/SergeDubovsky/neewer-cli/wiki/Configuration
152
+
153
+ ## Reliability Tuning
154
+
155
+ For flaky BLE environments, tune:
156
+
157
+ - `--scan-attempts`
158
+ - `--resolve-timeout` (short BLE handle resolve scan for `--skip-discovery`)
159
+ - `--connect-retries`
160
+ - `--write-retries`
161
+ - `--passes` (adaptive retries for failed lights only)
162
+ - `--parallel`
163
+
164
+ For stable fixed setups, keep `lights` fully defined in config and use `--skip-discovery` to reduce latency.
165
+
166
+ ## Advanced Protocol (Experimental)
167
+
168
+ Advanced commands are opt-in behind feature flags and still gated by per-model support.
169
+
170
+ Status query (power/channel):
171
+
172
+ ```bash
173
+ neewer-cli --light group:studio --status --enable-status-query --skip-discovery
174
+ ```
175
+
176
+ Extended scene arguments (supported models only):
177
+
178
+ ```bash
179
+ neewer-cli --light group:studio --mode SCENE --scene 12 --bri 40 \
180
+ --scene-hue-min 20 --scene-hue-max 240 --scene-speed 7 \
181
+ --enable-extended-scene
182
+ ```
183
+
184
+ If auto-detection is wrong for a specific light, set `supports_status_query` or
185
+ `supports_extended_scene` for that MAC in config.
186
+
187
+ ### Serve Mode
188
+
189
+ `--serve` keeps BLE connections open and accepts commands from stdin:
190
+
191
+ ```bash
192
+ neewer-cli --serve --light group:studio --skip-discovery --debug
193
+ ```
194
+
195
+ Interactive commands:
196
+
197
+ - `on`
198
+ - `off`
199
+ - `cct <temp> <bri> [gm]`
200
+ - `hsi <hue> <sat> <bri>`
201
+ - `scene <effect> <bri>`
202
+ - `preset <name>`
203
+ - `help`
204
+ - `exit`
205
+
206
+ ## Security
207
+
208
+ - Private vulnerability reporting is enabled.
209
+ - Code scanning (CodeQL) is enabled for `python` and `actions`.
210
+ - Secret scanning and push protection are enabled.
211
+
212
+ Please report security issues privately per [SECURITY.md](SECURITY.md).
213
+
214
+ ## Releases
215
+
216
+ GitHub releases include wheel and source distribution artifacts:
217
+
218
+ - https://github.com/SergeDubovsky/neewer-cli/releases
219
+
220
+ Maintainer release flow:
221
+
222
+ 1. Update `version` in `pyproject.toml`.
223
+ 2. Run local checks (`ruff`, `pytest`, `build`, `twine check`).
224
+ 3. Commit and push to `main`.
225
+ 4. Tag and push (`git tag vX.Y.Z && git push origin vX.Y.Z`).
226
+ 5. Release workflow:
227
+ - builds + tests
228
+ - publishes to TestPyPI (`testpypi` environment)
229
+ - publishes to PyPI (`pypi` environment)
230
+ - creates a GitHub Release with built artifacts
231
+
232
+ Trusted Publishing setup requirement:
233
+
234
+ - In both TestPyPI and PyPI project settings, add this repository/workflow as a Trusted Publisher for:
235
+ - owner/repo: `SergeDubovsky/neewer-cli`
236
+ - workflow: `.github/workflows/release.yml`
237
+ - environments: `testpypi` and `pypi`
238
+
239
+ ## Project Docs
240
+
241
+ - Wiki home: https://github.com/SergeDubovsky/neewer-cli/wiki
242
+ - Developer guide: https://github.com/SergeDubovsky/neewer-cli/wiki/Developer-Guide
243
+ - Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)
244
+ - Release process: [RELEASING.md](RELEASING.md)
245
+ - Security policy: [SECURITY.md](SECURITY.md)
246
+ - Support policy: [SUPPORT.md](SUPPORT.md)
247
+ - Code of conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
248
+
249
+ ## License
250
+
251
+ MIT. See [LICENSE](LICENSE).
@@ -0,0 +1,216 @@
1
+ # neewer-cli
2
+
3
+ [![CI](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/ci.yml)
4
+ [![Release](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/release.yml/badge.svg)](https://github.com/SergeDubovsky/neewer-cli/actions/workflows/release.yml)
5
+ [![License: MIT](https://img.shields.io/github/license/SergeDubovsky/neewer-cli)](LICENSE)
6
+
7
+ Standalone Neewer BLE command-line utility focused on fast and reliable control without a GUI.
8
+
9
+ ## Why This Tool
10
+
11
+ - CLI-only workflow for scripting and automation.
12
+ - Reliability controls for unstable BLE environments (retries, passes, bounded parallelism).
13
+ - Fast fixed-rig operation with config-driven `--skip-discovery`.
14
+ - Presets, groups, and per-light command overrides keyed by MAC.
15
+
16
+ ## Attribution
17
+
18
+ This project is based on and derives protocol/model support from:
19
+
20
+ - **NeewerLite-Python** by **Zach Glenwright**
21
+ - https://github.com/taburineagle/NeewerLite-Python
22
+
23
+ ## Requirements
24
+
25
+ - Python `3.9+`
26
+ - Bluetooth adapter with BLE support
27
+
28
+ The runtime BLE dependency (`bleak`) is installed automatically by package install commands below.
29
+
30
+ ## Installation
31
+
32
+ Current recommended install (GitHub source):
33
+
34
+ ```bash
35
+ # one-time install of pipx
36
+ python -m pip install --user pipx
37
+ python -m pipx ensurepath
38
+
39
+ # install neewer-cli from GitHub
40
+ pipx install git+https://github.com/SergeDubovsky/neewer-cli.git
41
+ ```
42
+
43
+ Alternative user install:
44
+
45
+ ```bash
46
+ python -m pip install --user git+https://github.com/SergeDubovsky/neewer-cli.git
47
+ ```
48
+
49
+ After install:
50
+
51
+ ```bash
52
+ neewer-cli --help
53
+ neewer-cli --version
54
+ ```
55
+
56
+ PyPI publishing is handled by GitHub Actions using Trusted Publishing (OIDC).
57
+
58
+ ## Quick Start
59
+
60
+ ```bash
61
+ # 1) discover lights
62
+ neewer-cli --list
63
+
64
+ # 2) copy example config to default config path
65
+ # Windows (PowerShell/CMD)
66
+ copy neewer.example.json %USERPROFILE%\.neewer
67
+
68
+ # macOS/Linux
69
+ cp neewer.example.json ~/.neewer
70
+
71
+ # 3) run presets
72
+ neewer-cli --preset all_on
73
+ neewer-cli --preset all_off
74
+ neewer-cli --preset key_cct_5600_30
75
+ ```
76
+
77
+ ## Common Commands
78
+
79
+ ```bash
80
+ # turn configured lights on/off quickly
81
+ neewer-cli --preset all_on
82
+ neewer-cli --preset all_off
83
+
84
+ # send direct command to specific MACs
85
+ neewer-cli --light D2:E2:75:8B:36:45,F8:46:85:EF:47:70 --mode CCT --temp 5600 --bri 30
86
+
87
+ # fast fixed-rig mode (no scan)
88
+ neewer-cli --light group:studio --preset all_on --skip-discovery
89
+
90
+ # persistent low-latency mode (keep connections open)
91
+ neewer-cli --serve --light group:studio --skip-discovery --debug
92
+ ```
93
+
94
+ ## Configuration
95
+
96
+ Default config path:
97
+
98
+ - `~/.neewer` (Windows: `%USERPROFILE%\.neewer`)
99
+
100
+ Top-level config keys:
101
+
102
+ - `defaults`: default CLI flags
103
+ - `lights`: per-MAC metadata (`name`, `cct_only`, `infinity_mode`, `hw_mac`, optional feature flags)
104
+ - `groups`: named MAC sets
105
+ - `presets`: reusable command sets
106
+ - `presets.<name>.per_light`: per-light command overrides in one run
107
+
108
+ Optional per-light feature flags in `lights`:
109
+
110
+ - `supports_status_query`: override model detection for `--status` query commands
111
+ - `supports_extended_scene`: override model detection for extended scene payloads
112
+
113
+ Reference material:
114
+
115
+ - Example config: [neewer.example.json](neewer.example.json)
116
+ - Wiki configuration guide: https://github.com/SergeDubovsky/neewer-cli/wiki/Configuration
117
+
118
+ ## Reliability Tuning
119
+
120
+ For flaky BLE environments, tune:
121
+
122
+ - `--scan-attempts`
123
+ - `--resolve-timeout` (short BLE handle resolve scan for `--skip-discovery`)
124
+ - `--connect-retries`
125
+ - `--write-retries`
126
+ - `--passes` (adaptive retries for failed lights only)
127
+ - `--parallel`
128
+
129
+ For stable fixed setups, keep `lights` fully defined in config and use `--skip-discovery` to reduce latency.
130
+
131
+ ## Advanced Protocol (Experimental)
132
+
133
+ Advanced commands are opt-in behind feature flags and still gated by per-model support.
134
+
135
+ Status query (power/channel):
136
+
137
+ ```bash
138
+ neewer-cli --light group:studio --status --enable-status-query --skip-discovery
139
+ ```
140
+
141
+ Extended scene arguments (supported models only):
142
+
143
+ ```bash
144
+ neewer-cli --light group:studio --mode SCENE --scene 12 --bri 40 \
145
+ --scene-hue-min 20 --scene-hue-max 240 --scene-speed 7 \
146
+ --enable-extended-scene
147
+ ```
148
+
149
+ If auto-detection is wrong for a specific light, set `supports_status_query` or
150
+ `supports_extended_scene` for that MAC in config.
151
+
152
+ ### Serve Mode
153
+
154
+ `--serve` keeps BLE connections open and accepts commands from stdin:
155
+
156
+ ```bash
157
+ neewer-cli --serve --light group:studio --skip-discovery --debug
158
+ ```
159
+
160
+ Interactive commands:
161
+
162
+ - `on`
163
+ - `off`
164
+ - `cct <temp> <bri> [gm]`
165
+ - `hsi <hue> <sat> <bri>`
166
+ - `scene <effect> <bri>`
167
+ - `preset <name>`
168
+ - `help`
169
+ - `exit`
170
+
171
+ ## Security
172
+
173
+ - Private vulnerability reporting is enabled.
174
+ - Code scanning (CodeQL) is enabled for `python` and `actions`.
175
+ - Secret scanning and push protection are enabled.
176
+
177
+ Please report security issues privately per [SECURITY.md](SECURITY.md).
178
+
179
+ ## Releases
180
+
181
+ GitHub releases include wheel and source distribution artifacts:
182
+
183
+ - https://github.com/SergeDubovsky/neewer-cli/releases
184
+
185
+ Maintainer release flow:
186
+
187
+ 1. Update `version` in `pyproject.toml`.
188
+ 2. Run local checks (`ruff`, `pytest`, `build`, `twine check`).
189
+ 3. Commit and push to `main`.
190
+ 4. Tag and push (`git tag vX.Y.Z && git push origin vX.Y.Z`).
191
+ 5. Release workflow:
192
+ - builds + tests
193
+ - publishes to TestPyPI (`testpypi` environment)
194
+ - publishes to PyPI (`pypi` environment)
195
+ - creates a GitHub Release with built artifacts
196
+
197
+ Trusted Publishing setup requirement:
198
+
199
+ - In both TestPyPI and PyPI project settings, add this repository/workflow as a Trusted Publisher for:
200
+ - owner/repo: `SergeDubovsky/neewer-cli`
201
+ - workflow: `.github/workflows/release.yml`
202
+ - environments: `testpypi` and `pypi`
203
+
204
+ ## Project Docs
205
+
206
+ - Wiki home: https://github.com/SergeDubovsky/neewer-cli/wiki
207
+ - Developer guide: https://github.com/SergeDubovsky/neewer-cli/wiki/Developer-Guide
208
+ - Contributing: [CONTRIBUTING.md](CONTRIBUTING.md)
209
+ - Release process: [RELEASING.md](RELEASING.md)
210
+ - Security policy: [SECURITY.md](SECURITY.md)
211
+ - Support policy: [SUPPORT.md](SUPPORT.md)
212
+ - Code of conduct: [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)
213
+
214
+ ## License
215
+
216
+ MIT. See [LICENSE](LICENSE).
@@ -0,0 +1,43 @@
1
+ # Releasing
2
+
3
+ ## 1) Bump Version
4
+
5
+ Update `version` in `pyproject.toml`.
6
+
7
+ ## 2) Validate Locally
8
+
9
+ ```bash
10
+ python -m ruff check .
11
+ python -m pytest -q
12
+ python -m build
13
+ python -m twine check dist/*
14
+ ```
15
+
16
+ ## 3) Publish Source Changes
17
+
18
+ ```bash
19
+ git add .
20
+ git commit -m "Release vX.Y.Z"
21
+ git push origin main
22
+ ```
23
+
24
+ ## 4) Create Tag
25
+
26
+ ```bash
27
+ git tag vX.Y.Z
28
+ git push origin vX.Y.Z
29
+ ```
30
+
31
+ ## 5) Verify GitHub Actions
32
+
33
+ - `CI` workflow passes on `main`
34
+ - `Release` workflow passes on tag (or manual dispatch with required `tag` input)
35
+ - GitHub release contains:
36
+ - wheel (`.whl`)
37
+ - source dist (`.tar.gz`)
38
+
39
+ ## 6) Verify Repository Guards
40
+
41
+ - `main` branch protection is enabled
42
+ - PR review requirement is enabled
43
+ - required status checks include CI matrix jobs
@@ -0,0 +1,49 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ Security fixes are provided for the latest released version and the current `main` branch.
6
+
7
+ | Version | Supported |
8
+ | --- | --- |
9
+ | `main` | Yes |
10
+ | Latest release | Yes |
11
+ | Older releases | No |
12
+
13
+ ## Reporting a Vulnerability
14
+
15
+ Do not open public issues for security vulnerabilities.
16
+
17
+ Please report privately via:
18
+
19
+ - GitHub Security Advisories: https://github.com/SergeDubovsky/neewer-cli/security/advisories/new
20
+
21
+ Include:
22
+
23
+ - affected version
24
+ - reproduction steps
25
+ - expected and actual behavior
26
+ - potential impact
27
+
28
+ ## Triage and Response Targets
29
+
30
+ - Initial acknowledgment: within 72 hours
31
+ - Triage outcome and severity assessment: within 7 days
32
+ - Remediation timeline: shared after triage
33
+
34
+ Severity is assessed using impact, exploitability, and affected surface area.
35
+
36
+ ## Disclosure Policy
37
+
38
+ - Please allow time for a fix before public disclosure.
39
+ - After a fix is available, maintainers will publish a coordinated advisory.
40
+ - Credit is given to reporters unless they request anonymity.
41
+
42
+ ## Scope
43
+
44
+ This project is a local BLE CLI utility. Security reports are most useful when they involve:
45
+
46
+ - unsafe handling of untrusted input/config
47
+ - credential/token leakage risks
48
+ - supply chain risks in build/release workflows
49
+ - command execution or privilege escalation paths
@@ -0,0 +1,22 @@
1
+ # Support
2
+
3
+ ## Usage Questions
4
+
5
+ Open a GitHub Discussion or Issue:
6
+
7
+ - Discussions: https://github.com/SergeDubovsky/neewer-cli/discussions
8
+ - Issues: https://github.com/SergeDubovsky/neewer-cli/issues
9
+
10
+ ## Bug Reports
11
+
12
+ Please include:
13
+
14
+ - OS and Python version
15
+ - CLI command used
16
+ - sanitized config snippet
17
+ - `--debug` output
18
+ - expected vs actual behavior
19
+
20
+ ## Security Issues
21
+
22
+ Use the private security reporting flow in `SECURITY.md`.