From 63809076752116a39019f5d6da5df968b094808e Mon Sep 17 00:00:00 2001 From: Ryan Peters Date: Fri, 4 Sep 2020 21:46:32 -0400 Subject: [PATCH] initial --- .gitattributes | 63 +++++++ .gitignore | 340 ++++++++++++++++++++++++++++++++++ .nuget/NuGet.Config | 6 + .nuget/NuGet.targets | 144 ++++++++++++++ App_Start/NuGetODataConfig.cs | 42 +++++ BinaryDad.NuGet.csproj | 178 ++++++++++++++++++ BinaryDad.NuGet.sln | 33 ++++ Default.aspx | 49 +++++ Properties/AssemblyInfo.cs | 35 ++++ Web.Debug.config | 30 +++ Web.Release.config | 31 ++++ Web.config | 170 +++++++++++++++++ favicon.ico | Bin 0 -> 35561 bytes packages.config | 20 ++ 14 files changed, 1141 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .nuget/NuGet.Config create mode 100644 .nuget/NuGet.targets create mode 100644 App_Start/NuGetODataConfig.cs create mode 100644 BinaryDad.NuGet.csproj create mode 100644 BinaryDad.NuGet.sln create mode 100644 Default.aspx create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Web.Debug.config create mode 100644 Web.Release.config create mode 100644 Web.config create mode 100644 favicon.ico create mode 100644 packages.config diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4ce6fdd --- /dev/null +++ b/.gitignore @@ -0,0 +1,340 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- Backup*.rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb \ No newline at end of file diff --git a/.nuget/NuGet.Config b/.nuget/NuGet.Config new file mode 100644 index 0000000..67f8ea0 --- /dev/null +++ b/.nuget/NuGet.Config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.nuget/NuGet.targets b/.nuget/NuGet.targets new file mode 100644 index 0000000..3f8c37b --- /dev/null +++ b/.nuget/NuGet.targets @@ -0,0 +1,144 @@ + + + + $(MSBuildProjectDirectory)\..\ + + + false + + + false + + + true + + + false + + + + + + + + + + + $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) + + + + + $(SolutionDir).nuget + + + + $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName.Replace(' ', '_')).config + $(MSBuildProjectDirectory)\packages.$(MSBuildProjectName).config + + + + $(MSBuildProjectDirectory)\packages.config + $(PackagesProjectConfig) + + + + + $(NuGetToolsPath)\NuGet.exe + @(PackageSource) + + "$(NuGetExePath)" + mono --runtime=v4.0.30319 "$(NuGetExePath)" + + $(TargetDir.Trim('\\')) + + -RequireConsent + -NonInteractive + + "$(SolutionDir) " + "$(SolutionDir)" + + + $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) + $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols + + + + RestorePackages; + $(BuildDependsOn); + + + + + $(BuildDependsOn); + BuildPackage; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/App_Start/NuGetODataConfig.cs b/App_Start/NuGetODataConfig.cs new file mode 100644 index 0000000..787984f --- /dev/null +++ b/App_Start/NuGetODataConfig.cs @@ -0,0 +1,42 @@ +using System.Net.Http; +using System.Web.Http; +using System.Web.Http.ExceptionHandling; +using System.Web.Http.Routing; +using NuGet.Server; +using NuGet.Server.Infrastructure; +using NuGet.Server.V2; + +[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(BinaryDad.NuGet.App_Start.NuGetODataConfig), "Start")] + +namespace BinaryDad.NuGet.App_Start +{ + public static class NuGetODataConfig + { + public static void Start() + { + ServiceResolver.SetServiceResolver(new DefaultServiceResolver()); + + var config = GlobalConfiguration.Configuration; + + NuGetV2WebApiEnabler.UseNuGetV2WebApiFeed( + config, + "NuGetDefault", + "nuget", + "PackagesOData", + enableLegacyPushRoute: true); + + config.Services.Replace(typeof(IExceptionLogger), new TraceExceptionLogger()); + + // Trace.Listeners.Add(new TextWriterTraceListener(HostingEnvironment.MapPath("~/NuGet.Server.log"))); + // Trace.AutoFlush = true; + + config.Routes.MapHttpRoute( + name: "NuGetDefault_ClearCache", + routeTemplate: "nuget/clear-cache", + defaults: new { controller = "PackagesOData", action = "ClearCache" }, + constraints: new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) } + ); + + } + } +} diff --git a/BinaryDad.NuGet.csproj b/BinaryDad.NuGet.csproj new file mode 100644 index 0000000..94f7a02 --- /dev/null +++ b/BinaryDad.NuGet.csproj @@ -0,0 +1,178 @@ + + + + + Debug + AnyCPU + + + 2.0 + {0AA778A1-A679-47CF-BF0D-44D4E6192AE9} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + BinaryDad.NuGet + BinaryDad.NuGet + v4.8 + true + + + + + + + + + SAK + SAK + SAK + SAK + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + true + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\lib\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll + + + + packages\Microsoft.Data.Edm.5.8.4\lib\net40\Microsoft.Data.Edm.dll + + + packages\Microsoft.Data.OData.5.8.4\lib\net40\Microsoft.Data.OData.dll + + + packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll + + + packages\Microsoft.Web.Xdt.3.0.0\lib\net40\Microsoft.Web.XmlTransform.dll + + + packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll + + + packages\NuGet.Core.2.14.0\lib\net40-Client\NuGet.Core.dll + + + packages\NuGet.Server.3.4.0\lib\net46\NuGet.Server.dll + + + packages\NuGet.Server.Core.3.4.0\lib\net46\NuGet.Server.Core.dll + + + packages\NuGet.Server.V2.3.4.0\lib\net46\NuGet.Server.V2.dll + + + + + packages\Microsoft.AspNet.WebApi.Client.5.2.7\lib\net45\System.Net.Http.Formatting.dll + + + + + + packages\System.Spatial.5.8.4\lib\net40\System.Spatial.dll + + + + + + + + + + + + packages\Microsoft.AspNet.WebApi.Core.5.2.7\lib\net45\System.Web.Http.dll + + + packages\Microsoft.AspNet.WebApi.OData.5.7.0\lib\net45\System.Web.Http.OData.dll + + + packages\Microsoft.AspNet.WebApi.WebHost.5.2.7\lib\net45\System.Web.Http.WebHost.dll + + + + + + + + + + packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll + + + + + + + + + + + + + + + + Web.config + + + Web.config + + + + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + + + + + + + + + True + True + 57215 + / + http://localhost:57215/ + False + False + + + False + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + \ No newline at end of file diff --git a/BinaryDad.NuGet.sln b/BinaryDad.NuGet.sln new file mode 100644 index 0000000..f924c00 --- /dev/null +++ b/BinaryDad.NuGet.sln @@ -0,0 +1,33 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29123.88 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BinaryDad.NuGet", "BinaryDad.NuGet.csproj", "{0AA778A1-A679-47CF-BF0D-44D4E6192AE9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {0AA778A1-A679-47CF-BF0D-44D4E6192AE9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0AA778A1-A679-47CF-BF0D-44D4E6192AE9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0AA778A1-A679-47CF-BF0D-44D4E6192AE9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0AA778A1-A679-47CF-BF0D-44D4E6192AE9}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {033AC9B9-AE69-4B0C-917A-18964BCE1C4D} + EndGlobalSection + GlobalSection(TeamFoundationVersionControl) = preSolution + SccNumberOfProjects = 2 + SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C} + SccTeamFoundationServer = http://tfs.binarydad.com:8080/tfs/defaultcollection + SccLocalPath0 = . + SccProjectUniqueName1 = BinaryDad.NuGet.csproj + SccLocalPath1 = . + EndGlobalSection +EndGlobal diff --git a/Default.aspx b/Default.aspx new file mode 100644 index 0000000..feeff08 --- /dev/null +++ b/Default.aspx @@ -0,0 +1,49 @@ +<%@ Page Language="C#" %> +<%@ Import Namespace="NuGet.Server" %> +<%@ Import Namespace="NuGet.Server.App_Start" %> +<%@ Import Namespace="NuGet.Server.Infrastructure" %> + + + + + NuGet Private Repository + + + +
+

You are running NuGet.Server v<%= typeof(NuGetODataConfig).Assembly.GetName().Version %>

+

+ Click ">here to view your packages. +

+
+ Repository URLs + In the package manager settings, add the following URL to the list of + Package Sources: +
+ <%= Helpers.GetRepositoryUrl(Request.Url, Request.ApplicationPath) %> +
+ <% if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["apiKey"])) { %> + To enable pushing packages to this feed using the NuGet command line tool (nuget.exe), set the apiKey appSetting in web.config. + <% } else { %> + Use the command below to push packages to this feed using the NuGet command line tool (nuget.exe). +
+ nuget.exe push {package file} {apikey} -Source <%= Helpers.GetPushUrl(Request.Url, Request.ApplicationPath) %> +
+ <% } %> +
+ + <% if (Request.IsLocal || ServiceResolver.Current.Resolve().GetBoolSetting("allowRemoteCacheManagement", false)) { %> +
+ Adding packages + + To add packages to the feed put package files (.nupkg files) in the folder + <% = PackageUtility.PackagePhysicalPath %>

+ + Click ">here to clear the package cache. +
+ <% } %> +
+ + diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..0b6bf8c --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("BinaryDad.NuGet")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("BinaryDad.NuGet")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0aa778a1-a679-47cf-bf0d-44d4e6192ae9")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Revision and Build Numbers +// by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Web.Debug.config b/Web.Debug.config new file mode 100644 index 0000000..fae9cfe --- /dev/null +++ b/Web.Debug.config @@ -0,0 +1,30 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Web.Release.config b/Web.Release.config new file mode 100644 index 0000000..da6e960 --- /dev/null +++ b/Web.Release.config @@ -0,0 +1,31 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/Web.config b/Web.config new file mode 100644 index 0000000..2368e2f --- /dev/null +++ b/Web.config @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..4744dc94e947e90bb168a9287565949d81acbce5 GIT binary patch literal 35561 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 literal 0 HcmV?d00001 diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..425a2dd --- /dev/null +++ b/packages.config @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file