diff --git a/app/helpers/github-link.js b/app/helpers/github-link.js index c23247d6..afc0786b 100644 --- a/app/helpers/github-link.js +++ b/app/helpers/github-link.js @@ -2,10 +2,17 @@ import { helper } from '@ember/component/helper'; import githubMap, { mainDir } from '../utils/github-map'; export function githubLink([project, version, file, line], { isEdit = false }) { + const isEmberProject = project === 'ember'; + const majorVersion = parseInt(version?.split('.')[0].replace('v', ''), 10); + + // Check if the project is 'ember' and adjust the tag only if the major version is >= 6 to match the Git tags + const adjustedVersion = + isEmberProject && majorVersion >= 6 ? `${version}-ember-source` : version; + if (isEdit) { return `https://github.com/${githubMap[project]}/edit/release${mainDir( project, - version + adjustedVersion )}${file}#L${line}`; } @@ -22,9 +29,11 @@ export function githubLink([project, version, file, line], { isEdit = false }) { // 'https://github.com/emberjs/data/tree/v4.10.0/packages/packages/store/addon/-private/record-arrays/identifier-array.ts#L118' const fixedFile = file?.replace('../packages/', '../'); - return `https://github.com/${githubMap[project]}/tree/v${version}${mainDir( + return `https://github.com/${ + githubMap[project] + }/tree/v${adjustedVersion}${mainDir( project, - version + adjustedVersion )}${fixedFile}#L${line}`; } diff --git a/tests/unit/helpers/github-link-test.js b/tests/unit/helpers/github-link-test.js index f8ea0352..e6b0c38f 100644 --- a/tests/unit/helpers/github-link-test.js +++ b/tests/unit/helpers/github-link-test.js @@ -13,6 +13,17 @@ module('Unit | Helper | github link', function () { ); }); + test('should append "ember-source" to the version for git tags v6 and above', function (assert) { + let result = githubLink( + ['ember', '6.0.0', 'ember-glimmer/lib/component.js', '35'], + {} + ); + assert.equal( + result, + 'https://github.com/emberjs/ember.js/tree/v6.0.0-ember-source/ember-glimmer/lib/component.js#L35' + ); + }); + test('should render a github link for ember-data from file info', function (assert) { let result = githubLink( ['ember-data', '2.10.0', 'addon/-private/adapters/errors.js', '10'],