API for CI interoperability/development #6167

Closed
opened 2025-11-02 06:46:53 -06:00 by GiteaMirror · 1 comment
Owner

Originally created by @ita1024 on GitHub (Oct 18, 2020).

  • Gitea version (or commit ref): latest
  • Git version: N/A
  • Operating system: N/A
  • Database: N/A

Description

As a CI developer, I need the following APIs from Gitea in order to implement a CI system:

  • Create merge commits on the server-side, so that I can:
    a. Check the mergeability status of the pull request (do not run CI on merge conflicts)
    b. Benefit from server-side performance: it is best if the CI system can create merge verification branches/references on the server side to avoid checking out all projects as a client
    c. Run CI checks against the latest version of the main branch (always rebase on CI pre-merge checks) by enabling recent merges
    d. Ensure that merge trains/merge queues can be implemented in the future
    e. If possible, keep those commits less visible (git fetch) by creating them onto references and not onto regular branches
    f. Let the CI system manages it to avoid race conditions on force-pushes and PR updates (a unique volatile tip merge created by the VCS system leads to CI race conditions)
  • Create/delete references from or to branches which is necessary to:
    a. Avoid exposing branches to developers (keep them invisible on git fetch) if "1.e". above is not possible
    b. Delete references so that unused ones can be cleaned up easily and avoid taking space
  • Add/update/remove inline comments on commits so that:
    a. Post-merge verification builds provide visible feedback on Gitea
    b. The feedback can be added or amended depending on the build types of builds (add or update)

The above represents the minimum required to have a well-functioning CI integration. If 1. and 2. should instead be provided by a Gitea plugin or extension, then please specify which one to use.

Originally created by @ita1024 on GitHub (Oct 18, 2020). - Gitea version (or commit ref): latest - Git version: N/A - Operating system: N/A - Database: N/A ## Description As a CI developer, I need the following APIs from Gitea in order to implement a CI system: - [ ] Create merge commits on the server-side, so that I can: a. Check the mergeability status of the pull request (do not run CI on merge conflicts) b. Benefit from server-side performance: it is best if the CI system can create merge verification branches/references on the server side to avoid checking out all projects as a client c. Run CI checks against the latest version of the main branch (always rebase on CI pre-merge checks) by enabling recent merges d. Ensure that merge trains/merge queues can be implemented in the future e. If possible, keep those commits less visible (`git fetch`) by creating them onto references and not onto regular branches f. Let the CI system manages it to avoid race conditions on force-pushes and PR updates (a unique volatile tip merge created by the VCS system leads to CI race conditions) - [ ] Create/delete [references](https://github.com/go-gitea/gitea/issues/11835) from or to branches which is necessary to: a. Avoid exposing branches to developers (keep them invisible on `git fetch`) if "1.e". above is not possible b. Delete references so that unused ones can be cleaned up easily and avoid taking space - [ ] Add/update/remove [inline comments on commits](https://github.com/go-gitea/gitea/issues/4898) so that: a. Post-merge verification builds provide visible feedback on Gitea b. The feedback can be added or amended depending on the build types of builds (add or update) The above represents the minimum required to have a well-functioning CI integration. If 1. and 2. should instead be provided by a Gitea plugin or extension, then please specify which one to use.
GiteaMirror added the type/proposalmodifies/api labels 2025-11-02 06:46:53 -06:00
Author
Owner

@techknowlogick commented on GitHub (Jul 11, 2024):

Closing as Gitea actions now exist, which can accomplish the above.

@techknowlogick commented on GitHub (Jul 11, 2024): Closing as Gitea actions now exist, which can accomplish the above.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/gitea#6167