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

@@ -66,7 +66,7 @@ const BreadcrumbNav = styled.nav`
display: flex;
align-items: center;
margin: 1rem 1rem !important;
width: 100%;
/* move slash to end */
@@ -182,10 +182,22 @@ const Breadcrumb: FC<Props> = ({
prefixButtons = <PrefixButton>{preButtons}</PrefixButton>;
}
const extProps = {
baseUrl,
revision: revision ? encodeURIComponent(revision) : "",
branch: branch ? branch : defaultBranch,
path,
sources,
repository
};
return (
<>
<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}
<ul>
<li>
@@ -207,18 +219,7 @@ const Breadcrumb: FC<Props> = ({
</BreadcrumbNav>
{binder.hasExtension("repos.sources.actionbar") && (
<ActionBar>
<ExtensionPoint
name="repos.sources.actionbar"
props={{
baseUrl,
revision,
branch: branch ? branch : defaultBranch,
path,
sources,
repository
}}
renderAll={true}
/>
<ExtensionPoint name="repos.sources.actionbar" props={extProps} renderAll={true} />
</ActionBar>
)}
</div>

View File

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

View File

@@ -64,7 +64,15 @@ const SourceExtensions: FC<Props> = ({ repository, baseUrl }) => {
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)) {
return <Notification type="warning">{t("sources.extension.notBound")}</Notification>;
}