72 lines
2.6 KiB
Markdown
72 lines
2.6 KiB
Markdown
+++
|
|
title = "Interface"
|
|
weight = 40
|
|
+++
|
|
|
|
# Interface
|
|
|
|
Interface is a service that acts as a connecting end of the bridge, listening
|
|
in for Notifications from a particular forge repository.
|
|
|
|
These notifications, which may be in the form of a Comment, Issue, or Pull Request,
|
|
are then further defined into Events to create
|
|
a workable unit set, that the interface can use to translate operations from
|
|
one forge to another forge.
|
|
|
|
The procedure of the Notification-Event Translation System, works as follows,
|
|
|
|
1. Upon creation of the Interface, and set up of a forge repository to look for, the interface subscribes to the forge's notifications.
|
|
2. Every notification received by the interface from the forges, is then identified and translated into it's respective `Event` model, be it an Issue or PR.
|
|
3. Upon conversion into the respective model, Interface processes these `Events`, and converts them into the model required for the destination forge.
|
|
|
|
## Setting up the Development Environment
|
|
|
|
In order to test out and utilise the Northstar lookup service, we will need to set
|
|
up an interface to be run on the local machine. There are a few configuration
|
|
changes that must be made for the interface to be recognized by the lookup service.
|
|
|
|
Changes to the `config/settings.toml`,
|
|
|
|
```toml
|
|
[default.system]
|
|
northstar = "http://computer.domain.com:port"
|
|
|
|
[default.server]
|
|
url = "http://computer.domain.com:port"
|
|
```
|
|
|
|
Note that the port assigned to the interface and northstar must not already be in
|
|
use by another application/service, and that you can find out the hostname for
|
|
your system through the following command,
|
|
|
|
```sh
|
|
hostname --fqdn
|
|
```
|
|
|
|
There are a few more settings to add in, as a means to validate the user who hosts
|
|
the interface, this also depends on the forge of your choosing. As of right now,
|
|
`interface` supports only gitea, and we can fill up the `config/settings.toml`,
|
|
with the same.
|
|
|
|
```toml
|
|
[default]
|
|
forge = "gitea"
|
|
|
|
[default.gitea]
|
|
host = "https://gitea.com"
|
|
api_key = "generate-the-api-key-from-gitea-and-paste-here"
|
|
username = "fluxer101"
|
|
password = "flux101"
|
|
```
|
|
|
|
Note that the API key in Gitea is known as an access token, one which can be
|
|
generated [here](https://gitea.com/user/settings/applications).
|
|
|
|
## FAQ
|
|
|
|
### Why does an integrity error show up?
|
|
|
|
As ForgeFlux's Interface is an actively developing project, there are a few
|
|
errors that are caused by an upgrade to the database, in which case integrity errors
|
|
are bound to pop up. In this case, remove the `instance/` directory where the database
|
|
for the service would be stored, to rebuild it the next time the application is run.
|