Encode revision for extension point to fix breaking change (#1585)

Encode revision on extension points to fix a breaking change which slipped through with release 2.14.0.
This commit is contained in:
Eduard Heimbuch
2021-03-16 08:39:31 +01:00
committed by GitHub
parent 2ca4aa08de
commit 89e938c6d7
4 changed files with 27 additions and 16 deletions

View File

@@ -0,0 +1,2 @@
- type: fixed
description: Encode revision on extension points to fix breaking change ([#1585](https://github.com/scm-manager/scm-manager/pull/1585))

View File

@@ -182,10 +182,22 @@ const Breadcrumb: FC<Props> = ({
prefixButtons = <PrefixButton>{preButtons}</PrefixButton>; prefixButtons = <PrefixButton>{preButtons}</PrefixButton>;
} }
const extProps = {
baseUrl,
revision: revision ? encodeURIComponent(revision) : "",
branch: branch ? branch : defaultBranch,
path,
sources,
repository
};
return ( return (
<> <>
<div className="is-flex is-align-items-center"> <div className="is-flex is-align-items-center">
<BreadcrumbNav className={classNames("breadcrumb", "sources-breadcrumb", "ml-1", "mb-0")} aria-label="breadcrumbs"> <BreadcrumbNav
className={classNames("breadcrumb", "sources-breadcrumb", "ml-1", "mb-0")}
aria-label="breadcrumbs"
>
{prefixButtons} {prefixButtons}
<ul> <ul>
<li> <li>
@@ -207,18 +219,7 @@ const Breadcrumb: FC<Props> = ({
</BreadcrumbNav> </BreadcrumbNav>
{binder.hasExtension("repos.sources.actionbar") && ( {binder.hasExtension("repos.sources.actionbar") && (
<ActionBar> <ActionBar>
<ExtensionPoint <ExtensionPoint name="repos.sources.actionbar" props={extProps} renderAll={true} />
name="repos.sources.actionbar"
props={{
baseUrl,
revision,
branch: branch ? branch : defaultBranch,
path,
sources,
repository
}}
renderAll={true}
/>
</ActionBar> </ActionBar>
)} )}
</div> </div>

View File

@@ -141,7 +141,7 @@ class Content extends React.Component<Props, State> {
props={{ props={{
repository, repository,
file, file,
revision, revision: revision ? encodeURIComponent(revision) : "",
handleExtensionError: this.handleExtensionError handleExtensionError: this.handleExtensionError
}} }}
renderAll={true} renderAll={true}

View File

@@ -64,7 +64,15 @@ const SourceExtensions: FC<Props> = ({ repository, baseUrl }) => {
return <Loading />; return <Loading />;
} }
const extprops = { extension, repository, revision, path, sources, baseUrl }; const extprops = {
extension,
repository,
revision: revision ? encodeURIComponent(revision) : "",
path,
sources,
baseUrl
};
if (!binder.hasExtension(extensionPointName, extprops)) { if (!binder.hasExtension(extensionPointName, extprops)) {
return <Notification type="warning">{t("sources.extension.notBound")}</Notification>; return <Notification type="warning">{t("sources.extension.notBound")}</Notification>;
} }