Repository navigation
Integrate FileAutomation development into main - #110
Merged
Merged
Conversation
…s with the env keys; never reveal a key
…ect; query public repos without it
…ss_copy that does not exist
The integrity package compares a tree at any storage URI with an approved baseline: snapshot, verify, watch and continuous modes, six kinds of change, a versioned manifest, one IntegrityViolation event per pass that finds drift, and opt-in remediation. The first monitor's call, summary and notification are kept.
Routes deliver events to named sinks with deduplication and a rate limit per route, and the audit trail records one row per event and per storage operation in a searchable store. Both are opt-in. While the router is active, notify_on_failure and the integrity monitor leave the direct notification to it.
Pipelines run tasks in dependency order with retry, timeout, cancellation, conditions, idempotency, checkpoint and resume, a dry run and an execution history, from Python or from a versioned YAML or JSON definition. FA_storage_verify can raise on a mismatch (strict), so a verification can fail its task. The action ACL and the MCP server now check action names nested in the arguments of another action.
Says what is public, the stability levels, what a version number promises and how a name is retired, and adds the helper every deprecation goes through.
The storage contract suite runs against MinIO, Azurite, OpenSSH, FTP, WebDAV and Samba in containers, and the unit tests on Linux and macOS. Nothing here has run yet: there is no Docker on the development machine, so the first workflow run is the test.
Cron with a time zone, manual, file, event and pipeline triggers; action-list and pipeline targets; a record of every run with seven states; overlap protection, timeouts and cancellation.
One plain-Python service per navigation entry, a sidebar GUI built on them with a pipeline editor, and a web UI that renders the same services. The older tabs stay under Advanced.
MinIO from quay.io, a writable FTP root, Samba on port 445 and a replace that removes the target first, a 400 from Apache for a path below a file, a versioning name too long to ask about on macOS, the package job on the locked tools, and equality tests written so that a scanner does not read them as self-comparisons.
File-level pylint disables in the test modules for the rules pytest idioms trip, each with its reason; markers with reasons where a scanner reads a test digest or a constant SQL statement as a risk; nine long lines wrapped; one variable renamed. The S3 integration job uses S3Mock, since MinIO's image can no longer be pulled.
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 9070 |
| Duplication | 81 |
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Integrate the current development branch and its accumulated implementation, tests, and documentation into main. Validation: pull request checks will be monitored, failures addressed, and merging performed after validation.
Validation fixes: hash-locked lint and integration tools, isolated rate-limiter time, and a shared Qt application with explicit shutdown before interpreter exit. The full local suite passes 5,769 tests (257 skipped). Metadata, workflow and GUI checks pass 166 tests. PySide6 is limited to >=6.11.2,<6.12 because Windows CI with 6.12 crashes during QApplication shutdown; the CI matrix validates fresh installs with the compatible range.
Merge dependency: PyBreeze PR #142 must merge first because its metadata explicitly retains automation-file[all] before this project publishes the new optional extras layout. The latest commit records that dependency and archives the completed migration task.