Skip to content

Conversation

dscho
Copy link
Member

@dscho dscho commented Aug 21, 2025

This PR is part 6 (the final act) of addressing gitgitgadget/gitgitgadget#609, and it is stacked on top of gitgitgadget/gitgitgadget#1980, gitgitgadget/gitgitgadget#1981, gitgitgadget/gitgitgadget#1982, gitgitgadget/gitgitgadget#1983, and gitgitgadget-workflows/gitgitgadget-workflows#1, therefore I will leave this in draft mode until those PRs are merged.

The overall structure of this PR:

  • A couple of preliminaries,
  • Replace three of GitGitGadget's Azure Pipelines that polled the git/git repository and the Git mailing list repository, instead reacting to the corresponding webhook events and triggering the shiny new GitHub workflows,
  • Stop triggering the Azure Pipelines for PR comments and trigger the new handle-pr-comment GitHub workflow instead,
  • Do trigger the new handle-pr-push GitHub workflow upon PR pushes, and
  • Remove the code to trigger Azure Pipelines.

This concludes the really, really long journey from GitGitGadget's original Azure Pipelines-based architecture to the new GitHub Actions-based one. This closes gitgitgadget/gitgitgadget#609.

dscho added 9 commits August 20, 2025 13:01
Otherwise it's a bit tricky to see what is happening...

Signed-off-by: Johannes Schindelin <[email protected]>
It is bad practice, and for good reason: It makes it hard to verify
things when the same, mocked function is called _multiple_ times inside
the same test case, and with different parameters that need to be
verified, too.

Signed-off-by: Johannes Schindelin <[email protected]>
This function will be used to determine whether a workflow run is
already queued, to prevent concurrent runs of the upcoming GitHub
workflows that replace GitGitGadget's Azure Pipelines.

Signed-off-by: Johannes Schindelin <[email protected]>
This is easier to read, and it will make similar calls that I am about
to introduce also easier to read.

Signed-off-by: Johannes Schindelin <[email protected]>
This is part of my ongoing effort to replace GitGitGadget's Azure
Pipelines by GitHub workflows.

Currently, the Azure Pipelines have the upstream Git repository as
"source" (even if they don't check that out), i.e. Azure Pipelines poll
for changes.

In GitHub workflows, such a thing is no longer possible: There is no way
to trigger a GitHub workflow on updates in _another_ repository than the
workflow definition resides (a rather vexing limitation of GitHub
Actions' architecture, to be sure).

In this instance, we can avoid resorting to the ugly, ugly, yet
all-too-common workaround of polling (which we do in
`sync-git-mailing-list-mirror`) but can at least react to the respective
webhook event (at least we _can_, what with the `gitgitgadget-git` app
being installed on `git/git`).

Signed-off-by: Johannes Schindelin <[email protected]>
GitGitGadget maintains a mirror of the Git mailing list at
https://github.com/gitgitgadget/git-mailing-list-mirror/, synchronizing
it via the `sync-git-mailing-list-mirror` workflow.

As a side effect of having installed the `gitgitgadget` GitHub App on
that repository (so that the workflow can push updates), GitGitGadget's
App also receives webhook events from that repository.

Let's put that fact to good use by triggering the new `handle-new-mails`
GitHub workflow that wants to replace GitGitGadget's "Mirror Git List to
GitGitGadget's PRs" Azure Pipeline at
https://dev.azure.com/gitgitgadget/git/_build?definitionId=5 (which
polled the upstream Git mailing list repository).

Signed-off-by: Johannes Schindelin <[email protected]>
This _almost_ retires these Azure Pipelines:

- GitGitGadget PR Handler
  https://dev.azure.com/gitgitgadget/git/_build?definitionId=3
- GitGitGadget PR Handler (git)
  https://dev.azure.com/gitgitgadget/git/_build?definitionId=13
- GitGitGadget PR Handler (dscho)
  https://dev.azure.com/gitgitgadget/git/_build?definitionId=12

The remaining responsibility of those Pipelines is to handle PR
_pushes_, which I will address in the next commit.

Signed-off-by: Johannes Schindelin <[email protected]>
This is the final bit of the migration from GitGitGadget's Azure
Pipelines to GitHub workflows.

Signed-off-by: Johannes Schindelin <[email protected]>
We no longer trigger any Azure Pipeline.

Signed-off-by: Johannes Schindelin <[email protected]>
@dscho dscho requested review from mjcheetham and webstech August 21, 2025 10:17
@dscho dscho self-assigned this Aug 21, 2025
@webstech
Copy link
Contributor

I have finished reviewing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Migrate away from Azure Pipelines to GitHub Actions
2 participants