Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(segment): add umbraco segment to display modern or legacy version #4309

Merged
merged 37 commits into from
Oct 28, 2023

Conversation

warrenbuckley
Copy link
Contributor

@warrenbuckley warrenbuckley commented Oct 3, 2023

Prerequisites

  • I have read and understood the contributing guide.
  • The commit message follows the conventional commits guidelines.
  • Tests for the changes have been added (for bug fixes / features).
  • Docs have been added/updated (for bug fixes / features).

Example

image

Example Segment configuration

{
  "background": "#d886f1",
  "foreground": "#ffffff",
  "style": "diamond",
  "leading_diamond": "\ue0b6",
  "trailing_diamond": "\ue0b4",
  "type": "umbraco",
  "template": "\udb81\udd49 {{ .Version }}",
  "background_templates": [
    "{{ if (.Modern) }}#3544B1{{ end }}",
    "{{ if not (.Modern) }}#F79C37{{ end }}"
  ]
},

Logic

The Umbraco segment is shown when

  • The current folder contains the folder named umbraco
  • Modern Umbraco (.NET Core)
    • Check to see if current folder contains one or more .csproj files
    • Open .csproj XML files and check to see if Umbraco is installed as a PackageReference
    • Read the installed version
  • Legacy Umbraco (.NET Framework)
    • Check to see if the current folder contains a web.config
    • Open the XML and look for AppSettings keys
    • If umbraco is installed it has a setting called umbraco.core.configurationstatus
    • Read the value inside this AppSetting to get its version

Sample files

MyProject.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">
    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
        <PackageReference Include="uMarketingSuite" Version="1.23.0" />
        <PackageReference Include="Umbraco.TheStarterKit" Version="11.0.0" />
        <PackageReference Include="Umbraco.Cms" Version="12.1.2" />
    </ItemGroup>

    <ItemGroup>
        <!-- Opt-in to app-local ICU to ensure consistent globalization APIs across different platforms -->
        <PackageReference Include="Microsoft.ICU.ICU4C.Runtime" Version="68.2.0.9"/>
        <RuntimeHostConfigurationOption Include="System.Globalization.AppLocalIcu" Value="68.2.0.9" Condition="$(RuntimeIdentifier.StartsWith('linux')) or $(RuntimeIdentifier.StartsWith('win')) or ('$(RuntimeIdentifier)' == '' and !$([MSBuild]::IsOSPlatform('osx')))"/>
    </ItemGroup>

    <ItemGroup>
      <ProjectReference Include="..\uMarketingSuite.StarterKit\uMarketingSuite.StarterKit.csproj" />
    </ItemGroup>

    <PropertyGroup>
        <!-- Razor files are needed for the backoffice to work correctly -->
        <CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>
    </PropertyGroup>

    <PropertyGroup>
        <!-- Remove RazorCompileOnBuild and RazorCompileOnPublish when not using ModelsMode InMemoryAuto -->
        <RazorCompileOnBuild>false</RazorCompileOnBuild>
        <RazorCompileOnPublish>false</RazorCompileOnPublish>
    </PropertyGroup>

</Project>

