Earl Warren 
								
							 
						 
						
							
							
								
							
							
	9e6f722f94  
						 
						
							
							
								
								
								fix: only send Forgejo Actions notifications to one user ( #8227 )  
							
							... 
							
							
							
							
							- If the run was attributed to a system user (which is the case for scheduled runs for instance), ignore it and fallback to the mail of the owner. System users may have email addresses, but they are not to be used.
- If the owner is a system user or an organization with no email associated with it, do nothing.
- If a user with an email exists, check if they did not disable notifications and send the email.
Refs: https://codeberg.org/forgejo/forgejo/issues/8187 
Refs: https://codeberg.org/forgejo/forgejo/issues/8233 
## Checklist
The [contributor guide](https://forgejo.org/docs/next/contributor/ ) contains information that will be helpful to first time contributors. There also are a few [conditions for merging Pull Requests in Forgejo repositories](https://codeberg.org/forgejo/governance/src/branch/main/PullRequestsAgreement.md ). You are also welcome to join the [Forgejo development chatroom](https://matrix.to/#/#forgejo-development:matrix.org ).
### Tests
- I added test coverage for Go changes...
  - [x] in their respective `*_test.go` for unit tests.
### Documentation
- [x] I did not document these changes and I do not expect someone else to do it.
### Release notes
- [x] I do not want this change to show in the release notes.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/8227 
Reviewed-by: Christopher Besch <mail@chris-besch.com>
Co-authored-by: Earl Warren <contact@earl-warren.org>
Co-committed-by: Earl Warren <contact@earl-warren.org> 
							
						 
						
							2025-06-21 12:15:38 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									famfo 
								
							 
						 
						
							
							
								
							
							
	77b0275572  
						 
						
							
							
								
								
								feat(activitiypub): enable HTTP signatures on all ActivityPub endpoints ( #7035 )  
							
							... 
							
							
							
							
							- Set the right keyID and use the right signing keys for outgoing requests.
- Verify the HTTP signature of all incoming requests, except for the server actor.
- Caches keys of incoming requests for users and servers actors.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7035 
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: famfo <famfo@famfo.xyz>
Co-committed-by: famfo <famfo@famfo.xyz> 
							
						 
						
							2025-04-03 15:24:15 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Gusted 
								
							 
						 
						
							
							
								
							
							
	2457f5ff22  
						 
						
							
							
								
								
								chore: branding import path ( #7337 )  
							
							... 
							
							
							
							
							- Massive replacement of changing `code.gitea.io/gitea` to `forgejo.org`.
- Resolves  forgejo/discussions#258 
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/7337 
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: Michael Kriese <michael.kriese@gmx.de>
Reviewed-by: Beowulf <beowulf@beocode.eu>
Reviewed-by: Panagiotis "Ivory" Vasilopoulos <git@n0toose.net>
Co-authored-by: Gusted <postmaster@gusted.xyz>
Co-committed-by: Gusted <postmaster@gusted.xyz> 
							
						 
						
							2025-03-27 19:40:14 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									0ko 
								
							 
						 
						
							
							
								
							
							
	d1d78c1b14  
						 
						
							
							
								
								
								fix(commenter roles): don't give system users roles ( #6766 )  
							
							... 
							
							
							
							
							Currently on every pull request Ghost would have a misleading "First-time contributor" role.
Also, if the issue author is a Ghost, all other ghosts who commented will be labeled as authors even if they are different ghosts.
I've added a missing check to abort all other permission and contribution checks early if the user is a ghost. Also applies to other system users, as suggested by @earl-warren.
Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/6766 
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: 0ko <0ko@noreply.codeberg.org>
Co-committed-by: 0ko <0ko@noreply.codeberg.org> 
							
						 
						
							2025-02-05 17:34:45 +00:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Gergely Nagy 
								
							 
						 
						
							
							
								
							
							
	
	
	f121e87aa6 
 
						 
						
							
							
								
								
								activitypub: Implement an instance-wide actor  
							
							... 
							
							
							
							
							An instance-wide actor is required for outgoing signed requests that are
done on behalf of the instance, rather than on behalf of other actors.
Such things include updating profile information, or fetching public
keys.
Signed-off-by: Gergely Nagy <forgejo@gergo.csillger.hu> 
							
						 
						
							2024-08-05 10:50:26 +02:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Loïc Dachary 
								
							 
						 
						
							
							
								
							
							
	
	
	ef25d18d9c 
 
						 
						
							
							
								
								
								[BRANDING] reserve forgejo-actions username  
							
							... 
							
							
							
							
							(cherry picked from commit 2a25be788bb270d5815ce7382cc71e665400ea1ef5b2c691f13df97adfef494f6eafc1822e3d2c837460f12568f6cd70881ec669ce81731d5a433e02c1a4dc150cdd1c971c6c8d2dcd9b1eb6bb8fd275d4b71fe96ee204ec0b238d9f1174bde314a7d5ba48b3ad5a3071ed4b7c69d63324ccb69249e893db78f156427bc3d4a1a60283b1855f55319815d9b1c4fcbfd297fb58c8522269c24e3e8b1e9ec4737a70439970c17e6146c1a87adf6d58698985e17343fd4dc3ebcad31bf1639ed2a9b6dea00d9279bc850591a15cee3ad88f11465501f5b2e59b9f62f774dd2e5f525d9b489fd8a560c820562a084d732317e1bb077d6e 
							
						 
						
							2024-02-05 16:05:01 +01:00 
							
								 
							
							
								 
							
						 
					 
				
					
						
							
								
								
									Nanguan Lin 
								
							 
						 
						
							
							
								
							
							
	
	
	881806a50b 
 
						 
						
							
							
								
								
								Replace -1 with GhostUserID ( #27703 )  
							
							
							
							
						 
						
							2023-10-20 14:43:08 +00: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