An open API service indexing awesome lists of open source software.

https://github.com/ievangelist/actions-toolkit-csharp

The unofficial GitHub ToolKit for developing GitHub Actions with C#
https://github.com/ievangelist/actions-toolkit-csharp

csharp docker dotnet github-actions

Last synced: 30 days ago
JSON representation

The unofficial GitHub ToolKit for developing GitHub Actions with C#

Awesome Lists containing this project

README

          

![actions-toolkit-csharp](https://socialify.git.ci/IEvangelist/actions-toolkit-csharp/image?description=1&font=Rokkitt&language=1&name=1&owner=1&pattern=Plus&theme=Dark)

# GitHub Actions Workflow .NET SDK

[![build-and-test](https://github.com/IEvangelist/actions-toolkit-csharp/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/IEvangelist/actions-toolkit-csharp/actions/workflows/build-and-test.yml)
[![code analysis](https://github.com/IEvangelist/actions-toolkit-csharp/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/IEvangelist/actions-toolkit-csharp/actions/workflows/codeql-analysis.yml)
[![publish nuget](https://github.com/IEvangelist/actions-toolkit-csharp/actions/workflows/publish.yml/badge.svg)](https://github.com/IEvangelist/actions-toolkit-csharp/actions/workflows/publish.yml)
[![NuGet](https://img.shields.io/nuget/v/ActionsToolkit.Core.svg?style=flat)](https://www.nuget.org/packages/ActionsToolkit.Core)
[![All Contributors](https://img.shields.io/badge/all_contributors-4-orange.svg?style=flat-square)](#contributors-)

The .NET equivalent of the official GitHub [actions/toolkit](https://github.com/actions/toolkit) repository, and is currently a work in progress. While there isn't currently 100% feature complete compatibility between these two repositories, that is the eventual goal.

> [!IMPORTANT]
> This repository is in the middle of a rename and feature-parity initiative ([#5][issue-5]).
> NuGet package IDs are moving from `GitHub.Actions.*` to `ActionsToolkit.*`, and all ten
> upstream `@actions/toolkit` packages will ship together as **v1.0.0** of `ActionsToolkit.*`
> once each row in [PACKAGES.md](PACKAGES.md) is fully ✅. Native AOT correctness is verified per
> package via dedicated `tests/.Aot.Tests` projects.

[issue-5]: https://github.com/IEvangelist/actions-toolkit-csharp/issues/5

## Blog

[🔗 Hello from the GitHub Actions: Core .NET SDK](https://davidpine.net/blog/github-actions-sdk)

## GitHub Actions .NET Toolkit

The GitHub Actions .NET ToolKit provides a set of packages to make creating actions easier.

## Packages

:heavy_check_mark: [`ActionsToolkit.Core`](src/ActionsToolkit.Core)

Provides functions for inputs, outputs, results, logging, secrets and variables. Read more [here](src/ActionsToolkit.Core)

```
dotnet add package ActionsToolkit.Core
```

For more information, see [📦 ActionsToolkit.Core](https://www.nuget.org/packages/ActionsToolkit.Core).

:ice_cream: [`ActionsToolkit.Glob`](src/ActionsToolkit.Glob)

Provides functions to search for files matching glob patterns. Read more [here](src/ActionsToolkit.Glob)

```
dotnet add package ActionsToolkit.Glob
```

For more information, see [📦 ActionsToolkit.Glob](https://www.nuget.org/packages/ActionsToolkit.Glob).

:pencil2: [`ActionsToolkit.IO`](src/ActionsToolkit.IO)

Provides disk i/o functions like cp, mv, rmRF, which etc. Read more [here](src/ActionsToolkit.IO)

```bash
dotnet add package ActionsToolkit.IO
```

For more information, see [📦 ActionsToolkit.IO](https://www.nuget.org/packages/ActionsToolkit.IO).

:rocket: [`ActionsToolkit.Exec`](src/ActionsToolkit.Exec)

Provides functions to exec command-line tools and process their output. Read more [here](src/ActionsToolkit.Exec)

```bash
dotnet add package ActionsToolkit.Exec
```

For more information, see [📦 ActionsToolkit.Exec](https://www.nuget.org/packages/ActionsToolkit.Exec).

:octocat: [`ActionsToolkit.Octokit`](src/ActionsToolkit.Octokit)

Provides an Octokit client hydrated with the context that the current action is being run in. Read more [here](src/ActionsToolkit.Octokit)

```bash
dotnet add package ActionsToolkit.Octokit
```

For more information, see [📦 ActionsToolkit.Octokit](https://www.nuget.org/packages/ActionsToolkit.Octokit).

:package: [`ActionsToolkit.ToolCache`](src/ActionsToolkit.ToolCache)

Provides functions for downloading, extracting, and caching tools (such as language runtimes) on the runner — the .NET equivalent of `@actions/tool-cache`. Read more [here](src/ActionsToolkit.ToolCache).

```bash
dotnet add package ActionsToolkit.ToolCache
```

For more information, see [📦 ActionsToolkit.ToolCache](https://www.nuget.org/packages/ActionsToolkit.ToolCache).

:lock: [`ActionsToolkit.Attest`](src/ActionsToolkit.Attest)

Provides functions for generating signed artifact attestations — Sigstore keyless signing of in-toto statements (including SLSA-style provenance) and persistence to GitHub's attestations REST endpoint. Read more [here](src/ActionsToolkit.Attest).

```bash
dotnet add package ActionsToolkit.Attest
```

For more information, see [📦 ActionsToolkit.Attest](https://www.nuget.org/packages/ActionsToolkit.Attest).

:floppy_disk: [`ActionsToolkit.Cache`](src/ActionsToolkit.Cache)

Provides functions for saving and restoring caches against the GitHub Actions cache service — the .NET equivalent of `@actions/cache`. Tar+zstd archive pipeline (managed via `System.Formats.Tar` + `ZstdSharp.Port`), Twirp+signed-URL transport for the V2 cache backend, and AOT-clean source-gen JSON. Read more [here](src/ActionsToolkit.Cache).

```bash
dotnet add package ActionsToolkit.Cache
```

For more information, see [📦 ActionsToolkit.Cache](https://www.nuget.org/packages/ActionsToolkit.Cache).

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):



Chet Husk
Chet Husk

💻
js6pak
js6pak

💻 ⚠️
David Gardiner
David Gardiner

💻
Fredrik Høisæther Rasch
Fredrik Høisæther Rasch

💻 🤔

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!