DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป

DEV Community ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿ‘จโ€๐Ÿ’ป is a community of 963,864 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for Echo The Release
NaveenKumar Namachivayam โšก
NaveenKumar Namachivayam โšก

Posted on

Echo The Release

My Workflow

Dear All, this is my second entry for #ActionsHackathon Echo the Release - this GitHub Action helps you to notify your Alexa device if there is a new release for the projects that you have configured.

Submission Category:

Interesting IoT

Yaml File

GitHub logo QAInsights / Echo-The-Release

This GitHub action notifies your Echo device if there is a new release of your favorite GitHub repos that you have been following.

Echo-The-Release

saythanks

This GitHub action notifies your Echo device if there is a new release of your favorite GitHub repos that you have been following.

Echo-The-Release-Banner

How to use this GitHub Action?

Following are the prerequisites to configure the notifications.

  • Compatible Echo device such as Echo, Echo Show etc.
  • Free account at Thomptronics. Follow the steps mentioned here to integrate your Echo and Notify Me skill.
  • List of GitHub repositories that you are following and their API should expose the release details. E.g. https://api.github.com/repos/QAInsights/Sample-Repo/releases/latest is exposing the release, tag etc.

Steps to configure this action:

  • Fork this repo.
  • Create a folder for each repository that you need to be alerted. Inside each folder, create echo.txt file.
  • Create a Repo scoped token and configure under your secret ECHO_KEY
  • Configure Notify Me API key under your secret ECHO_TOKEN
  • Configure the below YAML to suite your needs. You can add multiple repositories. Recommended countโ€ฆ

name: Echo the Release
on: 
  schedule:
    - cron: "*/1 * * * *"
jobs:
  get-version:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
        token: ${{ secrets.ECHO_TOKEN }}
    - name: Repo 1
      run: |
        t=$(curl -sL https://api.github.com/repos/<UserName>/<RepoName>/releases/latest | jq -r ".name")
        if [ ${t} != null ]
        then
          echo ${t} > Sample-Repo/echo.txt
        fi

    - name: Repo 2
      run: |
        t=$(curl -sL https://api.github.com/repos/<UserName>/<RepoName>/releases/latest | jq -r ".name")
        if [ ${t} != null ]
        then
          echo ${t} > Another-Sample-Repo/echo.txt
        fi

    - name: Check for modified files
      id: git-check
      run: | 
        git diff --name-only | xargs -L1 dirname | uniq > changes.txt
        while read p; do
          if [ $p != "." ]
          then
            k=${{ secrets.ECHO_KEY }}
            curl https://api.notifymyecho.com/v1/NotifyMe -H "Content-Type: application/json" -d '{"notification":"New release is now available for '"$p"'.","accessCode":"'"$k"'"}'
          fi
        done <changes.txt        
        echo "" > changes.txt

    - name: Commit latest release version
      run: |
        git config --global user.name '<>'
        git config --global user.email '<>'
        git commit -am "New release version"
        git push
Enter fullscreen mode Exit fullscreen mode

Additional Resources / Info

Thanks to Notify Me

Top comments (0)

๐ŸŒš Friends don't let friends browse without dark mode.

Just kidding, it's a personal preference. But you can change your theme, font, etc. in your settings.

The more you know. ๐ŸŒˆ