Home Education Tutorials Using the API to add Codacy Grade details to the Readme

Using the API to add Codacy Grade details to the Readme

Author

Date

Category

Some context

Prerequisites — A Placeholder

# An amazing repository with code<!-- codacy-status --> 
<!-- /codacy-status -->

Hands-on

name: Update Readmeon:
  push:
    branches-ignore:
      - masterjobs:
  update-readme:
    runs-on: ubuntu-latest
    steps:
     - uses: actions/checkout@v2
       with:
        ref: ${{ github.head_ref }}
     - name: update README.md with codacy status
       run: |
          RETRIES=0
          ANALYZED=$(curl -X GET https://app.codacy.com/api/v3/analysis/organizations/gh/codacy-acme/repositories/nodeproject/commits/${GITHUB_SHA}/deltaStatistics -H 'api-token: ${{ secrets.API_TOKEN }}' | jq '.analyzed')
          while [ $ANALYZED != "true" ]
          do
          sleep 10s
          RETRIES=$((RETRIES+1))
          if [ "$RETRIES" -gt "10" ]; then
            echo "pipeline will exit due to max retries (10)"
            exit 0
          fi
          ANALYZED=$(curl -X GET https://app.codacy.com/api/v3/analysis/organizations/gh/codacy-acme/repositories/nodeproject/commits/${GITHUB_SHA}/deltaStatistics -H 'api-token: ${{ secrets.API_TOKEN }}' | jq '.analyzed')
          done
          RESULT=$(curl https://app.codacy.com/api/v3/analysis/organizations/gh/codacy-acme/repositories/nodeproject | jq -r -j '["Grade: \(.data.grade) |", "Issues: \(.data.issuesPercentage)% |", "Complex Files: \(.data.complexFilesPercentage)% |", "Coverage: \(.data.coverage.coveragePercentage)%"]' | tr -d \" | tr -d \[ | tr  -d \] | tr -d , | tr -d '\n')
          sed -i ":a;N;\$!ba;s/\(<!-- codacy-status -->\).*\(<!-- \/codacy-status -->\)/\1 \n$RESULT\n \2/g" README.md
       env:
        CI: true
     - uses: stefanzweifel/git-auto-commit-action@v4
       with:
        commit_message: "Update README.md with Project Grade"
        file_pattern: README.md

Downside

 

If you’d like to learn more about using the Codacy API, please check our docs page on the API v3. For more on our product and updates on our static analysis tool, check out Codacy’s product page.

This article was originally published by Hélio, Sr. Solutions Engineer at Codacy on his Medium account. 

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Subscribe to our newsletter

To be updated with all the latest news, offers and special announcements.

Recent posts

May Product Update: Repository list, performance improvements, UX improvements, and more 🚀

Here are the product updates from May! This month we bring you new features, product improvements, and more interesting news to come. 🤩 We also...

April Product Update: New features and improvements, a recorded Codacy Analysis CLI webinar and more 🚀

Here are the product updates from April! This month we bring you new features, product improvements, a recorded Codacy Analysis CLI webinar we held,...

We Did a Hackathon!

We define ourselves as a startup, and while we proudly carry such a title, we also carry extraordinary responsibilities. After all, you mean to...

7 drawbacks of linting tools

Linting tools (also known as linters or static analyzers) help automate the code review process. They perform basic static code analysis by flagging programming...

Using the API to add Codacy Grade details to the Readme

Some context Codacy has a badge mechanism that can be included in your Readme file. It gives you an idea of the grade of your repository, from...