forgejo/models
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>
2022-05-08 01:05:52 +08:00
..
admin Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
appstate Sync gitea app path for git hooks and authorized keys when starting (#17335) 2021-10-21 17:22:43 +08:00
asymkey Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
auth Fix some slice problems (incorrect slice length) (#19592) 2022-05-03 17:04:23 +08:00
avatars format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
db Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
fixtures GetFeeds must always discard actions with dangling repo_id (#19598) 2022-05-05 11:39:26 -04:00
foreignreference Store the foreign ID of issues during migration (#18446) 2022-03-17 18:08:35 +01:00
issues Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
migrations Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
organization more context for models (#19511) 2022-04-28 13:48:48 +02:00
packages Add Helm Chart registry (#19406) 2022-04-19 12:55:35 -04:00
perm Team permission allow different unit has different permission (#17811) 2022-01-05 11:37:00 +08:00
project Add missing sorting column in project_issue table (#19635) 2022-05-06 22:25:59 +08:00
pull Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
repo Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
unit Let MinUnitAccessMode return correct perm (#18675) 2022-02-08 21:16:17 +00:00
unittest GetFeeds must always discard actions with dangling repo_id (#19598) 2022-05-05 11:39:26 -04:00
user Fix some slice problems (incorrect slice length) (#19592) 2022-05-03 17:04:23 +08:00
webhook Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
access.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
access_test.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
action.go GetFeeds must always discard actions with dangling repo_id (#19598) 2022-05-05 11:39:26 -04:00
action_list.go GetFeeds must always discard actions with dangling repo_id (#19598) 2022-05-05 11:39:26 -04:00
action_test.go GetFeeds must always discard actions with dangling repo_id (#19598) 2022-05-05 11:39:26 -04:00
branches.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
branches_test.go more context for models (#19511) 2022-04-28 13:48:48 +02:00
commit.go Collaborator trust model should trust collaborators (#18539) 2022-02-02 11:10:06 +01:00
commit_status.go more context for models (#19511) 2022-04-28 13:48:48 +02:00
commit_status_test.go Move repository model into models/repo (#17933) 2021-12-10 09:27:50 +08:00
consistency.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
consistency_test.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
engine_test.go Refactor install page (db type) (#17919) 2021-12-07 13:44:08 +08:00
error.go ignore DNS error when doing migration allow/block check (#19566) 2022-05-02 12:02:17 +08:00
fixture_generation.go Move repository model into models/repo (#17933) 2021-12-10 09:27:50 +08:00
fixture_test.go Decouple unit test code from business code (#17623) 2021-11-12 22:36:47 +08:00
helper.go Move reaction to models/issues/ (#19264) 2022-03-31 17:20:39 +08:00
helper_directory.go refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
helper_environment.go Fix the bug: deploy key with write access can not push (#19010) 2022-03-22 17:29:07 +08:00
issue.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
issue_assignees.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
issue_assignees_test.go Move some issue methods as functions (#19255) 2022-03-29 16:57:33 +02:00
issue_comment.go Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
issue_comment_list.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
issue_comment_test.go Propagate context and ensure git commands run in request context (#17868) 2022-01-19 23:26:57 +00:00
issue_dependency.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
issue_dependency_test.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
issue_label.go more context for models (#19511) 2022-04-28 13:48:48 +02:00
issue_label_test.go more context for models (#19511) 2022-04-28 13:48:48 +02:00
issue_list.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
issue_list_test.go Decouple unit test, remove intermediate unittestbridge package (#17662) 2021-11-16 16:53:21 +08:00
issue_lock.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
issue_project.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
issue_stopwatch.go Improve Stopwatch behavior (#18930) 2022-04-25 22:45:22 +02:00
issue_stopwatch_test.go Move user related model into models/user (#17781) 2021-11-24 17:49:20 +08:00
issue_test.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
issue_tracked_time.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
issue_tracked_time_test.go Refactor SecToTime() function (#18863) 2022-02-28 23:57:20 +01:00
issue_user.go Move repository model into models/repo (#17933) 2021-12-10 09:27:50 +08:00
issue_user_test.go Move repository model into models/repo (#17933) 2021-12-10 09:27:50 +08:00
issue_watch.go Add missing X-Total-Count and fix some related bugs (#17968) 2021-12-15 13:39:34 +08:00
issue_watch_test.go A better go code formatter, and now make fmt can run in Windows (#17684) 2021-11-17 20:34:35 +08:00
issue_xref.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
issue_xref_test.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
lfs.go Improve SyncMirrors logging (#19045) 2022-03-10 10:09:48 +00:00
lfs_lock.go more context for models (#19511) 2022-04-28 13:48:48 +02:00
main_test.go Use a struct as test options (#19393) 2022-04-14 21:58:21 +08:00
migrate.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
migrate_test.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
notification.go Move milestone to models/issues/ (#19278) 2022-04-08 17:11:15 +08:00
notification_test.go Move user related model into models/user (#17781) 2021-11-24 17:49:20 +08:00
org.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
org_team.go Performance improvement for add team user when org has more than 1000 repositories (#19227) 2022-04-01 09:53:18 +08:00
org_team_test.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
org_test.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
protected_tag.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
protected_tag_test.go Move repository model into models/repo (#17933) 2021-12-10 09:27:50 +08:00
pull.go Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
pull_list.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
pull_test.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
release.go add test coverage for original author conversion during migrations (#18506) 2022-02-01 13:20:28 -05:00
repo.go Prevent NPE when checking repo units if the user is nil (#19625) 2022-05-06 11:54:22 +08:00
repo_activity.go Fix some slice problems (incorrect slice length) (#19592) 2022-05-03 17:04:23 +08:00
repo_collaboration.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
repo_collaboration_test.go Move repository model into models/repo (#17933) 2021-12-10 09:27:50 +08:00
repo_generate.go Move init repository related functions to modules (#19159) 2022-03-29 15:23:45 +08:00
repo_generate_test.go Fixed assert statements. (#16089) 2021-06-07 07:27:09 +02:00
repo_list.go Move reaction to models/issues/ (#19264) 2022-03-31 17:20:39 +08:00
repo_list_test.go Decouple unit test, remove intermediate unittestbridge package (#17662) 2021-11-16 16:53:21 +08:00
repo_permission.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
repo_permission_test.go more context for models (#19511) 2022-04-28 13:48:48 +02:00
repo_test.go Allow users to self-request a PR review (#19030) 2022-03-08 22:48:47 +01:00
repo_transfer.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
repo_transfer_test.go Move repository model into models/repo (#17933) 2021-12-10 09:27:50 +08:00
review.go more context for models (#19511) 2022-04-28 13:48:48 +02:00
review_test.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
statistic.go Federation: return useful statistic information for nodeinfo (#19561) 2022-05-02 21:35:45 +08:00
task.go Only check for non-finished migrating task (#19601) 2022-05-04 12:09:42 +02:00
token.go Use base32 for 2FA scratch token (#18384) 2022-01-26 12:10:10 +08:00
token_test.go A better go code formatter, and now make fmt can run in Windows (#17684) 2021-11-17 20:34:35 +08:00
upload.go Remove NewSession method from db.Engine interface (#17577) 2021-11-21 23:41:00 +08:00
user.go Move reaction to models/issues/ (#19264) 2022-03-31 17:20:39 +08:00
user_heatmap.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
user_heatmap_test.go RSS/Atom support for Repos (#19055) 2022-03-13 17:40:47 +01:00
user_test.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
userlist.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00
userlist_test.go Move organization related structs into sub package (#18518) 2022-03-29 14:29:02 +08:00