Merge pull request 'feat: add --assignee flag to pr create command' (#14) from feat/pr_assignees into main

Reviewed-on: https://codeberg.org/romaintb/fgj/pulls/14
This commit is contained in:
Romain Bertrand 2025-12-24 10:23:55 +01:00
commit daa51159ec

View file

@ -68,6 +68,7 @@ func init() {
prCreateCmd.Flags().StringP("body", "b", "", "Body for the pull request")
prCreateCmd.Flags().StringP("head", "H", "", "Head branch")
prCreateCmd.Flags().StringP("base", "B", "", "Base branch (default: main)")
prCreateCmd.Flags().StringSliceP("assignee", "a", []string{}, "Assign people by their login. Use \"@me\" to self-assign.")
prMergeCmd.Flags().StringP("repo", "R", "", "Repository in owner/name format")
prMergeCmd.Flags().String("merge-method", "merge", "Merge method: merge, rebase, squash")
@ -173,6 +174,7 @@ func runPRCreate(cmd *cobra.Command, args []string) error {
body, _ := cmd.Flags().GetString("body")
head, _ := cmd.Flags().GetString("head")
base, _ := cmd.Flags().GetString("base")
assignees, _ := cmd.Flags().GetStringSlice("assignee")
if base == "" {
base = "main"
@ -201,11 +203,26 @@ func runPRCreate(cmd *cobra.Command, args []string) error {
return err
}
// Resolve @me in assignees
resolvedAssignees := make([]string, 0, len(assignees))
for _, assignee := range assignees {
if assignee == "@me" {
user, _, err := client.GetMyUserInfo()
if err != nil {
return fmt.Errorf("failed to get current user info: %w", err)
}
resolvedAssignees = append(resolvedAssignees, user.UserName)
} else {
resolvedAssignees = append(resolvedAssignees, assignee)
}
}
pr, _, err := client.CreatePullRequest(owner, name, gitea.CreatePullRequestOption{
Title: title,
Body: body,
Head: head,
Base: base,
Title: title,
Body: body,
Head: head,
Base: base,
Assignees: resolvedAssignees,
})
if err != nil {
return fmt.Errorf("failed to create pull request: %w", err)