KTH / devops-course

Repository of the DevOps course at KTH Royal Institute of Technology DD2482
191 stars 427 forks source link

Executable Tutorial Submission #2670

Closed Alexanderliu2002 closed 1 month ago

Alexanderliu2002 commented 1 month ago

Assignment Proposal

Title

Building and integrating a slack bot with GitHub actions using Node.js

Names and KTH ID

Deadline

Category

Description

In our tutorial we will show how to set up a slack bot using node.js to monitor GitHub actions through notification in a slack channel. The bot will be able to parse github logs into readable slack messages in order to simplify continuous development and monitoring.

Relevance

Effective monitoring and automation is crucial to the DevOps life cycle. By integrating slack bot with GitHub actions developers can get real-time status updates on ongoing processes directly in their slack workspace. Additionally, developers can trigger pre-defined common events through slack increasing the efficiency of the entire process. The use of slack streamlines the continuous devlopment and monitoring process for developers and is a critical part in the DevOps cycle.

Submission

Killercoda: https://killercoda.com/dd2482devops-executable-tutorial/scenario/KillerCoda GitHub to main program: https://github.com/Alexanderliu2002/dd2482-executable-tutorial-bot GitHub to test environment: https://github.com/leegrash/dd2482-executable-tutorial

Jakebobs commented 1 month ago

Feedback

By Jakob Ström (jakstrom@kth.se) & Carl Lavö (lavo@kth.se)

Code of conduct

We certify that generative AI, incl. ChatGPT, has not been used to write this feedback. Using generative AI without permission is considered academic misconduct.

Intro

We would like to thank Gustaf and Alexander for their well-made and thorough tutorial on setting up a Slack bot and integrating it with GitHub Actions, and for allowing us to give feedback on it. The tutorial is very comprehensive and not one for slackers! :)

High-level strengths

It is a very thorough tutorial, it leaves the user with a good end product that you also suggest how they could make some good further developments on. We would find this tutorial very useful if we were setting up a Slack integration for our workplace since so much of the code can be kept in house. The suggestion to use chatGPT to enhance the understanding of the errors also felt like a good suggestion, this could help people who are not experts to understand what is going on in the CI/CD pipeline.

We found the executable code blocks to enhance the user experience. It saves us a lot of copy pasting of commands and makes it easier to focus on trying to understand the overall tutorial. We regret not using these in our own tutorial.

The text of the tutorial is well written and only contains a few small hiccups that could easily be fixed once pointed out. The tone of the tutorial is also very friendly. It definitely has a human touch that helps keep our spirits high working our way through the long tutorial. Well done!

High-level weaknesses

The tutorial is on the longer side and we had an issue with the 60 minute limit that KillerCoda imposes. We feel that some of the early steps and configurations could have been automated for the user to feel less overwhelmed and save them some time. One example of this is the installations that the user gets to do in the terminal, we feel it would be a better use of time for the user to spend the first minutes reading some background instead of running install commands.

It can be easy to miss a part of the tutorial and cause problems to appear, these are hard to diagnose and some problem solving suggestions would come in handy at parts of the tutorial. Some of the information is also faulty which causes confusion when we correctly follow the tutorial, but still end up with errors which we have to troubleshoot ourselves. This could be fixed by personally running through the tutorial again step-by-step and double-checking that everything written is correct, and by adding some potential tips for troubleshooting.

Minor Things

There are some made up words scattered through the tutorial, maybe they are easter eggs but fuzzy words such as “Effectivize” can make it hard to understand what point you want to make.

There are some quality of life issues, which are not a problem by themselves, but make it harder to stay engaged with the tutorial. One such instance is when adding the tokens to the .env file they are not added in the same order as the order that we created them, which seems counterintuitive. The same goes for when you are talking about files with the same name. To avoid the user having to distinguish between multiple package.json files, you could specify which folder the relevant one is located in.

Additional Material

We feel like there may be too many pictures in the slack bot tutorial. It becomes a bit hard to read. We would suggest changing it to be in this style where more text is used, rather than so many images. A picture can say a thousand words but 7000 words may be a bit many for creating a slack channel.

We also would suggest a change that may be controversial. But we think that reconfiguring the tutorial into two versions, one beginner version to use one of the existing GitHub marketplace Action to avoid having to write so much code ourselves. Link to an article that explains that process. And then keeping your advanced version as an optional extension to that.

monperrus commented 1 month ago

@Alexanderliu2002

I have many tokens, but I don't know what the "slack app token" is and where to find it. Could you clarify and recap at step 'you should have the following secrets saved for our .env file' where to find each of them. Then ping me here, thanks!

Alexanderliu2002 commented 4 weeks ago

@Alexanderliu2002

I have many tokens, but I don't know what the "slack app token" is and where to find it. Could you clarify and recap at step 'you should have the following secrets saved for our .env file' where to find each of them. Then ping me here, thanks! @monperrus

Sorry for the confusion, we've updated the step to make things clearer! Thanks!