You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR adds the Applications page for the PipeCD plugin.
It lists PipeCD applications with their platform, sync status, last sync time and repository. Users can search by name or repo, and filter by platform. Each row links to the application in PipeCD.
The reason will be displayed to describe this comment to others. Learn more.
Thanks for these changes.
Can you please have a look at the git commits to see if they meet the contribution guidelines? We use a Linux kernel style of git commits. See the contributing guide for general context, and please see previous git commits with git log for examples.
Commits that need attention
pipecd: add initial plugin project structure — Description must start with a capital letter — e.g. frontend: HomeButton: Fix the button not frontend: HomeButton: fix the button.
pipecd: trim README to a placeholder — Description must start with a capital letter — e.g. frontend: HomeButton: Fix the button not frontend: HomeButton: fix the button.
pipecd: add Apache license header — Description must start with a capital letter — e.g. frontend: HomeButton: Fix the button not frontend: HomeButton: fix the button.
pipecd: add API client and settings page — Description must start with a capital letter — e.g. frontend: HomeButton: Fix the button not frontend: HomeButton: fix the button.
pipecd: add applications list — Description must start with a capital letter — e.g. frontend: HomeButton: Fix the button not frontend: HomeButton: fix the button.
Commit guidelines
Use atomic commits focused on a single change.
Use the title format <area>: <Description of changes> — description must start with a capital letter.
Keep the title under 72 characters (soft requirement).
Explain the intention and why the change is needed.
Make commit titles meaningful and describe what changed.
Do not add code that a later commit rewrites; squash or reorder commits instead.
Custom plugin deployments are misclassified as Kubernetes
pipecd/src/api/pipecd.ts:173
The fallback contradicts the function's own “only when there are none” contract. If deployTargetsByPlugin contains a custom or newly introduced plugin, no entry matches PLUGIN_KINDS, so the deprecated zero-valued a.kind makes that application appear as Kubernetes instead of Unknown. Only consult a.kind when the deploy-target map is empty.
Deployment mapping still reads the deprecated kind field, although plugin-architecture deployments expose their platform through deployTargetsByPlugin just like applications. Since the deprecated enum defaults to Kubernetes, Terraform, Lambda, Cloud Run, and ECS deployments can all be mislabeled. Resolve the recognized plugin name before falling back to the legacy enum.
0 is not a bounded/default page size in PipeCD: the server forwards it to the datastore, whose MySQL and Firestore implementations only apply a limit when it is greater than zero. Consequently, the default call scans and serializes every application in the project at once, bypassing the cursor loop and creating an unbounded request for large projects. Use the API's documented page size so callers paginate predictably.
Dismissing load error incorrectly shows empty state
pipecd/src/components/ApplicationList.tsx:255
Clearing the load error makes an initial failed request immediately satisfy the empty-state condition below, so dismissing the alert falsely tells the user that PipeCD returned no applications. Keep the failure state distinct from alert visibility (or leave this initial error non-dismissible) so a network/API failure cannot become a successful empty result.
Relative sync time does not update while page remains open
pipecd/src/components/ApplicationList.tsx:327
This relative value is calculated only when React happens to render; there is no timer or clock state in this component. A row that says “just now” can therefore remain that way indefinitely while the page is open, making the Last Synced column inaccurate. Either schedule periodic rerenders or display the stable absolute timestamp here.
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this PR.
There are git conflicts in this PR that need to be resolved.
How to resolve conflicts
Rebase or merge the latest main into your branch, resolve the conflicts, and push the updated branch.
The open review comments from Copilot still need attention — can you have a look? Once addressed, please mark them as resolved.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR adds the Applications page for the PipeCD plugin.
It lists PipeCD applications with their platform, sync status, last sync time and repository. Users can search by name or repo, and filter by platform. Each row links to the application in PipeCD.
Depends on #1300 .
Part of the LFX Mentorship 2026 Term 3, tracked in pipe-cd/pipecd#6706.
Screenshot