The main purpose is to introduce two (almost) fully featured sample services.
The first, called example, creates jobs that do nothing, but are good for demonstrating the library's workflow. If any of the values submitted are the string "error", the service fails, which is useful for seeing what errors look like. There is also a "duration" field which, when set, makes the execution of the job last that amount of time in seconds, to simulate long running jobs.
The second, called labproject, is the prototype for the SFB research project management service. It lets users create a project under an organisation without having admin rights to the org. It creates a repository with a given name, a team with the same name, and assigns the user and the repository to the new team.
The PR also includes tests for most of the functionality of the main packages.
All changes to the library functionality were made to accommodate the above. Some features needed to be introduced or changed to support the functionality we need (like having gogs Clients in the custom function). A lot of things were also planned from the start, like having session IDs stored in the browser cookie which link to the GIN token instead of storing the token directly. Some changes were made when writing the tests, after said tests revealed issues with the original implementation.
I hope to keep future PRs much smaller moving forward.
EDIT: This PR also enables GH workflows for automated testing.
This PR got a little out of hand.
The main purpose is to introduce two (almost) fully featured sample services.
The PR also includes tests for most of the functionality of the main packages.
All changes to the library functionality were made to accommodate the above. Some features needed to be introduced or changed to support the functionality we need (like having gogs Clients in the custom function). A lot of things were also planned from the start, like having session IDs stored in the browser cookie which link to the GIN token instead of storing the token directly. Some changes were made when writing the tests, after said tests revealed issues with the original implementation.
I hope to keep future PRs much smaller moving forward.
EDIT: This PR also enables GH workflows for automated testing.