{"id":40376532,"url":"https://github.com/maximbilan/xcloud","last_synced_at":"2026-01-20T11:35:50.708Z","repository":{"id":314874783,"uuid":"1056559653","full_name":"maximbilan/xcloud","owner":"maximbilan","description":"CLI for Xcode Cloud","archived":false,"fork":false,"pushed_at":"2025-10-28T15:02:22.000Z","size":4748,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-28T16:36:03.460Z","etag":null,"topics":["ci","ci-cd","cicd","cli","cloud","tool","xcode"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maximbilan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-14T10:56:55.000Z","updated_at":"2025-10-28T15:02:26.000Z","dependencies_parsed_at":"2025-09-15T11:27:50.032Z","dependency_job_id":"24300eac-9035-4aa5-aea0-53f4133d9b14","html_url":"https://github.com/maximbilan/xcloud","commit_stats":null,"previous_names":["maximbilan/xcloud"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/maximbilan/xcloud","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fxcloud","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fxcloud/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fxcloud/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fxcloud/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maximbilan","download_url":"https://codeload.github.com/maximbilan/xcloud/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maximbilan%2Fxcloud/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28602507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T10:46:13.255Z","status":"ssl_error","status_checked_at":"2026-01-20T10:42:51.865Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ci","ci-cd","cicd","cli","cloud","tool","xcode"],"created_at":"2026-01-20T11:35:50.020Z","updated_at":"2026-01-20T11:35:50.700Z","avatar_url":"https://github.com/maximbilan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# xcloud ☁️\n\nA powerful command-line interface for Apple's Xcode Cloud, built in Rust. Manage your CI/CD workflows, build runs, and artifacts directly from your terminal.\n\n## Features\n\n- 🔍 **Interactive Browser**: Navigate through products, workflows, branches, and actions with an intuitive menu system\n- 📦 **Product Management**: List and inspect your Xcode Cloud products\n- ⚙️ **Workflow Operations**: View workflows, start builds, and monitor progress\n- 🌿 **Branch Management**: List and work with repository branches\n- 🏗️ **Build Control**: Start new build runs and track their status\n- 📊 **Run Analytics**: View detailed build run information, artifacts, and test results\n- 🔑 **Token Management**: Generate and manage App Store Connect API tokens\n- 📋 **Raw Data Access**: Get detailed JSON information for debugging and automation\n\n## Demo\n\n\u003cimg src=\"demo.gif\" width=\"600\"/\u003e\n\n## Installation\n\n### Homebrew\n\n```bash\nbrew tap maximbilan/xcloud https://github.com/maximbilan/xcloud\nbrew install xcloud\n```\n\n### From Source\n\n```bash\ngit clone https://github.com/yourusername/xcloud.git\ncd xcloud\ncargo build --release\n```\n\nThe binary will be available at `target/release/xcloud`.\n\n### Using Cargo\n\n```bash\ncargo install xcloud\n```\n\n## Configuration\n\nxcloud requires App Store Connect API credentials. Set these environment variables:\n\n```bash\nexport XCLOUD_ISSUER=\"your-issuer-id\"           # App Store Connect Issuer ID\nexport XCLOUD_KEY_ID=\"your-key-id\"              # App Store Connect API Key ID  \nexport XCLOUD_P8=\"your-private-key-content\"     # Contents of your .p8 private key\n```\n\n### Getting Your Credentials\n\n1. **Issuer ID**: Found in App Store Connect under \"Users and Access\" → \"Keys\" → \"App Store Connect API\"\n2. **Key ID**: The identifier for your API key\n3. **Private Key**: The contents of your downloaded `.p8` file (either the full PEM format or just the base64 content)\n\n## Usage\n\n### Interactive Mode (Default)\n\nSimply run `xcloud` to enter the interactive browser:\n\n```bash\nxcloud\n```\n\nThis will guide you through:\n1. Selecting a product\n2. Choosing a workflow  \n3. Picking a branch\n4. Performing actions (start builds, view runs, etc.)\n\n### Command Line Interface\n\n#### Product Management\n\n```bash\n# List all Xcode Cloud products\nxcloud products\n\n# Get detailed information about a specific product\nxcloud product-info --product \u003cproduct-id\u003e\n```\n\n#### Workflow Operations\n\n```bash\n# List workflows for a product\nxcloud workflows --product \u003cproduct-id\u003e\n\n# Get detailed workflow information\nxcloud workflow-info --workflow \u003cworkflow-id\u003e\n\n# List recent build runs for a workflow\nxcloud runs --workflow \u003cworkflow-id\u003e\n```\n\n#### Branch Management\n\n```bash\n# List branches for a product's repository\nxcloud branches --product \u003cproduct-id\u003e\n```\n\n#### Build Operations\n\n```bash\n# Start a new build run\nxcloud build-start --workflow \u003cworkflow-id\u003e --branch \u003cbranch-id\u003e\n```\n\n#### Run Analysis\n\n```bash\n# Get detailed information about a build run\nxcloud run-info --run \u003crun-id\u003e\n\n# List artifacts for a build run\nxcloud artifacts --run \u003crun-id\u003e\n\n# View test results for a build run\nxcloud test-results --run \u003crun-id\u003e\n```\n\n#### Token Management\n\n```bash\n# Generate and print a short-lived App Store Connect token\nxcloud token\n```\n\n### Global Options\n\n- `-v, --verbose`: Enable verbose output for debugging\n- `-h, --help`: Show help information\n- `--version`: Show version information\n\n## Examples\n\n### Starting a Build\n\n```bash\n# 1. List your products\nxcloud products\n\n# 2. List workflows for your product\nxcloud workflows --product abc123-def456-ghi789\n\n# 3. List branches\nxcloud branches --product abc123-def456-ghi789\n\n# 4. Start a build\nxcloud build-start --workflow xyz789-abc123 --branch main\n```\n\n### Monitoring Build Progress\n\n```bash\n# Check recent runs for a workflow\nxcloud runs --workflow xyz789-abc123\n\n# Get detailed run information\nxcloud run-info --run run-abc123-def456\n\n# Download artifacts\nxcloud artifacts --run run-abc123-def456\n```\n\n### Using in CI/CD\n\n```bash\n# Generate a token for other tools\nTOKEN=$(xcloud token)\n\n# Use the token with curl\ncurl -H \"Authorization: Bearer $TOKEN\" \\\n     https://api.appstoreconnect.apple.com/v1/ciProducts\n```\n\n## Interactive Mode Guide\n\nThe interactive mode provides a hierarchical navigation system:\n\n1. **Products** → Select your Xcode Cloud product\n2. **Workflows** → Choose a workflow to work with\n3. **Branches** → Pick a branch for builds\n4. **Actions** → Perform operations like:\n   - Start build runs\n   - View recent runs\n   - Inspect run details\n   - Download artifacts\n   - View test results\n\nUse arrow keys to navigate and Enter to select. Type to filter options.\n\n## API Integration\n\nxcloud uses the official App Store Connect API v1. It automatically handles:\n\n- JWT token generation and caching\n- API pagination\n- Error handling and retries\n- Rate limiting compliance\n\n## Troubleshooting\n\n### Common Issues\n\n**\"Missing env XCLOUD_ISSUER\"**\n- Ensure your environment variables are set correctly\n- Check that your `.p8` key file is properly formatted\n\n**\"Failed to parse XCLOUD_P8 as an EC PKCS#8 private key\"**\n- Make sure your private key is in the correct format\n- xcloud accepts both full PEM format and base64-only content\n\n**\"No products available\"**\n- Verify your API key has the necessary permissions\n- Check that you have Xcode Cloud products set up in App Store Connect\n\n### Debug Mode\n\nUse the `--verbose` flag to see detailed API requests and responses:\n\n```bash\nxcloud --verbose products\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n### Development Setup\n\n```bash\ngit clone https://github.com/yourusername/xcloud.git\ncd xcloud\ncargo build\ncargo test\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built with [Rust](https://www.rust-lang.org/) for performance and reliability\n- Uses [clap](https://github.com/clap-rs/clap) for command-line argument parsing\n- Powered by [reqwest](https://github.com/seanmonstar/reqwest) for HTTP requests\n- Interactive menus provided by [dialoguer](https://github.com/mitsuhiko/dialoguer)\n\n---\n\n**Made with ❤️ for the iOS development community**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximbilan%2Fxcloud","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaximbilan%2Fxcloud","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaximbilan%2Fxcloud/lists"}