Forge is an alternative to other solutions that Atlassian admins use for their needs. For example, admins might need to perform bulk updates on Jira work items, and there are many use cases for that, let me just name a few:
close/update the workflow status of Jira work items
populate a field (custom or system field) on Jira work items
update a field (custom or system field) on Jira work items
Forge can help Atlassian admins with all of this, and a Forge app can be a quick, reliable and secure alternative to your Python (or <insert your preferred coding/scripting language here>) script.
As part of my job, as a Forge Developer Advocate, I talk to many admins about their “scripting” needs, and I came to realise that Forge is a better alternative to a script because of the platform features it provides and how easy it makes it to implement some of the common gotchas.
All of this while leveraging your existing knowledge of the Atlassian REST APIs. Yes, Forge uses the same REST APIs that you are most likely already familiar with.
One key advantage: When you use Forge, you don’t need to manage or provide API tokens for each API call. All API calls are made directly from the Forge platform, and authentication is handled automatically for you—no manual token management or secret storage required. This makes your automation both simpler and more secure.
Here is how I would implement the logic of a script in a Forge app
For this example, we’ll use the “bulk field update use case”.
Start by creating your app using the Forge CLI. To keep it simple, follow the scheduled triggered tutorial
Implement the bulk update logic using the Edit issue Jira REST API*
Forge specific - use the Forge Async events API to queue the processing of the updates. A key benefit is that queues handle concurrency for you automatically—there’s no need to write custom code to manage how many updates run in parallel. You simply set the concurrency limit, and Forge ensures that no more than your specified number of events are processed at once. Make sure to also implement the error handling so that known “guardrails” (e.g. RateLimitError and TooManyEventsError) and errors are correctly handled
Implement REST API rate limiting checks (i.e. check for 429 responses and code for request backoff)
Wait for the scheduled time, or you could also add a Jira admin page module with a simple UI (a button) to trigger the update. → Success, your work items are updated!
* Depending on the details of the update, you might want to look into the bulk edit REST APIs, those would be a better fit if you can “group” the same update into chunks
AI code tools
If you have access to an AI code tool, you could try converting existing scripts into Forge apps that leverage those tools.
And if you don’t have a script already, you can even start from scratch with those. My personal experience says that these tools work best once you have the skeleton of the app setup, for a Forge app that’s the manifest. The scheduled triggered tutorial walks you through how to set it up.
New to Forge? How to get started?
If you are new to Forge, you might want to have a look at the following:
Getting started with Forge. The entry point of our Forge documentation.
Check out the recently released Get the most out of Forge learning path on the Atlassian University. It’s FREE!
I would love to talk more about this. Please comment to let me know what you think and if you have tried this approach.
- Caterina
Caterina Curti
Developer Advocate
Sydney
109 accepted answers
2 comments