@@ -111,8 +111,8 @@ let pp_opam_repo fmt opam_repo =
111
111
let user, repo = opam_repo in
112
112
Format. fprintf fmt " %s/%s" user repo
113
113
114
- let open_pr ~dry_run ~changes ~remote_repo ~user ~distrib_user ~ branch ~token
115
- ~title ~ opam_repo ~auto_open ~yes ~draft pkg =
114
+ let open_pr ~dry_run ~changes ~remote_repo ~user ~branch ~token ~ title
115
+ ~opam_repo ~auto_open ~yes ~draft pkg =
116
116
Pkg. opam_descr pkg >> = fun (syn , _ ) ->
117
117
Pkg. opam_homepage pkg >> = fun homepage ->
118
118
Pkg. opam_doc pkg >> = fun doc ->
@@ -138,15 +138,14 @@ let open_pr ~dry_run ~changes ~remote_repo ~user ~distrib_user ~branch ~token
138
138
l " Opening %a to merge branch %a of %a into %a" Text.Pp. maybe_draft
139
139
(draft, " pull request" ) Text.Pp. commit branch Text.Pp. url remote_repo
140
140
pp_opam_repo opam_repo);
141
- Github. open_pr ~token ~dry_run ~title ~distrib_user ~user ~branch ~opam_repo
142
- ~draft msg pkg
141
+ Github. open_pr ~token ~dry_run ~title ~user ~branch ~opam_repo ~draft msg pkg
143
142
>> = function
144
143
| `Already_exists ->
145
144
App_log. blank_line () ;
146
145
App_log. success (fun l ->
147
146
l " The existing pull request for %a has been automatically updated."
148
147
Fmt. (styled `Bold string )
149
- (distrib_user ^ " :" ^ branch));
148
+ (user ^ " :" ^ branch));
150
149
Ok 0
151
150
| `Url url -> (
152
151
let msg () =
@@ -197,25 +196,36 @@ let submit ~token ~dry_run ~yes ~opam_repo ~user local_repo remote_repo pkgs
197
196
list_map Pkg. name pkgs >> = fun names ->
198
197
let title = strf " [new release] %a (%s)" (pp_list Fmt. string ) names version in
199
198
Pkg. publish_msg pkg >> = fun changes ->
200
- Pkg. infer_github_repo pkg >> = fun { owner; repo } ->
199
+ let gh_repo = Rresult.R. to_option (Pkg. infer_github_repo pkg) in
200
+ let changes =
201
+ match gh_repo with
202
+ | Some { owner; repo } -> Text. rewrite_github_refs ~user: owner ~repo changes
203
+ | None -> changes
204
+ in
201
205
let user =
202
206
match user with
203
- | Some user -> user (* from the .yaml configuration file *)
207
+ | Some user -> Ok user (* from the .yaml configuration file *)
204
208
| None -> (
205
209
match Github.Parse. user_from_remote remote_repo with
206
- | Some user -> user (* trying to infer it from the remote repo URI *)
207
- | None -> owner)
210
+ | Some user -> Ok user (* trying to infer it from the remote repo URI *)
211
+ | None ->
212
+ Rresult.R. error_msg
213
+ " Could not determine on the behalf of which github user the \
214
+ opam-repository PR should be created.\n \
215
+ Try setting up your config using `dune-release config set user \
216
+ <username>`\n \
217
+ \ or passing one explicitly with `--user`." )
208
218
in
209
- let changes = Text. rewrite_github_refs ~ user: owner ~repo changes in
219
+ user >> = fun user ->
210
220
let msg = strf " %s\n\n %s\n " title changes in
211
221
App_log. status (fun l ->
212
222
l " Preparing %a to %a" Text.Pp. maybe_draft (draft, " pull request" )
213
223
pp_opam_repo opam_repo);
214
224
Opam. prepare ~dry_run ~msg ~local_repo ~remote_repo ~opam_repo ~version ~tag
215
225
names
216
226
>> = fun branch ->
217
- open_pr ~dry_run ~changes ~remote_repo ~user ~distrib_user: owner ~branch
218
- ~token ~title ~opam_repo ~ auto_open ~yes ~draft pkg
227
+ open_pr ~dry_run ~changes ~remote_repo ~user ~branch ~token ~title ~opam_repo
228
+ ~auto_open ~yes ~draft pkg
219
229
220
230
let field pkgs field =
221
231
match field with
0 commit comments