Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(extensions): add github release downloader #224

Merged

Conversation

kjuulh
Copy link
Contributor

@kjuulh kjuulh commented Jan 25, 2024

This specifically adds a downloader for github releases it uses either the

SHUTTLE_EXTENSIONS_GITHUB_ACCESS_TOKEN or GITHUB_ACCESS_TOKEN for access to the releases

The downloader expects a full url from the registry as seen in a previous pr

Builds on #223

@github-actions github-actions bot added the minor label Jan 25, 2024
@kjuulh kjuulh force-pushed the feat/extensions-with-install branch from 428cffd to b5ce033 Compare January 26, 2024 09:17
@kjuulh kjuulh force-pushed the feat/extensions-download-extension branch from f6eb664 to a6dc551 Compare January 26, 2024 09:17
@kjuulh kjuulh self-assigned this Jun 7, 2024
@kjuulh kjuulh marked this pull request as ready for review June 7, 2024 11:48
@kjuulh kjuulh requested a review from a team as a code owner June 7, 2024 11:48
internal/extensions/downloader.go Show resolved Hide resolved
internal/extensions/downloader.go Outdated Show resolved Hide resolved
internal/extensions/downloader.go Outdated Show resolved Hide resolved
@kjuulh kjuulh force-pushed the feat/extensions-with-install branch 2 times, most recently from a2b238c to 5866709 Compare June 13, 2024 10:29
This specifically adds a downloader for github releases it uses either the

SHUTTLE_EXTENSIONS_GITHUB_ACCESS_TOKEN or GITHUB_ACCESS_TOKEN for access to the releases

The downloader expects a full url from the registry as seen in a previous pr

Signed-off-by: Kasper J. Hermansen <[email protected]>
@kjuulh kjuulh force-pushed the feat/extensions-download-extension branch from a6dc551 to 9c619db Compare June 13, 2024 10:37
kjuulh and others added 2 commits June 13, 2024 12:46
Signed-off-by: Kasper J. Hermansen <[email protected]>
* feat(extensions): add execute command

this adds Extensions to the global cmd.go resulting in another section showing up when doing a shuttle --help

