A tool to print all the "push" times for your students' commits

I had a curious issue where a student had apparently attempted to change the time on their computer, perhaps thinking they could fool GitHub. Yeah, really.

Conveniently, GitHub has an events API that lets you query the push time for every commit. GitHub’s documentation claims this data will survive for 90 days after the events in question. So I threw together a tool to query it for any given student repo. Some of you may find this helpful.


Love this!

I am not surprised at all to hear about a student doing this. I’ve had students modify dates on (e.g.) Word documents on several occasions. ‘My computer broke but I really did do the work before the deadline, look at the modified date…’

I did not know about the events API, good to know, and thanks for sharing!

@danwallach , I like this a lot - thank you very much for sharing. I may end up using it.

I just posted a new thread question asking for something similar. This tool may do exactly what I need… Can you reply if you have input?

So all of this is now wrapped up in my GitHub Classroom Utils.

You’ll find several useful tools that I’ve built over the years to work with the GitHub APIs. Check it out and feel free to build on my work and submit PRs.

@danwallach Looking at your setup instructions and talk now. We’re also using Java, IntelliJ and GitHub Classroom in CS1. Some differences in approach, but many similarities… It’s pretty cool to see that. Thanks for sharing this stuff, Dan, both here and at SIGCSE! I will certainly take a look at your scripts when I get time.

Here are some of my student facing setup instructions and videos. They are slower pace as I am at a smaller liberal arts school and I don’t want to lose anyone lol If I was at a university with more of a focus on engineering and hundreds of students in the early classes, I’d probably ratchet it up.


For what it’s worth, the challenges are the students who have previously used their computers for software development. They’ll have old versions of things or they’ll have files installed in weird places. Debugging those installations is really crazy. Most students get through the basics just fine in a one hour lab session.

The cool part of buying into the whole Gradle/IntelliJ ecosystem is that you can then drag in additional libraries without any extra installation effort. Also, you get trivial integration with GitHub Actions. Students at the start are totally freaked out about whether they actually committed and pushed or if they forgot something. By running the unit tests or autograder in the cloud, they will see the green checkmark, and they’ll have assurance they didn’t screw anything up.

(So far as I can tell, exactly the same thing goes for professional developers.)

© 2017 GitHub, Inc.
with by
GitHub Education