Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TeamCity Webhooks #18667

Closed
firephreek opened this issue Feb 8, 2022 · 3 comments
Closed

TeamCity Webhooks #18667

firephreek opened this issue Feb 8, 2022 · 3 comments
Labels
topic/webhooks type/feature Completely new functionality. Can only be merged if feature freeze is not active.

Comments

@firephreek
Copy link

Gitea has webhooks for a variety of platforms including MSTeams, Discord, Slack, and others. Unfortunately, TeamCity is not amongst them. I'd like to fix that.

Notes:

@lunny lunny added the type/feature Completely new functionality. Can only be merged if feature freeze is not active. label Feb 8, 2022
@firephreek
Copy link
Author

firephreek commented Feb 9, 2022

Work for this feature is in PR #18668

lafriks pushed a commit that referenced this issue Nov 3, 2022
_This is a different approach to #20267, I took the liberty of adapting
some parts, see below_

## Context

In some cases, a weebhook endpoint requires some kind of authentication.
The usual way is by sending a static `Authorization` header, with a
given token. For instance:

- Matrix expects a `Bearer <token>` (already implemented, by storing the
header cleartext in the metadata - which is buggy on retry #19872)
- TeamCity #18667
- Gitea instances #20267
- SourceHut https://man.sr.ht/graphql.md#authentication-strategies (this
is my actual personal need :)

## Proposed solution

Add a dedicated encrypt column to the webhook table (instead of storing
it as meta as proposed in #20267), so that it gets available for all
present and future hook types (especially the custom ones #19307).

This would also solve the buggy matrix retry #19872.

As a first step, I would recommend focusing on the backend logic and
improve the frontend at a later stage. For now the UI is a simple
`Authorization` field (which could be later customized with `Bearer` and
`Basic` switches):


![2022-08-23-142911](https://user-images.githubusercontent.com/3864879/186162483-5b721504-eef5-4932-812e-eb96a68494cc.png)

The header name is hard-coded, since I couldn't fine any usecase
justifying otherwise.

## Questions

- What do you think of this approach? @justusbunsi @Gusted @silverwind 
- ~~How are the migrations generated? Do I have to manually create a new
file, or is there a command for that?~~
- ~~I started adding it to the API: should I complete it or should I
drop it? (I don't know how much the API is actually used)~~

## Done as well:

- add a migration for the existing matrix webhooks and remove the
`Authorization` logic there


_Closes #19872_

Co-authored-by: Lunny Xiao <[email protected]>
Co-authored-by: Gusted <[email protected]>
Co-authored-by: delvh <[email protected]>
@oliverpool
Copy link
Contributor

You should already be able to (mis)use the current Matrix hook for this purpose.

After the release 1.19 (which should include #20926), you should be able to use any hook which performs a POST request.

@techknowlogick
Copy link
Member

closing as dupe of #1089

@go-gitea go-gitea locked and limited conversation to collaborators May 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
topic/webhooks type/feature Completely new functionality. Can only be merged if feature freeze is not active.
Projects
None yet
Development

No branches or pull requests

4 participants