forgejo/modules/setting
Denys Konovalov 63ab92d797
Pre-register OAuth2 applications for git credential helpers (#26291)
This PR is an extended implementation of #25189 and builds upon the
proposal by @hickford in #25653, utilizing some ideas proposed
internally by @wxiaoguang.

Mainly, this PR consists of a mechanism to pre-register OAuth2
applications on startup, which can be enabled or disabled by modifying
the `[oauth2].DEFAULT_APPLICATIONS` parameter in app.ini. The OAuth2
applications registered this way are being marked as "locked" and
neither be deleted nor edited over UI to prevent confusing/unexpected
behavior. Instead, they're being removed if no longer enabled in config.


![grafik](https://github.com/go-gitea/gitea/assets/47871822/81a78b1c-4b68-40a7-9e99-c272ebb8f62e)

The implemented mechanism can also be used to pre-register other OAuth2
applications in the future, if wanted.

Co-authored-by: hickford <mirth.hickford@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>

---------

Co-authored-by: M Hickford <mirth.hickford@gmail.com>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2023-08-09 14:24:07 +02:00
..
actions.go
actions_test.go
admin.go
api.go
asset_dynamic.go
asset_static.go
attachment.go
attachment_test.go
cache.go
camo.go
config_env.go
config_env_test.go Fix env config parsing for "GITEA____APP_NAME" (#26001) 2023-07-20 09:16:29 +00:00
config_provider.go
config_provider_test.go
cors.go
cron.go
cron_test.go
database.go
database_sqlite.go
database_test.go
federation.go
git.go
git_test.go
highlight.go
i18n.go
incoming_email.go
indexer.go
indexer_test.go
lfs.go
lfs_test.go
log.go
log_test.go
mailer.go
mailer_test.go
markup.go
metrics.go
migrations.go
mime_type_map.go
mirror.go
oauth2.go Pre-register OAuth2 applications for git credential helpers (#26291) 2023-08-09 14:24:07 +02:00
other.go
packages.go
packages_test.go
path.go
path_test.go
picture.go
project.go
proxy.go
queue.go
repository.go
repository_archive.go
repository_archive_test.go
security.go
server.go
service.go
service_test.go
session.go
setting.go
setting_test.go
ssh.go
storage.go
storage_test.go
task.go
time.go
ui.go
webhook.go