  Recently, more and more server tasks are done using full automation,
including grading tasks for students in the college courses, integrating tasks
for programmers in big projects and server-based transactions, and
visualization tasks for researchers in a data-dense topic. Using automation on
servers provides a great possibility for reducing the burden on manual tasks.
Although server tools like CI/CD for continuous integration and Hexo for
automated blog deployment have been developed, they're highly dedicated to
certain functionalities and thus lack general usage. In this paper, we
introduce a Golang-based automation framework that reacts to the events
happening on GitHub in a multi-thread approach. This framework utilizes a queue
to arrange the tasks submitted and execute each task with a thread in a
preemptive manner. We then use the project GoAutoGrader to illustrate a
specific implementation of this framework and its value in implementing
high-freedom server applications. As Golang is developing in a rapid way
because of its incredible parallel programming efficiency and a super-easy way
to learn on the basis of C-like programming languages, we decide to develop
this system in Golang.
