Skip to content

Commit

Permalink
Add downgrade logic for branch in DocLinkService (#3483)
Browse files Browse the repository at this point in the history
Add downgrade logic for branch in DocLinkService

Signed-off-by: suzhou <[email protected]>
(cherry picked from commit e37ac4c)
Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>

# Conflicts:
#	CHANGELOG.md
  • Loading branch information
github-actions[bot] committed Mar 23, 2023
1 parent a7fd42c commit 4e5d8c7
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 4 deletions.
12 changes: 12 additions & 0 deletions src/core/public/doc_links/doc_links_service.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,4 +64,16 @@ describe('DocLinksService#start()', () => {
'https://opensearch.org/docs/1.1/dashboards/index/'
);
});

it('templates the doc links with the build version from injectedMetadata', () => {
const injectedMetadata = injectedMetadataServiceMock.createStartContract();
injectedMetadata.getOpenSearchDashboardsBranch.mockReturnValue('test-branch');
injectedMetadata.getOpenSearchDashboardsVersion.mockReturnValue('1.1.2');
const service = new DocLinksService();
const api = service.start({ injectedMetadata });
expect(api.DOC_LINK_VERSION).toEqual('1.1');
expect(api.links.opensearchDashboards.introduction).toEqual(
'https://opensearch.org/docs/1.1/dashboards/index/'
);
});
});
23 changes: 19 additions & 4 deletions src/core/public/doc_links/doc_links_service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
*/

import { deepFreeze } from '@osd/std';
import { parse } from 'semver';
import { InjectedMetadataSetup } from '../injected_metadata';

interface StartDeps {
Expand All @@ -39,10 +40,24 @@ interface StartDeps {
export class DocLinksService {
public setup() {}
public start({ injectedMetadata }: StartDeps): DocLinksStart {
const DOC_LINK_VERSION =
injectedMetadata.getOpenSearchDashboardsBranch() === 'main'
? 'latest'
: injectedMetadata.getOpenSearchDashboardsBranch();
const buildVersion = injectedMetadata.getOpenSearchDashboardsVersion();
const pkgBranch = injectedMetadata.getOpenSearchDashboardsBranch();
/**
* OpenSearch server uses the `branch` property from `package.json` to
* build links to the documentation. If set to `main`, it would use `/latest`
* and if not, it would use the `version` to construct URLs.
*/
let branch = pkgBranch;
if (pkgBranch === 'main') {
branch = 'latest';
} else {
const validDocPathsPattern = /^\d+\.\d+$/;
const parsedBuildVersion = parse(buildVersion);
if (!validDocPathsPattern.test(pkgBranch) && parsedBuildVersion) {
branch = `${parsedBuildVersion.major}.${parsedBuildVersion.minor}`;
}
}
const DOC_LINK_VERSION = branch;
const OPENSEARCH_WEBSITE_URL = 'https://opensearch.org/';
const OPENSEARCH_WEBSITE_DOCS = `${OPENSEARCH_WEBSITE_URL}docs/${DOC_LINK_VERSION}`;
const OPENSEARCH_VERSIONED_DOCS = `${OPENSEARCH_WEBSITE_DOCS}/opensearch/`;
Expand Down

0 comments on commit 4e5d8c7

Please sign in to comment.