用 GitHub 的 Web 界面并不麻烦,还是好奇能不能直接从 Emacs 创建一个 GitHub 项目,顺便把本地仓库的 git remote 也设置好?类似于 hub-create(1) - Create a new repository on GitHub and add a git remote for it.
magithub就可以在emacs fork别人仓库,create repo应该不是难事
刚刚试了试,使用 ghub.el
非常容易,创建一个新项目:
(ghub-post "/user/repos" '((name . "hello-world")))
写成一个命令方便使用:
(defun chunyang-github-create (&optional private)
"Create a new repository on GitHub and add a git remote for it."
(interactive "P")
(let* ((git-root (or (locate-dominating-file default-directory ".git")
(user-error "Not a git repository")))
(basename (file-name-nondirectory (directory-file-name git-root)))
(response (ghub-post "/user/repos" `((name . ,basename)
(private . ,private)))))
(call-process-shell-command
(concat "git remote add origin " (alist-get 'clone_url response)))
(message "%s" (alist-get 'html_url response))))
如果你想试试,不妨加个 C-u
来创建一个私有项目(免费)。
3 个赞
请问如果想 不限制在特定 /usr/repo/,而是比如在dired中对任意repo进行创建,有什么好办法吗?
/user/repos
是 API,即:https://api.github.com/user/repos
,不是文件夹。
UPDATE:新建 GitHub 项目不需要一个现成的 Git 仓库,该主题的原标题可能有误导,所以我把「GitHub 仓库」改成了「GitHub 项目」。
我觉得可以直接给forge
提交一个 requirement request,用ghub
不是难事。
用dired的形式管理repo,听起来梦幻了点
还没用过 forge
,用 GitHub 与他人协作的机会不多,没什么动力尝试这类工具。
没仔细看懂ghub-post这个函数说明,再研究研究
其实我也基本只用一些基本操作。 forge
查看 issue,PR 之类的很方便,功能和 magithub
类似,但集成的更好。是magit
作者的新作品,所以集成很好,功能也越来越强大,支持 Github,Gitlab,Bitbucket之类的。内部直接调用 ghub库,效率很不错,基本都是异步操作。
1 个赞