1
0
Fork 0
forked from NYANDEV/forgejo
forgejo/modules/structs
oliverpool b6e81357bd
Add Webhook authorization header ()
_This is a different approach to , 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 )
- TeamCity 
- Gitea instances 
- 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 ), so that it gets available for all
present and future hook types (especially the custom ones ).

This would also solve the buggy matrix retry .

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 <xiaolunwen@gmail.com>
Co-authored-by: Gusted <williamzijl7@hotmail.com>
Co-authored-by: delvh <dev.lh@web.de>
2022-11-03 20:23:20 +02:00
..
activitypub.go User keypairs and HTTP signatures for ActivityPub federation using go-ap () 2022-06-19 07:25:12 +02:00
admin_user.go Respect DefaultUserIsRestricted system default when creating new user () 2022-04-29 15:38:11 -04:00
attachment.go Fix wrong hint when status checking is running on pull request view () 2020-01-22 11:46:04 +08:00
commit_status.go [Refactor] CombinedStatus and CommitStatus related functions & structs () 2020-12-18 11:33:32 +08:00
cron.go Add cron running API () 2020-08-24 11:48:15 -04:00
doc.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
fork.go - name: new parameter in CreateForkOption to give the forked repository () 2021-12-24 22:43:00 +08:00
git_blob.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
git_hook.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
hook.go Add Webhook authorization header () 2022-11-03 20:23:20 +02:00
issue.go Deal with markdown template without metadata () 2022-10-31 17:10:33 +02:00
issue_comment.go Add API to get issue/pull comments and events (timeline) () 2022-01-01 22:12:25 +08:00
issue_label.go [API] Fix inconsistent label color format () 2020-02-09 14:33:03 +00:00
issue_milestone.go Add Created & Updated to Milestone () 2020-09-05 13:38:54 -04:00
issue_reaction.go [API] Fix 9544 | return 200 when reaction already exist () 2019-12-31 03:21:21 -05:00
issue_stopwatch.go Display current stopwatch in navbar () 2021-01-21 15:51:52 +01:00
issue_tracked_time.go [API] Extend times API () 2019-12-27 20:30:58 +00:00
lfs_lock.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
mirror.go Add new API endpoints for push mirrors management () 2022-07-30 18:45:59 +02:00
miscellaneous.go API method to list all commits of a repository () 2019-08-26 16:09:10 +02:00
nodeinfo.go Add nodeinfo endpoint for federation purposes () 2021-09-28 01:38:06 +02:00
notifications.go API: add html urls to notification subjects () 2021-09-30 07:17:39 +03:00
org.go Add name field for org api () 2022-09-29 05:27:33 +02:00
org_member.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
org_team.go Fix typo in API comment document () 2022-10-05 21:26:34 +01:00
org_type.go Add more linters to improve code readability () 2022-06-20 12:02:49 +02:00
package.go Add Package Registry () 2022-03-30 16:42:47 +08:00
pull.go Add API endpoint to get changed files of a PR () 2022-09-29 04:27:20 +02:00
pull_review.go Dismiss prior pull reviews if done via web in review dismiss () 2022-07-19 15:20:28 +02:00
release.go Add single release page and latest redirect () 2020-04-18 11:47:15 -03:00
repo.go Make external issue tracker regexp configurable via API () 2022-10-07 20:49:30 +08:00
repo_branch.go Support unprotected file patterns () 2021-09-11 16:21:17 +02:00
repo_collaborator.go Add API to query collaborators permission for a repository () 2022-04-29 14:24:38 +02:00
repo_commit.go More commit info from API () 2022-03-29 10:47:44 -05:00
repo_file.go Add latest commit's SHA to content response () 2022-07-30 16:09:04 +08:00
repo_key.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
repo_note.go Add an api endpoint to fetch git notes () () 2021-08-11 03:01:40 +02:00
repo_refs.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
repo_tag.go [API] Add repoCreateTag () 2021-06-17 18:04:10 +02:00
repo_topic.go Add API endpoint for accessing repo topics () 2019-09-03 23:46:24 +08:00
repo_tree.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
repo_watch.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
repo_wiki.go Add API to get/edit wiki () 2021-10-25 11:43:40 +08:00
settings.go Add custom emoji support () 2021-06-29 16:28:38 +02:00
status.go [Refactor] CombinedStatus and CommitStatus related functions & structs () 2020-12-18 11:33:32 +08:00
task.go Move migrating repository from frontend to backend () 2019-10-13 21:23:14 +08:00
user.go Include login_name in adminCreateUser response () 2022-07-15 16:52:11 +08:00
user_app.go Record OAuth client type at registration () 2022-10-24 15:59:24 +08:00
user_email.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00
user_gpgkey.go Add option to provide signature for a token to verify key ownership () 2021-07-13 15:28:07 +02:00
user_key.go Move sdk structs to modules/structs () 2019-05-11 18:21:34 +08:00