E1 - GitHub Actions: Write your first workflow with GitHub APIs || Beginner friendly tutorial

Поделиться
HTML-код
  • Опубликовано: 8 июл 2024
  • This is the first video of the series: "GitHub Actions: Full Course" and in this one you'll get your hands dirty with building your first workflow and learning all the fundamentals of working with GitHub Actions.
    We will cover how the internals of GitHub Actions, workflow syntax, jobs, steps, functions, conditionals, community actions, log viewer, and I will be showing you step by step how you can use GitHub Actions to call GitHub's REST APIs to automate certain tasks!
    ▬▬▬▬▬▬ Resources & References 📕 ▬▬▬▬▬▬
    - GitHub Actions documentation: docs.github.com/en/actions
    - Create or update comment Action: github.com/marketplace/action...
    - Create an issue comment API: docs.github.com/en/rest/refer...
    ▬▬▬▬▬▬ Timestamps 🕐 ▬▬▬▬▬▬
    00:00 - Intro
    02:17 - Overview of GitHub Actions
    05:15 - Workflow syntax
    18:11 - GitHub web editor & syntax validation
    20:10 - Building the issue comments workflow
    23:53 - Using a community action
    26:08 - Using GitHub REST APIs in workflows
    30:47 - Conclusion
    ▬▬▬▬▬▬ Connect with me 👋 ▬▬▬▬▬▬
    - Twitter: / bassemdy
    - GitHub: github.com/link-
    - LinkedIn: / bassemdghaidy
    - Facebook: / bassemdy
    - Blog: blog.bassemdy.com
    ▬▬▬▬▬▬ Support the channel 💜 ▬▬▬▬▬▬
    Every little bit helps ✨
    - Join the journey on Patreon: / glich_stream
    - 1 time support: www.buymeacoffee.com/glich.st...
    #devops #githubactions #softwareengineering
  • НаукаНаука

