mirror of https://github.com/status-im/migrate.git
Merge pull request #22 from thurt/add-ref-to-github
add ref (SHA, branch, or tag) to the github migration source
This commit is contained in:
commit
81e9fff605
|
@ -1,6 +1,6 @@
|
|||
# github
|
||||
|
||||
`github://user:personal-access-token@owner/repo/path`
|
||||
`github://user:personal-access-token@owner/repo/path#ref`
|
||||
|
||||
| URL Query | WithInstance Config | Description |
|
||||
|------------|---------------------|-------------|
|
||||
|
@ -9,3 +9,4 @@
|
|||
| owner | | the repo owner |
|
||||
| repo | | the name of the repository |
|
||||
| path | | path in repo to migrations |
|
||||
| ref | | (optional) can be a SHA, branch, or tag |
|
||||
|
|
|
@ -11,8 +11,8 @@ import (
|
|||
"path"
|
||||
"strings"
|
||||
|
||||
"github.com/google/go-github/github"
|
||||
"github.com/golang-migrate/migrate/source"
|
||||
"github.com/google/go-github/github"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -34,6 +34,7 @@ type Github struct {
|
|||
pathOwner string
|
||||
pathRepo string
|
||||
path string
|
||||
options *github.RepositoryContentGetOptions
|
||||
migrations *source.Migrations
|
||||
}
|
||||
|
||||
|
@ -64,6 +65,7 @@ func (g *Github) Open(url string) (source.Driver, error) {
|
|||
client: github.NewClient(tr.Client()),
|
||||
url: url,
|
||||
migrations: source.NewMigrations(),
|
||||
options: &github.RepositoryContentGetOptions{Ref: u.Fragment},
|
||||
}
|
||||
|
||||
// set owner, repo and path in repo
|
||||
|
@ -96,7 +98,7 @@ func WithInstance(client *github.Client, config *Config) (source.Driver, error)
|
|||
}
|
||||
|
||||
func (g *Github) readDirectory() error {
|
||||
fileContent, dirContents, _, err := g.client.Repositories.GetContents(context.Background(), g.pathOwner, g.pathRepo, g.path, &github.RepositoryContentGetOptions{})
|
||||
fileContent, dirContents, _, err := g.client.Repositories.GetContents(context.Background(), g.pathOwner, g.pathRepo, g.path, g.options)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -147,7 +149,7 @@ func (g *Github) Next(version uint) (nextVersion uint, err error) {
|
|||
|
||||
func (g *Github) ReadUp(version uint) (r io.ReadCloser, identifier string, err error) {
|
||||
if m, ok := g.migrations.Up(version); ok {
|
||||
file, _, _, err := g.client.Repositories.GetContents(context.Background(), g.pathOwner, g.pathRepo, path.Join(g.path, m.Raw), &github.RepositoryContentGetOptions{})
|
||||
file, _, _, err := g.client.Repositories.GetContents(context.Background(), g.pathOwner, g.pathRepo, path.Join(g.path, m.Raw), g.options)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
@ -164,7 +166,7 @@ func (g *Github) ReadUp(version uint) (r io.ReadCloser, identifier string, err e
|
|||
|
||||
func (g *Github) ReadDown(version uint) (r io.ReadCloser, identifier string, err error) {
|
||||
if m, ok := g.migrations.Down(version); ok {
|
||||
file, _, _, err := g.client.Repositories.GetContents(context.Background(), g.pathOwner, g.pathRepo, path.Join(g.path, m.Raw), &github.RepositoryContentGetOptions{})
|
||||
file, _, _, err := g.client.Repositories.GetContents(context.Background(), g.pathOwner, g.pathRepo, path.Join(g.path, m.Raw), g.options)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ func Test(t *testing.T) {
|
|||
}
|
||||
|
||||
g := &Github{}
|
||||
d, err := g.Open("github://" + GithubTestSecret + "@mattes/migrate_test_tmp/test")
|
||||
d, err := g.Open("github://" + GithubTestSecret + "@mattes/migrate_test_tmp/test#452b8003e7")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue