Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mitodl/ol-concourse-github-issues
A Concourse resource to manipulate Github Issues
https://github.com/mitodl/ol-concourse-github-issues
Last synced: 6 days ago
JSON representation
A Concourse resource to manipulate Github Issues
- Host: GitHub
- URL: https://github.com/mitodl/ol-concourse-github-issues
- Owner: mitodl
- License: mit
- Created: 2023-09-28T20:52:17.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-13T11:25:42.000Z (9 months ago)
- Last Synced: 2024-04-13T23:01:50.158Z (9 months ago)
- Language: Python
- Size: 279 KB
- Stars: 1
- Watchers: 6
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ol-concourse-github-issues
A Concourse resource to manipulate Github Issues## Install (TODO: MORE DETAIL NEEDED)
You can find the resource on [dockerhub](https://hub.docker.com/r/mitodl/ol-concourse-github-issues)
## Usage
Your pipeline should include a source block like:
```
auth_method: "app" or "token". Defaults to token if not specified
access_token: a personal Github access token. Required if auth method == app
app_id: a Github application ID. Required if auth method == app
app_installation_id: a Github application installation ID. Required if auth_method == app
private_ssh_key: The complete application RSA key generated for a Github application. Required if auth_method == app
repository: Github repo in which to detect / create issues
issue_state: One of "open" or "closed". Defaults to "closed"
issue_prefix: prefix issue titles must contain to match
labels: labels required to match
assignees: optional assignees list to use when creating issues
```You can find example pipeline definitions for:
- [Triggering a task when a Github issue is created](trigger_test_pipeline.yaml)
- [Creating a New Github Issue When A Task
Completes](issue_create_test_pipeline.yaml)## App / Token Permissions
- Token: `project, read:org, repo`
- Application Installation: `Repository->Contents->Read and Write`, `Respository->Issues->Read and Write`, `Repository->Metadata->Read-only` and `Repository->Pull requests->Read and Write`Documentation on setting up a personal access token can be found [here](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/generating-a-user-access-token-for-a-github-app)
Documentation on setting up a github application can be found [here](https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/registering-a-github-app), [here](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/authenticating-as-a-github-app-installation) and [here](https://docs.github.com/en/apps/creating-github-apps/authenticating-with-a-github-app/managing-private-keys-for-github-apps)## Building
With Docker:
```
docker build --platform=linux/amd64 .
```With Earthly:
On Apple Silicon, first follow instructions [here](https://docs.earthly.dev/docs/guides/multi-platform#apple-silicon-m1-and-m2-processors)
```
earthly --platform=linux/amd64 +build
```## Testing
```
poetry install
poetry run python3 -m concoursetools . -r concourse.py
check < payload.json
```