forgejo/modules
KN4CK3R fc037b4b82
Add support for incoming emails (#22056)
closes #13585
fixes #9067
fixes #2386
ref #6226
ref #6219
fixes #745

This PR adds support to process incoming emails to perform actions.
Currently I added handling of replies and unsubscribing from
issues/pulls. In contrast to #13585 the IMAP IDLE command is used
instead of polling which results (in my opinion 😉) in cleaner code.

Procedure:
- When sending an issue/pull reply email, a token is generated which is
present in the Reply-To and References header.
- IMAP IDLE waits until a new email arrives
- The token tells which action should be performed

A possible signature and/or reply gets stripped from the content.

I added a new service to the drone pipeline to test the receiving of
incoming mails. If we keep this in, we may test our outgoing emails too
in future.

Co-authored-by: silverwind <me@silverwind.io>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
2023-01-14 23:57:10 +08:00
..
activitypub Remove deprecated packages & staticcheck fixes (#22012) 2022-12-02 17:06:23 -05:00
analyze Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
auth Replace deprecated Webauthn library (#22400) 2023-01-11 21:51:00 -05:00
avatar Unify hashing for avatar (#22289) 2023-01-02 22:46:39 +01:00
base Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
cache Fix get system setting bug when enabled redis cache (#22295) 2023-01-02 00:06:52 +08:00
charset Ensure that plain files are rendered correctly even when containing ambiguous characters (#22017) 2022-12-17 22:22:25 +02:00
container Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
context Use context parameter in models/git (#22367) 2023-01-09 11:50:54 +08:00
csv Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
doctor Add doctor command for full GC of LFS (#21978) 2022-12-15 20:44:16 +00:00
emoji Fix unstable emoji sort (#22346) 2023-01-05 13:58:51 +02:00
eventsource Move convert package to services (#22264) 2022-12-29 10:57:15 +08:00
generate Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
git Use git command instead of exec.Cmd in blame (#22098) 2023-01-03 16:17:13 +08:00
gitgraph Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
graceful Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
hcaptcha Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
highlight Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
hostmatcher Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
html Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
httpcache Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
httplib Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
indexer refactor some functions to support ctx as first parameter (#21878) 2022-12-03 10:48:26 +08:00
issue/template Use path not filepath in template filenames (#21993) 2022-12-02 07:56:51 +08:00
json Update gitea-vet to check FSFE REUSE (#22004) 2022-12-02 22:14:57 +08:00
lfs Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
log Update go dev dependencies (#22064) 2022-12-08 16:21:37 +08:00
markup Log STDERR of external renderer when it fails (#22442) 2023-01-13 20:41:23 +00:00
mcaptcha Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
metrics Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
migration Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
mirror Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
nosql Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
notification Always reuse transaction (#22362) 2023-01-08 09:34:58 +08:00
options Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
packages Use ErrInvalidArgument in packages (#22268) 2022-12-31 12:49:37 +01:00
paginator Update gitea-vet to check FSFE REUSE (#22004) 2022-12-02 22:14:57 +08:00
password Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
pprof Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
private Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
process Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
proxy Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
proxyprotocol Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
public Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
queue Correctly handle select on multiple channels in Queues (#22146) 2022-12-30 02:06:47 +02:00
recaptcha Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
references Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
regexplru Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
repository Fix error when calculate the repository size (#22392) 2023-01-13 18:54:02 +00:00
secret Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
session Update gitea-vet to check FSFE REUSE (#22004) 2022-12-02 22:14:57 +08:00
setting Add support for incoming emails (#22056) 2023-01-14 23:57:10 +08:00
sitemap Fix sitemap (#22272) 2022-12-30 23:31:00 +08:00
ssh Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
storage Local storage should not store files as executable (#22162) 2022-12-19 08:50:36 +08:00
structs Add sync_on_commit option for push mirrors api (#22271) 2022-12-30 19:22:51 +08:00
svg Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
sync Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
system Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
templates Display error log when a modified template has an error so that it could recovery when the error fixed (#22261) 2023-01-03 15:17:36 +08:00
test refactor some functions to support ctx as first parameter (#21878) 2022-12-03 10:48:26 +08:00
timeutil Check for zero time instant in TimeStamp.IsZero() (#22171) 2022-12-20 10:04:55 +08:00
translation Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
typesniffer Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
updatechecker Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
upload Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
uri Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
user Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
util Add support for incoming emails (#22056) 2023-01-14 23:57:10 +08:00
validation Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
watcher Implement FSFE REUSE for golang files (#21840) 2022-11-27 18:20:29 +00:00
web refactor bind functions based on generics (#22055) 2022-12-12 16:09:26 +08:00
webhook Restructure webhook module (#22256) 2023-01-01 23:23:15 +08:00