Skip to content

Commit

Permalink
Improve Open-with URL encoding (go-gitea#33666) (go-gitea#33680)
Browse files Browse the repository at this point in the history
Backport go-gitea#33666 by wxiaoguang

Fix go-gitea#33665

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
  • Loading branch information
GiteaBot and wxiaoguang authored Feb 21, 2025
1 parent aeeccc9 commit ae595aa
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
7 changes: 7 additions & 0 deletions web_src/js/features/repo-common.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import {substituteRepoOpenWithUrl} from './repo-common.ts';

test('substituteRepoOpenWithUrl', () => {
// For example: "x-github-client://openRepo/https://github.com/go-gitea/gitea"
expect(substituteRepoOpenWithUrl('proto://a/{url}', 'https://gitea')).toEqual('proto://a/https://gitea');
expect(substituteRepoOpenWithUrl('proto://a?link={url}', 'https://gitea')).toEqual('proto://a?link=https%3A%2F%2Fgitea');
});
10 changes: 9 additions & 1 deletion web_src/js/features/repo-common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,14 @@ export function initRepoActivityTopAuthorsChart() {
}
}

export function substituteRepoOpenWithUrl(tmpl: string, url: string): string {
const pos = tmpl.indexOf('{url}');
if (pos === -1) return tmpl;
const posQuestionMark = tmpl.indexOf('?');
const needEncode = posQuestionMark >= 0 && posQuestionMark < pos;
return tmpl.replace('{url}', needEncode ? encodeURIComponent(url) : url);
}

function initCloneSchemeUrlSelection(parent: Element) {
const elCloneUrlInput = parent.querySelector<HTMLInputElement>('.repo-clone-url');

Expand Down Expand Up @@ -70,7 +78,7 @@ function initCloneSchemeUrlSelection(parent: Element) {
}
}
for (const el of parent.querySelectorAll<HTMLAnchorElement>('.js-clone-url-editor')) {
el.href = el.getAttribute('data-href-template').replace('{url}', encodeURIComponent(link));
el.href = substituteRepoOpenWithUrl(el.getAttribute('data-href-template'), link);
}
};

Expand Down

0 comments on commit ae595aa

Please sign in to comment.