2022-01-31 14:09:42 -05:00
# @actions/add-to-project
** 🚨 This action is a work in progress. Please do not use it except for experimentation until a release has been prepared. Thanks!**
Use this action to automatically add issues to a project when they're opened.
```yaml
name : Add to project
on :
issues : {types : [ opened]}
jobs :
add-to-project :
name : Add issue to project
runs-on : ubuntu-latest
steps :
- uses : actions/add-to-project@v1
with :
project-url : https://github.com/orgs/<orgName>/projects/<projectNumber>
github-token : ${{ secrets.ADD_TO_PROJECT_PAT }}
```
Note that the `github-token` input must be a personal access token with
`read:org` , `write:org` (to get and update projects) and `repo` scope (for
adding repo issues to the project).
## Code in Main
> First, you'll need to have a reasonably modern version of `node` handy. This won't work with versions older than 9, for instance.
2022-01-31 15:38:31 -05:00
Install the dependencies
2022-01-31 14:09:42 -05:00
```bash
$ npm install
```
Build the typescript and package it for distribution
2022-01-31 15:38:31 -05:00
2022-01-31 14:09:42 -05:00
```bash
$ npm run build && npm run package
```
2022-01-31 15:38:31 -05:00
Run the tests :heavy_check_mark:
2022-01-31 14:09:42 -05:00
```bash
$ npm test
PASS ./index.test.js
...
```
## Change action.yml
The action.yml defines the inputs and output for your action.
Update the action.yml with your name, description, inputs and outputs for your action.
See the [documentation ](https://help.github.com/en/articles/metadata-syntax-for-github-actions )
## Change the Code
Most toolkit and CI/CD operations involve async operations so the action is run in an async function.
```javascript
import * as core from '@actions/core' ;
...
async function run () {
2022-01-31 15:38:31 -05:00
try {
2022-01-31 14:09:42 -05:00
...
2022-01-31 15:38:31 -05:00
}
2022-01-31 14:09:42 -05:00
catch ( error ) {
core . setFailed ( error . message );
}
}
run ()
```
See the [toolkit documentation ](https://github.com/actions/toolkit/blob/master/README.md#packages ) for the various packages.
## Publish to a distribution branch
2022-01-31 15:38:31 -05:00
Actions are run from GitHub repos so we will checkin the packed dist folder.
2022-01-31 14:09:42 -05:00
Then run [ncc ](https://github.com/zeit/ncc ) and push the results:
2022-01-31 15:38:31 -05:00
2022-01-31 14:09:42 -05:00
```bash
$ npm run package
$ git add dist
$ git commit -a -m "prod dependencies"
$ git push origin releases/v1
```
Note: We recommend using the `--license` option for ncc, which will create a license file for all of the production node modules used in your project.
2022-01-31 15:38:31 -05:00
Your action is now published! :rocket:
2022-01-31 14:09:42 -05:00
See the [versioning documentation ](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md )
## Validate
You can now validate the action by referencing `./` in a workflow in your repo (see [test.yml ](.github/workflows/test.yml ))
```yaml
uses : ./
with :
milliseconds : 1000
```
See the [actions tab ](https://github.com/actions/typescript-action/actions ) for runs of this action! :rocket:
## Usage:
After testing you can [create a v1 tag ](https://github.com/actions/toolkit/blob/master/docs/action-versioning.md ) to reference the stable and latest V1 action