Send owner/repo as GITHUB_REPOSITORY in runner task context
8791df5 · gmorell · 2026-06-25 14:36
Message
{commit_body(@commit)}
Files changed
modified
lib/git_gud_web/controllers/runner_controller.ex
+13
−2
@@ -192,7 +192,10 @@ defmodule GitGudWeb.RunnerController do
| 192 | 192 | |
| 193 | 193 | defp build_task(job) do |
| 194 | 194 | run = GitGud.Repo.get!(GitGud.Workflows.WorkflowRun, job.workflow_run_id) |
| 195 | − repo = GitGud.Repo.get!(GitGud.Repositories.Repository, run.repository_id) | |
| 195 | + repo = | |
| 196 | + GitGud.Repo.get!(GitGud.Repositories.Repository, run.repository_id) | |
| 197 | + |> GitGud.Repo.preload([:owner, :organization]) | |
| 198 | + | |
| 196 | 199 | {secrets, vars} = GitGud.Secrets.resolve_for(repo) |
| 197 | 200 | token = GitGud.Workflows.RunnerJwt.mint(job, run) |
| 198 | 201 |
@@ -253,11 +256,19 @@ defmodule GitGudWeb.RunnerController do
| 253 | 256 | actions_url = |
| 254 | 257 | Application.get_env(:git_gud, :default_actions_url, "https://code.forgejo.org") |
| 255 | 258 | |
| 259 | + # GITHUB_REPOSITORY must be the fully-qualified `owner/repo` — | |
| 260 | + # actions/checkout rejects a bare repo name ("Invalid repository | |
| 261 | + # 'gitgud'. Expected format {owner}/{repo}."). `repo_handle/1` | |
| 262 | + # resolves the org or user namespace (needs :owner + :organization | |
| 263 | + # preloaded, done in build_task/1). | |
| 264 | + owner = GitGud.Repositories.Storage.repo_handle(repo) | |
| 265 | + | |
| 256 | 266 | %{ |
| 257 | 267 | "event" => run.trigger || "push", |
| 258 | 268 | "ref" => run.head_ref || "", |
| 259 | 269 | "sha" => if(run.head_sha, do: GitGud.Git.to_hex(run.head_sha), else: ""), |
| 260 | − "repository" => repo.name, | |
| 270 | + "repository" => owner <> "/" <> repo.name, | |
| 271 | + "repository_owner" => owner, | |
| 261 | 272 | "run_number" => maybe_int_to_string(run.number), |
| 262 | 273 | "workflow" => run.workflow_name || run.workflow_path, |
| 263 | 274 | "job" => job.job_id, |
Parents: f87fc1d