-
Notifications
You must be signed in to change notification settings - Fork 51
Description
Hello.
Thank you for the tool! I've got a good time making my pipeline from ❌ to ✔️ to see the result worth it.
I want to share my feedback with you and I hope it'll help someone one day.
During the run I had an issue with resolving git revision:
Failed to generate applications from ApplicationSet error="failed to run argocd appset generate: argocd command failed: {\"level\":\"fatal\",\"msg\":\"rpc error: code = Internal desc = unable to resolve git revision : unable to resolve 'refs/pull/1474/merge' to a commit SHA\",\"time\":\"2025-07-22T14:54:07Z\"}\n: exit status 20" (AppSet: "my-app [rendered-apps-from-pr.yaml]") (branch: refs/pull/1474/merge)
In our Applications we use 2 repositories as sources: argocd and argocd-apps (org is omitted for brevity) .
Following the guide for GitHub Actions, I set REPO=${{ github.repository }}, which resolved into argocd as it should, according to the official doc.
Eventually, with the help of debug logs, I found out that redirecting revisions step was patching revisions in Applications from argocd-apps with value from TARGET_BRANCH env, which led to the failed revision resolving on ArgoCD's site - as such revision didn't exist in argocd-apps but did exist in argocd. Changing the REPO to argocd.git solved the case.
As I understand, containsIgnoreCase() function, decides whether App's revision should be patched.
My question is: should we keep comparing repoUrl with repo via strings.Contains() or we can use the full match? Or we can just warn users about partial match and recommend using full name of the repo with .git suffix, if that's applicable.