web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <!--
        Define the Web.config template, which is used when creating the initial Web.config,
        and then transforms from web.Template.[Debug|Release].config are applied.
        Documentation for Web.config at: https://our.umbraco.com/documentation/Reference/Config/webconfig/
    -->

    <configSections>
        <section name="clientDependency" type="ClientDependency.Core.Config.ClientDependencySection, ClientDependency.Core" requirePermission="false"/>

        <sectionGroup name="umbracoConfiguration">
            <section name="settings" type="Umbraco.Core.Configuration.UmbracoSettings.UmbracoSettingsSection, Umbraco.Core" requirePermission="false"/>
            <section name="HealthChecks" type="Umbraco.Core.Configuration.HealthChecks.HealthChecksSection, Umbraco.Core" requirePermission="false"/>
        </sectionGroup>

        <sectionGroup name="imageProcessor">
            <section name="security" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageSecuritySection, ImageProcessor.Web"/>
            <section name="processing" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageProcessingSection, ImageProcessor.Web"/>
            <section name="caching" requirePermission="false" type="ImageProcessor.Web.Configuration.ImageCacheSection, ImageProcessor.Web"/>
        </sectionGroup>
    </configSections>

    <umbracoConfiguration>
        <settings configSource="config\umbracoSettings.config"/>
        <HealthChecks configSource="config\HealthChecks.config"/>
    </umbracoConfiguration>

    <clientDependency configSource="config\ClientDependency.config"/>

    <appSettings>
        <add key="Umbraco.Core.ConfigurationStatus" value="8.18.9"/>
        <add key="Umbraco.Core.ReservedUrls" value=""/>
        <add key="Umbraco.Core.ReservedPaths" value=""/>
        <add key="Umbraco.Core.Path" value="~/umbraco"/>
        <add key="Umbraco.Core.HideTopLevelNodeFromPath" value="true"/>
        <add key="Umbraco.Core.TimeOutInMinutes" value="20"/>
        <add key="Umbraco.Core.DefaultUILanguage" value="en-US"/>
        <add key="Umbraco.Core.UseHttps" value="false"/>
        <add key="Umbraco.Core.AllowContentDashboardAccessToAllUsers" value="true"/>
        <add key="Umbraco.Core.ContentDashboardUrl-Allowlist" value=""/>
        <add key="Umbraco.Core.HelpPage-Allowlist" value=""/>

        <add key="ValidationSettings:UnobtrusiveValidationMode" value="None"/>
        <add key="webpages:Enabled" value="false"/>
        <add key="enableSimpleMembership" value="false"/>
        <add key="autoFormsAuthentication" value="false"/>
        <add key="dataAnnotations:dataTypeAttribute:disableRegEx" value="false"/>

        <add key="owin:appStartup" value="UmbracoDefaultOwinStartup"/>

        <add key="Umbraco.ModelsBuilder.Enable" value="true"/>
        <add key="Umbraco.ModelsBuilder.ModelsMode" value="PureLive"/>
        <add key="Umbraco.Web.PublishedCache.NuCache.Serializer" value="MsgPack"/>
        <add key="Umbraco.Web.SanitizeTinyMce" value="true"/>
    </appSettings>

    <!--
        Important: if you're upgrading Umbraco, do not clear the connectionString/providerName during your Web.config merge.
    -->
    <connectionStrings>
        <remove name="umbracoDbDSN"/>
        <add name="umbracoDbDSN" connectionString="" providerName=""/>
    </connectionStrings>

    <system.data>
        <DbProviderFactories>
            <remove invariant="System.Data.SqlServerCe.4.0"/>
            <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0"
                description=".NET Framework Data Provider for Microsoft SQL Server Compact"
                type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe"/>
        </DbProviderFactories>
    </system.data>

    <system.net>
        <mailSettings>
            <!--
                If you need Umbraco to send out system mails (like reset password and invite user),
                you must configure your SMTP settings here - for example:
            -->
            <!--
            <smtp from="[email protected]" deliveryMethod="Network">
                <network host="localhost" port="25" enableSsl="false" userName="" password="" />
            </smtp>
            -->
        </mailSettings>
    </system.net>

    <system.web>
        <customErrors mode="RemoteOnly"/>

        <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>

        <httpRuntime requestValidationMode="2.0" enableVersionHeader="false" targetFramework="4.7.2" maxRequestLength="51200" fcnMode="Single"/>

        <httpModules>
            <add name="ScriptModule"
                type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="UmbracoModule" type="Umbraco.Web.UmbracoModule,Umbraco.Web"/>
            <add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core"/>
            <add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web"/>
        </httpModules>

        <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx"
                type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
                validate="false"/>
            <add verb="*" path="*_AppService.axd"
                type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
                validate="false"/>
            <add verb="GET,HEAD" path="ScriptResource.axd"
                type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
                validate="false"/>
            <add verb="*" path="DependencyHandler.axd" type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core "/>
        </httpHandlers>

        <compilation defaultLanguage="c#" debug="false" batch="true" targetFramework="4.7.2" numRecompilesBeforeAppRestart="50"/>

        <authentication mode="Forms">
            <forms name="yourAuthCookie" loginUrl="login.aspx" protection="All" path="/"/>
        </authentication>

        <authorization>
            <allow users="?"/>
        </authorization>

        <!-- Membership Provider -->
        <membership defaultProvider="UmbracoMembershipProvider" userIsOnlineTimeWindow="15">
            <providers>
                <clear/>
                <add name="UmbracoMembershipProvider" type="Umbraco.Web.Security.Providers.MembersMembershipProvider, Umbraco.Web"
                    minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="10" useLegacyEncoding="false" enablePasswordRetrieval="false"
                    enablePasswordReset="false" requiresQuestionAndAnswer="false" defaultMemberTypeAlias="Member" passwordFormat="Hashed"
                    allowManuallyChangingPassword="false"/>
                <add name="UsersMembershipProvider" type="Umbraco.Web.Security.Providers.UsersMembershipProvider, Umbraco.Web"/>
            </providers>
        </membership>

        <!-- Role Provider -->
        <roleManager enabled="true" defaultProvider="UmbracoRoleProvider">
            <providers>
                <clear/>
                <add name="UmbracoRoleProvider" type="Umbraco.Web.Security.Providers.MembersRoleProvider"/>
            </providers>
        </roleManager>

    </system.web>

    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>

        <modules runAllManagedModulesForAllRequests="true">
            <remove name="WebDAVModule"/>
            <remove name="UmbracoModule"/>
            <remove name="ScriptModule"/>
            <remove name="ClientDependencyModule"/>
            <remove name="FormsAuthentication"/>
            <remove name="ImageProcessorModule"/>

            <add name="UmbracoModule" type="Umbraco.Web.UmbracoModule,Umbraco.Web"/>
            <add name="ScriptModule" preCondition="managedHandler"
                type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ClientDependencyModule" type="ClientDependency.Core.Module.ClientDependencyModule, ClientDependency.Core"/>
            <!-- FormsAuthentication is needed for login/membership to work on homepage (as per http://stackoverflow.com/questions/218057/httpcontext-current-session-is-null-when-routing-requests) -->
            <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
            <add name="ImageProcessorModule" type="ImageProcessor.Web.HttpModules.ImageProcessingModule, ImageProcessor.Web"/>
        </modules>

        <handlers accessPolicy="Read, Write, Script, Execute">
            <remove name="WebServiceHandlerFactory-Integrated"/>
            <remove name="ScriptHandlerFactory"/>
            <remove name="ScriptHandlerFactoryAppServices"/>
            <remove name="ScriptResource"/>
            <remove name="ClientDependency"/>
            <remove name="MiniProfiler"/>
            <remove name="ExtensionlessUrlHandler-Integrated-4.0"/>
            <remove name="OPTIONSVerbHandler"/>
            <remove name="TRACEVerbHandler"/>

            <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
                type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
                type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd" preCondition="integratedMode"
                type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
            <add verb="*" name="ClientDependency" preCondition="integratedMode" path="DependencyHandler.axd"
                type="ClientDependency.Core.CompositeFiles.CompositeDependencyHandler, ClientDependency.Core"/>
            <add name="MiniProfiler" path="mini-profiler-resources/*" verb="*" type="System.Web.Routing.UrlRoutingModule" resourceType="Unspecified"
                preCondition="integratedMode"/>
            <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler"
                preCondition="integratedMode,runtimeVersionv4.0"/>
        </handlers>

        <staticContent>
            <remove fileExtension=".air"/>
            <mimeMap fileExtension=".air" mimeType="application/vnd.adobe.air-application-installer-package+zip"/>
            <remove fileExtension=".svg"/>
            <mimeMap fileExtension=".svg" mimeType="image/svg+xml"/>
            <remove fileExtension=".woff"/>
            <mimeMap fileExtension=".woff" mimeType="font/woff"/>
            <remove fileExtension=".woff2"/>
            <mimeMap fileExtension=".woff2" mimeType="font/woff2"/>
            <remove fileExtension=".less"/>
            <mimeMap fileExtension=".less" mimeType="text/css"/>
            <remove fileExtension=".mp4"/>
            <mimeMap fileExtension=".mp4" mimeType="video/mp4"/>
            <remove fileExtension=".json"/>
            <mimeMap fileExtension=".json" mimeType="application/json"/>
        </staticContent>

        <!-- Ensure the powered by header is not returned -->
        <httpProtocol>
            <customHeaders>
                <remove name="X-Powered-By"/>
            </customHeaders>
        </httpProtocol>

        <!-- Increase the default upload file size limit -->
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="52428800"/>
            </requestFiltering>
        </security>

        <!--
            If you wish to use IIS rewrite rules, see the documentation here: https://our.umbraco.com/documentation/Reference/Routing/IISRewriteRules
        -->
        <!--
        <rewrite>
            <rules></rules>
        </rewrite>
        -->
    </system.webServer>

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Collections.Immutable" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.2.5.0" newVersion="1.2.5.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.7.0" newVersion="5.2.7.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
                <bindingRedirect oldVersion="4.0.0.0-4.0.3.0" newVersion="4.0.3.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
                <bindingRedirect oldVersion="4.0.0.0-4.0.1.1" newVersion="4.0.1.1"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
                <bindingRedirect oldVersion="4.0.0.0-4.1.4.0" newVersion="4.1.4.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

    <location path="umbraco">
        <system.webServer>
            <urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false"/>
        </system.webServer>
    </location>
    <location path="App_Plugins">
        <system.webServer>
            <urlCompression doStaticCompression="false" doDynamicCompression="false" dynamicCompressionBeforeCache="false"/>
        </system.webServer>
    </location>

    <imageProcessor>
        <security configSource="config\imageprocessor\security.config"/>
        <caching configSource="config\imageprocessor\cache.config"/>
        <processing configSource="config\imageprocessor\processing.config"/>
    </imageProcessor>

    <system.codedom>
        <compilers>
            <compiler language="c#;cs;csharp" extension=".cs"
                type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                warningLevel="4" compilerOptions="/langversion:7 /nowarn:1659;1699;1701"/>
            <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
                type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
                warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
        </compilers>
    </system.codedom>

</configuration>

@warrenbuckley warrenbuckley marked this pull request as ready for review October 3, 2023 19:28
@warrenbuckley
Copy link
Contributor Author

@JanDeDobbeleer I have not written tests for this yet, as I suspect you will have some initial feedback and suggestions for me to do some rework on.

@JanDeDobbeleer
Copy link
Owner

@warrenbuckley I'n having surgery the day after tomorrow (and my GF's birthday tomorrow) so I'll probably only review somewhere next week when I'm feeling a bit recovered.

