The most advanced github action, with functionality overflowing and declaritive configuration to streamline your entire github workflow!
Github is rappidly changing the way that their api's work, and while I would love to keep up with them, I'm unable to dedicate the time this project deserves to implement new features. Users are advised to fork the repository and create your own should you need new features.
There are a number of things this project attempted to do, and didn't achieve partically well. I'm deprecating the following features in favor of promoting better solutions with active development:
- Automatically package and release: Use Release-Please
- Automatically bump version: Use Release-Please
- Create Changelogs: Use Release-Please
- Create, Update, Delete Labels declaratively from Config
- Apply Labels based on conditions
- Enforce Conventions - Ensure the repository follows conventions setout by your team. Configured using Conditions
- Automatically assign to projects - Ensure your projects have all open issues and pull requests assigned to the correct locations.
- Automatically assign to milestones - Keep milestones upto date by automatically assigning issues and pull requests
- Automatically create Branches - Open branches based on project column, or when an issue is opened.
- Automatically approve - Setup automatic pull request approval based on conditions.
- Create milestones automatically - Automatically create milestones when a new release is published.
For Features Requests, Q&A, Show & Tell and Discussions please use our discussions page π.
We have a FAQ category in our discussions page where you can get quick answers, help with debugging weird issues, and general help.
Our extensive documentation can be found at here.
GitHub is our office, it's the place where our development and contributor teams do their work. We use the issue list to keep track of bugs and the features that we are working on. We do this openly for transparency, to reduce replication by contributors and increase productivity.
With the discussion page, you can leverage the knowledge of our wider community to get help with any problems you are having. Please keep in mind that this project is open-source, support is provided by the goodwill of our wonderful community members.
For more information on how to contribute, please read the contributing guidelines.
Our backlog can be found on Github
Setting up local running is simple, however we MUST warn that building / packaging while using local scripts can cause your GITHUB_TOKEN to be included within the package. To avoid this happening. you MUST follow the steps correctly. We will not be held responsible for any leeked personal tokens.
- Setup a secret on your repository named:
ACTIONS_STEP_DEBUG
value:true
- Ensure the action has run once after you created this secret
- Fork & Clone the development repository
- Continue from step 4 of
Running Locally
then return to step 5 & 6. - Make changes, then rebuild using
npm run dev:run
oryarn dev:run
- If uploading changes to Github
- Delete
./context.json
,./config
,./lib
,./dist
. - Run
yarn dev:all
. - Commit & push.
- Delete
- Fork & Clone this repository
- Run
yarn install
ornpm install
- From the action logs find
Context for local running
copy the output into a file named./context.json
at the root of the project. - Modify the
./config.sample.json
to contain yourGITHUB_TOKEN
and rename to./config.json
- Run the script using
yarn dev:run
ornpm run dev:run
Important
It is Extremely important to understand while using this template, most of the code within .github/
will automatically update within a new pull request whenever the template repository is updated.
[coming soon]
Create a new Github Actions workflow at .github/workflows/main.yml
:
Note: actions/checkout
must be run first so that the release action can find your config file.
main.yml
# @format
name: Project Management
on:
issues:
types: [opened, edited, closed, reopened]
pull_request:
types: [opened, edited, closed, reopened, synchronize]
project_card:
types: [created, moved, deleted]
schedule: [cron: "0 * * * *"]
jobs:
release-mastermind:
name: Release Mastermind
runs-on: ubuntu-latest
steps:
- uses: actions/[email protected]
- uses: ./
with:
GITHUB_TOKEN: "${{ secrets.BOT_TOKEN }}"
config: .github/allconfigs.json
Now create the config file at .github/config.json
.
Thank you for taking the time to look through this repository. If you have liked what you have found, please would you favourite & share. Ideally I would like to get a community behind this project which can ensure that it is maintained, updated and improved as GitActions get more suffisticated.
This project took heavy infulence from IvanFon/super-labeler-action which we were maintaining on our fork here: resnovas/label-mastermind. We invite any of the team who worked on his project to come onboard.
Thanks goes to these wonderful people (emoji key):
Ivan π π» π€ π π π§ π |
Jonathan S π¬ π π» π¨ π π‘ π€ π π§ π π‘οΈ |
jbinda π» π§ |
Videndum Studios Github Actions π π§ |
This project follows the all-contributors specification. Contributions of any kind welcome!