Update a different repository using a github action

github update repository commit checkout

2 min read | by Jordi Prats

When building an application we might like to update a different repository to update the app's versions number. For example, if we build a docker containter using a github action we might want to update the tag on the helm repository. This is by default restricted: a github action only has access to it's own repository but we can create a PAT to workaround this problem

So, first we will have create a PAT. To do so we will have to login into gtihub, and search for Personal access tokens under Settings/Developer settings. We will have to create a new PAT and give it access to the repos to be able to push changes to them

With this toke we will have to create a new secret on the repository we are going to run the github action (the first repo). You can create the New repository secret under your repo Settings/Secrets. We can choose whatever name we'd like, on this example I'm going to use PAT_REPO_UPDATE to identify what's for

The last thing we need to do is to add the actions on the github action to:

  • Checkout the repository we want to update (the other repo)
  • Update the files we'd like to change
  • Commit and push the changes

We'll need to update it using the following steps:

(...)  - name: Checkout helm chart  uses: actions/checkout@v2  with:  repository: jordiprats/helm-pet2cattle  token: ${{ secrets.PAT_REPO_UPDATE }}  path: ./helm-pet2cattle  - name: Update chart.yaml  run: |  sed 's/appVersion: "[^"]*"/appVersion: "${{ steps.vars.outputs.tag }}"/' -i ./helm-pet2cattle/Chart.yaml  - name: Push helm changes  uses: EndBug/add-and-commit@v7  with:  cwd: ./helm-pet2cattle  message: 'update app version'  branch: master 

You can find a full example on the repo flask-pet2cattle, when the docker image is built it updates it's helm chart


Posted on 29/10/2021