Skip to content

Automatically check if the tool is up to date #32

@exekias

Description

@exekias

We are currently recommending people to install this tool by using go get. I think this is the best approach until we get to some degree of stability in the features it provides (we are not close to this by any means).

It would be nice to have an automatic check when the tools is called that warns you if it's not up to date, and gives you the command to run if you need to update.

This would ensure that developers don't lag behind on tooling, with the confusion that that may cause (ie my integration works in local but fails in CI...).

To avoid degrading the user experience, I think we should only check for new versions from time to time (maybe store the last successful check timestamp into a file) and have a good silent timeout if things are too slow.

We could use the following API to retrieve master branch ref:

turing.local :: integrations/packages/nginx ‹master› » time curl https://api.github.com/repos/elastic/elastic-package/git/ref/heads/master
{
  "ref": "refs/heads/master",
  "node_id": "MDM6UmVmMjY5NjEyNzUzOnJlZnMvaGVhZHMvbWFzdGVy",
  "url": "https://api.github.com/repos/elastic/elastic-package/git/refs/heads/master",
  "object": {
    "sha": "9e6eefab29ae9533a7d387cc62247a77a9ec07ff",
    "type": "commit",
    "url": "https://api.github.com/repos/elastic/elastic-package/git/commits/9e6eefab29ae9533a7d387cc62247a77a9ec07ff"
  }
}
curl https://api.github.com/repos/elastic/elastic-package/git/ref/heads/maste  0.02s user 0.01s system 6% cpu 0.333 total

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions