mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Use actions job link as commit status URL instead of run link (#24023)
A commit status is bound to a job, not a run. --------- Co-authored-by: silverwind <me@silverwind.io>
This commit is contained in:
		@@ -108,6 +108,11 @@ func createCommitStatus(ctx context.Context, job *actions_model.ActionRunJob) er
 | 
			
		||||
		description = "Blocked by required conditions"
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	index, err := getIndexOfJob(ctx, job)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return fmt.Errorf("getIndexOfJob: %w", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	creator := user_model.NewActionsUser()
 | 
			
		||||
	if err := git_model.NewCommitStatus(ctx, git_model.NewCommitStatusOptions{
 | 
			
		||||
		Repo:    repo,
 | 
			
		||||
@@ -115,7 +120,7 @@ func createCommitStatus(ctx context.Context, job *actions_model.ActionRunJob) er
 | 
			
		||||
		Creator: creator,
 | 
			
		||||
		CommitStatus: &git_model.CommitStatus{
 | 
			
		||||
			SHA:         sha,
 | 
			
		||||
			TargetURL:   run.Link(),
 | 
			
		||||
			TargetURL:   fmt.Sprintf("%s/jobs/%d", run.Link(), index),
 | 
			
		||||
			Description: description,
 | 
			
		||||
			Context:     ctxname,
 | 
			
		||||
			CreatorID:   creator.ID,
 | 
			
		||||
@@ -142,3 +147,17 @@ func toCommitStatus(status actions_model.Status) api.CommitStatusState {
 | 
			
		||||
		return api.CommitStatusError
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getIndexOfJob(ctx context.Context, job *actions_model.ActionRunJob) (int, error) {
 | 
			
		||||
	// TODO: store job index as a field in ActionRunJob to avoid this
 | 
			
		||||
	jobs, err := actions_model.GetRunJobsByRunID(ctx, job.RunID)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, err
 | 
			
		||||
	}
 | 
			
		||||
	for i, v := range jobs {
 | 
			
		||||
		if v.ID == job.ID {
 | 
			
		||||
			return i, nil
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return 0, nil
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user