Loïc Dachary 
								
							 
						 
						
							
							
								
							
							
	
	
	b8a02ef220 
 
						 
						
							
							
								
								
								[BRANDING] X-Forgejo-OTP can be used instead of X-Gitea-OTP  
							
							... 
							
							
							
							
							(cherry picked from commit 7b0549cd7013e10a65d965bdd73cf264eba8bb924c49b1a75993b4d06406e2bc5f36d92bee76f9df3d8a1b4a9f99dd092cd00fdbd0220470b277a1833eece7fbb44838fc9e11b76ed541cfdcdfb5b65c377dc48cdcacc862f411ac75ef101f08f2d9f7c5e4096f0b64bf5876f0627dc60637e5ef3101774becb9e8867c64f0ae72fe8dd6ec7862b36723e52bhttps://codeberg.org/forgejo/forgejo/pulls/1466 
(cherry picked from commit 5c378e0cb81d876028190f72002d66da2556eb13c01688cd90af4bba832933ca322c2ehttps://codeberg.org/forgejo/forgejo/pulls/1739 
(cherry picked from commit c18e374d4427c4797c9f46588e0fea 
							
						 
						
							2023-12-04 13:55:50 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									KN4CK3R 
								
							 
						 
						
							
							
								
							
							
	
	
	4f4fea734c 
 
						 
						
							
							
								
								
								Unify two factor check ( #27915 )  
							
							... 
							
							
							
							
							Fixes  #27819 
We have support for two factor logins with the normal web login and with
basic auth. For basic auth the two factor check was implemented at three
different places and you need to know that this check is necessary. This
PR moves the check into the basic auth itself. 
						
							2023-11-06 08:22:39 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lunny Xiao 
								
							 
						 
						
							
							
								
							
							
	
	
	5c9fbcca00 
 
						 
						
							
							
								
								
								Fix attachment download bug ( #27486 )  
							
							
							
							
						 
						
							2023-10-10 15:33:56 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									JakobDev 
								
							 
						 
						
							
							
								
							
							
	
	
	c548dde205 
 
						 
						
							
							
								
								
								More refactoring of db.DefaultContext ( #27083 )  
							
							... 
							
							
							
							
							Next step of #27065  
							
						 
						
							2023-09-15 06:13:19 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									JakobDev 
								
							 
						 
						
							
							
								
							
							
	
	
	76659b1114 
 
						 
						
							
							
								
								
								Reduce usage of db.DefaultContext ( #27073 )  
							
							... 
							
							
							
							
							Part of #27065 
This reduces the usage of `db.DefaultContext`. I think I've got enough
files for the first PR. When this is merged, I will continue working on
this.
Considering how many files this PR affect, I hope it won't take to long
to merge, so I don't end up in the merge conflict hell.
---------
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com> 
							
						 
						
							2023-09-14 17:09:32 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									KN4CK3R 
								
							 
						 
						
							
							
								
							
							
	
	
	0eebeeec90 
 
						 
						
							
							
								
								
								Remove Named interface ( #26913 )  
							
							... 
							
							
							
							
							`Named` is implemented by every `Method` and future implementations
should implement the method too. 
							
						 
						
							2023-09-05 15:58:30 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									John Olheiser 
								
							 
						 
						
							
							
								
							
							
	
	
	5e36024105 
 
						 
						
							
							
								
								
								Require repo scope for PATs for private repos and basic authentication ( #24362 )  
							
							... 
							
							
							
							
							> The scoped token PR just checked all API routes but in fact, some web
routes like `LFS`, git `HTTP`, container, and attachments supports basic
auth. This PR added scoped token check for them.
---------
Signed-off-by: jolheiser <john.olheiser@gmail.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> 
							
						 
						
							2023-04-26 19:24:03 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Jason Song 
								
							 
						 
						
							
							
								
							
							
	
	
	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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lunny Xiao 
								
							 
						 
						
							
							
								
							
							
	
	
	ca67c5a8a7 
 
						 
						
							
							
								
								
								refactor auth interface to return error when verify failure ( #22119 )  
							
							... 
							
							
							
							
							This PR changed the Auth interface signature from 
`Verify(http *http.Request, w http.ResponseWriter, store DataStore, sess
SessionStore) *user_model.User`
to 
`Verify(http *http.Request, w http.ResponseWriter, store DataStore, sess
SessionStore) (*user_model.User, error)`.
There is a new return argument `error` which means the verification
condition matched but verify process failed, we should stop the auth
process.
Before this PR, when return a `nil` user, we don't know the reason why
it returned `nil`. If the match condition is not satisfied or it
verified failure? For these two different results, we should have
different handler. If the match condition is not satisfied, we should
try next auth method and if there is no more auth method, it's an
anonymous user. If the condition matched but verify failed, the auth
process should be stop and return immediately.
This will fix  #20563 
Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: Jason Song <i@wolfogre.com> 
							
						 
						
							2022-12-28 13:53:28 +08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lunny Xiao 
								
							 
						 
						
							
							
								
							
							
	
	
	0a7d3ff786 
 
						 
						
							
							
								
								
								refactor some functions to support ctx as first parameter ( #21878 )  
							
							... 
							
							
							
							
							Co-authored-by: KN4CK3R <admin@oldschoolhack.me>
Co-authored-by: Lauris BH <lauris@nix.lv> 
							
						 
						
							2022-12-03 10:48:26 +08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									flynnnnnnnnnn 
								
							 
						 
						
							
							
								
							
							
	
	
	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 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lunny Xiao 
								
							 
						 
						
							
							
								
							
							
	
	
	1d8543e7db 
 
						 
						
							
							
								
								
								Move some files into models' sub packages ( #20262 )  
							
							... 
							
							
							
							
							* Move some files into models' sub packages
* Move functions
* merge main branch
* Fix check
* fix check
* Fix some tests
* Fix lint
* Fix lint
* Revert lint changes
* Fix error comments
* Fix lint
Co-authored-by: 6543 <6543@obermui.de> 
							
						 
						
							2022-08-25 10:31:57 +08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									KN4CK3R 
								
							 
						 
						
							
							
								
							
							
	
	
	1d332342db 
 
						 
						
							
							
								
								
								Add Package Registry ( #16510 )  
							
							... 
							
							
							
							
							* Added package store settings.
* Added models.
* Added generic package registry.
* Added tests.
* Added NuGet package registry.
* Moved service index to api file.
* Added NPM package registry.
* Added Maven package registry.
* Added PyPI package registry.
* Summary is deprecated.
* Changed npm name.
* Sanitize project url.
* Allow only scoped packages.
* Added user interface.
* Changed method name.
* Added missing migration file.
* Set page info.
* Added documentation.
* Added documentation links.
* Fixed wrong error message.
* Lint template files.
* Fixed merge errors.
* Fixed unit test storage path.
* Switch to json module.
* Added suggestions.
* Added package webhook.
* Add package api.
* Fixed swagger file.
* Fixed enum and comments.
* Fixed NuGet pagination.
* Print test names.
* Added api tests.
* Fixed access level.
* Fix User unmarshal.
* Added RubyGems package registry.
* Fix lint.
* Implemented io.Writer.
* Added support for sha256/sha512 checksum files.
* Improved maven-metadata.xml support.
* Added support for symbol package uploads.
* Added tests.
* Added overview docs.
* Added npm dependencies and keywords.
* Added no-packages information.
* Display file size.
* Display asset count.
* Fixed filter alignment.
* Added package icons.
* Formatted instructions.
* Allow anonymous package downloads.
* Fixed comments.
* Fixed postgres test.
* Moved file.
* Moved models to models/packages.
* Use correct error response format per client.
* Use simpler search form.
* Fixed IsProd.
* Restructured data model.
* Prevent empty filename.
* Fix swagger.
* Implemented user/org registry.
* Implemented UI.
* Use GetUserByIDCtx.
* Use table for dependencies.
* make svg
* Added support for unscoped npm packages.
* Add support for npm dist tags.
* Added tests for npm tags.
* Unlink packages if repository gets deleted.
* Prevent user/org delete if a packages exist.
* Use package unlink in repository service.
* Added support for composer packages.
* Restructured package docs.
* Added missing tests.
* Fixed generic content page.
* Fixed docs.
* Fixed swagger.
* Added missing type.
* Fixed ambiguous column.
* Organize content store by sha256 hash.
* Added admin package management.
* Added support for sorting.
* Add support for multiple identical versions/files.
* Added missing repository unlink.
* Added file properties.
* make fmt
* lint
* Added Conan package registry.
* Updated docs.
* Unify package names.
* Added swagger enum.
* Use longer TEXT column type.
* Removed version composite key.
* Merged package and container registry.
* Removed index.
* Use dedicated package router.
* Moved files to new location.
* Updated docs.
* Fixed JOIN order.
* Fixed GROUP BY statement.
* Fixed GROUP BY #2 .
* Added symbol server support.
* Added more tests.
* Set NOT NULL.
* Added setting to disable package registries.
* Moved auth into service.
* refactor
* Use ctx everywhere.
* Added package cleanup task.
* Changed packages path.
* Added container registry.
* Refactoring
* Updated comparison.
* Fix swagger.
* Fixed table order.
* Use token auth for npm routes.
* Enabled ReverseProxy auth.
* Added packages link for orgs.
* Fixed anonymous org access.
* Enable copy button for setup instructions.
* Merge error
* Added suggestions.
* Fixed merge.
* Handle "generic".
* Added link for TODO.
* Added suggestions.
* Changed temporary buffer filename.
* Added suggestions.
* Apply suggestions from code review
Co-authored-by: Thomas Boerger <thomas@webhippie.de>
* Update docs/content/doc/packages/nuget.en-us.md
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
Co-authored-by: Thomas Boerger <thomas@webhippie.de> 
							
						 
						
							2022-03-30 16:42:47 +08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									6543 
								
							 
						 
						
							
							
								
							
							
	
	
	54e9ee37a7 
 
						 
						
							
							
								
								
								format with gofumpt ( #18184 )  
							
							... 
							
							
							
							
							* gofumpt -w -l .
* gofumpt -w -l -extra .
* Add linter
* manual fix
* change make fmt 
							
						 
						
							2022-01-20 18:46:10 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lunny Xiao 
								
							 
						 
						
							
							
								
							
							
	
	
	a666829a37 
 
						 
						
							
							
								
								
								Move user related model into models/user ( #17781 )  
							
							... 
							
							
							
							
							* Move user related model into models/user
* Fix lint for windows
* Fix windows lint
* Fix windows lint
* Move some tests in models
* Merge 
							
						 
						
							2021-11-24 17:49:20 +08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									zeripath 
								
							 
						 
						
							
							
								
							
							
	
	
	f8ec43dbc7 
 
						 
						
							
							
								
								
								Extract constant names out for the ReverseProxy and Basic authentication methods ( #17735 )  
							
							... 
							
							
							
							
							In order to reduce load on the GC extract out the constant names of the Basic and ReverseProxy methods.
As mentioned in https://github.com/go-gitea/gitea/pull/15119#discussion_r730352176 
Signed-off-by: Andrew Thornton <art27@cantab.net> 
							
						 
						
							2021-11-20 23:33:18 +08:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Michael Grigoryan 
								
							 
						 
						
							
							
								
							
							
	
	
	47448083a1 
 
						 
						
							
							
								
								
								Minor readability patch. ( #17627 )  
							
							
							
							
						 
						
							2021-11-12 18:27:18 -05:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									zeripath 
								
							 
						 
						
							
							
								
							
							
	
	
	27b351aba5 
 
						 
						
							
							
								
								
								Make LDAP be able to skip local 2FA ( #16954 )  
							
							... 
							
							
							
							
							This PR extends #16594  to allow LDAP to be able to be set to skip local 2FA too. The technique used here would be extensible to PAM and SMTP sources.
Signed-off-by: Andrew Thornton <art27@cantab.net> 
							
						 
						
							2021-09-17 12:43:47 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									zeripath 
								
							 
						 
						
							
							
								
							
							
	
	
	a75b2f2842 
 
						 
						
							
							
								
								
								Allow BASIC authentication access to /:owner/:repo/releases/download/* ( #16916 )  
							
							... 
							
							
							
							
							Duplicate #15987  to allow access to releases download through BASIC authentication.
Fix  #16914 
Signed-off-by: Andrew Thornton <art27@cantab.net> 
							
						 
						
							2021-09-02 16:48:48 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									zeripath 
								
							 
						 
						
							
							
								
							
							
	
	
	5d2e11eedb 
 
						 
						
							
							
								
								
								Refactor: Move login out of models ( #16199 )  
							
							... 
							
							
							
							
							`models` does far too much. In particular it handles all `UserSignin`.
It shouldn't be responsible for calling LDAP, SMTP or PAM for signing in.
Therefore we should move this code out of `models`.
This code has to depend on `models` - therefore it belongs in `services`.
There is a package in `services` called `auth` and clearly this functionality belongs in there.
Plan:
- [x] Change `auth.Auth` to `auth.Method` - as they represent methods of authentication.
- [x] Move `models.UserSignIn` into `auth`
- [x] Move `models.ExternalUserLogin`
- [x] Move most of the `LoginVia*` methods to `auth` or subpackages
- [x] Move Resynchronize functionality to `auth`
  - Involved some restructuring of `models/ssh_key.go` to reduce the size of this massive file and simplify its files.
- [x] Move the rest of the LDAP functionality in to the ldap subpackage
- [x] Re-factor the login sources to express an interfaces `auth.Source`?
  - I've done this through some smaller interfaces Authenticator and Synchronizable - which would allow us to extend things in future
- [x] Now LDAP is out of models - need to think about modules/auth/ldap and I think all of that functionality might just be moveable
- [x] Similarly a lot Oauth2 functionality need not be in models too and should be moved to services/auth/source/oauth2
  - [x] modules/auth/oauth2/oauth2.go uses xorm... This is naughty - probably need to move this into models.
  - [x] models/oauth2.go - mostly should be in modules/auth/oauth2 or services/auth/source/oauth2 
- [x] More simplifications of login_source.go may need to be done
- Allow wiring in of notify registration -  *this can now easily be done - but I think we should do it in another PR*  - see #16178  
- More refactors...?
  - OpenID should probably become an auth Method but I think that can be left for another PR
  - Methods should also probably be cleaned up  - again another PR I think.
  - SSPI still needs more refactors.* Rename auth.Auth auth.Method
* Restructure ssh_key.go
- move functions from models/user.go that relate to ssh_key to ssh_key
- split ssh_key.go to try create clearer function domains for allow for
future refactors here.
Signed-off-by: Andrew Thornton <art27@cantab.net> 
							
						 
						
							2021-07-24 11:16:34 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Lunny Xiao 
								
							 
						 
						
							
							
								
							
							
	
	
	fb3ffeb18d 
 
						 
						
							
							
								
								
								Add sso.Group, context.Auth, context.APIAuth to allow auth special routes ( #16086 )  
							
							... 
							
							
							
							
							* Add sso.Group, context.Auth, context.APIAuth to allow auth special routes
* Remove unnecessary check
* Rename sso -> auth
* remove unused method of Auth interface 
							
						 
						
							2021-06-09 19:53:16 +02:00