{"id":16378475,"url":"https://github.com/chew/canvastoclickup","last_synced_at":"2025-10-26T10:30:45.307Z","repository":{"id":58082240,"uuid":"472641451","full_name":"Chew/CanvasToClickUp","owner":"Chew","description":"A simple way to mirror Canvas assignments to ClickUp for organization.","archived":false,"fork":false,"pushed_at":"2022-10-01T21:01:00.000Z","size":34,"stargazers_count":3,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-31T18:13:23.659Z","etag":null,"topics":["canvas","clickup","instructure","migrate","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","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/Chew.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}},"created_at":"2022-03-22T06:31:46.000Z","updated_at":"2024-04-18T17:35:10.000Z","dependencies_parsed_at":"2023-01-19T01:15:17.135Z","dependency_job_id":null,"html_url":"https://github.com/Chew/CanvasToClickUp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chew%2FCanvasToClickUp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chew%2FCanvasToClickUp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chew%2FCanvasToClickUp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chew%2FCanvasToClickUp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chew","download_url":"https://codeload.github.com/Chew/CanvasToClickUp/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238310189,"owners_count":19450809,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["canvas","clickup","instructure","migrate","ruby"],"created_at":"2024-10-11T03:45:31.342Z","updated_at":"2025-10-26T10:30:45.023Z","avatar_url":"https://github.com/Chew.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Canvas To ClickUp\n\nA converter from Canvas to-do to ClickUp tasks.\n\nThis is more of a proof of concept since it relies a little to heavily on my own Canvas instance I use for college.\n\n## New To ClickUp?\n\nIf this is the first time you're hearing about ClickUp, great! Click this image to get started. The best part? It's free!\n\n\u003ca href=\"https://clickup.com?fp_ref=chew35\" target=\"_blank\" style=\"outline:none;border:none;\"\u003e\u003cimg src=\"https://d2gdx5nv84sdx2.cloudfront.net/uploads/s73xa6xt/marketing_asset/banner/4159/leaderboard_v1.png\" alt=\"clickup\" border=\"0\"/\u003e\u003c/a\u003e\n\n## How It Works\n\nWhen the program is ran (via `ruby canvas_to_clickup.rb`) it will do the following:\n\n1) Retrieve active courses from Canvas. This is any course whose term is active.\n2) Get the list of all assignments from the active courses.\n3) Get all tasks from ClickUp.\n4) Compare the \"Canvas Link\" custom field on the to-do list items to the ClickUp tasks\n   i) If there is a match, update the task with the item's \"Title\", \"Description\", \"Due Date\", and \"Status\"\n   ii) If there is no match, create a new task with the item's information.\n5) Execution is over!\n\nThe program is very verbose and will print out the results of each step, if there are any.\n\n## How I Wrote It\n\nYou can read more about how I set this up in my [dev.to]() article. (soon, I forgor to write it)\n\n## Personal Setup\n\nThis program is sorta tailored to my instance, but if you can somehow replicate (or fix) this setup, it may be useful!\n\nPre-requisites:\n- ClickUp Account and Space\n- Canvas Account and Instance (usually through a school)\n- A ClickUp List with the following setup:\n    - Custom Fields Enabled\n      - Enabled Fields: \"Canvas Link\" (URL) and \"Class\" (Dropdown)\n      - The class dropdown should be whatever classes you have. By default, this is exactly the same as the name on Canvas.\n    - Due Date Time ClickApp Enabled\n    - Statuses: \"To Do\", \"Submitted\", and \"Graded\"\n- Ruby\n\n1) `cp config.example.yml config.yml` then fill out the config.yml file\n2) `cp custom.example.rb custom.rb` then fill out the custom.rb file, if you wish.\n3) `bundle install`\n4) `ruby canvas_to_clickup.rb` (only need this step once 1-3 are done)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchew%2Fcanvastoclickup","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchew%2Fcanvastoclickup","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchew%2Fcanvastoclickup/lists"}