Skip to content

Update README.md

Update README.md #279

Workflow file for this run

name: ci
on:
pull_request:
jobs:
go-lint:
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.22.x
- name: Checkout code
uses: actions/checkout@v4
- name: Run linters
uses: golangci/golangci-lint-action@v5
with:
version: latest
args: --timeout=3m
go-test:
strategy:
matrix:
go-version: [1.22.x]
platform: [ubuntu-latest]
runs-on: ${{ matrix.platform }}
steps:
- name: Install Go
if: success()
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go-version }}
- name: Checkout code
uses: actions/checkout@v4
- name: go tests
run: go test -v -covermode=count -json ./... > test.json
- name: annotate go tests
if: always()
uses: guyarb/[email protected]
with:
test-results: test.json
test:
runs-on: ubuntu-latest
env:
BATON_LOG_LEVEL: debug
# Add any environment variables needed to run baton-bitbucket-datacenter
BATON_BITBUCKETDC_BASEURL: 'http://localhost:7990'
BATON_BITBUCKETDC_USERNAME: ${{ secrets.BATON_BITBUCKETDC_USERNAME }}
BATON_BITBUCKETDC_PASSWORD: ${{ secrets.BATON_BITBUCKETDC_PASSWORD }}
# The following parameters are passed to grant/revoke commands
CONNECTOR_GRANT: 'group:local-group:member:user:f1'
CONNECTOR_ENTITLEMENT: 'group:local-group:member'
CONNECTOR_PRINCIPAL_TYPE: 'user'
CONNECTOR_PRINCIPAL: 'f1'
steps:
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.22.x
- name: Checkout code
uses: actions/checkout@v4
- name: Run Docker Compose as a Daemon (to start postgres and bitbucket)
run: docker compose -f ./docker-compose.yml up --detach
- name: Install baton
run: ./scripts/get-baton.sh && mv baton /usr/local/bin
- name: Build baton-bitbucket-datacenter
run: go build ./cmd/baton-bitbucket-datacenter
- name: Wait for bitbucket to be up
run: ./scripts/health.sh ${{ env.BATON_BITBUCKETDC_BASEURL }}/status
- name: Check bitbucket status
id: out
run: status=$(curl -LI localhost:7990/status -o /dev/null -w '%{http_code}\n' -s); echo "status=$status" >> $GITHUB_OUTPUT
- name: fail on output
if: steps.out.outputs.status != 200
run: echo "bad status ${{ steps.out.outputs.status }}"; exit 1
- name: Run baton-bitbucket-datacenter
run: ./baton-bitbucket-datacenter
- name: Check for grant before revoking
run: |
./baton-bitbucket-datacenter
baton grants --entitlement="${{ env.CONNECTOR_ENTITLEMENT }}" --output-format=json | jq --exit-status ".grants[] | select( .principal.id.resource == \"${{ env.CONNECTOR_PRINCIPAL }}\" )"
- name: Revoke grants
run: |
./baton-bitbucket-datacenter
./baton-bitbucket-datacenter --revoke-grant ${{ env.CONNECTOR_GRANT }}
- name: Check grant was revoked
run: |
./baton-bitbucket-datacenter
baton grants --entitlement="${{ env.CONNECTOR_ENTITLEMENT }}" --output-format=json | jq --exit-status "if .grants then .grants[]?.principal.id.resource != \"${{ env.CONNECTOR_PRINCIPAL }}\" else . end"
- name: Grant entitlement
run: |
./baton-bitbucket-datacenter
./baton-bitbucket-datacenter --grant-entitlement ${{ env.CONNECTOR_ENTITLEMENT }} --grant-principal-type ${{ env.CONNECTOR_PRINCIPAL_TYPE }} --grant-principal ${{ env.CONNECTOR_PRINCIPAL }} --provisioning
- name: Check grant was re-granted
run: |
./baton-bitbucket-datacenter
baton grants --entitlement ${{ env.CONNECTOR_ENTITLEMENT }} --output-format=json | jq -e ".grants | any(.principal.id.resource ==\"${{ env.CONNECTOR_PRINCIPAL }}\")"