Skip to content

Instantly share code, notes, and snippets.

@amyreese
Created March 9, 2023 03:01
Show Gist options
  • Save amyreese/8a6da2ccb97cc16448f10e5837a8dec3 to your computer and use it in GitHub Desktop.
Save amyreese/8a6da2ccb97cc16448f10e5837a8dec3 to your computer and use it in GitHub Desktop.
version: 0.7.1
command: /Users/amethyst/workspace/ghstack/.venv/bin/ghstack
status: 18aa0a158 "Switch from argparse to click"
config_path = /Users/amethyst/.ghstackrc
conf = Config(proxy=None, github_oauth='<GITHUB_OAUTH>', github_username='amyreese', circle_token=None, fbsource_path='/Users/amethyst/local/fbsource', github_path='/Users/amethyst/local/ghstack-pytorch', default_project_dir='fbcode/caffe2', github_url='github.com', remote_name='upstream')
$ git remote get-url upstream
Using selector: KqueueSelector
git@github.com:ezyang/ghstack.git
# POST https://api.github.com/graphql
Request GraphQL query:
query ($owner: String!, $name: String!) {
repository(name: $name, owner: $owner) {
id
isFork
defaultBranchRef {
name
}
}
}
Request GraphQL variables:
{
"owner": "ezyang",
"name": "ghstack"
}
Starting new HTTPS connection (1): api.github.com:443
https://api.github.com:443 "POST /graphql HTTP/1.1" 200 None
Response status: 200
Response JSON:
{
"data": {
"repository": {
"id": "MDEwOlJlcG9zaXRvcnkxNTMwNDYyNzY=",
"isFork": false,
"defaultBranchRef": {
"name": "master"
}
}
}
}
$ git fetch --prune upstream
$ git merge-base upstream/master HEAD
42aaeac39a91942e9774c60623ebb3592940e3ad
$ git rev-list --header '^42aaeac39a91942e9774c60623ebb3592940e3ad' HEAD
18aa0a15849c3e6062a430319e283681e7ebe014
tree 61d915bdf479a06424ede662163019e84e5d168a
parent 7df1cd814b85156dbdc07f503dfc427669f7d415
author Amethyst Reese <amy@n7.gg> 1678238732 -0800
committer Amethyst Reese <amy@n7.gg> 1678319401 -0800
Switch from argparse to click
Replaces the use of argparse in `__main__.py` with a separate
`ghstack.cli` module that follows the standard click pattern for
defining a CLI with multiple commands. In the absence of a given
command, invokes the `submit` command to match previous behavior.
Benefits over argparse:
- commands are implemented as distinct functions
- options and arguments are defined as decorators on relevant commands
and therefore defined next to the code using those options
- potentially allows commands to be defined elsewhere, and imported and
attached to the command group in the cli module
Other notes:
- log manager and config/shell/github clients are now extracted into
a context manager that each command can use, with options for getting
a CircleCI token to use in the `status` command
- handling of `BaseException` was dropped, because that interferes with
expectations of click, and is not needed since click automatically
returns exit code 1 on abort/exception
- might be worth considering further refactoring these commands directly
onto each `ghstack.foo.main` function, but that would require making
decisions around how to handle context of shell/config/github clients,
etc.
\07df1cd814b85156dbdc07f503dfc427669f7d415
tree f68f466973b30a40638e3ea8f3671f9c078f7370
parent 42aaeac39a91942e9774c60623ebb3592940e3ad
author Amethyst Reese <amy@n7.gg> 1678252039 -0800
committer Amethyst Reese <amy@n7.gg> 1678318665 -0800
Switch to usort/ufmt for import sorting and formatting
ufmt presents a unified import sorting and formatting tool that builds
on usort[1] and black, and prevents any potential disagreement between
the two tools when running in tests/CI. usort furthermore uses a CST to
guarantee that modifications do not result in invalid syntax.
[1]: https://usort.readthedocs.io/en/stable/
\0
$ git rev-list --header '^42aaeac39a91942e9774c60623ebb3592940e3ad^@' 42aaeac39a91942e9774c60623ebb3592940e3ad
42aaeac39a91942e9774c60623ebb3592940e3ad
tree c52f64982e6a3ce7eeb8101e885efec1829fcb73
parent 687e272ed38d3c5e51efe825f90e2df8815ecc46
author Amethyst Reese <amy@n7.gg> 1678318434 -0800
committer GitHub <noreply@github.com> 1678318434 -0500
gpgsig -----BEGIN PGP SIGNATURE-----
wsBcBAABCAAQBQJkCRtiCRBK7hj4Ov3rIwAAEo8IAA6QtStg87U4rBSZjqtU59rq
YxigWTuWNTpsMDTdStJqI535mj7mxiZwO7+bbbiUYhYErk9K/N3W6K0eLF3GBLEg
hR7pE/ArVsUdDrRSusijH5eZ5dEEiEa1gv4OelTnH4Yh0cqApF8Qf1zqHXtRMh/C
yQN0Drk1ONGRk3WXbvgs2chFwVZO1odYnKD7aGoNw8wMpWCRcXIQnThdgHiwntuL
AR6UvZL/SxAPxcVrCRNc+wpKEwFHVvSfb3rw6jdxRO8VW+EzAsPdidWMfJOFyEWm
hOS1/T5jzX4MinE+ePwI1/DeGltPDpX7J+6Y3CQ92PSCTbOdFHZcn1Bg6unzIig=
=t6IY
-----END PGP SIGNATURE-----
Improve virtualenv developer experience (#135)
\0
$ git rev-parse --show-toplevel
/Users/amethyst/workspace/ghstack
$ git config --default /Users/amethyst/workspace/ghstack/.git/hooks --get core.hooksPath
/Users/amethyst/workspace/ghstack/.git/hooks
$ git for-each-ref refs/remotes/upstream/gh/amyreese '--format=%(refname)'
$ git rev-parse '7df1cd814b85156dbdc07f503dfc427669f7d415~^{tree}'
c52f64982e6a3ce7eeb8101e885efec1829fcb73
$ git config --get commit.gpgsign
$ git commit-tree -p 42aaeac39a91942e9774c60623ebb3592940e3ad f68f466973b30a40638e3ea8f3671f9c078f7370
de01dc0d09555b3fb0182ff4f7a9be56b03b9960
$ git push upstream de01dc0d09555b3fb0182ff4f7a9be56b03b9960:refs/heads/gh/amyreese/1/head 42aaeac39a91942e9774c60623ebb3592940e3ad:refs/heads/gh/amyreese/1/base
# stderr:
remote:
remote: GitHub found 1 vulnerability on ezyang/ghstack's default branch (1 moderate). To find out more, visit:
remote: https://github.com/ezyang/ghstack/security/dependabot/5
remote:
To github.com:ezyang/ghstack.git
* [new branch] de01dc0d09555b3fb0182ff4f7a9be56b03b9960 -> gh/amyreese/1/head
* [new branch] 42aaeac39a91942e9774c60623ebb3592940e3ad -> gh/amyreese/1/base
# post https://api.github.com/repos/ezyang/ghstack/pulls
Request body:
{
"title": "Switch to usort/ufmt for import sorting and formatting",
"head": "gh/amyreese/1/head",
"base": "gh/amyreese/1/base",
"body": "Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):\n* (to be filled)\n\nufmt presents a unified import sorting and formatting tool that builds\non usort[1] and black, and prevents any potential disagreement between\nthe two tools when running in tests/CI. usort furthermore uses a CST to\nguarantee that modifications do not result in invalid syntax.\n\n[1]: https://usort.readthedocs.io/en/stable/",
"maintainer_can_modify": true,
"draft": false
}
Starting new HTTPS connection (1): api.github.com:443
https://api.github.com:443 "POST /repos/ezyang/ghstack/pulls HTTP/1.1" 201 15218
Response status: 201
Response JSON:
{
"url": "https://api.github.com/repos/ezyang/ghstack/pulls/141",
"id": 1268660024,
"node_id": "PR_kwDOCR9NBM5Lnjc4",
"html_url": "https://github.com/ezyang/ghstack/pull/141",
"diff_url": "https://github.com/ezyang/ghstack/pull/141.diff",
"patch_url": "https://github.com/ezyang/ghstack/pull/141.patch",
"issue_url": "https://api.github.com/repos/ezyang/ghstack/issues/141",
"number": 141,
"state": "open",
"locked": false,
"title": "Switch to usort/ufmt for import sorting and formatting",
"user": {
"login": "amyreese",
"id": 6444,
"node_id": "MDQ6VXNlcjY0NDQ=",
"avatar_url": "https://avatars.githubusercontent.com/u/6444?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/amyreese",
"html_url": "https://github.com/amyreese",
"followers_url": "https://api.github.com/users/amyreese/followers",
"following_url": "https://api.github.com/users/amyreese/following{/other_user}",
"gists_url": "https://api.github.com/users/amyreese/gists{/gist_id}",
"starred_url": "https://api.github.com/users/amyreese/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/amyreese/subscriptions",
"organizations_url": "https://api.github.com/users/amyreese/orgs",
"repos_url": "https://api.github.com/users/amyreese/repos",
"events_url": "https://api.github.com/users/amyreese/events{/privacy}",
"received_events_url": "https://api.github.com/users/amyreese/received_events",
"type": "User",
"site_admin": false
},
"body": "Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):\n* (to be filled)\n\nufmt presents a unified import sorting and formatting tool that builds\non usort[1] and black, and prevents any potential disagreement between\nthe two tools when running in tests/CI. usort furthermore uses a CST to\nguarantee that modifications do not result in invalid syntax.\n\n[1]: https://usort.readthedocs.io/en/stable/",
"created_at": "2023-03-08T23:50:29Z",
"updated_at": "2023-03-08T23:50:29Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": null,
"assignee": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/ezyang/ghstack/pulls/141/commits",
"review_comments_url": "https://api.github.com/repos/ezyang/ghstack/pulls/141/comments",
"review_comment_url": "https://api.github.com/repos/ezyang/ghstack/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/ezyang/ghstack/issues/141/comments",
"statuses_url": "https://api.github.com/repos/ezyang/ghstack/statuses/de01dc0d09555b3fb0182ff4f7a9be56b03b9960",
"head": {
"label": "ezyang:gh/amyreese/1/head",
"ref": "gh/amyreese/1/head",
"sha": "de01dc0d09555b3fb0182ff4f7a9be56b03b9960",
"user": {
"login": "ezyang",
"id": 13564,
"node_id": "MDQ6VXNlcjEzNTY0",
"avatar_url": "https://avatars.githubusercontent.com/u/13564?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ezyang",
"html_url": "https://github.com/ezyang",
"followers_url": "https://api.github.com/users/ezyang/followers",
"following_url": "https://api.github.com/users/ezyang/following{/other_user}",
"gists_url": "https://api.github.com/users/ezyang/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ezyang/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ezyang/subscriptions",
"organizations_url": "https://api.github.com/users/ezyang/orgs",
"repos_url": "https://api.github.com/users/ezyang/repos",
"events_url": "https://api.github.com/users/ezyang/events{/privacy}",
"received_events_url": "https://api.github.com/users/ezyang/received_events",
"type": "User",
"site_admin": false
},
"repo": {
"id": 153046276,
"node_id": "MDEwOlJlcG9zaXRvcnkxNTMwNDYyNzY=",
"name": "ghstack",
"full_name": "ezyang/ghstack",
"private": false,
"owner": {
"login": "ezyang",
"id": 13564,
"node_id": "MDQ6VXNlcjEzNTY0",
"avatar_url": "https://avatars.githubusercontent.com/u/13564?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ezyang",
"html_url": "https://github.com/ezyang",
"followers_url": "https://api.github.com/users/ezyang/followers",
"following_url": "https://api.github.com/users/ezyang/following{/other_user}",
"gists_url": "https://api.github.com/users/ezyang/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ezyang/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ezyang/subscriptions",
"organizations_url": "https://api.github.com/users/ezyang/orgs",
"repos_url": "https://api.github.com/users/ezyang/repos",
"events_url": "https://api.github.com/users/ezyang/events{/privacy}",
"received_events_url": "https://api.github.com/users/ezyang/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/ezyang/ghstack",
"description": "Submit stacked diffs to GitHub on the command line",
"fork": false,
"url": "https://api.github.com/repos/ezyang/ghstack",
"forks_url": "https://api.github.com/repos/ezyang/ghstack/forks",
"keys_url": "https://api.github.com/repos/ezyang/ghstack/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/ezyang/ghstack/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/ezyang/ghstack/teams",
"hooks_url": "https://api.github.com/repos/ezyang/ghstack/hooks",
"issue_events_url": "https://api.github.com/repos/ezyang/ghstack/issues/events{/number}",
"events_url": "https://api.github.com/repos/ezyang/ghstack/events",
"assignees_url": "https://api.github.com/repos/ezyang/ghstack/assignees{/user}",
"branches_url": "https://api.github.com/repos/ezyang/ghstack/branches{/branch}",
"tags_url": "https://api.github.com/repos/ezyang/ghstack/tags",
"blobs_url": "https://api.github.com/repos/ezyang/ghstack/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/ezyang/ghstack/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/ezyang/ghstack/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/ezyang/ghstack/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/ezyang/ghstack/statuses/{sha}",
"languages_url": "https://api.github.com/repos/ezyang/ghstack/languages",
"stargazers_url": "https://api.github.com/repos/ezyang/ghstack/stargazers",
"contributors_url": "https://api.github.com/repos/ezyang/ghstack/contributors",
"subscribers_url": "https://api.github.com/repos/ezyang/ghstack/subscribers",
"subscription_url": "https://api.github.com/repos/ezyang/ghstack/subscription",
"commits_url": "https://api.github.com/repos/ezyang/ghstack/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/ezyang/ghstack/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/ezyang/ghstack/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/ezyang/ghstack/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/ezyang/ghstack/contents/{+path}",
"compare_url": "https://api.github.com/repos/ezyang/ghstack/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/ezyang/ghstack/merges",
"archive_url": "https://api.github.com/repos/ezyang/ghstack/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/ezyang/ghstack/downloads",
"issues_url": "https://api.github.com/repos/ezyang/ghstack/issues{/number}",
"pulls_url": "https://api.github.com/repos/ezyang/ghstack/pulls{/number}",
"milestones_url": "https://api.github.com/repos/ezyang/ghstack/milestones{/number}",
"notifications_url": "https://api.github.com/repos/ezyang/ghstack/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/ezyang/ghstack/labels{/name}",
"releases_url": "https://api.github.com/repos/ezyang/ghstack/releases{/id}",
"deployments_url": "https://api.github.com/repos/ezyang/ghstack/deployments",
"created_at": "2018-10-15T03:09:53Z",
"updated_at": "2023-03-08T00:55:34Z",
"pushed_at": "2023-03-08T23:50:28Z",
"git_url": "git://github.com/ezyang/ghstack.git",
"ssh_url": "git@github.com:ezyang/ghstack.git",
"clone_url": "https://github.com/ezyang/ghstack.git",
"svn_url": "https://github.com/ezyang/ghstack",
"homepage": null,
"size": 501,
"stargazers_count": 307,
"watchers_count": 307,
"language": "Python",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 48,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 40,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 48,
"open_issues": 40,
"watchers": 307,
"default_branch": "master"
}
},
"base": {
"label": "ezyang:gh/amyreese/1/base",
"ref": "gh/amyreese/1/base",
"sha": "42aaeac39a91942e9774c60623ebb3592940e3ad",
"user": {
"login": "ezyang",
"id": 13564,
"node_id": "MDQ6VXNlcjEzNTY0",
"avatar_url": "https://avatars.githubusercontent.com/u/13564?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ezyang",
"html_url": "https://github.com/ezyang",
"followers_url": "https://api.github.com/users/ezyang/followers",
"following_url": "https://api.github.com/users/ezyang/following{/other_user}",
"gists_url": "https://api.github.com/users/ezyang/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ezyang/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ezyang/subscriptions",
"organizations_url": "https://api.github.com/users/ezyang/orgs",
"repos_url": "https://api.github.com/users/ezyang/repos",
"events_url": "https://api.github.com/users/ezyang/events{/privacy}",
"received_events_url": "https://api.github.com/users/ezyang/received_events",
"type": "User",
"site_admin": false
},
"repo": {
"id": 153046276,
"node_id": "MDEwOlJlcG9zaXRvcnkxNTMwNDYyNzY=",
"name": "ghstack",
"full_name": "ezyang/ghstack",
"private": false,
"owner": {
"login": "ezyang",
"id": 13564,
"node_id": "MDQ6VXNlcjEzNTY0",
"avatar_url": "https://avatars.githubusercontent.com/u/13564?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/ezyang",
"html_url": "https://github.com/ezyang",
"followers_url": "https://api.github.com/users/ezyang/followers",
"following_url": "https://api.github.com/users/ezyang/following{/other_user}",
"gists_url": "https://api.github.com/users/ezyang/gists{/gist_id}",
"starred_url": "https://api.github.com/users/ezyang/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/ezyang/subscriptions",
"organizations_url": "https://api.github.com/users/ezyang/orgs",
"repos_url": "https://api.github.com/users/ezyang/repos",
"events_url": "https://api.github.com/users/ezyang/events{/privacy}",
"received_events_url": "https://api.github.com/users/ezyang/received_events",
"type": "User",
"site_admin": false
},
"html_url": "https://github.com/ezyang/ghstack",
"description": "Submit stacked diffs to GitHub on the command line",
"fork": false,
"url": "https://api.github.com/repos/ezyang/ghstack",
"forks_url": "https://api.github.com/repos/ezyang/ghstack/forks",
"keys_url": "https://api.github.com/repos/ezyang/ghstack/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/ezyang/ghstack/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/ezyang/ghstack/teams",
"hooks_url": "https://api.github.com/repos/ezyang/ghstack/hooks",
"issue_events_url": "https://api.github.com/repos/ezyang/ghstack/issues/events{/number}",
"events_url": "https://api.github.com/repos/ezyang/ghstack/events",
"assignees_url": "https://api.github.com/repos/ezyang/ghstack/assignees{/user}",
"branches_url": "https://api.github.com/repos/ezyang/ghstack/branches{/branch}",
"tags_url": "https://api.github.com/repos/ezyang/ghstack/tags",
"blobs_url": "https://api.github.com/repos/ezyang/ghstack/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/ezyang/ghstack/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/ezyang/ghstack/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/ezyang/ghstack/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/ezyang/ghstack/statuses/{sha}",
"languages_url": "https://api.github.com/repos/ezyang/ghstack/languages",
"stargazers_url": "https://api.github.com/repos/ezyang/ghstack/stargazers",
"contributors_url": "https://api.github.com/repos/ezyang/ghstack/contributors",
"subscribers_url": "https://api.github.com/repos/ezyang/ghstack/subscribers",
"subscription_url": "https://api.github.com/repos/ezyang/ghstack/subscription",
"commits_url": "https://api.github.com/repos/ezyang/ghstack/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/ezyang/ghstack/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/ezyang/ghstack/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/ezyang/ghstack/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/ezyang/ghstack/contents/{+path}",
"compare_url": "https://api.github.com/repos/ezyang/ghstack/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/ezyang/ghstack/merges",
"archive_url": "https://api.github.com/repos/ezyang/ghstack/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/ezyang/ghstack/downloads",
"issues_url": "https://api.github.com/repos/ezyang/ghstack/issues{/number}",
"pulls_url": "https://api.github.com/repos/ezyang/ghstack/pulls{/number}",
"milestones_url": "https://api.github.com/repos/ezyang/ghstack/milestones{/number}",
"notifications_url": "https://api.github.com/repos/ezyang/ghstack/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/ezyang/ghstack/labels{/name}",
"releases_url": "https://api.github.com/repos/ezyang/ghstack/releases{/id}",
"deployments_url": "https://api.github.com/repos/ezyang/ghstack/deployments",
"created_at": "2018-10-15T03:09:53Z",
"updated_at": "2023-03-08T00:55:34Z",
"pushed_at": "2023-03-08T23:50:28Z",
"git_url": "git://github.com/ezyang/ghstack.git",
"ssh_url": "git@github.com:ezyang/ghstack.git",
"clone_url": "https://github.com/ezyang/ghstack.git",
"svn_url": "https://github.com/ezyang/ghstack",
"homepage": null,
"size": 501,
"stargazers_count": 307,
"watchers_count": 307,
"language": "Python",
"has_issues": true,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 48,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 40,
"license": {
"key": "mit",
"name": "MIT License",
"spdx_id": "MIT",
"url": "https://api.github.com/licenses/mit",
"node_id": "MDc6TGljZW5zZTEz"
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"topics": [],
"visibility": "public",
"forks": 48,
"open_issues": 40,
"watchers": 307,
"default_branch": "master"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/ezyang/ghstack/pulls/141"
},
"html": {
"href": "https://github.com/ezyang/ghstack/pull/141"
},
"issue": {
"href": "https://api.github.com/repos/ezyang/ghstack/issues/141"
},
"comments": {
"href": "https://api.github.com/repos/ezyang/ghstack/issues/141/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/ezyang/ghstack/pulls/141/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/ezyang/ghstack/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/ezyang/ghstack/pulls/141/commits"
},
"statuses": {
"href": "https://api.github.com/repos/ezyang/ghstack/statuses/de01dc0d09555b3fb0182ff4f7a9be56b03b9960"
}
},
"author_association": "COLLABORATOR",
"auto_merge": null,
"active_lock_reason": null,
"merged": false,
"mergeable": null,
"rebaseable": null,
"mergeable_state": "unknown",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 119,
"deletions": 18,
"changed_files": 5
}
Opened PR #141
$ git commit-tree -p 42aaeac39a91942e9774c60623ebb3592940e3ad f68f466973b30a40638e3ea8f3671f9c078f7370
96c8df24629b0cf4f8f457453d0d0f69df1839a1
$ git for-each-ref refs/remotes/upstream/gh/amyreese '--format=%(refname)'
$ git rev-parse '18aa0a15849c3e6062a430319e283681e7ebe014~^{tree}'
f68f466973b30a40638e3ea8f3671f9c078f7370
ERROR: Fatal exception
Traceback (most recent call last):
File "/Users/amethyst/workspace/ghstack/ghstack/logs.py", line 105, in manager
yield
File "/Users/amethyst/workspace/ghstack/ghstack/cli.py", line 41, in cli_context
yield shell, config, github
File "/Users/amethyst/workspace/ghstack/ghstack/cli.py", line 184, in submit
ghstack.submit.main(
File "/Users/amethyst/workspace/ghstack/ghstack/submit.py", line 219, in main
submitter.prepare_updates()
File "/Users/amethyst/workspace/ghstack/ghstack/submit.py", line 1026, in prepare_updates
self.process_new_commit(s)
File "/Users/amethyst/workspace/ghstack/ghstack/submit.py", line 639, in process_new_commit
assert ghnum not in self.seen_ghnums
AssertionError
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment