argo-cd

Форк
0
28 строк · 1017.0 Байт
1
import * as React from 'react';
2
import {revisionUrl} from './urls';
3

4
export const Revision = ({repoUrl, revision, path, isForPath, children}: {repoUrl: string; revision: string; path?: string; isForPath?: boolean; children?: React.ReactNode}) => {
5
    if (isForPath && !path) {
6
        // This source literally has no path, so we won't show one.
7
        return <span />;
8
    }
9
    revision = revision || '';
10
    const hasPath = path && path !== '.';
11
    let url = revisionUrl(repoUrl, revision, hasPath);
12
    if (url !== null && hasPath) {
13
        url += '/' + path;
14
    }
15
    const content = children || (isSHA(revision) ? revision.substr(0, 7) : revision);
16
    return url !== null ? (
17
        <a href={url} target='_blank' rel='noopener noreferrer'>
18
            {content}
19
        </a>
20
    ) : (
21
        <span>{content}</span>
22
    );
23
};
24

25
export const isSHA = (revision: string) => {
26
    // https://stackoverflow.com/questions/468370/a-regex-to-match-a-sha1
27
    return revision.match(/^[a-f0-9]{5,40}$/) !== null;
28
};
29

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.