Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/haavamoa/Gjallarhorn

A blazing website to compare versions of packages on different NuGet sources.
https://github.com/haavamoa/Gjallarhorn

blazor blazor-application compare-versions gjallarhorn json mvvm mvvm-architecture nuget-sources shared-components webclient

Last synced: 19 days ago
JSON representation

A blazing website to compare versions of packages on different NuGet sources.

Awesome Lists containing this project

README

        

[![Build Status](https://dev.azure.com/havardmoas/HaavamoaProjects/_apis/build/status/haavamoa.Gjallarhorn?branchName=master)](https://dev.azure.com/havardmoas/HaavamoaProjects/_build/latest?definitionId=6&branchName=master)

![Docker Cloud Build Status](https://img.shields.io/docker/cloud/build/haavamoa/gjallarhorn.svg)

# Gjallarhorn

A blazing website to compare versions of packages on different NuGet sources.

## The idea

Instead of making packages publicly available, you might want to release packages to only a limited audience, such as your organization or workgroup.
This web-client provides a simple way of monitoring the different versions of a package on different sources.

## Technologies

- ASP.NET Core 3.0
- Blazor

## How to use it

### Source

- Open port `1338`
- `cd src/Gjallarhorn.Server`
- `dotnet run`

### Docker

`docker pull haavamoa/gjallarhorn`

# Demonstration
When first starting the web-site you will enter a blank *status*-page. What you need to do is to go to *edit*-page and start writing JSON.

Here is a example of a potential JSON where we compare *LightInject* with two sources: ``https://api.nuget.org/v3`` and ``.
We also set `aliases` to the feeds, which is a display message in the *status* page.
![BeforeFetch]

## Here is the JSON

```json
{
"SourceComparers": [
{
"SourceA": "https://api.nuget.org/v3/",
"SourceAAlias": "NuGet",
"SourceB": "",
"SourceBAlias": "My fake feed",
"Packages": [
{
"Name": "LightInject",
"ComparePreRelease": true
}
]
}
]
}
```

When we press *Save* we jump back to the *status*-page, and we start fetching versions from the two feeds:
![DuringFetch]

After the fetching has finished, we get a simplified view of the package status:
![AfterFetch]

If we want to add more packages to this two comparing sources, we do the following:
```json
{
"SourceComparers": [
{
"SourceA": "https://api.nuget.org/v3/",
"SourceAAlias": "NuGet",
"SourceB": "",
"SourceBAlias": "My fake feed",
"Packages": [
{
"Name": "LightInject",
"ComparePreRelease": true
},
{
"Name" : "Newtonsoft.Json",
"ComparePreRelease": true
}
]
}
]
}
```

If we want to add different comparing sources, we do the following:
```json
{
"SourceComparers": [
{
"SourceA": "https://api.nuget.org/v3/",
"SourceAAlias": "NuGet",
"SourceB": "",
"SourceBAlias": "My fake feed",
"Packages": [
{
"Name": "LightInject",
"ComparePreRelease": true
},
{
"Name" : "Newtonsoft.Json",
"ComparePreRelease": true
}
]
},
{
"SourceA": "https://api.nuget.org/v3/",
"SourceAAlias": "NuGet",
"SourceB": "",
"SourceBAlias": "My other fake feed",
"Packages": [
{
"Name": "LightInject",
"ComparePreRelease": true
},
{
"Name" : "Newtonsoft.Json",
"ComparePreRelease": true
}
]
}

]
}
```
## Options when creating JSON in edit-mode

*ComparePrerelease* is optional, and is set to false if left empty.

[BeforeFetch]: doc/img/BeforeFetch.png
[DuringFetch]: doc/img/DuringFetch.png
[AfterFetch]: doc/img/AfterFetch.png