Hi all,
Thank you for all your interest and messages in the EAP in the past month.
In this post, we want to give you an update about what we have been working on and what is planned for the near future.
If you noticed any other issues or have any comments on the list below, please let us know!
While most of the items below have been shared with us by our internal teams, we know that you might have noticed them as well and want to let you know that an improvement or fix has been released.
Previously certain endpoints on Atlassian Developer such as pipelines and deployments were missing the required Forge app scopes for authentication mechanism. This has been fixed and the relevant scopes have been added.
As a reminder, only REST API endpoints with “Forge app scopes” can be called from a Forge app (for more on this see The Bitbucket Cloud REST API).
The Forge Custom UI modules had an issue with iframe heights being limited at a fixed value as shown in this image:
This has been addressed and the module’s height now takes up the height of the app’s UI components:
forge lint
Starting from the version 6.19.0
of the Forge CLI, the CLI checks if the app contains the correct scopes in the manifest.yml
based on the requests to Bitbucket REST APIs being made. The scopes are validated by matching the route provided in the requestBitbucket
to the paths in https://api.bitbucket.org/swagger.json and confirming the scopes linked to the path are present in the app’s manifest.yml
.
In case of missing scopes, the CLI shows an error message like this:
> forge lint
The linter checks the app code for known errors. Warnings are issues you should fix, but they won't stop the app code from building.
Press Ctrl+C to cancel.
/Users/jdoe/code/my-app/src/lib/AppClient.ts
54:8 error Bitbucket endpoint: GET /repositories/{workspace}/{repo_slug}/pullrequests/{pull_request_id}/comments/{comment_id} requires "read:pullrequest:bitbucket" scope permission-scope-required
The forge lint --fix
command can be called to add the relevant scopes that are missing from the manifest.yml
.
When using external images, even when the relevant egress permissions were defined, the Image
component returned an egress permission error:
This has now been fixed and images from external sources will be rendered.
For example, when using this code:
import ForgeUI, {
Fragment,
Image,
} from '@forge/ui';
const App = () => {
return (
<Fragment>
<Image src="https://cdn3.emoji.gg/emojis/3052-hehe.png" alt="Hehe Cat" />
</Fragment>
)
}
The following image is shown:
We’re working on several improvements that will be released in the next few weeks (if everything goes as planned!). We’ll let you know when they’re live via the Atlassian developer changelog.
For a longer term view of what’s coming, you can refer to the Forge roadmap Trello board, which now contains cards for the Bitbucket features. The Forge roadmap for developers link is the filtered view for Bitbucket.
We are adding a bitbucket:workspaceSettingsMenuPage
module, which adds an item in the FORGE APPS
section of the left navigation of a Bitbucket workspace settings menu.
We are working on adding support for icons for the following modules:
This will allow you to set an icon to display beside the module’s title.
Example:
modules:
bitbucket:repoMainMenuPage:
- key: test-repo-main-menu-page
function: main-ui
title: test menu page 1
icon: https://links.atlassian.com/images/google_drive.svg
With this change, you will also be able to use icons for Custom UI as you would do with any other Forge app.
We’re also working on giving you the capability to distribute Bitbucket apps via installation link (Distribute your apps).
In an upcoming version of the Forge CLI, we will be adding:
Bitbucket templates for all available modules for forge create
Bitbucket as installable product for forge install
Cheers,
Hillary & the Forge for Bitbucket team
Hillary Chan
1 comment