diff --git a/shortcuts/release/release.go b/shortcuts/release/release.go index 891ca3c..79e1c32 100644 --- a/shortcuts/release/release.go +++ b/shortcuts/release/release.go @@ -173,7 +173,11 @@ func Shortcuts(translators ...*i18n.Translator) []*common.Shortcut { if err != nil { return err } - env, err := ctx.CallAPI("GET", fmt.Sprintf("%s/releases/%s", ctx.RepoPath(), id), nil) + versionID, err := resolveVersionID(ctx, id) + if err != nil { + return err + } + env, err := ctx.CallAPI("GET", fmt.Sprintf("%s/releases/%s", ctx.RepoPath(), versionID), nil) if err != nil { return err } diff --git a/shortcuts/release/release_test.go b/shortcuts/release/release_test.go index 66ad35e..1791ea7 100644 --- a/shortcuts/release/release_test.go +++ b/shortcuts/release/release_test.go @@ -90,8 +90,18 @@ func TestReleaseEdit(t *testing.T) { func TestReleaseView(t *testing.T) { server := newReleaseTestServer(t, func(w http.ResponseWriter, r *http.Request) { - assertReleaseRequest(t, r, "GET", "/owner/repo/releases/v1.0.json") - writeReleaseJSON(t, w, map[string]interface{}{"tag_name": "v1.0", "name": "Version 1.0"}) + switch r.URL.Path { + case "/owner/repo/releases.json": + writeReleaseJSON(t, w, map[string]interface{}{ + "releases": []map[string]interface{}{ + {"tag_name": "v1.0", "id": "900001", "version_id": 7}, + }, + }) + case "/owner/repo/releases/7.json": + writeReleaseJSON(t, w, map[string]interface{}{"tag_name": "v1.0", "name": "Version 1.0"}) + default: + t.Fatalf("unexpected request: %s %s", r.Method, r.URL.Path) + } }) defer server.Close()