Is there a snapcraft.io API?

This is my situation: I have a Flutter app on GitLab and a Github project for the snapcraft stuff which is connected to the snapcraft build server. So with one click in the snapcraft developer website I can build for all platforms and release it to the edge store and with one drag&drop I can push this to the release channel.

The problem is: One click and one drag&drop is very hard for extreme lazy people like me. I would like to trigger this from the GitLab CI. So on every commit in the main branch of my GitLab project, a new build should be triggered somehow. I think I can do this by pushing an empty commit to the Github project, right? So far so good. But on a new created Tag on my GitLab project, I would also like to push the latest build from Edge to Release via the CI. Is this possible somehow? I only see that this is doable with the snapcraft command line tool but this is afaik no longer working inside of docker as it is a snap now by itself (that’s why I no longer build snaps in GitLab CI btw). Also this tool needs me to now the version number of the latest edge channel. Is there a simple Rest API I could call with any kind of access token to do this?

the build backend uses launchpad, there is a python api via launchpadlib:

the source code is at:

Consider using snapcraft remote-build, which will build on LP using the API @ogra referenced, with a little scripting and snapcraft upload to do the upload/release.

1 Like