@warrenbuckley
Copy link
Contributor Author

@JanDeDobbeleer I hope all goes OK for you & your GF has a good birthday, as it's mine tomorrow too 🎉🍰
Thanks for letting me know.

@warrenbuckley
Copy link
Contributor Author

@JanDeDobbeleer friendly bump 👋
Hope you are recovering well, I assume this will be a little longer before we can chat together about this PR & the others pending?

Copy link
Owner

@JanDeDobbeleer JanDeDobbeleer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@warrenbuckley I have a proposal. As you're the first to have the need to match on case insensitive filenames, and the work needed to resolve this correctly is pretty impactful (I tried to have a go at it, but it's a lot of work), I have the proposal to use the env.LsDir('path') functionality here and match the filename in the segment itself. You are looping them already, this would allow to match and parse when hit.

@warrenbuckley
Copy link
Contributor Author

Sounds like a plan. I am away on a short break for a few days, but just leaving myself a note here to rework this and not depend on case insensitivity to work in

  • hasFolder
  • fileContent

Question for you though @JanDeDobbeleer are segments like this designed to be able to continue working if we navigate deeper into folders and look up through parent folders ?

@warrenbuckley
Copy link
Contributor Author

@JanDeDobbeleer done the suggested refactor and let me know what you think please.

If you are happy then it would be good if you can give me a pointer on tests please.
Is there a good example segment with a test for me to use as a starting point.

