Skip to content

Release

Release

The Release component in Nappai acts as a bridge between your automation workflows and GitHub. It allows you to manage software versions (releases) programmatically. With this component, you can automatically create new version announcements, update release notes, list all available versions, or clean up old releases directly from your dashboard without needing to visit the GitHub website manually.

How it Works

This component connects to the GitHub API using your personal credentials. When you configure the inputs (such as the repository name and tag), the component sends specific instructions to GitHub to perform actions like creating a new release entry or fetching details about an existing one. It then processes the response from GitHub and provides you with the results, which can be used in subsequent steps of your workflow.

Connection & Credentials

This component requires configuring a credential in the Nappai panel before interacting with the external service:

  1. Go to the Credentials section in your Nappai panel.
  2. Create a new credential of the type GitHub API and fill in the required fields (specifically, generate a Personal Access Token with repo scope from your GitHub settings).
  3. In your workflow, select the saved credential in the Credential input field of this node.

Operations

This component offers several operations that you can select based on what you need to do. You can only use one operation at a time:

  • Get Release: Fetches details of a specific release using its tag name.
  • Create Release: Creates a new release with a specific tag and description.
  • Update Release: Updates the details (name or description) of an existing release.
  • Delete Release: Permanently removes a specific release from the repository.
  • List All: Retrieves a list of all releases in the specified repository.

To use the component, first select the operation you need in the “Operation” field.

Inputs

Mapping Mode

This component has a special mode called “Mapping Mode”. When you enable this mode using the toggle switch, an additional input called “Mapping Data” is activated, and each input field offers you three different ways to provide data:

  • Fixed: You type the value directly into the field.
  • Mapped: You connect the output of another component to use its result as the value.
  • Javascript: You write Javascript code to dynamically calculate the value.

This flexibility allows you to create more dynamic and connected workflows.

Input Fields

The following fields are available to configure this component. Each field may be visible in different operations:

  • Operation: Select the file operation to perform.

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All
  • Repository: Select a repository. The list populates after selecting a credential.

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All
  • Repository Input Type: Select the input type for the repository.

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All
  • Repository ID: Pass the repository name dynamically (e.g., ‘owner/repo’). Overrides the dropdown selection.

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All
  • Release Tag: The tag of the release (e.g., v1.0.0). Necessary for single release operations.

    • Visible in: Get Release, Create Release, Update Release, Delete Release
  • Release Name: The name/title of the release.

    • Visible in: Create Release, Update Release
  • Release Description: The detailed description or changelog for the release.

    • Visible in: Create Release, Update Release
  • Limit: Maximum number of items to return (max 1000).

    • Visible in: List All
  • Mapping Mode: Enable mapping mode to process multiple data records in batch

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All
  • Tool Name: The name of the tool that will be used when this component is connected as a tool. This name will be displayed to the agent when it selects tools to use.

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All
  • Tool Description: A detailed description of what this tool does. This description will help the agent understand when and how to use this tool effectively.

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All
  • Tools arguments metadata: Defines the arguments metadata for the tools.

    • Visible in: Get Release, Create Release, Update Release, Delete Release, List All

Outputs

The component provides the following outputs after execution:

  • Data: The primary output containing the results of the operation. For example, if you Create Release, this will contain the details of the newly created release. If you List All, it will contain the list of releases. This output can be connected to other components to process the information further.
  • Tool: Indicates that this component can be used as a tool for agents within the automation system.

Output Data Example (JSON)

Below is an example of what the Data output might look like after a successful Get Release or Create Release operation: json { “id”: 12345678, “tag_name”: “v1.0.0”, “name”: “Version 1.0.0 Release”, “body”: “This is the first stable release containing bug fixes and new features.”, “created_at”: “2023-10-01T12:00:00Z”, “published_at”: “2023-10-01T12:00:00Z”, “url”: “https://api.github.com/repos/owner/repo/releases/12345678”, “html_url”: “https://github.com/owner/repo/releases/tag/v1.0.0”, “author”: { “login”: “author-user”, “id”: 987654 }, “prerelease”: false, “draft”: false }

Connectivity

This component is typically used in DevOps or software deployment workflows.

  • Upstream Connections: It usually receives data from components that trigger builds or CI/CD processes. For example, a component that detects a new commit or finishes a build pipeline might feed the Repository or Release Tag inputs.
  • Downstream Connections: The output Data can be connected to notification components (like Slack or Email) to inform team members about a new release, or to validation components to verify the release details before publishing.

Usage Example

Scenario: Automating a New Release Announcement

  1. Trigger: Your workflow starts when a new code commit is pushed to the main branch.
  2. Configure Component:
    • Set Operation to Create Release.
    • Select your Repository (e.g., nappai/example-app).
    • In Release Tag, enter the version number (e.g., v2.1.0).
    • In Release Name, enter Version 2.1.0.
    • In Release Description, enter Major update with performance improvements.
  3. Execute: The component creates the release on GitHub.
  4. Follow-up: Connect the output to a Slack Notification component to alert the team that v2.1.0 has been successfully released.

Important Notes

🔒 Protect Your GitHub Token [🔴 high] The component requires a personal access token (PAT). Keep the token confidential and grant it only the minimal scopes needed (e.g., repo access).

📋 Valid GitHub Personal Access Token [🔴 high] A valid GitHub PAT with repository access is mandatory. Without it, the component cannot authenticate and all operations will fail.

📋 Delete Operation Is Irreversible [🔴 high] Deleting a release via this component permanently removes it from GitHub. There is no built‑in recovery, so verify the target release before confirming deletion.

⚠️ Component in Development [🟡 medium] This component is marked as in development and may contain bugs or incomplete features. Avoid using it for critical production workflows.

⚠️ GitHub API Rate Limits [🟡 medium] The component calls the GitHub API, which enforces rate limits. Frequent or large requests may trigger a rate‑limit error and temporarily block further actions.

📋 Correct Repository Format [🟡 medium] Specify the repository as “owner/repo” (e.g., “nappai/example-repo”). An incorrect format will result in authentication or lookup errors.

💡 Test in a Staging Repository [🟢 low] Before creating, updating, or deleting releases, run the component on a test repository to confirm expected behavior and avoid accidental changes to production releases.

ℹ️ Handle Pagination for Release Lists [🟢 low] When listing releases, the component may return a limited subset. Enable pagination or apply filters if you expect more releases than the default page size.

Tips and Best Practices

  • Always verify your Release Tag format before creating a release. Standard formats like v1.0.0 are recommended for clarity.
  • When using Update Release, ensure the Release Tag matches an existing release exactly, as GitHub does not allow updating non-existent tags.
  • If you encounter rate limit errors, consider adding a delay or reducing the frequency of API calls in your workflow.
  • Use Mapping Mode if you need to create releases for multiple versions dynamically using data from other components.

Security Considerations

  • Token Security: Never expose your GitHub Personal Access Token (PAT) in public repositories or share it via insecure channels. The token acts as your password for GitHub operations.
  • Principle of Least Privilege: When generating your PAT in GitHub settings, only select the scopes necessary for your workflow (e.g., repo for private repositories). Avoid granting broader permissions like admin or write:org unless absolutely necessary.
  • Credential Management: Store your credentials securely within Nappai’s credential manager. Do not hardcode tokens in the component’s inputs if possible.