import { rtrimSlashes } from '@joplin/lib/path-utils'; function removeBranch(commit: string): string { if (!commit) return ''; if (commit.indexOf(':') >= 0) { const s = commit.split(':'); return s[1]; } return commit; } export default function(manifest: any, previousManifest: any = null): string { // "repository_url": "https://github.com/JackGruber/joplin-plugin-copytags", // "_publish_commit": "master:b52b01f6d3b709a811ac214253636a7c207c87dd", // https://github.com/JackGruber/joplin-plugin-copytags/compare/9ec4a476a54440ac43422c34e179dcabfca1e5a0..b52b01f6d3b709a811ac214253636a7c207c87dd const repoUrl: string = manifest.repository_url; const commit: string = removeBranch(manifest._publish_commit); const previousCommit: string = previousManifest ? removeBranch(previousManifest._publish_commit) : ''; if (!repoUrl) return null; if (!commit && !previousCommit) return repoUrl; if (commit && !previousCommit) return `${rtrimSlashes(repoUrl)}/tree/${commit}`; return `${rtrimSlashes(repoUrl)}/compare/${previousCommit}..${commit}`; }