Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/iver-wharf/wharf-provider-azuredevops

Import Wharf projects from Azure DevOps repositories
https://github.com/iver-wharf/wharf-provider-azuredevops

gin gin-gonic golang swaggo wharf wharf-provider

Last synced: about 2 months ago
JSON representation

Import Wharf projects from Azure DevOps repositories

Awesome Lists containing this project

README

        

# Azure DevOps provider for Wharf

[![Codacy Badge](https://app.codacy.com/project/badge/Grade/59a6dd65afcc4f2181c00d043e986b86)](https://www.codacy.com/gh/iver-wharf/wharf-provider-azuredevops/dashboard?utm_source=github.com\&utm_medium=referral\&utm_content=iver-wharf/wharf-provider-azuredevops\&utm_campaign=Badge_Grade)

Import Wharf projects from Azure DevOps repositories. Mainly focused on
importing from self hosted Azure DevOps instances, importing from
dev.azure.com is not well tested.

## Token scopes

When generating a Personal Access Token (PAT) to let wharf-provider-azuredevops
talk to Azure DevOps, you need the following permission scopes associated with
the token:

- **Code**\
*Source code, repositories, pull requests, and notifications*

- [x] Read

## Components

- HTTP API using the [gin-gonic/gin](https://github.com/gin-gonic/gin)
web framework.

- Swagger documentation generated using
[swaggo/swag](https://github.com/swaggo/swag) and hosted using
[swaggo/gin-swagger](https://github.com/swaggo/gin-swagger)

- Azure DevOps REST API accessed using good'ol `net/http` and `encoding/json`

## Configuring

The wharf-provider-azuredevops program can be configured via environment
variables and through optional config files. See the docs on the `Config` type
over at:

## Development

1. Install Go 1.18 or later:

2. Install dependencies using [GNU Make](https://www.gnu.org/software/make/) or
[GNUWin32](http://gnuwin32.sourceforge.net/install.html)

```console
$ make deps
```

3. Generate the Swagger files (this has to be redone each time the swaggo
documentation comments has been altered):

```console
$ make swag
```

4. Start hacking with your favorite tool. For example VS Code, GoLand,
Vim, Emacs, or whatnot.

## Linting

```sh
make deps # download linting dependencies

make lint

make lint-go # only lint Go code
make lint-md # only lint Markdown files
```

Some errors can be fixed automatically. Keep in mind that this updates the
files in place.

```sh
make lint-fix

make lint-fix-go # only lint and fix Go files
make lint-fix-md # only lint and fix Markdown files
```

## Releasing

Replace the "v2.0.0" in `make docker version=v2.0.0` with the new version. Full
documentation can be found at [Releasing a new version](https://iver-wharf.github.io/#/development/releasing-a-new-version).

Below are just how to create the Docker images using [GNU Make](https://www.gnu.org/software/make/)
or [GNUWin32](http://gnuwin32.sourceforge.net/install.html):

```console
$ make docker version=v2.0.0
STEP 1: FROM golang:1.18 AS build
STEP 2: WORKDIR /src
--> Using cache de3476fd68836750f453d9d4e7b592549fa924c14e68c9b80069881de8aacc9b
--> de3476fd688
STEP 3: ENV GO111MODULE=on
--> Using cache 4f47a95d0642dcaf5525ee1f19113f97911b1254889c5f2ce29eb6f034bd550b
--> 4f47a95d064
STEP 4: RUN go install github.com/swaggo/swag/cmd/[email protected]
...

Push the image by running:
docker push quay.io/iver-wharf/wharf-provider-azuredevops:latest
docker push quay.io/iver-wharf/wharf-provider-azuredevops:v2.0.0
```

---

Maintained by [Iver](https://www.iver.com/en).
Licensed under the [MIT license](./LICENSE).