forgejo/modules/git
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
..
foreachref Improve sync performance for pull-mirrors (#19125) 2022-03-31 14:30:40 +02:00
pipeline Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
tests/repos Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
batch_reader.go Prevent dangling cat-file calls (goroutine alternative) (#19454) 2022-04-22 17:20:04 +02:00
blame.go Propagate context and ensure git commands run in request context (#17868) 2022-01-19 23:26:57 +00:00
blame_test.go refactor: move from io/ioutil to io and os package (#17109) 2021-09-22 13:38:34 +08:00
blob.go Read expected buffer size (#17409) 2021-10-24 22:12:43 +01:00
blob_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
blob_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
blob_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
command.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
command_race_test.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
command_test.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
commit.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
commit_convert_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
commit_info.go
commit_info_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
commit_info_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
commit_info_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
commit_reader.go
commit_test.go Use for a repo action one database transaction (#19576) 2022-05-03 21:46:28 +02:00
diff.go Pass gitRepo down to GetRawDiff, since its used for main repo and wiki (#19461) 2022-04-25 20:45:18 +02:00
diff_test.go Prevent off-by-one error on comments on newly appended lines (#18029) 2021-12-20 02:15:49 +00:00
error.go
git.go Upgrade required git version to 2.0 (#19577) 2022-05-02 20:30:24 +08:00
git_test.go
hook.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
last_commit_cache.go Defer Last Commit Info (#16467) 2021-10-08 15:08:22 +02:00
last_commit_cache_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
last_commit_cache_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
lfs.go Unexport git.GlobalCommandArgs (#18376) 2022-01-25 18:15:58 +00:00
log_name_status.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
notes.go
notes_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
notes_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
notes_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
parse_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
parse_gogit_test.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
parse_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
parse_nogogit_test.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
README.md
ref.go Refactor various strings (#17784) 2021-12-02 15:28:08 +08:00
remote.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_archive.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_attribute.go Prevent intermittent race in attribute reader close (#19537) 2022-04-28 11:19:33 +08:00
repo_attribute_test.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
repo_base.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
repo_base_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_base_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_blame.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_blob.go
repo_blob_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_blob_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_blob_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
repo_branch.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_branch_gogit.go Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
repo_branch_nogogit.go Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
repo_branch_test.go Auto merge pull requests when all checks succeeded via API (#9307) 2022-05-08 01:05:52 +08:00
repo_commit.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_commit_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_commit_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_commit_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
repo_commitgraph.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_commitgraph_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_compare.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_compare_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
repo_gpg.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_hook.go
repo_index.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_language_stats.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
repo_language_stats_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_language_stats_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_language_stats_test.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_object.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_ref.go
repo_ref_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_ref_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_ref_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
repo_stats.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_stats_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
repo_tag.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_tag_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_tag_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_tag_test.go Improve sync performance for pull-mirrors (#19125) 2022-03-31 14:30:40 +02:00
repo_test.go Make git.OpenRepository accept Context (#19260) 2022-03-30 03:13:41 +08:00
repo_tree.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
repo_tree_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
repo_tree_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
sha1.go
sha1_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
sha1_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
signature.go
signature_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
signature_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
submodule.go Fix some lints (#17337) 2021-10-17 20:47:12 +01:00
submodule_test.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
tag.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
tag_test.go Fix NPE on try to get tag reference via API (#18245) 2022-01-12 20:37:46 +00:00
tree.go Remove git.Command.Run and git.Command.RunInDir* (#19280) 2022-04-01 10:55:30 +08:00
tree_blob.go
tree_blob_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
tree_blob_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
tree_entry.go
tree_entry_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
tree_entry_mode.go format with gofumpt (#18184) 2022-01-20 18:46:10 +01:00
tree_entry_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
tree_entry_test.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
tree_gogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
tree_nogogit.go Remove legacy +build: constraint (#19582) 2022-05-02 23:22:45 +08:00
utils.go Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
utils_test.go

Git Module

This module is merged from https://github.com/go-gitea/git which is a Go module to access Git through shell commands. Now it's a part of gitea's main repository for easier pull request.