Submit to Canvas directly from GitHub
October 21, 2020

Connecting GitHub and Canvas for programming assignments

Tools for education

It is a widespread practice among educators to engage students with assignments constantly throughout the course to enhance their knowledge and provide practice of the subject. The impact of technological tools in improving the learning experience in the education industry has been growing immensely and has even become the norm of today. These tools not only facilitate learning but also make the process smooth and efficient for both students and teachers. One such tool is Canvas, a popular LMS (Learning Management System), which helps with administration, documentation, tracking and delivery of educational courses at colleges and universities. With the help of Canvas, it is very convenient to hand out assignments, receive submissions and release grades out to students. 

Especially in ICT education, it is also very important to make students familiar with industry standard tools. One such popular tool used across the world, especially in computing education and in the tech industry, is GitHub. Educators prefer that students learn GitHub, because it is a widespread tool in the industry and is a great facilitator of version control and issue tracking aspects of software development. Moreover, GitHub is essentially compatible with all programming languages and offers unlimited private repositories and development tools for free where students can write code and store it. Therefore, educators are very keen that students learn Git and thus be prepared for real world programming. 

Teaching Git using Canvas and CodeGrade

The best way to familiarize students with Git is to engage them with GitHub for sufficient practice. For that reason, and for workflow efficiency, it would be wonderful if the GitHub workflow could be utilised together with Canvas. Unfortunately, GitHub is not designed to meet educational needs and does not natively work together with a learning management system such as Canvas. As a result, students who use Git are required to download their programming assignment files as archives and manually upload them on Canvas for submission. Clearly, this workflow has some drawbacks and is, therefore, irritating, inconvenient and inefficient for both students and teachers. 

It becomes a very convenient workflow if students are allowed to hand-in their submissions to Canvas directly via GitHub. This is where CodeGrade can play an important role. CodeGrade is a platform that makes educators’ lives easier by providing them tools to automate grading and feedback for programming assignments, detect plagiarism, and more to increase their efficiency while simultaneously helping students’ learning experience with continuous feedback. CodeGrade provides a plugin for Canvas that adds these tools within the LMS platform. CodeGrade effectively bridges the gap by seamlessly integrating GitHub and Canvas to allow students to directly submit their work to Canvas everytime they ‘git push’, thereby smoothening the process and making it more efficient. With this workflow, students can also store their work on GitHub repositories while also sending these files directly to CodeGrade, which is then automatically available within Canvas. Once this is set up, a history of submissions is created in CodeGrade for the students and teachers to see and all of CodeGrade’s feedback and efficiency enhancing tools can be used to grade.

Get the most out of Canvas, GitHub and CodeGrade now!

How do I integrate CodeGrade and Git?

We have made the process of setting up the integration of CodeGrade and GitHub into an easy workflow for the end user. As mentioned in the steps below, the configuration can be enabled simply through the assignment settings by the teacher while CodeGrade takes care of the integration in the background. All that has to be done now is configuring the students’ Git repositories, either fully automatically or manually by the student.

Follow these steps to enable this feature:

1. In CodeGrade, go to the ‘Assignment Management’ page by clicking on the Settings button.

2. Find the ‘Allowed upload types’ under the General tab. Select the checkbox corresponding to ‘GitHub/GitLab’ to enable submissions directly via Git.

3. Now students will find the option to connect their Git repository to the CodeGrade assignment, or you can do this automatically using our API.

To learn more about CodeGrade and its features, check out our tour page, or our YouTube channel with videos explaining how to use CodeGrade. Please feel free to book a demo if you are interested in getting CodeGrade at your institution, or in case you have any further questions.

Devin Hillenius

Devin Hillenius


Continue reading

New in CodeGrade: Community Library

With the CodeGrade Community Library you can easily import fully automatically graded coding assignments into your own coding course.

Watch our ChatGPT and Coding Education webinar!

Watch CodeGrade's webinar on using ChatGPT in coding courses to help students work with this new tool and even use it in your grading worklfow yourself!

Join our webinar on ChatGPT in Coding Education!

Join CodeGrade’s CEO, Youri Voet, for a webinar on the impact of ChatGPT on computer science education. Learn how to make ChatGPT-proof coding assignments, teach AI literacy and how to use ChatGPT to set up automatic testing for your coding assignments.

New features: Assignment Schedules and Asynchronous Assignments

On May 8th and May 22nd, respectively, CodeGrade will launch two exciting new features. These features are Assignment Schedules and Asynchronous Assignments.

Sign up to our newsletter

Schedule a personalized tour of CodeGrade today