Skip to content

Revision redirection can affect not intended repositories #205

@archi144

Description

@archi144

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions