mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 15:32:36 +08:00

* Update the generator to include version * Add versioned APIs * Update imports * Prettier
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import { Trans } from '@grafana/i18n';
|
|
import { Button, LinkButton, Stack } from '@grafana/ui';
|
|
import { Repository } from 'app/api/clients/provisioning/v0alpha1';
|
|
|
|
import { StatusBadge } from '../Shared/StatusBadge';
|
|
import { PROVISIONING_URL } from '../constants';
|
|
import { getRepoHref } from '../utils/git';
|
|
|
|
import { DeleteRepositoryButton } from './DeleteRepositoryButton';
|
|
import { SyncRepository } from './SyncRepository';
|
|
|
|
interface RepositoryActionsProps {
|
|
repository: Repository;
|
|
}
|
|
|
|
export function RepositoryActions({ repository }: RepositoryActionsProps) {
|
|
const name = repository.metadata?.name ?? '';
|
|
const repoHref = getRepoHref(repository.spec?.github);
|
|
|
|
return (
|
|
<Stack>
|
|
<StatusBadge repo={repository} />
|
|
{repoHref && (
|
|
<Button variant="secondary" icon="github" onClick={() => window.open(repoHref, '_blank')}>
|
|
<Trans i18nKey="provisioning.repository-actions.source-code">Source Code</Trans>
|
|
</Button>
|
|
)}
|
|
<SyncRepository repository={repository} />
|
|
<LinkButton variant="secondary" icon="cog" href={`${PROVISIONING_URL}/${name}/edit`}>
|
|
<Trans i18nKey="provisioning.repository-actions.settings">Settings</Trans>
|
|
</LinkButton>
|
|
<DeleteRepositoryButton name={name} redirectTo={PROVISIONING_URL} />
|
|
</Stack>
|
|
);
|
|
}
|