Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: gitgitgadget/gitgitgadget
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 2325c2c
Choose a base ref
...
head repository: gitgitgadget/gitgitgadget
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 1d2cbd2
Choose a head ref
  • 11 commits
  • 18 files changed
  • 1 contributor

Commits on Oct 7, 2025

  1. Extend the IConfig interface as needed for 3rd-party projects

    In my endeavor to support projects other than Git, I am currently
    adapting GitGitGadget to allow sending Cygwin PRs to the Cygwin-patches
    mailing list.
    
    I identified a couple of gaps in the project configuration when setting
    up stuff in https://github.com/cygwingitgadget.
    
    Let's close those gaps.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    62fce79 View commit details
    Browse the repository at this point in the history
  2. IConfig: rename the attribute defining the upstream-repo's org

    We've settled on the nomenclature `upstream-repo` to refer to the
    original repository of the project, as opposed to the `pr-repo` which is
    a fork that exists exclusively to let GitGitGadget handle PRs in (and to
    store its global state in the Git notes). So let's call the owner of the
    `upstream-repo` the `upstreamOwner`, not the `baseOwner`.
    
    Besides, with GitHub's naming conventions referring to the branch a PR
    targets as the "base", it is a bit confusing to have `baseOwner` to
    refer to anything except the owner of the repository in which the PR
    lives.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    23c6d23 View commit details
    Browse the repository at this point in the history
  3. IConfig: move repo.owners to a better place

    The `owners` array refers to a list of orgs/owners where the GitHub App
    is installed, i.e. where GitGitGadget can operate.
    
    Therefore, a much better place is `app.installedOn`.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    9890596 View commit details
    Browse the repository at this point in the history
  4. Actions: accept the config input

    The idea is to configure GitGitGadget via a `gitgitgadget-config.json`
    file that contains the project-specific instance of the `IConfig`
    interface, tracked in the `config` branch of a fork of the
    `gitgitgadget-workflows` repository, from where it is automatically
    synchronized via a GitHub workflow to the repository variable `CONFIG`,
    and then passed to all of GitGitGadget's Actions via:
    
    	```yml
    	config: '${{ vars.CONFIG }}'
    	```
    
    For now, this input is optional, to ease the transition of GitGitGadget;
    Eventually, this config will be required, so that several projects can
    be served using identical source code in forks of the
    `gitgitgadget-github-app` and `gitgitgadget-workflows` repositories.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    211dbb2 View commit details
    Browse the repository at this point in the history
  5. Install typia

    GitGitGadget now accepts the project configuration as a `config` Action
    input, in the form of a string that contains the JSON-encoded `IConfig`
    object. That is a bit fragile, though, as it is all-too-easy to have a
    typo in that object.
    
    Let's install `typia` to use the `IConfig` interface as a source of
    truth when validating the user input.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    24a0e2a View commit details
    Browse the repository at this point in the history
  6. npx typia setup

    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    255ece3 View commit details
    Browse the repository at this point in the history
  7. CIHelper: validate the user-provided config Action input

    This uses the freshly-installed `typia` module to create a validator for
    the `IConfig` interface at compile-time, and uses it to validate
    user-provided JSON against that interface.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    a603513 View commit details
    Browse the repository at this point in the history
  8. IConfig: avoid "anonymous types"

    For the `typia`-based validator, it is good to label each and every
    attribute's type so that the error messages are helpful.
    
    This commit is best viewed with `--ignore-space-change`.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    e68da6a View commit details
    Browse the repository at this point in the history
  9. Include the LintCommit configuration in IConfig

    This way, the maximal number of columns can be configured freely per
    project, via the project-specific config.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    d25eafa View commit details
    Browse the repository at this point in the history
  10. /submit: use correct URL in the "Submitted as" message

    Currently this URL is constructed from the `host` and the `name`
    attributes of the project config setting's `mailrepo` attribute.
    
    However, the `name` is supposed to refer to the mailing list _mirror
    repository_, while we are interested in the URL where the web UI of the
    public-inbox instance lives. Luckily, we already have that in the
    project configuration: It's the `url` attribute.
    
    I noticed the need for this patch in
    cygwingitgadget/cygwin#1, where the URL
    displayed after submitting v1 pointed to an incorrect location.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    07b2da3 View commit details
    Browse the repository at this point in the history
  11. Add the validate-config GitHub Action

    This will come in handy once the project-specific settings start living
    in the `config` branch.
    
    Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
    dscho committed Oct 7, 2025
    Configuration menu
    Copy the full SHA
    1d2cbd2 View commit details
    Browse the repository at this point in the history
Loading