{"action":"created","comment":{"url":"https://api.github.com/repos/scootdev/scoot/pulls/comments/117825738","pull_request_review_id":39564601,"id":117825738,"diff_hunk":"@@ -136,6 +142,94 @@ func (c *ingestGitCommitCommand) run(db snapshot.DB, _ *cobra.Command, _ []strin\n \treturn nil\n }\n \n+// Subcommand for creating and uploading git bundles.\n+// This is a workaround for creating arbitrary git bundles and keeping them in a Bundlestore.\n+// We need this for now because generic bundles do not fit well with the existing\n+// Snapshot, ID, Stream schemas.\n+type createGitBundleCommand struct {\n+\tfile  string\n+\tbasis string\n+\tref   string\n+\tttld  time.Duration\n+\tkeep  bool\n+}\n+\n+func (c *createGitBundleCommand) register() *cobra.Command {\n+\tcmd := &cobra.Command{\n+\t\tUse:   \"create_git_bundle\",\n+\t\tShort: \"Creates a git bundle file as specified by basis and reference for the cwd repo\",","path":"snapshot/cli/cli.go","position":41,"original_position":41,"commit_id":"880df3f1b89d18e8f95afbc0cdb35791ee754370","original_commit_id":"880df3f1b89d18e8f95afbc0cdb35791ee754370","user":{"login":"dgassaway","id":3122764,"avatar_url":"https://avatars3.githubusercontent.com/u/3122764?v=3","gravatar_id":"","url":"https://api.github.com/users/dgassaway","html_url":"https://github.com/dgassaway","followers_url":"https://api.github.com/users/dgassaway/followers","following_url":"https://api.github.com/users/dgassaway/following{/other_user}","gists_url":"https://api.github.com/users/dgassaway/gists{/gist_id}","starred_url":"https://api.github.com/users/dgassaway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgassaway/subscriptions","organizations_url":"https://api.github.com/users/dgassaway/orgs","repos_url":"https://api.github.com/users/dgassaway/repos","events_url":"https://api.github.com/users/dgassaway/events{/privacy}","received_events_url":"https://api.github.com/users/dgassaway/received_events","type":"User","site_admin":false},"body":"Yeah - not apparent from the name.","created_at":"2017-05-22T19:24:57Z","updated_at":"2017-05-22T19:24:57Z","html_url":"https://github.com/scootdev/scoot/pull/256#discussion_r117825738","pull_request_url":"https://api.github.com/repos/scootdev/scoot/pulls/256","_links":{"self":{"href":"https://api.github.com/repos/scootdev/scoot/pulls/comments/117825738"},"html":{"href":"https://github.com/scootdev/scoot/pull/256#discussion_r117825738"},"pull_request":{"href":"https://api.github.com/repos/scootdev/scoot/pulls/256"}}},"pull_request":{"url":"https://api.github.com/repos/scootdev/scoot/pulls/256","id":121798331,"html_url":"https://github.com/scootdev/scoot/pull/256","diff_url":"https://github.com/scootdev/scoot/pull/256.diff","patch_url":"https://github.com/scootdev/scoot/pull/256.patch","issue_url":"https://api.github.com/repos/scootdev/scoot/issues/256","number":256,"state":"open","locked":false,"title":"snapshot - add CLI create bundle command to support manual bundles","user":{"login":"dgassaway","id":3122764,"avatar_url":"https://avatars3.githubusercontent.com/u/3122764?v=3","gravatar_id":"","url":"https://api.github.com/users/dgassaway","html_url":"https://github.com/dgassaway","followers_url":"https://api.github.com/users/dgassaway/followers","following_url":"https://api.github.com/users/dgassaway/following{/other_user}","gists_url":"https://api.github.com/users/dgassaway/gists{/gist_id}","starred_url":"https://api.github.com/users/dgassaway/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgassaway/subscriptions","organizations_url":"https://api.github.com/users/dgassaway/orgs","repos_url":"https://api.github.com/users/dgassaway/repos","events_url":"https://api.github.com/users/dgassaway/events{/privacy}","received_events_url":"https://api.github.com/users/dgassaway/received_events","type":"User","site_admin":false},"body":"This adds a command to scoot-snapshot-db for creating explicit bundles (where you define the basis and ref to be bundled).  The bundle is then Stored in the bundlestore setup by scoot-snapshot-db (i.e. it gets uploaded). This is built around the edges of the existing interfaces as the Snapshot mechanics do not handle non-single-rev snapshots, and existing snapshot bundle creation is embedded within that logic. This is required for creation and storage of source-funnel history bundles. Bundle names are slightly different as to not conflict with regular snapshot bundles.\r\n\r\nQuick summary of new command:\r\n`scoot-snapshot-db create create_git_bundle --basis=\"abd54d5dc85dcf1c78a0dd1e915213ac9475cf83\" --ref=master --ttl=\"336h\"`\r\nPrints stored bundle location to stdout e.g.: \"http:/localhost:9094/bundle/bs-abd54d5dc85dcf1c78a0dd1e915213ac9475cf83-master.bundle\"","created_at":"2017-05-22T15:01:02Z","updated_at":"2017-05-22T19:24:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"28c7847c09dfbcc93d7a108e165b48239dfee112","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/scootdev/scoot/pulls/256/commits","review_comments_url":"https://api.github.com/repos/scootdev/scoot/pulls/256/comments","review_comment_url":"https://api.github.com/repos/scootdev/scoot/pulls/comments{/number}","comments_url":"https://api.github.com/repos/scootdev/scoot/issues/256/comments","statuses_url":"https://api.github.com/repos/scootdev/scoot/statuses/880df3f1b89d18e8f95afbc0cdb35791ee754370","head":{"label":"scootdev:dgassaway/dx-2182/bundle","ref":"dgassaway/dx-2182/bundle","sha":"880df3f1b89d18e8f95afbc0cdb35791ee754370","user":{"login":"scootdev","id":16392490,"avatar_url":"https://avatars1.githubusercontent.com/u/16392490?v=3","gravatar_id":"","url":"https://api.github.com/users/scootdev","html_url":"https://github.com/scootdev","followers_url":"https://api.github.com/users/scootdev/followers","following_url":"https://api.github.com/users/scootdev/following{/other_user}","gists_url":"https://api.github.com/users/scootdev/gists{/gist_id}","starred_url":"https://api.github.com/users/scootdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scootdev/subscriptions","organizations_url":"https://api.github.com/users/scootdev/orgs","repos_url":"https://api.github.com/users/scootdev/repos","events_url":"https://api.github.com/users/scootdev/events{/privacy}","received_events_url":"https://api.github.com/users/scootdev/received_events","type":"Organization","site_admin":false},"repo":{"id":48396966,"name":"scoot","full_name":"scootdev/scoot","owner":{"login":"scootdev","id":16392490,"avatar_url":"https://avatars1.githubusercontent.com/u/16392490?v=3","gravatar_id":"","url":"https://api.github.com/users/scootdev","html_url":"https://github.com/scootdev","followers_url":"https://api.github.com/users/scootdev/followers","following_url":"https://api.github.com/users/scootdev/following{/other_user}","gists_url":"https://api.github.com/users/scootdev/gists{/gist_id}","starred_url":"https://api.github.com/users/scootdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scootdev/subscriptions","organizations_url":"https://api.github.com/users/scootdev/orgs","repos_url":"https://api.github.com/users/scootdev/repos","events_url":"https://api.github.com/users/scootdev/events{/privacy}","received_events_url":"https://api.github.com/users/scootdev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scootdev/scoot","description":null,"fork":false,"url":"https://api.github.com/repos/scootdev/scoot","forks_url":"https://api.github.com/repos/scootdev/scoot/forks","keys_url":"https://api.github.com/repos/scootdev/scoot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scootdev/scoot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scootdev/scoot/teams","hooks_url":"https://api.github.com/repos/scootdev/scoot/hooks","issue_events_url":"https://api.github.com/repos/scootdev/scoot/issues/events{/number}","events_url":"https://api.github.com/repos/scootdev/scoot/events","assignees_url":"https://api.github.com/repos/scootdev/scoot/assignees{/user}","branches_url":"https://api.github.com/repos/scootdev/scoot/branches{/branch}","tags_url":"https://api.github.com/repos/scootdev/scoot/tags","blobs_url":"https://api.github.com/repos/scootdev/scoot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scootdev/scoot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scootdev/scoot/git/refs{/sha}","trees_url":"https://api.github.com/repos/scootdev/scoot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scootdev/scoot/statuses/{sha}","languages_url":"https://api.github.com/repos/scootdev/scoot/languages","stargazers_url":"https://api.github.com/repos/scootdev/scoot/stargazers","contributors_url":"https://api.github.com/repos/scootdev/scoot/contributors","subscribers_url":"https://api.github.com/repos/scootdev/scoot/subscribers","subscription_url":"https://api.github.com/repos/scootdev/scoot/subscription","commits_url":"https://api.github.com/repos/scootdev/scoot/commits{/sha}","git_commits_url":"https://api.github.com/repos/scootdev/scoot/git/commits{/sha}","comments_url":"https://api.github.com/repos/scootdev/scoot/comments{/number}","issue_comment_url":"https://api.github.com/repos/scootdev/scoot/issues/comments{/number}","contents_url":"https://api.github.com/repos/scootdev/scoot/contents/{+path}","compare_url":"https://api.github.com/repos/scootdev/scoot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scootdev/scoot/merges","archive_url":"https://api.github.com/repos/scootdev/scoot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scootdev/scoot/downloads","issues_url":"https://api.github.com/repos/scootdev/scoot/issues{/number}","pulls_url":"https://api.github.com/repos/scootdev/scoot/pulls{/number}","milestones_url":"https://api.github.com/repos/scootdev/scoot/milestones{/number}","notifications_url":"https://api.github.com/repos/scootdev/scoot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scootdev/scoot/labels{/name}","releases_url":"https://api.github.com/repos/scootdev/scoot/releases{/id}","deployments_url":"https://api.github.com/repos/scootdev/scoot/deployments","created_at":"2015-12-21T22:14:54Z","updated_at":"2017-02-08T16:55:20Z","pushed_at":"2017-05-22T18:23:21Z","git_url":"git://github.com/scootdev/scoot.git","ssh_url":"git@github.com:scootdev/scoot.git","clone_url":"https://github.com/scootdev/scoot.git","svn_url":"https://github.com/scootdev/scoot","homepage":"","size":8617,"stargazers_count":11,"watchers_count":11,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":2,"forks":5,"open_issues":2,"watchers":11,"default_branch":"master"}},"base":{"label":"scootdev:master","ref":"master","sha":"89c58188a30b13faa7b2ed6c179f9f9be826ec57","user":{"login":"scootdev","id":16392490,"avatar_url":"https://avatars1.githubusercontent.com/u/16392490?v=3","gravatar_id":"","url":"https://api.github.com/users/scootdev","html_url":"https://github.com/scootdev","followers_url":"https://api.github.com/users/scootdev/followers","following_url":"https://api.github.com/users/scootdev/following{/other_user}","gists_url":"https://api.github.com/users/scootdev/gists{/gist_id}","starred_url":"https://api.github.com/users/scootdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scootdev/subscriptions","organizations_url":"https://api.github.com/users/scootdev/orgs","repos_url":"https://api.github.com/users/scootdev/repos","events_url":"https://api.github.com/users/scootdev/events{/privacy}","received_events_url":"https://api.github.com/users/scootdev/received_events","type":"Organization","site_admin":false},"repo":{"id":48396966,"name":"scoot","full_name":"scootdev/scoot","owner":{"login":"scootdev","id":16392490,"avatar_url":"https://avatars1.githubusercontent.com/u/16392490?v=3","gravatar_id":"","url":"https://api.github.com/users/scootdev","html_url":"https://github.com/scootdev","followers_url":"https://api.github.com/users/scootdev/followers","following_url":"https://api.github.com/users/scootdev/following{/other_user}","gists_url":"https://api.github.com/users/scootdev/gists{/gist_id}","starred_url":"https://api.github.com/users/scootdev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/scootdev/subscriptions","organizations_url":"https://api.github.com/users/scootdev/orgs","repos_url":"https://api.github.com/users/scootdev/repos","events_url":"https://api.github.com/users/scootdev/events{/privacy}","received_events_url":"https://api.github.com/users/scootdev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/scootdev/scoot","description":null,"fork":false,"url":"https://api.github.com/repos/scootdev/scoot","forks_url":"https://api.github.com/repos/scootdev/scoot/forks","keys_url":"https://api.github.com/repos/scootdev/scoot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/scootdev/scoot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/scootdev/scoot/teams","hooks_url":"https://api.github.com/repos/scootdev/scoot/hooks","issue_events_url":"https://api.github.com/repos/scootdev/scoot/issues/events{/number}","events_url":"https://api.github.com/repos/scootdev/scoot/events","assignees_url":"https://api.github.com/repos/scootdev/scoot/assignees{/user}","branches_url":"https://api.github.com/repos/scootdev/scoot/branches{/branch}","tags_url":"https://api.github.com/repos/scootdev/scoot/tags","blobs_url":"https://api.github.com/repos/scootdev/scoot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/scootdev/scoot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/scootdev/scoot/git/refs{/sha}","trees_url":"https://api.github.com/repos/scootdev/scoot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/scootdev/scoot/statuses/{sha}","languages_url":"https://api.github.com/repos/scootdev/scoot/languages","stargazers_url":"https://api.github.com/repos/scootdev/scoot/stargazers","contributors_url":"https://api.github.com/repos/scootdev/scoot/contributors","subscribers_url":"https://api.github.com/repos/scootdev/scoot/subscribers","subscription_url":"https://api.github.com/repos/scootdev/scoot/subscription","commits_url":"https://api.github.com/repos/scootdev/scoot/commits{/sha}","git_commits_url":"https://api.github.com/repos/scootdev/scoot/git/commits{/sha}","comments_url":"https://api.github.com/repos/scootdev/scoot/comments{/number}","issue_comment_url":"https://api.github.com/repos/scootdev/scoot/issues/comments{/number}","contents_url":"https://api.github.com/repos/scootdev/scoot/contents/{+path}","compare_url":"https://api.github.com/repos/scootdev/scoot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/scootdev/scoot/merges","archive_url":"https://api.github.com/repos/scootdev/scoot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/scootdev/scoot/downloads","issues_url":"https://api.github.com/repos/scootdev/scoot/issues{/number}","pulls_url":"https://api.github.com/repos/scootdev/scoot/pulls{/number}","milestones_url":"https://api.github.com/repos/scootdev/scoot/milestones{/number}","notifications_url":"https://api.github.com/repos/scootdev/scoot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/scootdev/scoot/labels{/name}","releases_url":"https://api.github.com/repos/scootdev/scoot/releases{/id}","deployments_url":"https://api.github.com/repos/scootdev/scoot/deployments","created_at":"2015-12-21T22:14:54Z","updated_at":"2017-02-08T16:55:20Z","pushed_at":"2017-05-22T18:23:21Z","git_url":"git://github.com/scootdev/scoot.git","ssh_url":"git@github.com:scootdev/scoot.git","clone_url":"https://github.com/scootdev/scoot.git","svn_url":"https://github.com/scootdev/scoot","homepage":"","size":8617,"stargazers_count":11,"watchers_count":11,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":5,"mirror_url":null,"open_issues_count":2,"forks":5,"open_issues":2,"watchers":11,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/scootdev/scoot/pulls/256"},"html":{"href":"https://github.com/scootdev/scoot/pull/256"},"issue":{"href":"https://api.github.com/repos/scootdev/scoot/issues/256"},"comments":{"href":"https://api.github.com/repos/scootdev/scoot/issues/256/comments"},"review_comments":{"href":"https://api.github.com/repos/scootdev/scoot/pulls/256/comments"},"review_comment":{"href":"https://api.github.com/repos/scootdev/scoot/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/scootdev/scoot/pulls/256/commits"},"statuses":{"href":"https://api.github.com/repos/scootdev/scoot/statuses/880df3f1b89d18e8f95afbc0cdb35791ee754370"}}}}
{"actor":{"display_login":"dgassaway"}}