mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00:00 
			
		
		
		
	Require approval to run actions for fork pull request (#22803)
Currently, Gitea will run actions automatically which are triggered by fork pull request. It's a security risk, people can create a PR and modify the workflow yamls to execute a malicious script. So we should require approval for first-time contributors, which is the default strategy of a public repo on GitHub, see [Approving workflow runs from public forks](https://docs.github.com/en/actions/managing-workflow-runs/approving-workflow-runs-from-public-forks). Current strategy: - don't need approval if it's not a fork PR; - always need approval if the user is restricted; - don't need approval if the user can write; - don't need approval if the user has been approved before; - otherwise, need approval. https://user-images.githubusercontent.com/9418365/217207121-badf50a8-826c-4425-bef1-d82d1979bc81.mov GitHub has an option for that, you can see that at `/<owner>/<repo>/settings/actions`, and we can support that later. <img width="835" alt="image" src="https://user-images.githubusercontent.com/9418365/217199990-2967e68b-e693-4e59-8186-ab33a1314a16.png"> --------- Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
		| @@ -3,7 +3,10 @@ | ||||
|     <div class="action-view-header"> | ||||
|       <div class="action-info-summary"> | ||||
|         {{ run.title }} | ||||
|         <button class="run_cancel" @click="cancelRun()" v-if="run.canCancel"> | ||||
|         <button class="run_approve" @click="approveRun()" v-if="run.canApprove"> | ||||
|           <i class="play circle outline icon"/> | ||||
|         </button> | ||||
|         <button class="run_cancel" @click="cancelRun()" v-else-if="run.canCancel"> | ||||
|           <i class="stop circle outline icon"/> | ||||
|         </button> | ||||
|       </div> | ||||
| @@ -97,6 +100,7 @@ const sfc = { | ||||
|         link: '', | ||||
|         title: '', | ||||
|         canCancel: false, | ||||
|         canApprove: false, | ||||
|         done: false, | ||||
|         jobs: [ | ||||
|           // { | ||||
| @@ -173,6 +177,10 @@ const sfc = { | ||||
|     cancelRun() { | ||||
|       this.fetchPost(`${this.run.link}/cancel`); | ||||
|     }, | ||||
|     // approve a run | ||||
|     approveRun() { | ||||
|       this.fetchPost(`${this.run.link}/approve`); | ||||
|     }, | ||||
|  | ||||
|     createLogLine(line) { | ||||
|       const div = document.createElement('div'); | ||||
| @@ -303,7 +311,15 @@ export function initRepositoryActionView() { | ||||
|     cursor: pointer; | ||||
|     transition:transform 0.2s; | ||||
|   }; | ||||
|   .run_cancel:hover{ | ||||
|   .run_approve { | ||||
|     border: none; | ||||
|     color: var(--color-green); | ||||
|     background-color: transparent; | ||||
|     outline: none; | ||||
|     cursor: pointer; | ||||
|     transition:transform 0.2s; | ||||
|   }; | ||||
|   .run_cancel:hover, .run_approve:hover { | ||||
|     transform:scale(130%); | ||||
|   }; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user