Комментарии • 107

  • @JARVIS-CHEN
    @JARVIS-CHEN 4 дня назад

    really thankful, it is really helpful to a graduate who really want some hands-on experience in real industry

  • @drakhakami3828
    @drakhakami3828 10 месяцев назад +32

    if you are getting the following error when you run these aciton codes; Resource not accessible by integration. Following these steps may solve the problem.
    1- Go to repository "Settings".
    2- After that it will show you a left pane where you will find "Actions"
    3- Expand "Actions" tab
    4- Click on "General" under options tab.
    5- Now on new page scroll down and you will fine "Workflow Permissions"
    6- Select "Read and Write" under "Workflow Permissions".

    • @vinceb8041
      @vinceb8041 10 месяцев назад

      Very nice, thank you!

    • @drakhakami3828
      @drakhakami3828 10 месяцев назад

      welcome bro. @@vinceb8041

    • @jagmohannanaware
      @jagmohannanaware 9 месяцев назад

      Another way of doing this is to provide explit write permission to the job for issue in the yaml file. For some reason, evern after changing the repository from public to private and back, the "Read and Write" under "Workflow Permissions" was disabled for me. Hence the "Create comment on Issue" workflow was failing for me. After reading the README, I figured that it has to do with the GITHUB_TOKEN permissions. I checked it in the "Setup Job" output and figured that, GITHUB_TOKEN has only read permission. I tried to change it in setting but did not work as it is always greyed out for me (though I am the owner of the org as well as repository). On further reading I figured out that permissions can be controlled in a fine-grained manner in the yaml file itself. I tried it out and it worked.

  • @abedalrawas2656
    @abedalrawas2656 2 года назад +13

    This was very well articulated and packed with information. Crystal clear.Thank you!

  • @et4493
    @et4493 Год назад +1

    I actually appreciate you getting deeper into it!

  • @yashobantadash6670
    @yashobantadash6670 5 месяцев назад

    just awesome man! Great job

  • @s7acktrac35
    @s7acktrac35 4 месяца назад +1

    Awesome job here - really appreciate it. You're a wonderful instructor.

  • @anthonyhaddad5630
    @anthonyhaddad5630 2 года назад +2

    Been waiting for this series
    Thank you Bassem!

    • @glich.stream
      @glich.stream  2 года назад

      I hope it will not disappoint! Thank you for your support Anthony

  • @GautamKhatter
    @GautamKhatter 9 месяцев назад +2

    Your intro music really motivated me. This is the first time I was so excited for a coding video.

  • @sukhwinder101
    @sukhwinder101 11 месяцев назад +4

    Whiteboarding is really good before starting topic discussion. Missed by many other well renowned content creators, Kudos to that.

  • @salborough2
    @salborough2 6 месяцев назад

    This video was brilliant and so well presented - thank you so much :)

  • @guohaigao2397
    @guohaigao2397 6 месяцев назад

    Love your video. Thanks

  • @saarvan
    @saarvan 5 месяцев назад

    that's awesome..!

  • @user-zo7vy6tc8y
    @user-zo7vy6tc8y 9 месяцев назад

    WoW! Thank U!

  • @dev.22.-1
    @dev.22.-1 2 месяца назад

    this video is so good, thank you

  • @lorenzopieri6716
    @lorenzopieri6716 Год назад

    Nice playlist and videos! Thanks for sharing :)

  • @lyndondallas8523
    @lyndondallas8523 2 года назад +1

    Yooooo! The intro!! get hook!

  • @GidiBaum
    @GidiBaum 10 месяцев назад

    👍Very nice explanation, Greeting from Haifa

  • @Vityashortsstudio
    @Vityashortsstudio 11 месяцев назад +1

    Aug 2023 - for me worked v2 for comment + added permissions: write-all

  • @specthanatos
    @specthanatos 2 месяца назад

    Been browsing through Udemy courses, but this one is just way better. Fast and clear, good simple examples!

  • @basheeral-momani2032
    @basheeral-momani2032 Год назад

    I think I should subscribe, thanks a lot for this in depth information

  • @islamh6042
    @islamh6042 Год назад

    Thanks Bassem!

  • @hassansalem7605
    @hassansalem7605 2 года назад +6

    I think this will be a great and very useful series.
    I really would like to learn how we can run a single job if it failed, instead of running the whole thing from scratch. Of course if that is possible, and if it is not possible, why not?🤔.
    And really thanks for sharing the knowledge

    • @glich.stream
      @glich.stream  2 года назад +1

      Unfortunately that’s a feature that’s not available at the moment. I’m sure it will come at some point in the future!

  • @culeforever5408
    @culeforever5408 Год назад

    great video. learnt a lot.

  • @uchechukwumadu9625
    @uchechukwumadu9625 2 года назад

    Nice intro!

  • @jatinnandwani6678
    @jatinnandwani6678 5 месяцев назад

    Thanks Man!

  • @bokistotel
    @bokistotel Год назад +4

    If someone gets " Resource not accessible by integration! " error when using auto-generating comment, it means your permissions are not right. You can add in comments-with-action: permissions: write-all

    • @MarconiPoveda
      @MarconiPoveda Год назад

      I was about to post this. Glad you got it.

    • @glich.stream
      @glich.stream  Год назад +2

      Thank you! When these videos were made GITHUB_TOKEN permissions had shipped slightly earlier and was not being enforced yet. This series needs an update 😔

  • @ahmedouyahya
    @ahmedouyahya 2 года назад +1

    Thanks a lot, Bassem. It's very information dense.
    I laughed when I saw you testing it with: LAST LAST LAST/ LAST LAST LAST LAST LAST/ Really Last.

    • @glich.stream
      @glich.stream  2 года назад +2

      😄 as it will be in the real world

  • @at1021
    @at1021 2 года назад +2

    Thank you Bassem! :) notif on :D
    comment with api failed because of ${ISSUE_NUMBER} was missing the closing } in curl? or something else?

    • @glich.stream
      @glich.stream  2 года назад +1

      Good eye! Yes, it was the closing } and in fact there were 4 other mistakes in that same curl command! If you compare the before and after you'll see them. I fast-forwarded because I didn't think anyone would be interested in the troubleshooting (it took a while)

  • @basheeral-momani2032
    @basheeral-momani2032 Год назад

    I have a question (I just went through the video again)
    for the first workflow action 14:52
    was it necessary to use checkout action? will it work if we didn't used it?

    • @glich.stream
      @glich.stream  Год назад +1

      For this particular workflow, a checkout of the repository is not necessary!

  • @matthewheimerdinger9118
    @matthewheimerdinger9118 Год назад

    looking at the gist... ah, yeah, I was wondering if the organisation/organization thing was going to be a problem. Hooray, English! =D

  • @karmansingh7921
    @karmansingh7921 Месяц назад

    Would have wanted to know what caused the error and how you resolved it in the end. Specially for people like me who like to code along :)
    Thank you for the video, psyched for the rest of the videos in the series too!

    • @oddjob62
      @oddjob62 Месяц назад +1

      In the api call he had /repo/ when it should have been /repos/ and he missed the } after ISSUE_NUMBER

  • @alfredoparreira469
    @alfredoparreira469 9 месяцев назад

    Amazing explanation! I'm pretty sure that I will learn a lot here. Just one comment, I think could be interesting know the issue and how to solve it :)

    • @glich.stream
      @glich.stream  9 месяцев назад

      I agree :) you can spot it if you compare the working code with the broken one, check the pinned comment for hints

  • @shuchikumari8031
    @shuchikumari8031 Год назад

    I’m new to GitHub actions Had some questions: 1. I want to automate the CI process where the tool I use is connected to the GitHub and there are 2 dbs After a developer pushes to one db, the second db should have the capability to pull the resources that were pushed in the first db. The tool (hosted on aws) provides a .sh file which triggers the pull for the second db. How can I connect to the aws instance from GitHub using actions and point to the aws folder and make use of the .sh file to trigger the pull. Looking forward to your expertise. Thanks a lot

    • @glich.stream
      @glich.stream  Год назад

      Hi Shuchi, you workflow jobs will run on runners with an operating system, right? So start by thinking of how you would solve this problem on your own machine, then you can split the solution into 1 or more jobs and 1 or more steps! Start with a simple step that runs a bash or powershell script that does all of the work that you'd want to do, then explore other more abstracted options (like finding actions in the market you could use to do one thing or another).

  • @mikhailgoussarov4663
    @mikhailgoussarov4663 6 месяцев назад

    Very good video, in my opinion you sometimes zoom a little too much on the buttons you are trying to explain. But that is just a personal opinion. Keep the good work!

  • @djamel_sebbagh
    @djamel_sebbagh 2 года назад +1

    Thank you,
    Which terminal do you use?

  • @glich.stream
    @glich.stream  2 года назад +6

    1. Full course playlist:
    ruclips.net/p/PLArH6NjfKsUhvGHrpag7SuPumMzQRhUKY
    2. This is the gist (contains updates) with the working code from the demo:
    gist.github.com/Link-/f817f7523a3ac5de6861efd7be6bc3fb
    3. This demo is designed to work for repositories owned by organizations. If you create a repository owned by your GitHub profile it will not work and you will get errors. I encourage you to create a GitHub organization for free and a public repository in that organization to test.

  • @snehotoshbanerjee1938
    @snehotoshbanerjee1938 Год назад +1

    Fantastic course and content!! BTW, how to run the github api without organization (personal account). I am looking for correct URL?

    • @glich.stream
      @glich.stream  Год назад

      Just replace organisation with your username and it should work.
      docs.github.com/en/rest/issues/comments#create-an-issue-comment

  • @janmajaykumar131
    @janmajaykumar131 7 месяцев назад

    How to write a workflow to change a latex to pdf on github?

  • @sweeeenay
    @sweeeenay 5 месяцев назад

    Um what did you fix at the end there? For some reason my video keeps fast forwarding? I'm also getting the error you were getting but cannot see how to fix it?

  • @onticmix
    @onticmix 2 года назад +14

    Why wouldn't you show how you debugged the error? When someone is following along it is rather frustrating to see a time-lapse and "magic" it works. At least tell us what you did to fix the errors. I caught a few of them but keep getting a "You have an error in your yaml syntax on line 31". Thanks for taking the time to put something like this together though.

    • @glich.stream
      @glich.stream  2 года назад +9

      You're right, my apologies for that. I'll make sure to avoid this in future videos. Here is a gist with the code that should be working: gist.github.com/Link-/f817f7523a3ac5de6861efd7be6bc3fb

    • @onticmix
      @onticmix 2 года назад +1

      @@glich.stream Thank you, much appreciated!

    • @prashanth-5429
      @prashanth-5429 Год назад +7

      27:33 Missed closing the curly brace, hence it didn't work.

  • @TanishMohanta2305
    @TanishMohanta2305 3 месяца назад

    go to, setting> in sidebar, actions:general>scroll to down, Workflow permissions> click on, Read and write permissions> save, now your issue part will be resolved(error in step).

  • @dinaelgendy1518
    @dinaelgendy1518 2 года назад

    Thank you Bassem.
    I am getting a strange error for the last part "gh: Not Found (HTTP 404)". even when I took your exact file as is. Any idea what may be the issue?

    • @glich.stream
      @glich.stream  2 года назад

      Hey Dina, this demo was designed for repositories within organizations. If you're trying this out on a repository owned by your personal GitHub profile you will get the errors you're seeing.
      Try to create a GitHub organization (it's free) and create a repository in the organization and then test again.

    • @dinaelgendy1518
      @dinaelgendy1518 2 года назад +1

      @@glich.stream Thanks a lot Bassem. It works now.

    • @sampri22
      @sampri22 2 месяца назад

      @@glich.stream hi, I have the same issue. I created an organization, but the error is still the same. can you cooment why?

  • @a-e-sthetic
    @a-e-sthetic 3 месяца назад

    Why am i not understanding this video 😢? Im beginner actually.. so what pre-requisites needed for me to understand github actions?

  • @andreas-fefe
    @andreas-fefe 3 месяца назад

    Hey Bassem million thanks for this awesome content, can you please share your ~/.vimrc setup please ?

  • @faisalakml
    @faisalakml 3 месяца назад

    can be in jobs test run more than "npm run ..." sir?

  • @Kishore-bc2wp
    @Kishore-bc2wp Год назад

    how to properly format yaml, i was struggling with vim, no proper formatting

    • @glich.stream
      @glich.stream  Год назад +1

      For VScode GitHub has published a GitHub actions extension that does linting, you can then install any yaml formatter and you’re good.

  • @SrinivasReddy-go1mb
    @SrinivasReddy-go1mb Год назад

    How do i make a comment on issue with file attached

    • @glich.stream
      @glich.stream  Год назад

      AFAIK The API does not support uploading attachments to issue

  • @sampri22
    @sampri22 2 месяца назад

    What is the purpose of the caracter " - " ?
    steps:
    - uses: actions/checkout@v2
    - name: hello world
    run: echo "Hello World"
    shell: bash
    Why is "name" preceded by " - " and "run" isn't?

  • @omarPhd8
    @omarPhd8 Год назад

    What are prerequisites?

    • @glich.stream
      @glich.stream  Год назад

      For following along? You should be familiar with GitHub and have built a couple of applications before. That’s it :)

  • @thepresistence5935
    @thepresistence5935 Год назад

    What keyboard are you using? Sounds looks so much awesome I want ititttttttttttttttttttttttttttttttttttttttttttt

    • @glich.stream
      @glich.stream  Год назад +1

      Keychron K6 with cherry brown switches. Quite affordable and good

    • @glich.stream
      @glich.stream  Год назад

      Also, this is all the gear i use:
      ruclips.net/video/BGCbI-SKQio/видео.html

    • @thepresistence5935
      @thepresistence5935 Год назад

      @@glich.stream Thanks I will look into it.

  • @prashanth-5429
    @prashanth-5429 Год назад +1

    27:33 Missed closing the curly brace, hence it didn't work.

    • @glich.stream
      @glich.stream  Год назад

      There were a number of issues, check the pinned comment for the gist containing the correct workflow

  • @mhasancoder
    @mhasancoder Год назад

    The effort you put in this video is effortless ❤

  • @fabtjar
    @fabtjar 10 месяцев назад

    Why did the final action fail?

  • @mrlectus
    @mrlectus 11 месяцев назад

    How did this guy go from hello world to creating comment?

  • @urizen959
    @urizen959 6 месяцев назад

    Good video but towards the end pretty sure most of us had errors with the API side but skipped on your process on how you fixed it. that's not really nice

    • @glich.stream
      @glich.stream  6 месяцев назад +1

      This was my first video, ever 😄 the point of it was to be a walkthrough of Actions not a follow-along. Check the comments above for the corrected code

  • @snowden-IT
    @snowden-IT Год назад

    السلام عليكم شرح جميل ولاكن المشكله اغلب شرحك انكلش نرجوك ان يكون شرح عربي

    • @glich.stream
      @glich.stream  Год назад +1

      في قنوات كثيرة تقدم مواد عربيّة، في الوقت الحالي ما عندي وقت لتحضير الشروحات في عدة لغات. عم اشتغل على تحضير ترجمة للفيديوهات قريباً

  • @arwamais
    @arwamais 2 года назад

    Please tell me you are Lebanese…

  • @odiadavid6957
    @odiadavid6957 3 месяца назад

    So when you had an issue, you fast-forwarded the lesson.🤕

  • @abdellatifbenzzine7328
    @abdellatifbenzzine7328 Год назад

    Getting error with Create Comment,, resource inaccessible .... wasted few hours debugging. when you don't take time to anticipate why could wrong with your tutorial it becomes a waste of time of a learner. Please address issues with applying what you are sharing here. Thanks

    • @glich.stream
      @glich.stream  Год назад

      Thank you for the feedback. Thousands of folks have completed this tutorial successfully (which was not designed to be a follow along). I bet you didn’t pay attention to the pinned comment above.

    • @amitgoyal8760
      @amitgoyal8760 Год назад

      @@glich.stream I created repo in an org and kept it public and using the exact same code
      Still facing error 😭😭
      Dk how to fix it ;-;