Gitea · Arazzo Workflow

Gitea Commit File On New Branch And Open Pull Request

Version 1.0.0

Create a branch, commit a new file to it, and open a pull request.

1 workflow 1 source API 1 provider
View Spec View on GitHub GitSource ControlDevOpsCI/CDCode HostingOpen-SourceSelf-HostedPackage RegistryIssue TrackingPull RequestsArazzoWorkflows

Provider

gitea

Workflows

commit-file-and-open-pr
Create a branch, commit a file, and open a pull request.
Creates a feature branch, commits a base64-encoded file to it, then opens a pull request targeting the base branch.
3 steps inputs: authToken, baseBranch, commitMessage, contentBase64, filepath, newBranch, owner, prBody, prTitle, repo outputs: branchName, commitSha, prNumber, prUrl
1
createBranch
Create a feature branch from the base branch.
2
commitFile
Commit a new base64-encoded file onto the feature branch.
3
openPullRequest
Open a pull request from the feature branch into the base branch.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Gitea Commit File On New Branch And Open Pull Request
  summary: Create a branch, commit a new file to it, and open a pull request.
  description: >-
    Automates a content change proposal on Gitea. The workflow creates a new
    branch, commits a new file onto that branch, and opens a pull request that
    proposes merging the change back into the base branch. Each step spells out
    its request inline so the flow can be read and executed without opening the
    underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: repositoryApi
  url: ../openapi/gitea-repository-api-openapi.yml
  type: openapi
workflows:
- workflowId: commit-file-and-open-pr
  summary: Create a branch, commit a file, and open a pull request.
  description: >-
    Creates a feature branch, commits a base64-encoded file to it, then opens a
    pull request targeting the base branch.
  inputs:
    type: object
    required:
    - authToken
    - owner
    - repo
    - newBranch
    - baseBranch
    - filepath
    - contentBase64
    - prTitle
    properties:
      authToken:
        type: string
        description: Authorization header value, e.g. "token <personal-access-token>".
      owner:
        type: string
        description: Owner of the repository.
      repo:
        type: string
        description: Name of the repository.
      newBranch:
        type: string
        description: Feature branch to create and commit onto.
      baseBranch:
        type: string
        description: Existing branch the feature branch is created from and merged into.
      filepath:
        type: string
        description: Path of the file to create in the repository.
      contentBase64:
        type: string
        description: Base64-encoded file content.
      commitMessage:
        type: string
        description: Commit message for the new file.
      prTitle:
        type: string
        description: Title of the pull request.
      prBody:
        type: string
        description: Description body for the pull request.
  steps:
  - stepId: createBranch
    description: Create a feature branch from the base branch.
    operationId: repoCreateBranch
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authToken
    - name: owner
      in: path
      value: $inputs.owner
    - name: repo
      in: path
      value: $inputs.repo
    requestBody:
      contentType: application/json
      payload:
        new_branch_name: $inputs.newBranch
        old_ref_name: $inputs.baseBranch
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      branchName: $response.body#/name
  - stepId: commitFile
    description: Commit a new base64-encoded file onto the feature branch.
    operationId: repoCreateFile
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authToken
    - name: owner
      in: path
      value: $inputs.owner
    - name: repo
      in: path
      value: $inputs.repo
    - name: filepath
      in: path
      value: $inputs.filepath
    requestBody:
      contentType: application/json
      payload:
        content: $inputs.contentBase64
        message: $inputs.commitMessage
        branch: $inputs.newBranch
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      commitSha: $response.body#/commit/sha
  - stepId: openPullRequest
    description: Open a pull request from the feature branch into the base branch.
    operationId: repoCreatePullRequest
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authToken
    - name: owner
      in: path
      value: $inputs.owner
    - name: repo
      in: path
      value: $inputs.repo
    requestBody:
      contentType: application/json
      payload:
        title: $inputs.prTitle
        body: $inputs.prBody
        head: $inputs.newBranch
        base: $inputs.baseBranch
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      prNumber: $response.body#/number
      prUrl: $response.body#/html_url
  outputs:
    branchName: $steps.createBranch.outputs.branchName
    commitSha: $steps.commitFile.outputs.commitSha
    prNumber: $steps.openPullRequest.outputs.prNumber
    prUrl: $steps.openPullRequest.outputs.prUrl

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/gitea-commit-file-and-open-pr-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.