You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by mi...@apache.org on 2023/08/11 04:30:23 UTC
[incubator-devlake] 01/01: fix(config-ui): permalinks to documentation (#5856)
This is an automated email from the ASF dual-hosted git repository.
mintsweet pushed a commit to branch release-v0.18-cp-5856
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit 9b697d8d4715c18e40892aa85dfe00901ba8359d
Author: 青湛 <0x...@gmail.com>
AuthorDate: Fri Aug 11 14:49:30 2023 +1200
fix(config-ui): permalinks to documentation (#5856)
---
.../detail/components/advanced-editor/index.tsx | 11 +-
config-ui/src/pages/project/home/index.tsx | 7 +-
.../fields/additional-settings.tsx | 5 +-
.../plugins/components/scope-config-form/misc.ts | 36 ++++---
config-ui/src/plugins/register/azure/config.tsx | 9 +-
.../src/plugins/register/azure/transformation.tsx | 5 +-
.../src/plugins/register/bitbucket/config.tsx | 6 +-
.../plugins/register/bitbucket/transformation.tsx | 5 +-
config-ui/src/plugins/register/github/config.tsx | 9 +-
.../register/github/connection-fields/token.tsx | 3 +-
.../src/plugins/register/github/transformation.tsx | 18 ++--
config-ui/src/plugins/register/gitlab/config.tsx | 11 +-
.../src/plugins/register/gitlab/transformation.tsx | 5 +-
config-ui/src/plugins/register/jenkins/config.ts | 6 +-
.../plugins/register/jenkins/transformation.tsx | 8 +-
config-ui/src/plugins/register/jira/config.tsx | 6 +-
.../register/jira/connection-fields/auth.tsx | 7 +-
.../jira/transformation-fields/cross-domain.tsx | 3 +-
.../src/plugins/register/jira/transformation.tsx | 12 +--
.../src/plugins/register/pagerduty/config.tsx | 6 +-
config-ui/src/plugins/register/sonarqube/config.ts | 6 +-
config-ui/src/plugins/register/tapd/config.tsx | 10 +-
.../src/plugins/register/teambition/config.tsx | 12 ++-
.../plugins/register/webook/connection/index.tsx | 3 +-
config-ui/src/plugins/register/zentao/config.tsx | 6 +-
config-ui/src/release/index.ts | 19 ++++
config-ui/src/release/stable.ts | 114 +++++++++++++++++++++
config-ui/src/release/v0.18.ts | 114 +++++++++++++++++++++
28 files changed, 358 insertions(+), 104 deletions(-)
diff --git a/config-ui/src/pages/blueprint/detail/components/advanced-editor/index.tsx b/config-ui/src/pages/blueprint/detail/components/advanced-editor/index.tsx
index ce8a50fd3..175bdbb34 100644
--- a/config-ui/src/pages/blueprint/detail/components/advanced-editor/index.tsx
+++ b/config-ui/src/pages/blueprint/detail/components/advanced-editor/index.tsx
@@ -20,6 +20,9 @@ import { TextArea, ButtonGroup, Button, Menu, MenuItem, Position } from '@bluepr
import { Popover2 } from '@blueprintjs/popover2';
import styled from 'styled-components';
+import { ExternalLink } from '@/components';
+import { DOC_URL } from '@/release';
+
import { EXAMPLE_CONFIG } from './example';
const Wrapper = styled.div`
@@ -60,13 +63,7 @@ export const AdvancedEditor = ({ value, onChange }: Props) => {
<h3>Task Editor</h3>
<p>
<span>Enter JSON Configuration or preload from a template.</span>
- <a
- href="https://devlake.apache.org/docs/UserManuals/ConfigUI/AdvancedMode/#examples"
- rel="noreferrer"
- target="_blank"
- >
- See examples
- </a>
+ <ExternalLink link={DOC_URL.ADVANCED_MODE.EXAMPLES}>See examples</ExternalLink>
</p>
<TextArea fill value={value} onChange={(e) => onChange(e.target.value)} />
<ButtonGroup minimal>
diff --git a/config-ui/src/pages/project/home/index.tsx b/config-ui/src/pages/project/home/index.tsx
index d67ed37cf..1cdc50579 100644
--- a/config-ui/src/pages/project/home/index.tsx
+++ b/config-ui/src/pages/project/home/index.tsx
@@ -21,9 +21,10 @@ import { Link, useNavigate } from 'react-router-dom';
import { Button, InputGroup, Checkbox, Intent, FormGroup } from '@blueprintjs/core';
import dayjs from 'dayjs';
-import { PageHeader, Table, Dialog, IconButton, toast } from '@/components';
+import { PageHeader, Table, Dialog, ExternalLink, IconButton, toast } from '@/components';
import { cronPresets } from '@/config';
import { useRefreshData } from '@/hooks';
+import { DOC_URL } from '@/release';
import { formatTime, operator } from '@/utils';
import { validName, encodeName } from '../utils';
@@ -168,9 +169,7 @@ export const ProjectHomePage = () => {
label={<S.Label>Project Settings</S.Label>}
subLabel={
<S.LabelDescription>
- <a href="https://devlake.apache.org/docs/DORA/" rel="noreferrer" target="_blank">
- DORA metrics
- </a>
+ <ExternalLink link={DOC_URL.DORA}>DORA metrics</ExternalLink>
<span style={{ marginLeft: 4 }}>
are four widely-adopted metrics for measuring software delivery performance.
</span>
diff --git a/config-ui/src/plugins/components/scope-config-form/fields/additional-settings.tsx b/config-ui/src/plugins/components/scope-config-form/fields/additional-settings.tsx
index b27206526..61a7615da 100644
--- a/config-ui/src/plugins/components/scope-config-form/fields/additional-settings.tsx
+++ b/config-ui/src/plugins/components/scope-config-form/fields/additional-settings.tsx
@@ -20,6 +20,7 @@ import { useState } from 'react';
import { Switch, InputGroup } from '@blueprintjs/core';
import { ExternalLink, HelpTooltip } from '@/components';
+import { DOC_URL } from '@/release';
import * as S from './styled';
@@ -53,8 +54,8 @@ export const AdditionalSettings = ({ transformation, setTransformation }: Props)
{enable && (
<>
<p>
- Enable the <ExternalLink link="https://devlake.apache.org/docs/Plugins/refdiff">RefDiff</ExternalLink>{' '}
- plugin to pre-calculate version-based metrics
+ Enable the <ExternalLink link={DOC_URL.PLUGIN.REFDIFF}>RefDiff</ExternalLink> plugin to pre-calculate
+ version-based metrics
<HelpTooltip content="Calculate the commits diff between two consecutive tags that match the following RegEx. Issues closed by PRs which contain these commits will also be calculated. The result will be shown in table.refs_commits_diffs and table.refs_issues_diffs." />
</p>
<div className="refdiff">
diff --git a/config-ui/src/plugins/components/scope-config-form/misc.ts b/config-ui/src/plugins/components/scope-config-form/misc.ts
index 8cb8bc2c7..5188ee38a 100644
--- a/config-ui/src/plugins/components/scope-config-form/misc.ts
+++ b/config-ui/src/plugins/components/scope-config-form/misc.ts
@@ -16,33 +16,39 @@
*
*/
+import { DOC_URL } from '@/release';
+
export const TIPS_MAP: Record<string, { name: string; link: string }> = {
+ azuredevops: {
+ name: 'Azure DevOps',
+ link: DOC_URL.PLUGIN.AZUREDEVOPS.TRANSFORMATION,
+ },
+ bamboo: {
+ name: 'Bamboo',
+ link: DOC_URL.PLUGIN.BAMBOO.TRANSFORMATION,
+ },
+ bitbucket: {
+ name: 'BitBucket',
+ link: DOC_URL.PLUGIN.BITBUCKET.TRANSFORMATION,
+ },
github: {
name: 'GitHub',
- link: 'https://devlake.apache.org/docs/Configuration/GitHub#step-3---adding-transformation-rules-optional',
+ link: DOC_URL.PLUGIN.GITHUB.TRANSFORMATION,
},
gitlab: {
name: 'GitLab',
- link: 'https://devlake.apache.org/docs/Configuration/GitLab#step-3---adding-transformation-rules-optional',
- },
- jira: {
- name: 'Jira',
- link: 'https://devlake.apache.org/docs/Configuration/Jira#step-3---adding-transformation-rules-optional',
+ link: DOC_URL.PLUGIN.GITLAB.TRANSFORMATION,
},
jenkins: {
name: 'Jenkins',
- link: 'https://devlake.apache.org/docs/Configuration/Jenkins#step-3---adding-transformation-rules-optional',
- },
- bitbucket: {
- name: 'BitBucket',
- link: 'https://devlake.apache.org/docs/Configuration/BitBucket#step-3---adding-transformation-rules-optional',
+ link: DOC_URL.PLUGIN.JENKINS.TRANSFORMATION,
},
- azuredevops: {
- name: 'Azure DevOps',
- link: 'https://devlake.apache.org/docs/Configuration/Jenkins#step-3---adding-transformation-rules-optional',
+ jira: {
+ name: 'Jira',
+ link: DOC_URL.PLUGIN.JIRA.TRANSFORMATION,
},
tapd: {
name: 'TAPD',
- link: 'https://devlake.apache.org/docs/Configuration/Tapd#step-3---adding-transformation-rules-optional',
+ link: DOC_URL.PLUGIN.TAPD.TRANSFORMATION,
},
};
diff --git a/config-ui/src/plugins/register/azure/config.tsx b/config-ui/src/plugins/register/azure/config.tsx
index 5014e5645..256660bea 100644
--- a/config-ui/src/plugins/register/azure/config.tsx
+++ b/config-ui/src/plugins/register/azure/config.tsx
@@ -17,6 +17,7 @@
*/
import { ExternalLink } from '@/components';
+import { DOC_URL } from '@/release';
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -31,7 +32,7 @@ export const AzureConfig: PluginConfigType = {
icon: Icon,
sort: 6,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/AzureDevOps',
+ docLink: DOC_URL.PLUGIN.AZUREDEVOPS.BASIS,
fields: [
'name',
() => <BaseURL key="base-url" />,
@@ -40,9 +41,7 @@ export const AzureConfig: PluginConfigType = {
label: 'Personal Access Token',
subLabel: (
<span>
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/AzureDevOps#auth-tokens">
- Learn about how to create a PAT
- </ExternalLink>{' '}
+ <ExternalLink link={DOC_URL.PLUGIN.AZUREDEVOPS.AUTH_TOKEN}>Learn about how to create a PAT</ExternalLink>{' '}
Please select ALL ACCESSIBLE ORGANIZATIONS for the Organization field when you create the PAT.
</span>
),
@@ -52,7 +51,7 @@ export const AzureConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses 18,000 requests/hour for data collection for Azure DevOps. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/AzureDevOps/#custom-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.AZUREDEVOPS.RATE_LIMIT,
externalInfo: 'Azure DevOps does not specify a maximum value of rate limit.',
maximum: 18000,
},
diff --git a/config-ui/src/plugins/register/azure/transformation.tsx b/config-ui/src/plugins/register/azure/transformation.tsx
index 6a216bd47..ece4ac960 100644
--- a/config-ui/src/plugins/register/azure/transformation.tsx
+++ b/config-ui/src/plugins/register/azure/transformation.tsx
@@ -20,6 +20,7 @@ import { useState, useEffect } from 'react';
import { Tag, Switch, InputGroup, Intent } from '@blueprintjs/core';
import { ExternalLink, HelpTooltip } from '@/components';
+import { DOC_URL } from '@/release';
import * as S from './styled';
@@ -71,9 +72,7 @@ export const AzureTransformation = ({ entities, transformation, setTransformatio
<>
<p>
Use Regular Expression to define Deployments in DevLake in order to measure DORA metrics.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/GitHub#step-3---adding-transformation-rules-optional">
- Learn more
- </ExternalLink>
+ <ExternalLink link={DOC_URL.PLUGIN.AZUREDEVOPS.TRANSFORMATION}>Learn more</ExternalLink>
</p>
<div style={{ marginTop: 16 }}>Convert a Azure Pipeline Run as a DevLake Deployment when: </div>
<div className="text">
diff --git a/config-ui/src/plugins/register/bitbucket/config.tsx b/config-ui/src/plugins/register/bitbucket/config.tsx
index f8c2d39fb..32b6d52d6 100644
--- a/config-ui/src/plugins/register/bitbucket/config.tsx
+++ b/config-ui/src/plugins/register/bitbucket/config.tsx
@@ -16,6 +16,8 @@
*
*/
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -28,7 +30,7 @@ export const BitBucketConfig: PluginConfigType = {
icon: Icon,
sort: 5,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/BitBucket',
+ docLink: DOC_URL.PLUGIN.BITBUCKET.BASIS,
initialValues: {
endpoint: 'https://api.bitbucket.org/2.0/',
},
@@ -51,7 +53,7 @@ export const BitBucketConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses dynamic rate limit for optimized data collection for BitBucket. But you can adjust the collection speed by entering a fixed value.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/BitBucket#fixed-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.BITBUCKET.RATE_LIMIT,
externalInfo:
'The maximum rate limit for different entities in BitBucket Cloud is 60,000 or 1,000 requests/hour.',
defaultValue: 1000,
diff --git a/config-ui/src/plugins/register/bitbucket/transformation.tsx b/config-ui/src/plugins/register/bitbucket/transformation.tsx
index e6da2dba0..b495570ab 100644
--- a/config-ui/src/plugins/register/bitbucket/transformation.tsx
+++ b/config-ui/src/plugins/register/bitbucket/transformation.tsx
@@ -20,6 +20,7 @@ import { useMemo, useState, useEffect } from 'react';
import { FormGroup, InputGroup, Tag, Intent, Checkbox } from '@blueprintjs/core';
import { ExternalLink, HelpTooltip, Divider, MultiSelector } from '@/components';
+import { DOC_URL } from '@/release';
import ExampleJpg from './assets/bitbucket-example.jpg';
import * as S from './styled';
@@ -148,9 +149,7 @@ export const BitbucketTransformation = ({ entities, transformation, setTransform
</h3>
<p style={{ marginBottom: 16 }}>
Use Regular Expression to define Deployments in DevLake in order to measure DORA metrics.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/GitHub#step-3---adding-transformation-rules-optional">
- Learn more
- </ExternalLink>
+ <ExternalLink link={DOC_URL.PLUGIN.BITBUCKET.TRANSFORMATION}>Learn more</ExternalLink>
</p>
<div className="text">
<Checkbox disabled checked />
diff --git a/config-ui/src/plugins/register/github/config.tsx b/config-ui/src/plugins/register/github/config.tsx
index 16d8704cd..1379e4340 100644
--- a/config-ui/src/plugins/register/github/config.tsx
+++ b/config-ui/src/plugins/register/github/config.tsx
@@ -16,9 +16,12 @@
*
*/
+import { pick } from 'lodash';
+
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
-import { pick } from 'lodash';
import Icon from './assets/icon.svg';
import { Token, Graphql, GithubApp, Authentication } from './connection-fields';
@@ -30,7 +33,7 @@ export const GitHubConfig: PluginConfigType = {
icon: Icon,
sort: 1,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/GitHub',
+ docLink: DOC_URL.PLUGIN.GITHUB.BASIS,
initialValues: {
endpoint: 'https://api.github.com/',
authMethod: 'AccessToken',
@@ -89,7 +92,7 @@ export const GitHubConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses dynamic rate limit for optimized data collection for GitHub. But you can adjust the collection speed by entering a fixed value. Please note: the rate limit setting applies to all tokens you have entered above.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/GitHub/#fixed-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.GITHUB.RATE_LIMIT,
externalInfo:
'Rate Limit Value Reference\nGitHub: 0-5,000 requests/hour\nGitHub Enterprise: 0-15,000 requests/hour',
defaultValue: 4500,
diff --git a/config-ui/src/plugins/register/github/connection-fields/token.tsx b/config-ui/src/plugins/register/github/connection-fields/token.tsx
index b63cd30bd..91a54fa92 100644
--- a/config-ui/src/plugins/register/github/connection-fields/token.tsx
+++ b/config-ui/src/plugins/register/github/connection-fields/token.tsx
@@ -20,6 +20,7 @@ import { useEffect, useState } from 'react';
import { FormGroup, Button, Icon, Intent } from '@blueprintjs/core';
import { ExternalLink, FormPassword } from '@/components';
+import { DOC_URL } from '@/release';
import * as API from '../api';
@@ -117,7 +118,7 @@ export const Token = ({ endpoint, proxy, initialValue, value, error, setValue, s
<S.LabelDescription>
Add one or more personal token(s) for authentication from you and your organization members. Multiple tokens
(from different GitHub accounts, NOT from one account) can help speed up the data collection process.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/GitHub/#auth-tokens">
+ <ExternalLink link={DOC_URL.PLUGIN.GITHUB.AUTH_TOKEN}>
Learn how to create a personal access token
</ExternalLink>
</S.LabelDescription>
diff --git a/config-ui/src/plugins/register/github/transformation.tsx b/config-ui/src/plugins/register/github/transformation.tsx
index 47f2e8dcd..ee3deb944 100644
--- a/config-ui/src/plugins/register/github/transformation.tsx
+++ b/config-ui/src/plugins/register/github/transformation.tsx
@@ -20,6 +20,7 @@ import { useState, useEffect } from 'react';
import { FormGroup, InputGroup, TextArea, Tag, Switch, Icon, Intent, Colors } from '@blueprintjs/core';
import { ExternalLink, HelpTooltip, Divider } from '@/components';
+import { DOC_URL } from '@/release';
import * as S from './styled';
@@ -59,11 +60,8 @@ export const GitHubTransformation = ({ entities, transformation, setTransformati
<h2>Issue Tracking</h2>
<p>
Tell DevLake what your issue labels mean to view metrics such as{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Metrics/BugAge">Bug Age</ExternalLink>,{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Metrics/MTTR">
- DORA - Median Time to Restore Service
- </ExternalLink>
- , etc.
+ <ExternalLink link={DOC_URL.METRICS.BUG_AGE}>Bug Age</ExternalLink>,{' '}
+ <ExternalLink link={DOC_URL.METRICS.MTTR}>DORA - Median Time to Restore Service</ExternalLink>, etc.
</p>
<div className="issue-type">
<div className="title">
@@ -199,9 +197,7 @@ export const GitHubTransformation = ({ entities, transformation, setTransformati
<>
<p>
Use Regular Expression to define Deployments in DevLake in order to measure DORA metrics.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/GitHub#step-3---adding-transformation-rules-optional">
- Learn more
- </ExternalLink>
+ <ExternalLink link={DOC_URL.PLUGIN.GITHUB.TRANSFORMATION}>Learn more</ExternalLink>
</p>
<div style={{ marginTop: 16 }}>Convert a GitHub Workflow run as a DevLake Deployment when: </div>
<div className="text">
@@ -251,9 +247,7 @@ export const GitHubTransformation = ({ entities, transformation, setTransformati
<p>
If you use labels to identify types and components of pull requests, use the following RegExes to extract
them into corresponding columns.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema#pull_requests">
- Learn More
- </ExternalLink>
+ <ExternalLink link={DOC_URL.DATA_MODELS.DEVLAKE_DOMAIN_LAYER_SCHEMA.PULL_REQUEST}>Learn More</ExternalLink>
</p>
<FormGroup
inline
@@ -298,7 +292,7 @@ export const GitHubTransformation = ({ entities, transformation, setTransformati
<h2>Cross-domain</h2>
<p>
Connect entities across domains to measure metrics such as{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode">
+ <ExternalLink link={DOC_URL.METRICS.BUG_COUNT_PER_1K_LINES_OF_CODE}>
Bug Count per 1k Lines of Code
</ExternalLink>
.
diff --git a/config-ui/src/plugins/register/gitlab/config.tsx b/config-ui/src/plugins/register/gitlab/config.tsx
index bd8656f88..6206972e1 100644
--- a/config-ui/src/plugins/register/gitlab/config.tsx
+++ b/config-ui/src/plugins/register/gitlab/config.tsx
@@ -16,11 +16,12 @@
*
*/
+import { ExternalLink } from '@/components';
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
-import { ExternalLink } from '@/components';
-
import Icon from './assets/icon.svg';
export const GitLabConfig: PluginConfigType = {
@@ -30,7 +31,7 @@ export const GitLabConfig: PluginConfigType = {
icon: Icon,
sort: 2,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/GitLab',
+ docLink: DOC_URL.PLUGIN.GITLAB.BASIS,
initialValues: {
endpoint: 'https://gitlab.com/api/v4/',
},
@@ -49,7 +50,7 @@ export const GitLabConfig: PluginConfigType = {
key: 'token',
label: 'Personal Access Token',
subLabel: (
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/GitLab/#auth-tokens">
+ <ExternalLink link={DOC_URL.PLUGIN.GITLAB.AUTH_TOKEN}>
Learn how to create a personal access token
</ExternalLink>
),
@@ -59,7 +60,7 @@ export const GitLabConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses dynamic rate limit around 12,000 requests/hour for optimized data collection for GitLab. But you can adjust the collection speed by entering a fixed value.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/GitLab#fixed-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.GITLAB.RATE_LIMIT,
externalInfo:
'The maximum rate limit for GitLab Cloud is 120,000 requests/hour. Tokens under the same IP address share the rate limit, so the actual rate limit for your token will be lower than this number.',
defaultValue: 12000,
diff --git a/config-ui/src/plugins/register/gitlab/transformation.tsx b/config-ui/src/plugins/register/gitlab/transformation.tsx
index b663473f4..ee006745a 100644
--- a/config-ui/src/plugins/register/gitlab/transformation.tsx
+++ b/config-ui/src/plugins/register/gitlab/transformation.tsx
@@ -20,6 +20,7 @@ import { useState, useEffect } from 'react';
import { Tag, Intent, Switch, InputGroup } from '@blueprintjs/core';
import { ExternalLink, HelpTooltip, Divider } from '@/components';
+import { DOC_URL } from '@/release';
import * as S from './styled';
@@ -71,9 +72,7 @@ export const GitLabTransformation = ({ entities, transformation, setTransformati
<>
<p>
Use Regular Expression to define Deployments in DevLake in order to measure DORA metrics.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/GitHub#step-3---adding-transformation-rules-optional">
- Learn more
- </ExternalLink>
+ <ExternalLink link={DOC_URL.PLUGIN.GITLAB.TRANSFORMATION}>Learn more</ExternalLink>
</p>
<div style={{ marginTop: 16 }}>Convert a GitLab Pipeline as a DevLake Deployment when: </div>
<div className="text">
diff --git a/config-ui/src/plugins/register/jenkins/config.ts b/config-ui/src/plugins/register/jenkins/config.ts
index 516b4703d..dd984e3ec 100644
--- a/config-ui/src/plugins/register/jenkins/config.ts
+++ b/config-ui/src/plugins/register/jenkins/config.ts
@@ -16,6 +16,8 @@
*
*/
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -28,7 +30,7 @@ export const JenkinsConfig: PluginConfigType = {
icon: Icon,
sort: 4,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/Jenkins',
+ docLink: DOC_URL.PLUGIN.JENKINS.BASIS,
fields: [
'name',
{
@@ -42,7 +44,7 @@ export const JenkinsConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses 10,000 requests/hour for data collection for Jenkins. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/Jenkins/#fixed-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.JENKINS.RATE_LIMIT,
externalInfo: 'Jenkins does not specify a maximum value of rate limit.',
defaultValue: 10000,
},
diff --git a/config-ui/src/plugins/register/jenkins/transformation.tsx b/config-ui/src/plugins/register/jenkins/transformation.tsx
index df96fca51..9246d5b14 100644
--- a/config-ui/src/plugins/register/jenkins/transformation.tsx
+++ b/config-ui/src/plugins/register/jenkins/transformation.tsx
@@ -19,8 +19,10 @@
import { useState, useEffect } from 'react';
import { Tag, Intent, Switch, InputGroup } from '@blueprintjs/core';
-import * as S from './styled';
import { ExternalLink, HelpTooltip } from '@/components';
+import { DOC_URL } from '@/release';
+
+import * as S from './styled';
interface Props {
entities: string[];
@@ -70,9 +72,7 @@ export const JenkinsTransformation = ({ entities, transformation, setTransformat
<>
<p>
Use Regular Expression to define Deployments in DevLake in order to measure DORA metrics.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/GitHub#step-3---adding-transformation-rules-optional">
- Learn more
- </ExternalLink>
+ <ExternalLink link={DOC_URL.PLUGIN.JENKINS.TRANSFORMATION}>Learn more</ExternalLink>
</p>
<div style={{ marginTop: 16 }}>Convert a Jenkins Build as a DevLake Deployment when: </div>
<div className="text">
diff --git a/config-ui/src/plugins/register/jira/config.tsx b/config-ui/src/plugins/register/jira/config.tsx
index a93e17994..c39ea5723 100644
--- a/config-ui/src/plugins/register/jira/config.tsx
+++ b/config-ui/src/plugins/register/jira/config.tsx
@@ -16,6 +16,8 @@
*
*/
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -29,7 +31,7 @@ export const JiraConfig: PluginConfigType = {
icon: Icon,
sort: 3,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/Jira',
+ docLink: DOC_URL.PLUGIN.JIRA.BASIS,
fields: [
'name',
({ initialValues, values, errors, setValues, setErrors }: any) => (
@@ -47,7 +49,7 @@ export const JiraConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses dynamic rate limit for optimized data collection for Jira. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/Jira/#fixed-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.JIRA.RATE_LIMIT,
externalInfo:
'Jira Cloud does not specify a maximum value of rate limit. For Jira Server, please contact your admin for more information.',
defaultValue: 10000,
diff --git a/config-ui/src/plugins/register/jira/connection-fields/auth.tsx b/config-ui/src/plugins/register/jira/connection-fields/auth.tsx
index 77e81772f..52b4b14a1 100644
--- a/config-ui/src/plugins/register/jira/connection-fields/auth.tsx
+++ b/config-ui/src/plugins/register/jira/connection-fields/auth.tsx
@@ -20,6 +20,7 @@ import { useState, useEffect } from 'react';
import { FormGroup, RadioGroup, Radio, InputGroup } from '@blueprintjs/core';
import { ExternalLink, FormPassword } from '@/components';
+import { DOC_URL } from '@/release';
import * as S from './styled';
@@ -154,9 +155,7 @@ export const Auth = ({ initialValues, values, setValues, setErrors }: Props) =>
labelInfo={<S.LabelInfo>*</S.LabelInfo>}
subLabel={
<S.LabelDescription>
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/Jira#api-token">
- Learn about how to create an API Token
- </ExternalLink>
+ <ExternalLink link={DOC_URL.PLUGIN.JIRA.API_TOKEN}>Learn about how to create an API Token</ExternalLink>
</S.LabelDescription>
}
>
@@ -189,7 +188,7 @@ export const Auth = ({ initialValues, values, setValues, setErrors }: Props) =>
labelInfo={<S.LabelInfo>*</S.LabelInfo>}
subLabel={
<S.LabelDescription>
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/Jira#personal-access-token">
+ <ExternalLink link={DOC_URL.PLUGIN.JIRA.PERSONAL_ACCESS_TOKEN}>
Learn about how to create a PAT
</ExternalLink>
</S.LabelDescription>
diff --git a/config-ui/src/plugins/register/jira/transformation-fields/cross-domain.tsx b/config-ui/src/plugins/register/jira/transformation-fields/cross-domain.tsx
index 27d5c509e..31160fa7b 100644
--- a/config-ui/src/plugins/register/jira/transformation-fields/cross-domain.tsx
+++ b/config-ui/src/plugins/register/jira/transformation-fields/cross-domain.tsx
@@ -21,6 +21,7 @@ import { Radio, Icon, Collapse, Button } from '@blueprintjs/core';
import { ExternalLink } from '@/components';
import JiraIssueTipsImg from '@/images/jira-issue-tips.png';
+import { DOC_URL } from '@/release';
import { RemoteLink } from './remote-link';
import { DevPanel } from './dev-panel';
@@ -59,7 +60,7 @@ export const CrossDomain = ({ connectionId, transformation, setTransformation }:
<h2>Cross-domain</h2>
<p>
Connect `commits` and `issues` to measure metrics such as{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode">
+ <ExternalLink link={DOC_URL.METRICS.BUG_COUNT_PER_1K_LINES_OF_CODE}>
Bug Count per 1k Lines of Code
</ExternalLink>{' '}
or man hour distribution on different work types.
diff --git a/config-ui/src/plugins/register/jira/transformation.tsx b/config-ui/src/plugins/register/jira/transformation.tsx
index 8f4024774..9ff7941e0 100644
--- a/config-ui/src/plugins/register/jira/transformation.tsx
+++ b/config-ui/src/plugins/register/jira/transformation.tsx
@@ -23,6 +23,7 @@ import { uniqWith } from 'lodash';
import { PageLoading, HelpTooltip, ExternalLink, MultiSelector, Selector, Divider } from '@/components';
import { useProxyPrefix, useRefreshData } from '@/hooks';
+import { DOC_URL } from '@/release';
import { CrossDomain } from './transformation-fields';
import * as API from './api';
@@ -132,14 +133,9 @@ export const JiraTransformation = ({ entities, connectionId, transformation, set
<div style={{ padding: '8px 12px', color: '#ffffff', backgroundColor: 'rgba(0,0,0,.8)' }}>
DevLake defines three standard types of issues: FEATURE, BUG and INCIDENT. Standardize your Jira
issue types to these three types so that DevLake can calculate metrics such as{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Metrics/RequirementLeadTime">
- Requirement Lead Time
- </ExternalLink>
- , <ExternalLink link="https://devlake.apache.org/docs/Metrics/BugAge">Bug Age</ExternalLink>,
- <ExternalLink link="https://devlake.apache.org/docs/Metrics/MTTR">
- DORA - Median Time to Restore Service
- </ExternalLink>
- , etc.
+ <ExternalLink link={DOC_URL.METRICS.REQUIREMENT_LEAD_TIME}>Requirement Lead Time</ExternalLink>,{' '}
+ <ExternalLink link={DOC_URL.METRICS.BUG_AGE}>Bug Age</ExternalLink>,
+ <ExternalLink link={DOC_URL.METRICS.MTTR}>DORA - Median Time to Restore Service</ExternalLink>, etc.
</div>
}
>
diff --git a/config-ui/src/plugins/register/pagerduty/config.tsx b/config-ui/src/plugins/register/pagerduty/config.tsx
index cadaf33c6..e1d414586 100644
--- a/config-ui/src/plugins/register/pagerduty/config.tsx
+++ b/config-ui/src/plugins/register/pagerduty/config.tsx
@@ -16,6 +16,8 @@
*
*/
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -28,7 +30,7 @@ export const PagerDutyConfig: PluginConfigType = {
icon: Icon,
sort: 8,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/PagerDuty',
+ docLink: DOC_URL.PLUGIN.PAGERDUTY.BASIS,
initialValues: {
endpoint: 'https://api.pagerduty.com/',
},
@@ -47,7 +49,7 @@ export const PagerDutyConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses 10,000 requests/hour for data collection for PagerDuty. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/PagerDuty/#custom-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.PAGERDUTY.RATE_LIMIT,
externalInfo: 'PagerDuty does not specify a maximum value of rate limit.',
defaultValue: 10000,
},
diff --git a/config-ui/src/plugins/register/sonarqube/config.ts b/config-ui/src/plugins/register/sonarqube/config.ts
index 10a0f04cc..838dc62eb 100644
--- a/config-ui/src/plugins/register/sonarqube/config.ts
+++ b/config-ui/src/plugins/register/sonarqube/config.ts
@@ -16,6 +16,8 @@
*
*/
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -28,7 +30,7 @@ export const SonarQubeConfig: PluginConfigType = {
icon: Icon,
sort: 7,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/SonarQube',
+ docLink: DOC_URL.PLUGIN.SONARQUBE.BASIS,
fields: [
'name',
'endpoint',
@@ -38,7 +40,7 @@ export const SonarQubeConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses 10,000 requests/hour for data collection for SonarQube. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/SonarQube#custom-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.SONARQUBE.RATE_LIMIT,
externalInfo: 'SonarQube does not specify a maximum value of rate limit.',
defaultValue: 10000,
},
diff --git a/config-ui/src/plugins/register/tapd/config.tsx b/config-ui/src/plugins/register/tapd/config.tsx
index 03fe1fc92..0625f6aab 100644
--- a/config-ui/src/plugins/register/tapd/config.tsx
+++ b/config-ui/src/plugins/register/tapd/config.tsx
@@ -17,6 +17,7 @@
*/
import { ExternalLink } from '@/components';
+import { DOC_URL } from '@/release';
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -31,7 +32,7 @@ export const TAPDConfig: PluginConfigType = {
icon: Icon,
sort: 9,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/Tapd',
+ docLink: DOC_URL.PLUGIN.TAPD.BASIS,
initialValues: {
endpoint: 'https://api.tapd.cn',
},
@@ -47,10 +48,7 @@ export const TAPDConfig: PluginConfigType = {
label: 'API Account',
subLabel: (
<span>
- Please follow the instruction{' '}
- <ExternalLink link="https://devlake.apache.org/docs/UserManuals/ConfigUI/Tapd/#api-account--api-token">
- here
- </ExternalLink>{' '}
+ Please follow the instruction <ExternalLink link={DOC_URL.PLUGIN.TAPD.USERNAMEPASSWORD}>here</ExternalLink>{' '}
to find your API account information.
</span>
),
@@ -66,7 +64,7 @@ export const TAPDConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses 3,000 requests/hour for data collection for TAPD. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/Tapd#fixed-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.TAPD.RATE_LIMIT,
externalInfo: 'The maximum rate limit of TAPD is 3,600 requests/hour.',
defaultValue: 3000,
},
diff --git a/config-ui/src/plugins/register/teambition/config.tsx b/config-ui/src/plugins/register/teambition/config.tsx
index 0f11d2c59..bd6284c9d 100644
--- a/config-ui/src/plugins/register/teambition/config.tsx
+++ b/config-ui/src/plugins/register/teambition/config.tsx
@@ -16,6 +16,8 @@
*
*/
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -30,7 +32,7 @@ export const TeambitionConfig: PluginConfigType = {
icon: Icon,
sort: 100,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/Teambition',
+ docLink: DOC_URL.PLUGIN.TEAMBITION.BASIS,
initialValues: {
endpoint: 'https://open.teambition.com/api/',
tenantType: 'organization',
@@ -78,10 +80,10 @@ export const TeambitionConfig: PluginConfigType = {
{
key: 'rateLimitPerHour',
subLabel:
- 'By default, DevLake uses 3,000 requests/hour for data collection for TAPD. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/Tapd#fixed-rate-limit-optional',
- externalInfo: 'The maximum rate limit of TAPD is 3,600 requests/hour.',
- defaultValue: 3000,
+ 'By default, DevLake uses dynamic rate limit for optimized data collection for Teambition. But you can adjust the collection speed by entering a fixed value. Please note: the rate limit setting applies to all tokens you have entered above.',
+ learnMore: DOC_URL.PLUGIN.TEAMBITION.RATE_LIMIT,
+ externalInfo: 'Teambition does not specify a maximum value of rate limit.',
+ defaultValue: 5000,
},
],
},
diff --git a/config-ui/src/plugins/register/webook/connection/index.tsx b/config-ui/src/plugins/register/webook/connection/index.tsx
index 6ec521c8a..5d494a7c3 100644
--- a/config-ui/src/plugins/register/webook/connection/index.tsx
+++ b/config-ui/src/plugins/register/webook/connection/index.tsx
@@ -21,6 +21,7 @@ import { ButtonGroup, Button, Intent } from '@blueprintjs/core';
import { Table, ColumnType, ExternalLink, IconButton } from '@/components';
import { useConnections } from '@/hooks';
+import { DOC_URL } from '@/release';
import type { WebhookItemType } from '../types';
import { WebhookCreateDialog } from '../create-dialog';
@@ -91,7 +92,7 @@ export const WebHookConnection = ({ filterIds, onCreateAfter, onDeleteAfter }: P
text: (
<>
There is no Webhook yet. Please add a new Webhook.{' '}
- <ExternalLink link="https://devlake.apache.org/docs/Configuration/webhook">Learn more</ExternalLink>
+ <ExternalLink link={DOC_URL.PLUGIN.WEBHOOK.BASIS}>Learn more</ExternalLink>
</>
),
btnText: 'Add a Webhook',
diff --git a/config-ui/src/plugins/register/zentao/config.tsx b/config-ui/src/plugins/register/zentao/config.tsx
index c668ff2a8..2e4756967 100644
--- a/config-ui/src/plugins/register/zentao/config.tsx
+++ b/config-ui/src/plugins/register/zentao/config.tsx
@@ -16,6 +16,8 @@
*
*/
+import { DOC_URL } from '@/release';
+
import type { PluginConfigType } from '../../types';
import { PluginType } from '../../types';
@@ -29,7 +31,7 @@ export const ZenTaoConfig: PluginConfigType = {
icon: Icon,
sort: 10,
connection: {
- docLink: 'https://devlake.apache.org/docs/Configuration/Zentao',
+ docLink: DOC_URL.PLUGIN.ZENTAO.BASIS,
fields: [
'name',
{
@@ -51,7 +53,7 @@ export const ZenTaoConfig: PluginConfigType = {
key: 'rateLimitPerHour',
subLabel:
'By default, DevLake uses 10,000 requests/hour for data collection for ZenTao. But you can adjust the collection speed by setting up your desirable rate limit.',
- learnMore: 'https://devlake.apache.org/docs/Configuration/Zentao/#custom-rate-limit-optional',
+ learnMore: DOC_URL.PLUGIN.ZENTAO.RATE_LIMIT,
externalInfo: 'ZenTao does not specify a maximum value of rate limit.',
defaultValue: 10000,
},
diff --git a/config-ui/src/release/index.ts b/config-ui/src/release/index.ts
new file mode 100644
index 000000000..02417c01e
--- /dev/null
+++ b/config-ui/src/release/index.ts
@@ -0,0 +1,19 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+export { default as DOC_URL } from './v0.18';
diff --git a/config-ui/src/release/stable.ts b/config-ui/src/release/stable.ts
new file mode 100644
index 000000000..911e9a78a
--- /dev/null
+++ b/config-ui/src/release/stable.ts
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+const URLS = {
+ TUTORIAL: 'https://devlake.apache.org/docs/Configuration/Tutorial',
+ ADVANCED_MODE: {
+ EXAMPLES: 'https://devlake.apache.org/docs/Configuration/AdvancedMode/#examples',
+ },
+ DORA: 'https://devlake.apache.org/docs/DORA/',
+ PLUGIN: {
+ AZUREDEVOPS: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/AzureDevOps',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/AzureDevOps/#custom-rate-limit-optional',
+ AUTH_TOKEN: 'https://devlake.apache.org/docs/Configuration/AzureDevOps#auth-tokens',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/AzureDevOps#step-3---adding-transformation-rules-optional',
+ },
+ BAMBOO: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/Bamboo',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/Bamboo/#custom-rate-limit-optional',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/Bamboo#step-3---adding-transformation-rules-optional',
+ },
+ BITBUCKET: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/BitBucket',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/BitBucket#fixed-rate-limit-optional',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/BitBucket#step-3---adding-transformation-rules-optional',
+ },
+ GITHUB: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/GitHub',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/GitHub#fixed-rate-limit-optional',
+ AUTH_TOKEN: 'https://devlake.apache.org/docs/Configuration/GitHub#auth-tokens',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/GitHub#step-3---adding-transformation-rules-optional',
+ },
+ GITLAB: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/GitLab',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/GitLab#fixed-rate-limit-optional',
+ AUTH_TOKEN: 'https://devlake.apache.org/docs/Configuration/GitLab#auth-tokens',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/GitLab#step-3---adding-transformation-rules-optional',
+ },
+ JENKINS: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/Jenkins',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/Jenkins#fixed-rate-limit-optional',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/Jenkins#step-3---adding-transformation-rules-optional',
+ },
+ JIRA: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/Jira',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/Jira#fixed-rate-limit-optional',
+ API_TOKEN: 'https://devlake.apache.org/docs/Configuration/Jira#api-token',
+ PERSONAL_ACCESS_TOKEN: 'https://devlake.apache.org/docs/Configuration/Jira#personal-access-token',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/Jira#step-3---adding-transformation-rules-optional',
+ },
+ PAGERDUTY: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/PagerDuty',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/PagerDuty/#custom-rate-limit-optional',
+ },
+ SONARQUBE: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/SonarQube',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/SonarQube/#custom-rate-limit-optional',
+ },
+ TAPD: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/Tapd',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/Tapd#fixed-rate-limit-optional',
+ USERNAMEPASSWORD: 'https://devlake.apache.org/docs/Configuration/Tapd/#usernamepassword',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/Configuration/Tapd#step-3---adding-transformation-rules-optional',
+ },
+ TEAMBITION: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/Teambition',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/Teambition#ralte-limit-optional',
+ },
+ WEBHOOK: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/webhook',
+ },
+ ZENTAO: {
+ BASIS: 'https://devlake.apache.org/docs/Configuration/Teambition',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/Configuration/Teambition#ralte-limit-optional',
+ },
+ REFDIFF: 'https://devlake.apache.org/docs/Plugins/refdiff',
+ },
+ METRICS: {
+ BUG_AGE: 'https://devlake.apache.org/docs/Metrics/BugAge',
+ MTTR: 'https://devlake.apache.org/docs/Metrics/MTTR',
+ BUG_COUNT_PER_1K_LINES_OF_CODE: 'https://devlake.apache.org/docs/Metrics/BugCountPer1kLinesOfCode',
+ REQUIREMENT_LEAD_TIME: 'https://devlake.apache.org/docs/Metrics/RequirementLeadTime',
+ },
+ DATA_MODELS: {
+ DEVLAKE_DOMAIN_LAYER_SCHEMA: {
+ PULL_REQUEST: 'https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema/#pull-request',
+ },
+ },
+};
+
+export default URLS;
diff --git a/config-ui/src/release/v0.18.ts b/config-ui/src/release/v0.18.ts
new file mode 100644
index 000000000..b6b584890
--- /dev/null
+++ b/config-ui/src/release/v0.18.ts
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+const URLS = {
+ TUTORIAL: 'https://devlake.apache.org/docs/v0.18/Configuration/Tutorial',
+ ADVANCED_MODE: {
+ EXAMPLES: 'https://devlake.apache.org/docs/v0.18/Configuration/AdvancedMode/#examples',
+ },
+ DORA: 'https://devlake.apache.org/docs/v0.18/DORA/',
+ PLUGIN: {
+ AZUREDEVOPS: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/AzureDevOps',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/AzureDevOps/#custom-rate-limit-optional',
+ AUTH_TOKEN: 'https://devlake.apache.org/docs/v0.18/Configuration/AzureDevOps#auth-tokens',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/AzureDevOps#step-3---adding-transformation-rules-optional',
+ },
+ BAMBOO: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/Bamboo',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/Bamboo/#custom-rate-limit-optional',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/Bamboo#step-3---adding-transformation-rules-optional',
+ },
+ BITBUCKET: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/BitBucket',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/BitBucket#fixed-rate-limit-optional',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/BitBucket#step-3---adding-transformation-rules-optional',
+ },
+ GITHUB: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/GitHub',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/GitHub#fixed-rate-limit-optional',
+ AUTH_TOKEN: 'https://devlake.apache.org/docs/v0.18/Configuration/GitHub#auth-tokens',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/GitHub#step-3---adding-transformation-rules-optional',
+ },
+ GITLAB: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/GitLab',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/GitLab#fixed-rate-limit-optional',
+ AUTH_TOKEN: 'https://devlake.apache.org/docs/v0.18/Configuration/GitLab#auth-tokens',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/GitLab#step-3---adding-transformation-rules-optional',
+ },
+ JENKINS: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/Jenkins',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/Jenkins#fixed-rate-limit-optional',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/Jenkins#step-3---adding-transformation-rules-optional',
+ },
+ JIRA: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/Jira',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/Jira#fixed-rate-limit-optional',
+ API_TOKEN: 'https://devlake.apache.org/docs/v0.18/Configuration/Jira#api-token',
+ PERSONAL_ACCESS_TOKEN: 'https://devlake.apache.org/docs/v0.18/Configuration/Jira#personal-access-token',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/Jira#step-3---adding-transformation-rules-optional',
+ },
+ PAGERDUTY: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/PagerDuty',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/PagerDuty/#custom-rate-limit-optional',
+ },
+ SONARQUBE: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/SonarQube',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/SonarQube/#custom-rate-limit-optional',
+ },
+ TAPD: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/Tapd',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/Tapd#fixed-rate-limit-optional',
+ USERNAMEPASSWORD: 'https://devlake.apache.org/docs/v0.18/Configuration/Tapd/#usernamepassword',
+ TRANSFORMATION:
+ 'https://devlake.apache.org/docs/v0.18/Configuration/Tapd#step-3---adding-transformation-rules-optional',
+ },
+ TEAMBITION: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/Teambition',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/Teambition#ralte-limit-optional',
+ },
+ WEBHOOK: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/webhook',
+ },
+ ZENTAO: {
+ BASIS: 'https://devlake.apache.org/docs/v0.18/Configuration/Teambition',
+ RATE_LIMIT: 'https://devlake.apache.org/docs/v0.18/Configuration/Teambition#ralte-limit-optional',
+ },
+ REFDIFF: 'https://devlake.apache.org/docs/v0.18/Plugins/refdiff',
+ },
+ METRICS: {
+ BUG_AGE: 'https://devlake.apache.org/docs/v0.18/Metrics/BugAge',
+ MTTR: 'https://devlake.apache.org/docs/v0.18/Metrics/MTTR',
+ BUG_COUNT_PER_1K_LINES_OF_CODE: 'https://devlake.apache.org/docs/v0.18/Metrics/BugCountPer1kLinesOfCode',
+ REQUIREMENT_LEAD_TIME: 'https://devlake.apache.org/docs/v0.18/Metrics/RequirementLeadTime',
+ },
+ DATA_MODELS: {
+ DEVLAKE_DOMAIN_LAYER_SCHEMA: {
+ PULL_REQUEST: 'https://devlake.apache.org/docs/v0.18/DataModels/DevLakeDomainLayerSchema/#pull-request',
+ },
+ },
+};
+
+export default URLS;