Integration: Authenticate as an app/installation?

Hello, this is my first post so please let me know if I should move this topic to a different category!

I am very new to GitLab and am looking to integrate my company’s existing web app with GitLab. We essentially are looking for a method to ‘authenticate as an installation’ (similar to GitHub’s App process). We would like to retrieve some kind of application access token that can be used to read/write to a user’s project repositories without expiring. Our application needs to be able to detect any webhooks and push a set of files back to the repository at any time so it is important that the token cannot expire. Does GitLab have any kind of method/process to allow for this?

After doing some research, I found that there are a few ways to create an app/integration:

  • Creating an application through [Edit Profile] → [Applications]. This method works fine but the access token provided after going through the authorization flow expires a few hours after creation, preventing us from doing any work on the project after expiration.

  • Contributing directly to the codebase to have an integration added to Integrations | GitLab. I have been exploring this method using the GDK but from what I have seen, there is not much documentation on how to create my own integration or if this method even provides the token we are looking for. If anyone can direct me to any documentation on how to create an integration using the GDK, I would appreciate it!

I apologize for the long post, I am still getting familiar with GitLab and want to make sure I am going down the right path. Thanks!