-
Notifications
You must be signed in to change notification settings - Fork 45
Refresh every 50 #451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
leonid-zats
wants to merge
58
commits into
apollographql:main
Choose a base branch
from
docontrol-io:refresh-every-50
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Refresh every 50 #451
Conversation
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
- Add config_manager.rs for HTTP client configuration - Add startup.rs for application startup logic - Add token_manager.rs for token refresh functionality - Update Cargo.toml with new dependencies - Modify graphql.rs and lib.rs for new features - Add custom test.yml CI workflow
- Add build.yml workflow for 8 target architectures: - Linux: x86_64, aarch64 (glibc and musl) - macOS: x86_64, aarch64 (Intel and Apple Silicon) - Windows: x86_64, aarch64 (MSVC) - Configure cross-compilation in .cargo/config.toml - Optimize release builds with LTO, single codegen unit, and strip - Auto-create GitHub releases with artifacts and checksums - Support both tag-triggered and manual releases
- Build workflow now triggers only on pushes to main branch (after PR merges) - Keeps test workflow separate for PR testing - Builds still run on version tags and manual dispatch
- Fix test 'results_in_mcp_error_when_json_body_cannot_be_parsed' - Update assertion to match actual error message: 'Failed to parse JSON response' - All tests now pass (143/143)
- Remove musl Linux targets (x86_64-unknown-linux-musl, aarch64-unknown-linux-musl) - Remove Windows ARM64 target (aarch64-pc-windows-msvc) - Keep only native builds for macOS (x86_64-apple-darwin, aarch64-apple-darwin) - Keep Linux cross-compilation (x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu) - Keep Windows x86_64 native build - Update .cargo/config.toml to remove musl linker configs - Fixes zstd-sys cross-compilation issues with macOS ARM64 from Linux
- Fix collapsible if statements in config_manager.rs and token_manager.rs - Replace expect() with proper error handling in TokenManager::new - Change TokenManager::new to return Result<Self, McpError> - Update startup.rs to handle TokenManager::new Result - All clippy warnings resolved, all tests passing
- Run cargo fmt to fix all formatting issues - Ensure consistent code style across all files - All formatting checks now pass
- Remove upstream remote connection to apollographql/apollo-mcp-server - Update repository metadata to point to docontrol-io/dc-mcp-server - Update authors to DoControl - Repository is now completely independent
- Add tests for ConfigManager: file operations, backup creation, verification, and content preservation - Add tests for TokenManager: creation validation, expiry logic, clone functionality, and memory storage - Add tests for startup initialization flow and environment variable handling - Add input validation to TokenManager::new for empty refresh tokens and URLs - Add getter methods to TokenManager for testing private fields - Fix config file format in tests to match expected Authorization header format - Fix unused mut warning in startup tests - All tests pass successfully (153 tests total)
- Remove Windows and musl targets from supportedTargets - Keep only aarch64-apple-darwin, x86_64-apple-darwin, aarch64-unknown-linux-gnu, x86_64-unknown-linux-gnu - Resolves linker issues with unsupported architectures
- Remove Apollo-specific workflows: - canary-release.yml - prep-release.yml - release-bins.yml (complex multi-platform) - release-container.yml - sync-develop.yml - verify-changeset.yml - Keep ci.yml as main CI pipeline - Add simple release.yml for Ubuntu x86_64 builds only - Much simpler and more maintainable for independent org
- Add 'nix-collect-garbage -d' step to all CI jobs - Forces rebuild of cached derivations with simplified configuration - Resolves persistent linker errors from old cached cross-compilation setup - Ensures fresh builds with current nix/apollo-mcp.nix configuration
- Run cargo fmt to fix formatting in: - config_manager.rs - startup.rs - token_manager.rs - Resolves rustfmt check failures in CI - Code now follows Rust formatting standards
…acts - Override cargoCheckCommand to use 'cargo check --release --locked' instead of '--all-targets' - The --all-targets flag was causing cargo to try cross-compilation - This should resolve the 'x86_64-linux-gnu-gcc not found' error - Use native toolchain to ensure native builds only
- Remove --locked from cargoCheckCommand override - Crane library automatically adds --locked flag - Resolves 'argument --locked cannot be used multiple times' error - Keep only --release flag to avoid --all-targets cross-compilation
- Delete entire coverage job from ci.yml - Remove cargo-llvm-cov installation and usage - Remove codecov upload step - Simplify CI to focus on core functionality only - No more coverage dependencies or secrets required
- Change cargoClippyExtraArgs from '--all-targets -- --deny warnings' to '-- --deny warnings' - Prevents clippy check from trying to cross-compile - Resolves 'x86_64-linux-gnu-gcc not found' error in checks - Ensures all checks use native builds only
- Add cargoExtraArgs = '' to cargoArtifacts build - This should prevent crane from adding --all-targets automatically - Combined with cargoCheckCommand override for maximum effect - Resolves persistent cross-compilation linker errors
- Remove custom Rust toolchain override - Use default crane.mkLib pkgs instead of overrideToolchain - This should resolve stack smashing detected errors - Default toolchain should be more stable and compatible
- Set cargoCheckCommand to 'cargo check --release --locked' - Set cargoBuildCommand to 'cargo build --release --locked' - Keep cargoExtraArgs = '' to prevent additional flags - This should completely eliminate --all-targets from cargoArtifacts - More aggressive approach to prevent cross-compilation
- Switch from craneLib.buildDepsOnly to craneLib.cargoBuild - Use --workspace --exclude apollo-mcp-server to build only dependencies - This should avoid crane's default --all-targets behavior - Different approach to prevent cross-compilation issues
… builds - Revert cargoArtifacts back to craneLib.buildDepsOnly craneCommonArgs - Add CARGO_BUILD_TARGET = pkgs.stdenv.hostPlatform.config to force native builds - Add CARGO_TARGET_DIR = 'target' to ensure consistent target directory - This should prevent cross-compilation while keeping crane compatibility - Fixes cargoClippy cargoArtifacts argument error
- Add gcc-x86-64-linux-gnu and g++-x86-64-linux-gnu installation to all CI jobs - This provides the missing x86_64-linux-gnu-gcc linker for cross-compilation - Resolves 'x86_64-linux-gnu-gcc not found' errors on GitHub runners - Allows crane's --all-targets to work properly with cross-compilation
- Use buildDepsOnly with cargoCheckCommand override instead of cargoBuild - Set cargoCheckCommand = 'cargo check --release' to avoid --all-targets - Set cargoExtraArgs = '' to prevent additional flags - This should resolve cross-compilation issues while keeping dependency caching
- Replace buildDepsOnly with cargoCheck which doesn't add --all-targets by default - cargoCheck only builds dependencies for the native target - This should eliminate cross-compilation issues completely - Simpler approach that avoids crane's hardcoded --all-targets behavior
- Comment out cargoArtifacts definition to avoid crane's --all-targets behavior - Remove cargoArtifacts inheritance from clippy and docs checks - Disable cache to force fresh builds - This is a conservative approach that should eliminate the root cause - Trade-off: slower builds but more predictable behavior
- cargoClippy requires cargoArtifacts as mandatory argument - Use cargoBuild with multiple overrides to prevent --all-targets - Set cargoCheckCommand = 'cargo check --release' to avoid --all-targets - Set cargoExtraArgs = '' to prevent additional flags - Restore cargoArtifacts inheritance and caching - This should satisfy crane's requirements while avoiding cross-compilation
- Use buildDepsOnly with CARGO_BUILD_TARGET override - Set CARGO_BUILD_TARGET to native platform config - Add cargoCheckExtraArgs with explicit target specification - This should force cargo to only build for native target - Combined with installed cross-compilation toolchain should work
- Remove --release from cargoCheckExtraArgs since crane already adds it - Keep only --target flag to specify native target - This should resolve '--release cannot be used multiple times' error - Command will now be: cargo check --release --locked --target x86_64-unknown-linux-gnu
- Add CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_LINKER = 'gcc' - Add CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_CC = 'gcc' - Add CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_CXX = 'g++' - This overrides the .cargo/config.toml cross-compilation settings - Forces cargo to use native gcc instead of x86_64-linux-gnu-gcc - Should resolve 'x86_64-linux-gnu-gcc not found' error
- Remove complex Nix-based CI with cache/check/build/test jobs - Replace with simple Cargo workflow: test, check, build - Uses standard Rust toolchain and cargo commands - Caches cargo registry, index, and build artifacts - Remove cross-compilation linker configuration from .cargo/config.toml - Much simpler and more maintainable - No more Nix build errors or cross-compilation issues
- Move #[cfg(test)] impl TokenManager inside mod tests block - Resolves 'items after a test module' clippy error - Test helper methods are now properly scoped within tests module
CI Improvements: - Add matrix strategy to test on both Ubuntu and macOS - Build artifacts for both Linux (x86_64) and macOS (aarch64) - Proper artifact naming per platform - All tests run on both platforms Release Improvements: - Build for both Linux and macOS in parallel - Create separate artifacts for each platform - Handle different sha256sum commands (Linux vs macOS) - Download all artifacts and upload to release - Proper multi-platform release packaging Benefits: - Ensures code works on both Linux and macOS - Provides native binaries for both platforms - Faster parallel builds - Better platform coverage
- CI now only runs on Ubuntu (faster, cheaper) - macOS builds still included in release workflow - Reduces GitHub Actions costs (~10x cheaper) - CI runs on every PR/push, releases are infrequent
Simplify workflows: keep only CI and simple Ubuntu release
- Add DEFAULT_GRAPH_REF constant: 'docontrol-api@current' - Modify graph_ref() to use default if not provided in config or env - Update README to reflect hardcoded default - Simplify config: no need to specify apollo_graph_ref anymore - Still allows override via APOLLO_GRAPH_REF env var if needed - Reduces required configuration for DoControl users
- Change reqwest feature from 'native-tls-vendored' to 'rustls-tls-native-roots' - Fixes TLS certificate validation issues on macOS - rustls uses system certificate store via native-roots - RUSTLS_SYSTEM_CERT_ROOT env var now properly respected - Resolves 'error sending request' errors when connecting to GraphQL endpoint
refresh token
Fix scheduled refresh
Refresh fixes
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.
No description provided.