Hopefully I am getting closer to finishing up for Hacktoberfest 😂

src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
src/segments/umbraco.go Outdated Show resolved Hide resolved
website/docs/segments/umbraco.mdx Show resolved Hide resolved
when it navigates up folders it will change to \\workspace and \\
@warrenbuckley
Copy link
Contributor Author

Thanks for the review @JanDeDobbeleer 👍
I will get onto fixing these up soon

@warrenbuckley
Copy link
Contributor Author

OK @JanDeDobbeleer I think I have covered all the changes and the tests are still passing, let me know what you think

Fingers Crossed

@JanDeDobbeleer
Copy link
Owner

@warrenbuckley I unresolved one remark to have that final conversation. I can also make that change if agreed, I have this ready.

Copy link
Owner

@JanDeDobbeleer JanDeDobbeleer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Found one typo, that's all. Let's fix that and merge this!

website/docs/segments/umbraco.mdx Outdated Show resolved Hide resolved
@warrenbuckley
Copy link
Contributor Author

@JanDeDobbeleer I have implemented the change that you suggested, along with fixing up the tests and yes it's loads better and simpler, so thanks 💪😍

Just super excited to try and get this across the finish line.

@warrenbuckley
Copy link
Contributor Author

@JanDeDobbeleer fixed that typo - so should all be good to go 🤞

@JanDeDobbeleer JanDeDobbeleer merged commit 30e4a59 into JanDeDobbeleer:main Oct 28, 2023
9 checks passed
@JanDeDobbeleer
Copy link
Owner

@all-contributors please add @warrenbuckley for design,doc

@allcontributors
Copy link
Contributor

@JanDeDobbeleer

I've put up a pull request to add @warrenbuckley! 🎉

@warrenbuckley
Copy link
Contributor Author

Hi @JanDeDobbeleer
Wanted to say thanks for being so patient with me and giving me pointers, been fun & interesting to contribute to this project over Hacktoberfest and start to learn a little of a new language with Go

@warrenbuckley warrenbuckley deleted the add-umbraco-segment branch October 28, 2023 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants