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.
forgejo/modules
kolaente 59b30f060a
Auto merge pull requests when all checks succeeded via API (#9307)
* Fix indention

Signed-off-by: kolaente <k@knt.li>

* Add option to merge a pr right now without waiting for the checks to succeed

Signed-off-by: kolaente <k@knt.li>

* Fix lint

Signed-off-by: kolaente <k@knt.li>

* Add scheduled pr merge to tables used for testing

Signed-off-by: kolaente <k@knt.li>

* Add status param to make GetPullRequestByHeadBranch reusable

Signed-off-by: kolaente <k@knt.li>

* Move "Merge now" to a seperate button to make the ui clearer

Signed-off-by: kolaente <k@knt.li>

* Update models/scheduled_pull_request_merge.go

Co-authored-by: 赵智超 <1012112796@qq.com>

* Update web_src/js/index.js

Co-authored-by: 赵智超 <1012112796@qq.com>

* Update web_src/js/index.js

Co-authored-by: 赵智超 <1012112796@qq.com>

* Re-add migration after merge

* Fix frontend lint

* Fix version compare

* Add vendored dependencies

* Add basic tets

* Make sure the api route is capable of scheduling PRs for merging

* Fix comparing version

* make vendor

* adopt refactor

* apply suggestion: User -> Doer

* init var once

* Fix Test

* Update templates/repo/issue/view_content/comments.tmpl

* adopt

* nits

* next

* code format

* lint

* use same name schema; rm CreateUnScheduledPRToAutoMergeComment

* API: can not create schedule twice

* Add TestGetBranchNamesForSha

* nits

* new go routine for each pull to merge

* Update models/pull.go

Co-authored-by: a1012112796 <1012112796@qq.com>

* Update models/scheduled_pull_request_merge.go

Co-authored-by: a1012112796 <1012112796@qq.com>

* fix & add renaming sugestions

* Update services/automerge/pull_auto_merge.go

Co-authored-by: a1012112796 <1012112796@qq.com>

* fix conflict relicts

* apply latest refactors

* fix: migration after merge

* Update models/error.go

Co-authored-by: delvh <dev.lh@web.de>

* Update options/locale/locale_en-US.ini

Co-authored-by: delvh <dev.lh@web.de>

* Update options/locale/locale_en-US.ini

Co-authored-by: delvh <dev.lh@web.de>

* adapt latest refactors

* fix test

* use more context

* skip potential edgecases

* document func usage

* GetBranchNamesForSha() -> GetRefsBySha()

* start refactoring

* ajust to new changes

* nit

* docu nit

* the great check move

* move checks for branchprotection into own package

* resolve todo now ...

* move & rename

* unexport if posible

* fix

* check if merge is allowed before merge on scheduled pull

* debugg

* wording

* improve SetDefaults & nits

* NotAllowedToMerge -> DisallowedToMerge

* fix test

* merge files

* use package "errors"

* merge files

* add string names

* other implementation for gogit

* adapt refactor

* more context for models/pull.go

* GetUserRepoPermission use context

* more ctx

* use context for loading pull head/base-repo

* more ctx

* more ctx

* models.LoadIssueCtx()

* models.LoadIssueCtx()

* Handle pull_service.Merge in one DB transaction

* add TODOs

* next

* next

* next

* more ctx

* more ctx

* Start refactoring structure of old pull code ...

* move code into new packages

* shorter names ... and finish **restructure**

* Update models/branches.go

Co-authored-by: zeripath <art27@cantab.net>

* finish UpdateProtectBranch

* more and fix

* update datum

* template: use "svg" helper

* rename prQueue 2 prPatchCheckerQueue

* handle automerge in queue

* lock pull on git&db actions ...

* lock pull on git&db actions ...

* add TODO notes

* the regex

* transaction in tests

* GetRepositoryByIDCtx

* shorter table name and lint fix

* close transaction bevore notify

* Update models/pull.go

* next

* CheckPullMergable check all branch protections!

* Update routers/web/repo/pull.go

* CheckPullMergable check all branch protections!

* Revert "PullService lock via pullID (#19520)" (for now...)

This reverts commit 6cde7c9159a5ea75a10356feb7b8c7ad4c434a9a.

* Update services/pull/check.go

* Use for a repo action one database transaction

* Apply suggestions from code review

* Apply suggestions from code review

Co-authored-by: delvh <dev.lh@web.de>

* Update services/issue/status.go

Co-authored-by: delvh <dev.lh@web.de>

* Update services/issue/status.go

Co-authored-by: delvh <dev.lh@web.de>

* use db.WithTx()

* gofmt

* make pr.GetDefaultMergeMessage() context aware

* make MergePullRequestForm.SetDefaults context aware

* use db.WithTx()

* pull.SetMerged only with context

* fix deadlock in `test-sqlite\#TestAPIBranchProtection`

* dont forget templates

* db.WithTx allow to set the parentCtx

* handle db transaction in service packages but not router

* issue_service.ChangeStatus just had caused another deadlock :/
it has to do something with how notification package is handled

* if we merge a pull in one database transaktion, we get a lock, because merge infoce internal api that cant handle open db sessions to the same repo

* ajust to current master

* Apply suggestions from code review

Co-authored-by: delvh <dev.lh@web.de>

* dont open db transaction in router

* make generate-swagger

* one _success less

* wording nit

* rm

* adapt

* remove not needed test files

* rm less diff & use attr in JS

* ...

* Update services/repository/files/commit.go

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

* ajust db schema for PullAutoMerge

* skip broken pull refs

* more context in error messages

* remove webUI part for another pull

* remove more WebUI only parts

* API: add CancleAutoMergePR

* Apply suggestions from code review

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

* fix lint

* Apply suggestions from code review

* cancle -> cancel

Co-authored-by: delvh <dev.lh@web.de>

* change queue identifyer

* fix swagger

* prevent nil issue

* fix and dont drop error

* as per @zeripath

* Update integrations/git_test.go

Co-authored-by: delvh <dev.lh@web.de>

* Update integrations/git_test.go

Co-authored-by: delvh <dev.lh@web.de>

* more declarative integration tests (dedup code)

* use assert.False/True helper

Co-authored-by: 赵智超 <1012112796@qq.com>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: zeripath <art27@cantab.net>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
2 years ago
..
activitypub format with gofumpt (#18184) 2 years ago
analyze Simplify `IsVendor` (#19626) 2 years ago
appstate Use a struct as test options (#19393) 2 years ago
auth Remove legacy `+build:` constraint (#19582) 2 years ago
avatar Remove legacy `+build:` constraint (#19582) 2 years ago
base Update JS dependencies (#19281) 2 years ago
cache Add health check endpoint (#18465) 2 years ago
charset Don't treat BOM escape sequence as hidden character. (#18909) 2 years ago
container Move reaction to models/issues/ (#19264) 2 years ago
context Only show accessible teams in dashboard dropdown list (#19642) 2 years ago
convert Hide private repositories in packages (#19584) 2 years ago
csv format with gofumpt (#18184) 2 years ago
doctor [doctor] authorized-keys: fix displayed check name (#19464) 2 years ago
emoji format with gofumpt (#18184) 2 years ago
eventsource Improve Stopwatch behavior (#18930) 2 years ago
generate Use base32 for 2FA scratch token (#18384) 2 years ago
git Auto merge pull requests when all checks succeeded via API (#9307) 2 years ago
gitgraph Remove `git.Command.Run` and `git.Command.RunInDir*` (#19280) 2 years ago
graceful Remove legacy `+build:` constraint (#19582) 2 years ago
hcaptcha hCaptcha Support (#12594) 4 years ago
highlight format with gofumpt (#18184) 2 years ago
hostmatcher Support `hostname:port` to pass host matcher's check #19543 (#19543) 2 years ago
httpcache format with gofumpt (#18184) 2 years ago
httplib refactor httplib (#18338) 2 years ago
indexer Prevent dangling archiver goroutine (#19516) 2 years ago
json Refactor legacy `unknwon/com` package, improve golangci lint (#19284) 2 years ago
lfs Remove legacy `+build:` constraint (#19582) 2 years ago
log Only set CanColorStdout / CanColorStderr to true if the stdout/stderr is a terminal (#19581) 2 years ago
markup Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2 years ago
metrics format with gofumpt (#18184) 2 years ago
migration Remove legacy `+build:` constraint (#19582) 2 years ago
nosql Remove legacy `unknwon/com` package (#19298) 2 years ago
notification Hide private repositories in packages (#19584) 2 years ago
options Remove legacy `+build:` constraint (#19582) 2 years ago
packages Add Helm Chart registry (#19406) 2 years ago
paginator Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2 years ago
password Fixed assert statements. (#16089) 3 years ago
pprof refactor: move from io/ioutil to io and os package (#17109) 3 years ago
private Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
process Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
proxy Return nil proxy function if proxy not enabled (#16742) 3 years ago
public Remove legacy `+build:` constraint (#19582) 2 years ago
queue Fix 64-bit atomic operations on 32-bit machines (#19531) 2 years ago
recaptcha refactor: move from io/ioutil to io and os package (#17109) 3 years ago
references format with gofumpt (#18184) 2 years ago
repository fix #19545 (#19563) 2 years ago
secret Use `CryptoRandomBytes` instead of `CryptoRandomString` (#18439) 2 years ago
session format with gofumpt (#18184) 2 years ago
setting Remove legacy `+build:` constraint (#19582) 2 years ago
ssh Add Goroutine stack inspector to admin/monitor (#19207) 2 years ago
storage Add Package Registry (#16510) 2 years ago
structs Respect DefaultUserIsRestricted system default when creating new user (#19310) 2 years ago
svg Remove legacy `+build:` constraint (#19582) 2 years ago
sync Use queue instead of memory queue in webhook send service (#19390) 2 years ago
templates Remove legacy `+build:` constraint (#19582) 2 years ago
test Call MultipartForm.RemoveAll when request finishes (#19606) 2 years ago
timeutil Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2 years ago
translation Remove legacy unmaintained packages, refactor to support change default locale (#19308) 2 years ago
typesniffer format with gofumpt (#18184) 2 years ago
updatechecker format with gofumpt (#18184) 2 years ago
upload Simplify parameter types (#18006) 3 years ago
uri Prevent NPE if gitea uploader fails to open url (#18080) 3 years ago
user Add gitea-vet (#10948) 4 years ago
util Remove legacy `unknwon/com` package (#19298) 2 years ago
validation use IsLoopback (#19477) 2 years ago
web Refactor CSRF protection modules, make sure CSRF tokens can be up-to-date. (#19337) 2 years ago