feat: switch to declarative staging-workflow with mirror to dockerhub#3046
feat: switch to declarative staging-workflow with mirror to dockerhub#3046levivannoort wants to merge 1 commit into
Conversation
Appwrite WebsiteProject ID: Website (appwrite/website)Project ID: Tip GraphQL API works alongside REST and WebSocket protocols |
Greptile SummaryThis PR replaces the imperative Helm/Kubernetes deployment with a declarative GitOps approach: after building and pushing the Docker image to both GHCR and Docker Hub, the workflow checks out a separate
Confidence Score: 3/5The workflow logic is sound but the The refactor correctly implements the GitOps pattern and the concurrency guard prevents race conditions on the YAML commit. The main concern is
Important Files Changed
Reviews (1): Last reviewed commit: "feat: switch to declarative staging-work..." | Re-trigger Greptile |
| uses: mikefarah/yq@v4 | ||
| with: | ||
| cmd: yq -i '.website.image.tag = strenv(TAG)' ${{ env.ENVIRONMENT }}/${{ env.PROJECT }}/fra1.yaml |
There was a problem hiding this comment.
Unpinned third-party action with privileged repo access
mikefarah/yq@v4 is resolved at runtime to whatever commit the v4 tag currently points to. This step runs in the deploy job, which already holds the GitHub App token capable of pushing to assets-applications. If the v4 tag were ever moved to a malicious commit (compromised maintainer account, tag hijack, etc.), it would run with that token in scope. Pin the action to a specific commit SHA to eliminate this vector — e.g. mikefarah/yq@<full-sha>.
| IMAGE_NAME: appwrite/website | ||
| DOCKERHUB_IMAGE_NAME: appwrite/website |
There was a problem hiding this comment.
IMAGE_NAME and DOCKERHUB_IMAGE_NAME are both set to appwrite/website, making one of them redundant. The tag lines on lines 50–51 only differ in the registry prefix, so a single IMAGE_NAME variable is sufficient for both.
| IMAGE_NAME: appwrite/website | |
| DOCKERHUB_IMAGE_NAME: appwrite/website | |
| IMAGE_NAME: appwrite/website |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!


What does this PR do?
(Provide a description of what this PR does.)
Test Plan
(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)
Related PRs and Issues
(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)
Have you read the Contributing Guidelines on issues?
(Write your answer here.)