49919c636e 
								
							 
						 
						
							
							
								
								Pull Requests: setting to allow edits by maintainers by default, tweak UI ( #22862 )  
							
							... 
							
							
							
							Add setting to allow edits by maintainers by default, to avoid having to
often ask contributors to enable this.
This also reorganizes the pull request settings UI to improve clarity.
It was unclear which checkbox options were there to control available
merge styles and which merge styles they correspond to.
Now there is a "Merge Styles" label followed by the merge style options
with the same name as in other menus. The remaining checkboxes were
moved to the bottom, ordered rougly by typical order of operations.
---------
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> 
							
						 
						
							2023-02-13 14:09:52 +08:00  
				
					
						
							
							
								 
						
							
								4011821c94 
								
							 
						 
						
							
							
								
								Implement actions ( #21937 )  
							
							... 
							
							
							
							Close  #13539 .
Co-authored by: @lunny @appleboy @fuxiaohei and others.
Related projects:
- https://gitea.com/gitea/actions-proto-def 
- https://gitea.com/gitea/actions-proto-go 
- https://gitea.com/gitea/act 
- https://gitea.com/gitea/act_runner 
### Summary
The target of this PR is to bring a basic implementation of "Actions",
an internal CI/CD system of Gitea. That means even though it has been
merged, the state of the feature is **EXPERIMENTAL**, and please note
that:
- It is disabled by default;
- It shouldn't be used in a production environment currently;
- It shouldn't be used in a public Gitea instance currently;
- Breaking changes may be made before it's stable.
**Please comment on #13539  if you have any different product design
ideas**, all decisions reached there will be adopted here. But in this
PR, we don't talk about **naming, feature-creep or alternatives**.
### β οΈ  Breaking
`gitea-actions` will become a reserved user name. If a user with the
name already exists in the database, it is recommended to rename it.
### Some important reviews
- What is `DEFAULT_ACTIONS_URL` in `app.ini` for?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1055954954 
- Why the api for runners is not under the normal `/api/v1` prefix?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1061173592 
- Why DBFS?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1061301178 
- Why ignore events triggered by `gitea-actions` bot?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1063254103 
- Why there's no permission control for actions?
  - https://github.com/go-gitea/gitea/pull/21937#discussion_r1090229868 
### What it looks like
<details>
#### Manage runners
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205870657-c72f590e-2e08-4cd4-be7f-2e0abb299bbf.png ">
#### List runs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872794-50fde990-2b45-48c1-a178-908e4ec5b627.png ">
#### View logs
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205872501-9b7b9000-9542-4991-8f55-18ccdada77c3.png ">
</details>
### How to try it
<details>
#### 1. Start Gitea
Clone this branch and [install from
source](https://docs.gitea.io/en-us/install-from-source ).
Add additional configurations in `app.ini` to enable Actions:
```ini
[actions]
ENABLED = true
```
Start it.
If all is well, you'll see the management page of runners:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205877365-8e30a780-9b10-4154-b3e8-ee6c3cb35a59.png ">
#### 2. Start runner
Clone the [act_runner](https://gitea.com/gitea/act_runner ), and follow
the
[README](https://gitea.com/gitea/act_runner/src/branch/main/README.md )
to start it.
If all is well, you'll see a new runner has been added:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205878000-216f5937-e696-470d-b66c-8473987d91c3.png ">
#### 3. Enable actions for a repo
Create a new repo or open an existing one, check the `Actions` checkbox
in settings and submit.
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879705-53e09208-73c0-4b3e-a123-2dcf9aba4b9c.png ">
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205879383-23f3d08f-1a85-41dd-a8b3-54e2ee6453e8.png ">
If all is well, you'll see a new tab "Actions":
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205881648-a8072d8c-5803-4d76-b8a8-9b2fb49516c1.png ">
#### 4. Upload workflow files
Upload some workflow files to `.gitea/workflows/xxx.yaml`, you can
follow the [quickstart](https://docs.github.com/en/actions/quickstart )
of GitHub Actions. Yes, Gitea Actions is compatible with GitHub Actions
in most cases, you can use the same demo:
```yaml
name: GitHub Actions Demo
run-name: ${{ github.actor }} is testing out GitHub Actions π 
on: [push]
jobs:
  Explore-GitHub-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "π  The job was automatically triggered by a ${{ github.event_name }} event."
      - run: echo "π§  This job is now running on a ${{ runner.os }} server hosted by GitHub!"
      - run: echo "π  The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v3
      - run: echo "π‘  The ${{ github.repository }} repository has been cloned to the runner."
      - run: echo "π₯οΈ  The workflow is now ready to test your code on the runner."
      - name: List files in the repository
        run: |
          ls ${{ github.workspace }}
      - run: echo "π  This job's status is ${{ job.status }}."
```
If all is well, you'll see a new run in `Actions` tab:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884473-79a874bc-171b-4aaf-acd5-0241a45c3b53.png ">
#### 5. Check the logs of jobs
Click a run and you'll see the logs:
<img width="1792" alt="image"
src="https://user-images.githubusercontent.com/9418365/205884800-994b0374-67f7-48ff-be9a-4c53f3141547.png ">
#### 6. Go on
You can try more examples in [the
documents](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions )
of GitHub Actions, then you might find a lot of bugs.
Come on, PRs are welcome.
</details>
See also: [Feature Preview: Gitea
Actions](https://blog.gitea.io/2022/12/feature-preview-gitea-actions/ )
---------
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: ChristopherHX <christopher.homberger@web.de>
Co-authored-by: John Olheiser <john.olheiser@gmail.com> 
						
							2023-01-31 09:45:19 +08:00  
				
					
						
							
							
								 
						
							
								e81ccc406b 
								
							 
						 
						
							
							
								
								Implement FSFE REUSE for golang files ( #21840 )  
							
							... 
							
							
							
							Change all license headers to comply with REUSE specification.
Fix  #16132 
Co-authored-by: flynnnnnnnnnn <flynnnnnnnnnn@github>
Co-authored-by: John Olheiser <john.olheiser@gmail.com> 
							
						 
						
							2022-11-27 18:20:29 +00:00  
				
					
						
							
							
								 
						
							
								34283a74e8 
								
							 
						 
						
							
							
								
								Allow detect whether it's in a database transaction for a context.Context ( #21756 )  
							
							... 
							
							
							
							Fix  #19513 
This PR introduce a new db method `InTransaction(context.Context)`,
and also builtin check on `db.TxContext` and `db.WithTx`.
There is also a new method `db.AutoTx` has been introduced but could be used by other PRs.
`WithTx` will always open a new transaction, if a transaction exist in context, return an error.
`AutoTx` will try to open a new transaction if no transaction exist in context.
That means it will always enter a transaction if there is no error.
Co-authored-by: delvh <dev.lh@web.de>
Co-authored-by: 6543 <6543@obermui.de> 
						
							2022-11-12 21:18:50 +01:00  
				
					
						
							
							
								 
						
							
								716fcfcf72 
								
							 
						 
						
							
							
								
								Make every not exist error unwrappable to a fs.ErrNotExist ( #20891 )  
							
							... 
							
							
							
							A lot of our code is repeatedly testing if individual errors are
specific types of Not Exist errors. This is repetitative and unnecesary.
`Unwrap() error` provides a common way of labelling an error as a
NotExist error and we can/should use this.
This PR has chosen to use the common `io/fs` errors e.g.
`fs.ErrNotExist` for our errors. This is in some ways not completely
correct as these are not filesystem errors but it seems like a
reasonable thing to do and would allow us to simplify a lot of our code
to `errors.Is(err, fs.ErrNotExist)` instead of
`package.IsErr...NotExist(err)`
I am open to suggestions to use a different base error - perhaps
`models/db.ErrNotExist` if that would be felt to be better.
Signed-off-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: delvh <dev.lh@web.de> 
							
						 
						
							2022-10-18 07:50:37 +02:00  
				
					
						
							
							
								 
						
							
								52c2e82813 
								
							 
						 
						
							
							
								
								Custom regexp external issues ( #17624 )  
							
							... 
							
							
							
							* Implement custom regular expression for external issue tracking.
Signed-off-by: Alexander Beyn <malex@fatelectrons.org>
* Fix syntax/style
* Update repo.go
* Set metas['regexp']
* gofmt
* fix some tests
* fix more tests
* refactor frontend
* use LRU cache for regexp
* Update modules/markup/html_internal_test.go
Co-authored-by: Alexander Beyn <malex@fatelectrons.org>
Co-authored-by: techknowlogick <techknowlogick@gitea.io>
Co-authored-by: Lauris BH <lauris@nix.lv>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> 
							
						 
						
							2022-06-10 13:39:53 +08:00  
				
					
						
							
							
								 
						
							
								0c759fd4de 
								
							 
						 
						
							
							
								
								feat: add DEFAULT_MERGE_STYLE to `repository.pull-request` section for repo init ( #19751 )  
							
							
							
						 
						
							2022-06-02 23:45:54 -04:00  
				
					
						
							
							
								 
						
							
								fd7d83ace6 
								
							 
						 
						
							
							
								
								Move almost all functions' parameter db.Engine to context.Context ( #19748 )  
							
							... 
							
							
							
							* Move almost all functions' parameter db.Engine to context.Context
* remove some unnecessary wrap functions 
							
						 
						
							2022-05-20 22:08:52 +08:00  
				
					
						
							
							
								 
						
							
								368baf9e77 
								
							 
						 
						
							
							
								
								Use Vue to refactor pull merge UI ( #19650 )  
							
							... 
							
							
							
							* Use Vue to refactor pull merge UI
* add comments
* fix comments
* small fine tune
* fix tests
* adopt new pull default messages
* clean up
Co-authored-by: 6543 <6543@obermui.de> 
							
						 
						
							2022-05-12 21:39:02 +08:00  
				
					
						
							
							
								 
						
							
								d4834071da 
								
							 
						 
						
							
							
								
								Repository level enable package or disable ( #19323 )  
							
							
							
						 
						
							2022-05-08 17:51:50 +02:00  
				
					
						
							
							
								 
						
							
								4344a64107 
								
							 
						 
						
							
							
								
								Allow custom default merge message with .gitea/default_merge_message/<merge_style>_TEMPLATE.md ( #18177 )  
							
							... 
							
							
							
							* Allow custom default merge message with .gitea/MERGE_MESSAGE_<merge_style>_TEMPLATE.md
* Some improvements
* Follow some advices
* Fix bug
* Fix bug
* Fix lint
* Fix close comment
* Fix test
* Fix and docs
* Improve codes
* Update docs and remove unnecessary variables
* return error for GetDefaultMergeMessage
* Fix test
* improve code
* ignore unknow unit type
* return error for GetDefaultMergeMessage
* Update services/pull/merge.go
* Some improvements
* Follow some advices
* Fix bug
* Fix lint
* Improve codes
* Update docs and remove unnecessary variables
* return error for GetDefaultMergeMessage
* improve code
* Handle deleted HeadRepo in GetDefaultMergeMessage
Signed-off-by: Andrew Thornton <art27@cantab.net>
* Fix test
* Fix test
Co-authored-by: zeripath <art27@cantab.net> 
							
						 
						
							2022-05-08 20:32:45 +08:00  
				
					
						
							
							
								 
						
							
								5184c83f6b 
								
							 
						 
						
							
							
								
								Add config option to disable "Update branch by rebase" ( #18745 )  
							
							
							
						 
						
							2022-03-04 03:30:49 -05:00  
				
					
						
							
							
								 
						
							
								de8e3948a5 
								
							 
						 
						
							
							
								
								Refactor auth package ( #17962 )  
							
							
							
						 
						
							2022-01-02 21:12:35 +08:00  
				
					
						
							
							
								 
						
							
								5723240490 
								
							 
						 
						
							
							
								
								Some repository refactors ( #17950 )  
							
							... 
							
							
							
							* some repository refactors
* remove unnecessary code
* Fix test
* Remove unnecessary banner 
							
						 
						
							2021-12-12 23:48:20 +08:00  
				
					
						
							
							
								 
						
							
								719bddcd76 
								
							 
						 
						
							
							
								
								Move repository model into models/repo ( #17933 )  
							
							... 
							
							
							
							* Some refactors related repository model
* Move more methods out of repository
* Move repository into models/repo
* Fix test
* Fix test
* some improvements
* Remove unnecessary function 
							
						 
						
							2021-12-10 09:27:50 +08:00