You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gitea/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>
2 years ago
..
activitypub Remove deprecated packages & staticcheck fixes (#22012) 2 years ago
analyze Implement FSFE REUSE for golang files (#21840) 2 years ago
auth Replace deprecated Webauthn library (#22400) 2 years ago
avatar Unify hashing for avatar (#22289) 2 years ago
base Implement FSFE REUSE for golang files (#21840) 2 years ago
cache Fix get system setting bug when enabled redis cache (#22295) 2 years ago
charset Ensure that plain files are rendered correctly even when containing ambiguous characters (#22017) 2 years ago
container Implement FSFE REUSE for golang files (#21840) 2 years ago
context Use context parameter in models/git (#22367) 2 years ago
csv Implement FSFE REUSE for golang files (#21840) 2 years ago
doctor Add doctor command for full GC of LFS (#21978) 2 years ago
emoji Fix unstable emoji sort (#22346) 2 years ago
eventsource Move `convert` package to services (#22264) 2 years ago
generate Implement FSFE REUSE for golang files (#21840) 2 years ago
git Use git command instead of exec.Cmd in blame (#22098) 2 years ago
gitgraph Implement FSFE REUSE for golang files (#21840) 2 years ago
graceful Implement FSFE REUSE for golang files (#21840) 2 years ago
hcaptcha Implement FSFE REUSE for golang files (#21840) 2 years ago
highlight Implement FSFE REUSE for golang files (#21840) 2 years ago
hostmatcher Implement FSFE REUSE for golang files (#21840) 2 years ago
html Implement FSFE REUSE for golang files (#21840) 2 years ago
httpcache Implement FSFE REUSE for golang files (#21840) 2 years ago
httplib Implement FSFE REUSE for golang files (#21840) 2 years ago
indexer refactor some functions to support ctx as first parameter (#21878) 2 years ago
issue/template Use path not filepath in template filenames (#21993) 2 years ago
json Update gitea-vet to check FSFE REUSE (#22004) 2 years ago
lfs Implement FSFE REUSE for golang files (#21840) 2 years ago
log Update go dev dependencies (#22064) 2 years ago
markup Log STDERR of external renderer when it fails (#22442) 2 years ago
mcaptcha Implement FSFE REUSE for golang files (#21840) 2 years ago
metrics Implement FSFE REUSE for golang files (#21840) 2 years ago
migration Implement FSFE REUSE for golang files (#21840) 2 years ago
mirror Implement FSFE REUSE for golang files (#21840) 2 years ago
nosql Implement FSFE REUSE for golang files (#21840) 2 years ago
notification Always reuse transaction (#22362) 2 years ago
options Implement FSFE REUSE for golang files (#21840) 2 years ago
packages Use ErrInvalidArgument in packages (#22268) 2 years ago
paginator Update gitea-vet to check FSFE REUSE (#22004) 2 years ago
password Implement FSFE REUSE for golang files (#21840) 2 years ago
pprof Implement FSFE REUSE for golang files (#21840) 2 years ago
private Implement FSFE REUSE for golang files (#21840) 2 years ago
process Implement FSFE REUSE for golang files (#21840) 2 years ago
proxy Implement FSFE REUSE for golang files (#21840) 2 years ago
proxyprotocol Implement FSFE REUSE for golang files (#21840) 2 years ago
public Implement FSFE REUSE for golang files (#21840) 2 years ago
queue Correctly handle select on multiple channels in Queues (#22146) 2 years ago
recaptcha Implement FSFE REUSE for golang files (#21840) 2 years ago
references Implement FSFE REUSE for golang files (#21840) 2 years ago
regexplru Implement FSFE REUSE for golang files (#21840) 2 years ago
repository Fix error when calculate the repository size (#22392) 2 years ago
secret Implement FSFE REUSE for golang files (#21840) 2 years ago
session Update gitea-vet to check FSFE REUSE (#22004) 2 years ago
setting Add support for incoming emails (#22056) 2 years ago
sitemap Fix sitemap (#22272) 2 years ago
ssh Implement FSFE REUSE for golang files (#21840) 2 years ago
storage Local storage should not store files as executable (#22162) 2 years ago
structs Add `sync_on_commit` option for push mirrors api (#22271) 2 years ago
svg Implement FSFE REUSE for golang files (#21840) 2 years ago
sync Implement FSFE REUSE for golang files (#21840) 2 years ago
system Implement FSFE REUSE for golang files (#21840) 2 years ago
templates Display error log when a modified template has an error so that it could recovery when the error fixed (#22261) 2 years ago
test refactor some functions to support ctx as first parameter (#21878) 2 years ago
timeutil Check for zero time instant in `TimeStamp.IsZero()` (#22171) 2 years ago
translation Implement FSFE REUSE for golang files (#21840) 2 years ago
typesniffer Implement FSFE REUSE for golang files (#21840) 2 years ago
updatechecker Implement FSFE REUSE for golang files (#21840) 2 years ago
upload Implement FSFE REUSE for golang files (#21840) 2 years ago
uri Implement FSFE REUSE for golang files (#21840) 2 years ago
user Implement FSFE REUSE for golang files (#21840) 2 years ago
util Add support for incoming emails (#22056) 2 years ago
validation Implement FSFE REUSE for golang files (#21840) 2 years ago
watcher Implement FSFE REUSE for golang files (#21840) 2 years ago
web refactor bind functions based on generics (#22055) 2 years ago
webhook Restructure `webhook` module (#22256) 2 years ago