The most advanced github action, with functionality overflowing and declaritive configuration to streamline your entire github workflow!
Projects Classic is still supported
I have began to work on the new ProjectsV2 api, which has required us to deploy an app which uses OAuth to interact with the new Projects API. This has not effected the functionality of the rest of the tools and is not required for most of the tools to function.
- 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.
- Automatically bump version - Automatically increase the version of your project - Optionally use tags.
- Automatically package and release - Specify commands to run when new release should be created.
- Create Changelogs - Automatically create changelogs for your project.
- 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/checkout@v2.3.4
- 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!