Feature/new providers - #76
Merged
Merged
Conversation
Add a provider-neutral profile loader backed by ~/.anvil/config.toml, with support for overriding the path through ANVIL_CONFIG. Migrate GitHub authentication profiles from the GitHub-specific ANVIL_GITHUB_CONFIG and ~/.github/config mechanism to provider-namespaced Anvil profiles under [providers.github.<profile>]. Keep profile option validation provider-owned, preserve named and default GitHub profile behavior, and update CLI diagnostics to report the resolved Anvil configuration file.
Add Cloudflare as a first-class Anvil provider with account- and zone-scoped execution modes. Implement provider registration, option validation, authentication, session creation, deterministic target discovery, execution planning, and runtime integration using the standard provider contracts. Support API token authentication and legacy API key/email credentials without introducing cloud-specific hierarchy assumptions into Anvil core. Add the optional Cloudflare SDK dependency and provider documentation.
Add Datadog as a first-class Anvil provider using organization-scoped execution. Implement provider registration, option validation, API and application key authentication, site-aware client configuration, session creation, execution planning, and runtime integration through the standard Anvil provider contracts.
Add PagerDuty as a first-class Anvil provider using account-scoped execution. Implement provider registration, option validation, token authentication, REST API session creation, execution planning, and runtime integration through the normal Anvil provider contracts.
Add GitLab as a first-class Anvil provider with group- and project-scoped execution modes. Implement provider registration, option validation, authentication, session creation, deterministic hierarchy discovery, target resolution, execution planning, and runtime integration using the standard provider contracts.
Move secret fingerprint generation into the shared provider layer so all providers can build credential-sensitive cache identities without duplicating hashing behavior.
Add ~/.anvil/config.toml profile support for Cloudflare, Datadog, GitLab, and PagerDuty.
Add initial stock tasks for Cloudflare, Datadog, GitLab, and PagerDuty.
- Add provider inventory and membership-management tasks using singular resource names and plural array selectors. - Add GitHub organization member, team, and team-member operations - GitLab membership operations - Cloudflare account-member operations - Datadog user management - PagerDuty user inventory and removal. - Rename the Identity Center cleanup task to remove_idc_user and support filtering by multiple user IDs, usernames, or emails, status-only bulk cleanup, or the intersection of users and status.
Update the Anvil task-builder skill with naming, selector, destructive-task, and breaking-change conventions.
…es/anvil into feature/new_providers
Reduce or plan to reduce pieces or information to simplify the flow. People can extrapolate certain areas
Add simple, multi-target, include/exclude, and advanced examples forCloudflare, Datadog, GitLab, and PagerDuty. Normalize YAML indentation across the examples directory and renumber the AWS cleanup workflow to keep each provider series contiguous. Update the Anvil task-builder skill to document current package-based task,processor, and provider entry points without maintaining a fixed provider allowlist. Expand example tests to verify each new provider has four numbered examples, all configurations load successfully, and referenced tasks resolve for their configured provider.
Anvil's SDK-logger suppression list (added for azure/github/google) missed httpx, which backs the Cloudflare SDK's HTTP client. Every Cloudflare API call was logging a raw "HTTP Request: GET ..." line at INFO, and the SDK's pydantic models also emit a benign UserWarning "Pydantic serializer warnings: PydanticSerializationUnexpectedValue") for a known upstream PolicyResourceGroupScope typing mismatch.
- stop GitHub member and team pagination at max_results - apply Datadog monitor limits through the API page_size parameter - cache GitLab project lookups within target-scoped sessions - add regression coverage for bounded iteration and project reuse
- Adds --version support to the CLI using installed package metadata and includes regression coverage for stable output and a successful exit code. - Also updates the Python best-practices skill to require and document root-level version flags for installable console applications.
- Adds an all package extra that installs every optional provider dependency in one command. - Updates the README with installation and source-sync examples for using the new all extra.
- Replace unkeyed SHA-256 secret fingerprints with HMAC-SHA256 using a random process-local key. - Update provider base tests to verify normalization, stability, output format, and distinct fingerprints without depending on a fixed digest.
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.
Description
Expands Anvil beyond cloud platforms with first-class Cloudflare, Datadog, GitLab, and PagerDuty providers. Each provider includes authentication, target resolution, session management, execution planning, built-in tasks, optional dependencies, examples, and comprehensive tests.
~/.anvil/config.tomlorANVIL_CONFIG.--versionoption and reduce noisy provider SDK logging.Task standardization and compatibility notes
Checklist
ruffandpytest) were successful.