{"id":34837092,"url":"https://github.com/modelingevolution/clickup-sdk","last_synced_at":"2026-05-23T06:32:28.159Z","repository":{"id":306389056,"uuid":"1025824276","full_name":"modelingevolution/clickup-sdk","owner":"modelingevolution","description":"Strongly-typed C# SDK for ClickUp API","archived":false,"fork":false,"pushed_at":"2025-07-25T08:03:25.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-27T01:40:28.587Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/modelingevolution.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-07-24T21:32:58.000Z","updated_at":"2025-07-25T08:03:29.000Z","dependencies_parsed_at":"2025-07-25T12:22:33.377Z","dependency_job_id":"9fe3917f-95b1-4b6d-8e8e-e164f6eac815","html_url":"https://github.com/modelingevolution/clickup-sdk","commit_stats":null,"previous_names":["modelingevolution/clickup-sdk"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/modelingevolution/clickup-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelingevolution%2Fclickup-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelingevolution%2Fclickup-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelingevolution%2Fclickup-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelingevolution%2Fclickup-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/modelingevolution","download_url":"https://codeload.github.com/modelingevolution/clickup-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/modelingevolution%2Fclickup-sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33385143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"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":[],"created_at":"2025-12-25T16:07:08.530Z","updated_at":"2026-05-23T06:32:28.143Z","avatar_url":"https://github.com/modelingevolution.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ModelingEvolution.ClickUp\n\nA strongly-typed C# SDK for the ClickUp API, built with SOLID principles and modern .NET practices.\n\n## Features\n\n- Strongly typed models for all ClickUp entities\n- Support for Workspaces, Spaces, Folders, Lists, and Tasks\n- Token-based authentication\n- Built on .NET 9.0\n- Comprehensive unit tests\n- Fluent builder pattern for client configuration\n- Async/await throughout\n- Proper logging support via Microsoft.Extensions.Logging\n\n## Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/modelingevolution/clickup-csharp.git\n\n# Build the project\ndotnet build\n\n# Run tests\ndotnet test\n```\n\n## Quick Start\n\n```csharp\nusing ModelingEvolution.ClickUp;\nusing Microsoft.Extensions.Logging;\n\n// Create client using builder\nvar client = new ClickUpClientBuilder()\n    .WithApiToken(\"your-api-token\")\n    .Build();\n\n// Or with logging\nvar loggerFactory = LoggerFactory.Create(builder =\u003e \n{\n    // Add your logging providers here\n    // builder.AddConsole(); // requires Microsoft.Extensions.Logging.Console package\n});\nvar clientWithLogging = new ClickUpClientBuilder()\n    .WithApiToken(\"your-api-token\")\n    .WithLoggerFactory(loggerFactory)\n    .Build();\n\n// Get workspaces\nvar workspaces = await client.Workspaces.GetWorkspacesAsync();\n\n// Get spaces for a workspace\nvar spaces = await client.Spaces.GetSpacesAsync(workspaces.First().Id);\n\n// Get folders in a space\nvar folders = await client.Folders.GetFoldersAsync(spaces.First().Id);\n\n// Get lists in a folder\nvar lists = await client.Lists.GetListsAsync(folders.First().Id);\n\n// Get tasks in a list\nvar tasksResponse = await client.Tasks.GetTasksAsync(lists.First().Id);\nvar tasks = tasksResponse.Tasks;\n```\n\n## API Coverage\n\n### Read Operations (Implemented)\n- **Workspaces**: Get all workspaces\n- **Spaces**: Get spaces by workspace, Get space by ID\n- **Folders**: Get folders by space, Get folder by ID\n- **Lists**: Get lists by folder, Get folderless lists, Get list by ID\n- **Tasks**: Get tasks by list (with pagination), Get task by ID\n\n### Write Operations (TODO)\n- Create/Update/Delete operations for all entities\n- Task status updates\n- Comments and attachments\n- Custom fields management\n\n## Configuration\n\n```csharp\nvar client = new ClickUpClientBuilder()\n    .WithApiToken(\"your-api-token\")\n    .WithBaseUrl(\"https://api.clickup.com/api/v2\") // Optional, this is default\n    .WithTimeout(TimeSpan.FromSeconds(60))          // Optional, default is 30s\n    .WithHttpClient(customHttpClient)                // Optional, provide your own HttpClient\n    .WithLoggerFactory(loggerFactory)                // Optional, for logging\n    .Build();\n```\n\n## Testing\n\nThe project includes comprehensive unit tests using xUnit, Moq, and FluentAssertions.\n\nTo run tests:\n```bash\ndotnet test\n```\n\n### Integration Tests\n\nIntegration tests are included but skipped by default. To run them:\n\n1. Set the `CLICKUP_API_TOKEN` environment variable\n2. Remove the `Skip` attribute from integration tests\n3. Run tests normally\n\n## Project Structure\n\n```\nsrc/\n├── ModelingEvolution.ClickUp/\n│   ├── Abstractions/      # Interfaces\n│   ├── Clients/           # API client implementations\n│   ├── Configuration/     # Configuration classes\n│   ├── Http/              # HTTP client wrapper\n│   └── Models/            # ClickUp data models\ntests/\n└── ModelingEvolution.ClickUp.Tests/\n    ├── Clients/           # Unit tests for clients\n    └── IntegrationTests/  # Integration tests\n```\n\n## Dependencies\n\n- .NET 9.0\n- System.Text.Json (9.0.7)\n- Microsoft.Extensions.Http (9.0.7)\n- Microsoft.Extensions.Logging.Abstractions (9.0.7)\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Add tests for new functionality\n5. Ensure all tests pass\n6. Submit a pull request\n\n## License\n\n[Your License Here]\n\n## Roadmap\n\n- [ ] Write operations (Create, Update, Delete)\n- [ ] Webhook support\n- [ ] Rate limiting and retry logic\n- [ ] Bulk operations\n- [ ] Advanced search and filtering\n- [ ] Time tracking API\n- [ ] Goals API\n- [ ] Custom fields API\n- [ ] Attachment handling\n- [ ] Comment management","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodelingevolution%2Fclickup-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmodelingevolution%2Fclickup-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmodelingevolution%2Fclickup-sdk/lists"}