Skip to content

Commit 5ecc217

Browse files
committed
remove supervisor_live_git_status
and deprecated instance.status.repo
1 parent 8202ae5 commit 5ecc217

File tree

10 files changed

+12
-82
lines changed

10 files changed

+12
-82
lines changed

components/common-go/experiments/flags.go

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,3 @@ func SupervisorPersistServerAPIChannelWhenStart(ctx context.Context, client Clie
2828
func SupervisorUsePublicAPI(ctx context.Context, client Client, attributes Attributes) bool {
2929
return client.GetBoolValue(ctx, SupervisorUsePublicAPIFlag, false, attributes)
3030
}
31-
32-
func SupervisorLiveGitStatus(ctx context.Context, client Client, attributes Attributes) bool {
33-
if client == nil {
34-
return false
35-
}
36-
return client.GetBoolValue(ctx, "supervisor_live_git_status", false, attributes)
37-
}

components/dashboard/src/components/PendingChangesDropdown.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,12 @@
44
* See License.AGPL.txt in the project root for license information.
55
*/
66

7-
import { WorkspaceInstance, WorkspaceInstanceRepoStatus } from "@gitpod/gitpod-protocol";
7+
import { WorkspaceInstance } from "@gitpod/gitpod-protocol";
88
import ContextMenu, { ContextMenuEntry } from "./ContextMenu";
99
import CaretDown from "../icons/CaretDown.svg";
10-
import { useFeatureFlag } from "../data/featureflag-query";
1110

1211
export default function PendingChangesDropdown(props: { workspaceInstance?: WorkspaceInstance }) {
13-
const liveGitStatus = useFeatureFlag("supervisor_live_git_status");
14-
let repo: WorkspaceInstanceRepoStatus | undefined;
15-
if (liveGitStatus) {
16-
repo = props.workspaceInstance?.gitStatus;
17-
} else {
18-
repo = props.workspaceInstance?.status?.repo;
19-
}
12+
const repo = props.workspaceInstance?.gitStatus;
2013
const headingStyle = "text-gray-500 dark:text-gray-400 text-left";
2114
const itemStyle = "text-gray-400 dark:text-gray-500 text-left -mt-5";
2215
const menuEntries: ContextMenuEntry[] = [];

components/dashboard/src/data/featureflag-query.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ const featureFlags = {
2222
doRetryUserLoader: true,
2323
// Local SSH feature of VS Code Desktop Extension
2424
gitpod_desktop_use_local_ssh_proxy: false,
25-
supervisor_live_git_status: false,
2625
enabledOrbitalDiscoveries: "",
2726
newProjectIncrementalRepoSearchBBS: false,
2827
includeProjectsOnCreateWorkspace: false,

components/dashboard/src/workspaces/WorkspaceEntry.tsx

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,7 @@
44
* See License.AGPL.txt in the project root for license information.
55
*/
66

7-
import {
8-
CommitContext,
9-
Workspace,
10-
WorkspaceInfo,
11-
ContextURL,
12-
WorkspaceInstanceRepoStatus,
13-
} from "@gitpod/gitpod-protocol";
7+
import { CommitContext, Workspace, WorkspaceInfo, ContextURL } from "@gitpod/gitpod-protocol";
148
import { GitpodHostUrl } from "@gitpod/gitpod-protocol/lib/util/gitpod-host-url";
159
import { FunctionComponent, useMemo, useState } from "react";
1610
import { Item, ItemField, ItemFieldIcon } from "../components/ItemsList";
@@ -19,7 +13,6 @@ import Tooltip from "../components/Tooltip";
1913
import dayjs from "dayjs";
2014
import { WorkspaceEntryOverflowMenu } from "./WorkspaceOverflowMenu";
2115
import { WorkspaceStatusIndicator } from "./WorkspaceStatusIndicator";
22-
import { useFeatureFlag } from "../data/featureflag-query";
2316

2417
type Props = {
2518
info: WorkspaceInfo;
@@ -29,13 +22,7 @@ type Props = {
2922
export const WorkspaceEntry: FunctionComponent<Props> = ({ info, shortVersion }) => {
3023
const [menuActive, setMenuActive] = useState(false);
3124

32-
const liveGitStatus = useFeatureFlag("supervisor_live_git_status");
33-
let repo: WorkspaceInstanceRepoStatus | undefined;
34-
if (liveGitStatus) {
35-
repo = info.latestInstance?.gitStatus;
36-
} else {
37-
repo = info.latestInstance?.status.repo;
38-
}
25+
const repo = info.latestInstance?.gitStatus;
3926

4027
const workspace = info.workspace;
4128
const currentBranch = repo?.branch || Workspace.getBranchName(info.workspace) || "<unknown>";

components/gitpod-protocol/go/gitpod-service.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1835,7 +1835,6 @@ type WorkspaceInstanceStatus struct {
18351835
NodeName string `json:"nodeName,omitempty"`
18361836
OwnerToken string `json:"ownerToken,omitempty"`
18371837
Phase string `json:"phase,omitempty"`
1838-
Repo *WorkspaceInstanceRepoStatus `json:"repo,omitempty"`
18391838
Timeout string `json:"timeout,omitempty"`
18401839
Version int `json:"version,omitempty"`
18411840
}

components/gitpod-protocol/src/workspace-instance.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,6 @@ export interface WorkspaceInstanceStatus {
9191
// exposedPorts is the list of currently exposed ports
9292
exposedPorts?: WorkspaceInstancePort[];
9393

94-
/**
95-
* repo contains information about the Git working copy inside the workspace
96-
* @deprecated use WorkspaceInstance.gitStatus instead if supervisor_live_git_status feature flag is enabled
97-
*
98-
* TODO(ak) remove after migration to live git status
99-
*/
100-
repo?: WorkspaceInstanceRepoStatus;
101-
10294
// timeout is a non-default timeout value configured for a workspace
10395
timeout?: string;
10496

components/public-api-server/pkg/apiv1/workspace.go

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,7 @@ func (s *WorkspaceService) StreamWorkspaceStatus(ctx context.Context, req *conne
124124
}
125125

126126
for update := range ch {
127-
liveGitStatus := experiments.SupervisorLiveGitStatus(ctx, s.expClient, experiments.Attributes{
128-
UserID: workspace.Workspace.OwnerID,
129-
})
130-
instance, err := convertWorkspaceInstance(update, workspace.Workspace.Context, workspace.Workspace.Config, workspace.Workspace.Shareable, liveGitStatus)
127+
instance, err := convertWorkspaceInstance(update, workspace.Workspace.Context, workspace.Workspace.Config, workspace.Workspace.Shareable)
131128
if err != nil {
132129
log.Extract(ctx).WithError(err).Error("Failed to convert workspace instance.")
133130
return proxy.ConvertError(err)
@@ -407,15 +404,12 @@ func getLimitFromPagination(pagination *v1.Pagination) (int, error) {
407404
}
408405

409406
func (s *WorkspaceService) convertWorkspaceInfo(ctx context.Context, input *protocol.WorkspaceInfo) (*v1.Workspace, error) {
410-
liveGitStatus := experiments.SupervisorLiveGitStatus(ctx, s.expClient, experiments.Attributes{
411-
UserID: input.Workspace.OwnerID,
412-
})
413-
return convertWorkspaceInfo(input, liveGitStatus)
407+
return convertWorkspaceInfo(input)
414408
}
415409

416410
// convertWorkspaceInfo converts a "protocol workspace" to a "public API workspace". Returns gRPC errors if things go wrong.
417-
func convertWorkspaceInfo(input *protocol.WorkspaceInfo, liveGitStatus bool) (*v1.Workspace, error) {
418-
instance, err := convertWorkspaceInstance(input.LatestInstance, input.Workspace.Context, input.Workspace.Config, input.Workspace.Shareable, liveGitStatus)
411+
func convertWorkspaceInfo(input *protocol.WorkspaceInfo) (*v1.Workspace, error) {
412+
instance, err := convertWorkspaceInstance(input.LatestInstance, input.Workspace.Context, input.Workspace.Config, input.Workspace.Shareable)
419413
if err != nil {
420414
return nil, err
421415
}
@@ -440,7 +434,7 @@ func convertWorkspaceInfo(input *protocol.WorkspaceInfo, liveGitStatus bool) (*v
440434
}, nil
441435
}
442436

443-
func convertWorkspaceInstance(wsi *protocol.WorkspaceInstance, wsCtx *protocol.WorkspaceContext, config *protocol.WorkspaceConfig, shareable bool, liveGitStatus bool) (*v1.WorkspaceInstance, error) {
437+
func convertWorkspaceInstance(wsi *protocol.WorkspaceInstance, wsCtx *protocol.WorkspaceContext, config *protocol.WorkspaceConfig, shareable bool) (*v1.WorkspaceInstance, error) {
444438
if wsi == nil {
445439
return nil, nil
446440
}
@@ -525,12 +519,7 @@ func convertWorkspaceInstance(wsi *protocol.WorkspaceInstance, wsCtx *protocol.W
525519
}
526520
recentFolders = append(recentFolders, filepath.Join("/workspace", location))
527521

528-
var gitStatus *v1.GitStatus
529-
if liveGitStatus {
530-
gitStatus = convertGitStatus(wsi.GitStatus)
531-
} else {
532-
gitStatus = convertGitStatus(wsi.Status.Repo)
533-
}
522+
gitStatus := convertGitStatus(wsi.GitStatus)
534523

535524
return &v1.WorkspaceInstance{
536525
InstanceId: wsi.ID,

components/public-api-server/pkg/apiv1/workspace_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -771,7 +771,7 @@ func TestConvertWorkspaceInfo(t *testing.T) {
771771
act Expectation
772772
err error
773773
)
774-
act.Result, err = convertWorkspaceInfo(&test.Input, false)
774+
act.Result, err = convertWorkspaceInfo(&test.Input)
775775
if err != nil {
776776
act.Error = err.Error()
777777
}
@@ -792,7 +792,7 @@ func FuzzConvertWorkspaceInfo(f *testing.F) {
792792
}
793793

794794
// we really just care for panics
795-
_, _ = convertWorkspaceInfo(&nfo, false)
795+
_, _ = convertWorkspaceInfo(&nfo)
796796
})
797797
}
798798

components/supervisor/pkg/supervisor/git.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -182,12 +182,6 @@ func (s *GitStatusService) Run(ctx context.Context, wg *sync.WaitGroup) {
182182
}
183183

184184
func (s *GitStatusService) update(ctx context.Context, updateContext *gitStatusUpdateContext) {
185-
liveGitStatus := experiments.SupervisorLiveGitStatus(ctx, s.experiments, experiments.Attributes{
186-
UserID: s.cfg.OwnerId,
187-
})
188-
if !liveGitStatus {
189-
return
190-
}
191185
status, err := s.git.Status(ctx)
192186
if err != nil {
193187
log.WithError(err).Error("git: error getting status")

components/ws-manager-bridge/src/bridge.ts

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -269,22 +269,6 @@ export class WorkspaceManagerBridge implements Disposable {
269269
instance.status.nodeIp = instance.status.nodeIp || status.runtime?.nodeIp;
270270
instance.status.ownerToken = status.auth!.ownerToken;
271271

272-
if (status.repo) {
273-
const r = status.repo;
274-
const undefinedIfEmpty = <T>(l: T[]) => (l.length > 0 ? l : undefined);
275-
276-
instance.status.repo = {
277-
branch: r.branch,
278-
latestCommit: r.latestCommit,
279-
uncommitedFiles: undefinedIfEmpty(r.uncommitedFilesList),
280-
totalUncommitedFiles: r.totalUncommitedFiles,
281-
unpushedCommits: undefinedIfEmpty(r.unpushedCommitsList),
282-
totalUntrackedFiles: r.totalUntrackedFiles,
283-
untrackedFiles: undefinedIfEmpty(r.untrackedFilesList),
284-
totalUnpushedCommits: r.totalUnpushedCommits,
285-
};
286-
}
287-
288272
let lifecycleHandler: (() => Promise<void>) | undefined;
289273
switch (status.phase) {
290274
case WorkspacePhase.PENDING:

0 commit comments

Comments
 (0)