To execute an extension simply shuttle myExtension where myExtension is the name of the downloaded extension. All args are passed to the child as well

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remember to add error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: without empty line

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: adds github remote registry index (#226)

* feat: with github registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: shuttle extensions

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: can download private files

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remove fluff

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: fix review comments

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: it needs to implement the functions

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>
@kjuulh kjuulh merged commit 297cccc into feat/extensions-with-install Jun 13, 2024
2 checks passed
@kjuulh kjuulh deleted the feat/extensions-download-extension branch June 13, 2024 12:54
kjuulh added a commit that referenced this pull request Jun 13, 2024
* "feat(extensions): add install extensions from registry

This pr includes everything up to actually downloading the extension from the upstream registry

Such as pulling an example registry entry

```json
{
  "name": "SuperExtender",
  "description": "Enhances your experience with superpowers.",
  "version": "1.0.3",
  "downloadUrls": [
    {
      "architecture": "amd64",
      "os": "linux",
      "url": "https://example.com/linux/amd64/superextender.tar.gz",
      "checksum": "efgh5678"
    },
    {
      "architecture": "x86",
      "os": "windows",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    },
    {
      "architecture": "arm64",
      "os": "darwin",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    }
  ]
}
```

Which will match on the current os using $GOOS and $GOARCH set by golang itself. We may however have to depend on some other variables if go is not installed by I believe it should work anyway"

* feat: print error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: review comments, wording etc.

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add github release downloader (#224)

* feat(extensions): add github release downloader

This specifically adds a downloader for github releases it uses either the

SHUTTLE_EXTENSIONS_GITHUB_ACCESS_TOKEN or GITHUB_ACCESS_TOKEN for access to the releases

The downloader expects a full url from the registry as seen in a previous pr

Signed-off-by: Kasper J. Hermansen <[email protected]>

* chore: reword bearer

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add execute command (#225)

* feat(extensions): add execute command

this adds Extensions to the global cmd.go resulting in another section showing up when doing a shuttle --help

To execute an extension simply shuttle myExtension where myExtension is the name of the downloaded extension. All args are passed to the child as well

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remember to add error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: without empty line

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: adds github remote registry index (#226)

* feat: with github registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: shuttle extensions

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: can download private files

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remove fluff

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: fix review comments

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: it needs to implement the functions

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>
kjuulh added a commit that referenced this pull request Jun 13, 2024
* feat(extensions): with git operations

Quite simply implements fetch and clone to make sure we can pull a registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: add git registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add install extensions from registry (#223)

* "feat(extensions): add install extensions from registry

This pr includes everything up to actually downloading the extension from the upstream registry

Such as pulling an example registry entry

```json
{
  "name": "SuperExtender",
  "description": "Enhances your experience with superpowers.",
  "version": "1.0.3",
  "downloadUrls": [
    {
      "architecture": "amd64",
      "os": "linux",
      "url": "https://example.com/linux/amd64/superextender.tar.gz",
      "checksum": "efgh5678"
    },
    {
      "architecture": "x86",
      "os": "windows",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    },
    {
      "architecture": "arm64",
      "os": "darwin",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    }
  ]
}
```

Which will match on the current os using $GOOS and $GOARCH set by golang itself. We may however have to depend on some other variables if go is not installed by I believe it should work anyway"

* feat: print error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: review comments, wording etc.

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add github release downloader (#224)

* feat(extensions): add github release downloader

This specifically adds a downloader for github releases it uses either the

SHUTTLE_EXTENSIONS_GITHUB_ACCESS_TOKEN or GITHUB_ACCESS_TOKEN for access to the releases

The downloader expects a full url from the registry as seen in a previous pr

Signed-off-by: Kasper J. Hermansen <[email protected]>

* chore: reword bearer

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add execute command (#225)

* feat(extensions): add execute command

this adds Extensions to the global cmd.go resulting in another section showing up when doing a shuttle --help

To execute an extension simply shuttle myExtension where myExtension is the name of the downloaded extension. All args are passed to the child as well

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remember to add error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: without empty line

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: adds github remote registry index (#226)

* feat: with github registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: shuttle extensions

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: can download private files

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remove fluff

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: fix review comments

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: it needs to implement the functions

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>
kjuulh added a commit that referenced this pull request Jun 13, 2024
* feat: add registry and global storage

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remove bullet

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remember to initiate install

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: make sure to check permissions

Signed-off-by: Kasper J. Hermansen <[email protected]>

* chore: make registry private

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): with git operations (#222)

* feat(extensions): with git operations

Quite simply implements fetch and clone to make sure we can pull a registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: add git registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add install extensions from registry (#223)

* "feat(extensions): add install extensions from registry

This pr includes everything up to actually downloading the extension from the upstream registry

Such as pulling an example registry entry

```json
{
  "name": "SuperExtender",
  "description": "Enhances your experience with superpowers.",
  "version": "1.0.3",
  "downloadUrls": [
    {
      "architecture": "amd64",
      "os": "linux",
      "url": "https://example.com/linux/amd64/superextender.tar.gz",
      "checksum": "efgh5678"
    },
    {
      "architecture": "x86",
      "os": "windows",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    },
    {
      "architecture": "arm64",
      "os": "darwin",
      "url": "https://example.com/windows/x86/superextender.zip",
      "checksum": "ijkl91011"
    }
  ]
}
```

Which will match on the current os using $GOOS and $GOARCH set by golang itself. We may however have to depend on some other variables if go is not installed by I believe it should work anyway"

* feat: print error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: review comments, wording etc.

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add github release downloader (#224)

* feat(extensions): add github release downloader

This specifically adds a downloader for github releases it uses either the

SHUTTLE_EXTENSIONS_GITHUB_ACCESS_TOKEN or GITHUB_ACCESS_TOKEN for access to the releases

The downloader expects a full url from the registry as seen in a previous pr

Signed-off-by: Kasper J. Hermansen <[email protected]>

* chore: reword bearer

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat(extensions): add execute command (#225)

* feat(extensions): add execute command

this adds Extensions to the global cmd.go resulting in another section showing up when doing a shuttle --help

To execute an extension simply shuttle myExtension where myExtension is the name of the downloaded extension. All args are passed to the child as well

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remember to add error

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: without empty line

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: adds github remote registry index (#226)

* feat: with github registry

Signed-off-by: Kasper J. Hermansen <[email protected]>

* fix: shuttle extensions

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: can download private files

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: remove fluff

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: fix review comments

Signed-off-by: Kasper J. Hermansen <[email protected]>

* feat: it needs to implement the functions

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>

---------

Signed-off-by: Kasper J. Hermansen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants