The latest update to Landscape allows faster reaction to code pushes, and improves how organisation membership is detected. This change requires a change in which permissions are requested when connecting to GitHub.

Previously, Landscape did not request any permissions from you when signing up via GitHub. The default public repository access information was enough to find changes in code and to see all personal public repositories. Now, Landscape will request that you grant both write access to your personal repositories, and also access to your GitHub profile.

So what exactly changed, and why? Simply put, the default public-only access did not allow Landscape to get enough information to have a complete overview of your profile, your public repositories and the repositories of organisations you belong to. Landscape could not see that you were a member of an organisation unless you made your membership public, which often caused confusion for users. Additionally, Landscape had to poll the GitHub API for changes, leading to delays in starting checks and sometimes checks would not start at all due to API limit restrictions. The intention had always been to minimise the permissions required, however it has become clear that the default permissions restricted how useful Landscape could be.

The new features, summed up:

Faster reaction to pushes: having write access to repositories allows Landscape to create push hooks. This means that GitHub notifies Landscape when a push is made, resulting in a check starting instantly.

Full organisation membership listing: the ability to read user profiles fully means that Landscape can see which organisations you belong to even if this membership is not public. This means you will be able to start checks on public repositories of all organisations you belong to.

If you enjoyed this article and would like to receive email notifications when new articles are published, sign up below:

About is a tool to measure and track code quality and technical debt in your project. It can analyse Python code to point out errors and problems, and provides continuous metrics so you can see if your code is deteriorating.